まずデータストラクチャ、今後扱っていく情報の構造を設計する必要があります。データをひとまとまりにしておくと便利なものをprototype、クラスというもので定義していきます。おそらくこのサンプルは、シェアハウス、学校のプロジェクトにフィットする形です。後にポストしますが、クラスタリングなどもこのデータストラクチャを基に行います。
Unit というクラスを定義しています。これシェアハウスの場合は住居ユニット、学校の場合は教室、として定義できると思います。このクラス(プロトタイプ)からインスタンス(実体)を作るときに、def __init__(self,xxxxxx) という関数がコールされます。これをよくコンストラクタと呼びますが、ここでこのUnit というデータ構造(まとまり)がどのような情報を格納すべきか self.変数名 として定義しておきます。これをメンバー変数と呼びます。
class Unit:
    def __init__(self,id,pos,type,name=""):
        self.id = id
        self.pos = pos
        self.type = type
        self.name = name
上のコードではメンバー変数を、コンストラクタの引数 で初期化しています。サンプルの WorldPlanコンポーネントのコード 35 行あたりで、このUnitクラスからインスタンスを作っていますが、
u = Unit(id,pos,0,"single")
このインスタンス化の際に,id, pos, type = 0, name = “single” といった情報を与えています。
unit_B に関しても実装してみてください。
それから敷地のサーフェース(建設可能範囲)、シェアハウスは3mグリッドのsplit済みのエッジ、このあたりライノでモデリングしてください。可能であればdropboxに置いてくれるとサンプル作りに役立ちます。

Comments are closed.