OpenCASCADE で、幾何オブジェクトを管理するにはいくつも方法があるようですが、付属のコマンド実行環境 Draw Test Harness では、幾何オブジェクトに対して文字列の名前を与え、それで管理できる仕組みを提供しています。
具体的には、Standard_CString 文字列をキーとする AIS コンテキストに登録された Shape との関連付けマップ構造を持っているようです。Draw Test Harness 上でコーディングする際、次のようなコードをしょっちゅう書きます。
[cpp]
{
// …
// オブジェクトを取得
TopoDS_Shape S = DBRep::Get(shapename);
// ...
// オブジェクトを追加
TopoDS_Shape SS = ...
DBRep::Set(SS, shapename2);
}
[/cpp]
DBRep クラスのソースを追ってみると、名前文字列とインデックスキーの関連付けに Tcl のマップが利用されており、その後で Draw クラスの Set(), Get() がコールされており、Draw クラス内で Draw_VMap 型のマップが宣言されていました。さらに、Draw_VMap は TCollection_BasicMap クラスの派生クラスとなっており、このコレクション・マップを利用すれば幾何オブジェクトを管理することができるようです。
誘惑に負けて std::map を使いそうになってしまいますが、特にプログラミング上の制約の多い Windows で幾何オブジェクトを取り扱うには、TCollection_BasicMap を利用するのが無難なようです。