ジオメトリの向き
surfaceおよびcurveジオメトリのorientationは、それぞれnormal vectorとtangent vectorの方向です。
各surfaceにはforward(またはtop)側があります。surface上の任意点でsurface normalを評価すると、その点でsurfaceに直交し、forward側を向くvectorが得られます。各surface上に生成されるmesh faceは、所有するsurfaceと同じnormal方向を持ちます。
各curveにはforward方向と、それに対応するstart vertexおよびend vertexがあります。curveの方向はstartからend vertexです。curve上の任意点でtangent vectorを評価すると、curveに接し、curveのforward方向(curve pathに沿ってend vertex側)を向くvectorが得られます。各curve上に作成されるmesh edgeも所有curveと同じ向きになります。curve meshのnodeとedgeは、curve path上の順序でexportされます。
高次元ジオメトリは、各低次元エンティティについてsense(forwardまたはreversed)を伴って低次元ジオメトリを使用します。たとえばvolumeは、境界を構成する各surfaceについてsenseを持ちます。surface normalがvolume外側を向く場合、volumeはそのsurfaceをforward senseで使用します。surface normalがvolume内部を向く場合はreversed senseです。同様に、surfaceはloopを構成するcurve集合で境界付けられ、そのloop方向と各curveのsenseによってsurface normalに対して反時計回りのcycleになります。
向きの調整
既定ではsurfaceは、そのnormalが所属volumeの外側を向くようにorientされます。merged surface(複数volumeに属するsurface)やfree surface(volumeに属さないsurface、sheet bodyとも呼ばれる)のorientationは任意です。surfaceのorientationは、そのsurface上に作成されるelementのorientationにも影響し、すべてのsurface elementは作成元surfaceと同じ向きになります。surface normal方向を調整するコマンドは次のとおりです。
Surface <id_range> Normal Opposite
Surface <id_range> Normal Volume <id>
「Opposite」キーワードを使うとsurfaceの現在のorientationを反転できます。merged surfaceでは「Volume」キーワードでvolumeを指定すると、そのvolumeの外側を向くようorientationを設定できます。
まれにvolumeが「inside-out」の状態で作成されることがあります。次のコマンドを使うと、
Reverse {Body|Volume|Surface} <id_range>
指定したvolume、surface、bodyをinside-outに反転できます。これはすべてのsurface normalを反転することと等価です。非常にまれな状態なので、通常はほとんど遭遇しません。
curveのtangent方向を調整するコマンドは次のとおりです。
Curve <id_range> Tangent Opposite
Curve <id_range> Tangent {Forward|Reverse} Surface <id>
Curve <id_range> Tangent {Start|End} Vertex <id>
最初のコマンドはcurveのtangent方向を反転します。2番目は、指定surfaceから指定senseで使用されるようtangent方向を設定します。3番目は、指定vertexがcurveのstartまたはendになるようtangent方向を設定します。後ろ2形式ではcurveが指定surfaceまたはvertexに隣接している必要があります。
次のコマンドを使うと、複数curveのorientationを一度に変更できます。directionオプションでは指定方向にcurveをorientします。locationオプションでは指定位置に最も近いvertexをoriented curveのstart vertexにします。opposite引数でcurve orientationを反転することも、vertex IDを指定してstart vertexにすることもできます。
Curve <id_range> Orient Sense {direction (options)|location (options)|vertex <id_range>} [Opposite]
上記コマンドは、複数curveのorientationを各種オプションで一括変更するのに便利です。たとえば複数curveへbiasを設定する場合に役立ちます。既定ではbiasはcurve orientationに依存し、start vertex側から始まります。