95
X 7107 : 2005 (ISO 19107 : 2003)
Interface Type
TPObject GMPrimitive
(from Topology root) (from Geometric primitive)
0..1 + geometry
Realization
0..n + topology
Type Type
TPComplex + maximalComplex TPPrimitive
(from Topological Complex)
+ asTPDirectedTopo(orientation : Sign) : TPDirectedTopo
1
+ complex 1..n + element 1..n 0..1 0..n
+ container + isolated
IsolatedIn
-- 位相次元は幾何次元に一致する
[{geometry->forAll(geometry.dimension() = dimension())}]
-- 基本的な幾何演算は保たれる
[{complex.geometry->forAll(element->includes(geometry))}]
[{boundary().asTPPrimitive().geometry = geometry.boundary()}]
-- 孤立した位相プリミティブは次元が2以上小さい
[{coincidentSubelement.dimension() < dimension() -1}]
-- プリミティブはそれ自身の正のTPDirectedTopoとなる
[{asTPDirectedTopo(+) = self}]
図 38 TPPrimitive (位相プリミティブ)
7.3.10.2 Realization “Realization”(実現)関連は,このTPPrimitiveをその極大複体の中でこれを表現
するGMPrimitiveに関連させる。このTPPrimitiveをGMComplexによって実現できない論理的位相構造
を記述するために使用する場合,この関係は,このTPPrimitiveの極大TPComplexに含まれるすべての
TPPrimitiveに対して空となる。各GMPrimitiveは,各TPComplexに対して最大で一つのTPPrimitive
と関連してよい。このTPPrimitiveが,実現をもつTPComplexに含まれる場合,これは,必ず一つの
GMPrimitiveと関連しなければならない。GMPrimitiveは,異なるTPComplexの中の異なるTPPrimitive
に関連してよい。
TPPrimitive::geometry [0,1] : GMPrimitive
GMPrimitive::topology [0..n] : TPPrimitive
備考 GMCompositeは,対応するプリミティブの下位型であるため,TPPrimitiveの実現が同じ次元
のGMCompositeとなるようなスキーマを定義できる。このため,TPEdgeは,
GMCompositeCurveとして実現できる(附属書DのD.3参照)。
位相オブジェクト及びその境界取得操作と幾何オブジェクト及びその境界取得操作との間での準同形を
維持するために,この関連によって定義される写像は,次元を保たなければならず,二つの領域で要素と
複体との間の関連が保たれなければならない。
TPPrimitive:
dimension() = geometry.dimension();
7.3.10.3 Complex関連 “Complex”(複体)関連は,このTPPrimitiveを,それを含むTPComplexの有
限集合に関連させる。いずれのTPPrimitiveも,そのTPPrimitiveを含む一意な極大TPComplexの部分
複体となる,幾つかのTPComplexに含まれる。
――――― [JIS X 7107 pdf 101] ―――――
96
X 7107 : 2005 (ISO 19107 : 2003)
TPPrimitive::complex [1..n] : TPComplex
TPComplex::element [1..n] : TPPrimitive
7.3.10.4 Isolated In関連 次元の差が1又は0のプリミティブ間の位相での隣接関係はすべて,境界取得
操作及び双対境界取得操作によって扱われる。これらの操作は,一つ高い次元の他のプリミティブの境界
上にある一つのプリミティブのインスタンス又は共通の境界要素を共有する同じ次元のインスタンスだけ
を扱う。これは両側に同じフェイスをもつ“ぶら下がり”エッジ又は両側に同じ位相立体をもつ“ぶら下
がり”フェイスのインスタンスを含む。この例外は,一つのプリミティブが中間的なプリミティブなしに
二つ以上高い次元をもつプリミティブによって完全に囲まれている場合である。これらは,真に孤立
(isolated)している。フェイスでは,そのフェイスの境界上の中間的なエッジと接続しないノードはこれ
に含まれる。三次元空間では孤立ノードは,フェイスを実現する曲面に直交する曲線によって実現される
エッジの場合のように,当該曲面の境界上にない他のエッジと結合することができる。位相立体では,こ
の位相立体の境界上の曲面に属さないノード又はエッジを含むことができる。
TPPrimitive::isolated [0..n] : TPPrimitive
TPPrimitive::container [0,1] : TPPrimitive
TPPrimitive:
isolated.dimension() < self.dimension() 1;
TPPrimitive->exists(boundary().topo->includes(self))
container.count = 0 implies
7.3.10.5 boundary TPPrimitiveの境界取得操作は,TPDirectedTopoの集合に構造を追加することによっ
てTPObjectで定義された境界を置き換える。
TPPrimitive::boundary() : TPPrimitiveBoundary
TPPrimitiveは抽象型であるため,追加構造はその下位型に対してそれぞれ定義する。
7.3.11 TPDirectedTopo
7.3.11.1 意味 計算上の観点から見ると,TPDirectedTopo(有向位相)(図39及び図40参照)の要素は,
geometryパッケージの様々な有向幾何オブジェクト(GMOrientableObject)に相当(GMOrientableCurve
及びGMOrientableSurface)する。TPDirectedNode及びTPDirectedSolidは,それに相当する個別の幾何
オブジェクトをもたない。
――――― [JIS X 7107 pdf 102] ―――――
97
X 7107 : 2005 (ISO 19107 : 2003)
Type
[{primitive = self}]
TPPrimitive
[{orientation = "+"}]
+ topo1
Type Type Type Type
TPNode TPEdge TPFace TPSolid
+ topo 1 + topo 1 + topo1 + topo 1
Center Center Center Center Center
+ proxy 2 + proxy 2 + proxy 2 2 + proxy
Type Type Type Type
TPDirectedNode TPDirectedEdge TPDirectedFace TPDirectedSolid
+ proxy 2
Type [{orientation = "+" implies topo = self}]
TPDirectedTopo
図 39 TPDirectedTopoの下位クラス
Type + topo + proxy
Type
TPPrimitive
1 Center 2 TPDirectedTopo
+ orientation : Sign = "+"
+ negate() : TPDirectedTopo
[{(orientation = "+") = (topo = self)}]
+ asTPExpression() : TPExpression
Type Type Type Type
TPDirectedNode TPDirectedEdge TPDirectedFace TPDirectedSolid
[{topo.isKindOf(TPNode)}] [{topo.isKindOf(TPFace)}]
[{topo.isKindOf(TPEdge)}] [{topo.isKindOf(TPSolid)}]
図 40 TPDirectedTopo
――――― [JIS X 7107 pdf 103] ―――――
98
X 7107 : 2005 (ISO 19107 : 2003)
幾何の場合と同様に,各位相プリミティブは,その対応する有向位相プリミティブを継承するが,より
多くの制約をみたす。これは,TPNodeが正のTPDirectedNodeと等価であり,TPEdgeが正の
TPDirectedEdgeと等価であるなどを意味する。
備考 他の型階層の選択肢として,TPPrimitiveとTPDirectedTopoとを分離するものを考えると,各
プリミティブにプリミティブ自身,それと等価な正の有向位相プリミティブ及びその逆(負の
有向位相プリミティブ)の三つのオブジェクトを必要とする。この選択肢は,このモデルの抽
象型の有効な実装ではあるが,位相プリミティブとその正の有向位相プリミティブとの論理的
な等価性は強調されない。代数的な観点から,正の有向プリミティブでプリミティブを識別す
る下位クラス化及びOCL制約は,これを“x = + x”となる代数の単項“+”(プラス)の標準的
な解釈と等価にする。位相オブジェクトの最も有効な利用は,その記号操作にあるので,代数
による比ゆ(喩)を扱うことは適切である。
隣接次元の有向位相オブジェクト間には,暗黙の関係がある。境界及び双対境界における操作と関係と
は,同じ方向性の意味を保持している。そのため,正の有向エッジがフェイスの境界上にある場合,正の
有向フェイスは関連付けられたエッジの双対境界となる。正の有向ノードがエッジの境界上にある場合,
対応する正の有向エッジは,関連付けられたノードの双対境界となる。
7.3.11.2 orientation “orientation”(方向性取得)属性は,この有向位相オブジェクトがその元になる
TPPrimitiveに対する向きとする。
TPDirectedTopo::orientation : Sign = “+”
7.3.11.3 negate “negate”(反転取得)操作は,このプリミティブの逆向きを返す。
TPDirectedTopo::negate() : TPDirectedTopo
7.3.11.4 asTPExpression “asTPExpression”(位相式変換)操作はTPDirectedTopoからTPExpression
を生成し,方向性の向き及び符号を保つ。この操作は,TPExpressionクラスのコンストラクタとする。
TPDirectedTopo::asTPExpression() : TPExpression
7.3.11.5 Center関連 “Center”(中心)関連の“topo”(位相)役割は,関連付けられたTPPrimitiveを
識別する。反対の“proxy”(代理)役割は,TPPrimitiveに関連付けられた二つのTPDirectedTopoインス
タンスを識別する。
TPDirectedTopo::topo [1] : TPPrimitive
TPPrimitive::proxy [2] : TPDirectedTopo
7.3.11.6 制約 有向位相オブジェクトの意味上の体系に従うため,有向位相オブジェクトに関連付けられ
る位相は,適切な型をもたなければならない。
TPDirectedNode:
topo.isKindOf(TPNode);
TPDirectedEdge:
topo.isKindOf(TPEdge);
TPDirectedFace:
topo.isKindOf(TPFace);
TPDirectedSolid:
topo.isKindOf(TPSolid);
備考 これらの制約は,位相プリミティブに対応する有向位相プリミティブのクラスがこの対応する
位相プリミティブの型を実現しなければならないことを示すのに,OCL演算子の“isKindOf”
――――― [JIS X 7107 pdf 104] ―――――
99
X 7107 : 2005 (ISO 19107 : 2003)
を使用している。
“Center”関連は,“boundary”及び“coBoundary”操作の代数の重要な部分を形成する。
TPDirectedTopo:
[boundary() = (orientation)*topo.boundary() ]
TPPrimitive:
[boundary() = (proxy.orientation)*proxy.boundary() ]
TPDirectedTopo:
negate.topo = topo;
negate.orientation <> orientation;
7.3.12 TPNode
7.3.12.1 意味 TPNode(ノード)(図41参照)は,そのすべてのインタフェースをTPPrimitiveから境
界及び双対境界の構造を多少同化しながら継承する。
TPNodeの場合,TPObjectで定義した“coBoundary”操作は,常に,そのノードに入るエッジ(正の
TPDirectedEdge)と出るエッジ(負のTPDirectedEdge)とを示す,TPDirectedEdgeへの参照の集合を返
す。この操作は,TPObjectから継承したものを置き換える。同じ情報を関連として表現してよい。
備考 このTPNodeを含む二次元の極大TPComplexでは,coBoundaryは,その極大TPComplexの
幾何実現において時計回りの環状列として並べてもよい。三次元複体では,順序は不定である。
TPNode::coBoundary() : Set<TPDirectedEdge> [{size = [0..n]}]
TPNode::CoBoundary.spoke : Set<TPDirectedEdge> [{size = [0..n]}]
Type 0..n Type
CoBoundary
TPPrimitive TPDirectedEdge
+ spoke
1
+ topo
+ hub 1
Type
TPNode
+boundary() : NULL
1 + topo
+ proxy Type
Center
TPDirectedNode
2
subset
+ proxy Type
Center
TPDirectedTopo
2
図 41 TPNode
7.3.12.2 Center関連 TPNodeを含む各TPPrimitiveは,二つのTPDiectedTopoインスタンスに関連付
けられる。
TPNode::proxy [2] : TPDirectedNode
――――― [JIS X 7107 pdf 105] ―――――
次のページ PDF 106
JIS X 7107:2005の引用国際規格 ISO 一覧
- ISO 19107:2003(IDT)
JIS X 7107:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.70 : 自然科学へのITの応用
JIS X 7107:2005の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX7111:2014
- 地理情報―座標による空間参照