メッシュ エッジ メソッド

 

   

編集可能メッシュ - クイック ナビゲーション

次のメソッドは、メッシュ エッジへの基本アクセスを提供します。

トピック ナビゲーション  

エッジの可視性

エッジ選択

 

メソッド:

エッジの可視性

getEdgeVis <mesh> <face_index_integer> <edge_index_integer>

インデックスで指定された面上にある所定のエッジ(1、2、3)について、可視性をブール値で返します。

   

setEdgeVis <mesh> <face_index_integer> <edge_index_integer> <boolean>

インデックスで指定された面上にある所定のエッジ(1、2、3)について、可視性を設定します。

   

エッジ選択

getEdgeSelection <node> [<modifier_or_index>] [name:<name> ]
getEdgeSelection <mesh>

エッジ選択セットを取得します。オプションの name: パラメータが BitArray として指定されている場合は、指定された名前の付いた選択セットを取得します。詳細は、 getVertSelection() メソッドを参照してください。

   

setEdgeSelection <node> [<modifier_or_index>] ( <sel_bitarray> | <sel_array> ) [name:<name> ] [keep:<boolean> ]
setEdgeSelection <mesh> ( <sel_bitarray> | <sel_array> ) [keep:<boolean> ]

編集可能メッシュ基本オブジェクト、メッシュ選択モディファイヤ、メッシュを編集モディファイヤ、または TriMesh にエッジの選択内容を設定します。これらの関数は、既に述べた選択項目を取得する関数に対応しています。詳細は、 setVertSelection() メソッドを参照してください。

   

deselectHiddenEdges <mesh>

メッシュ内で非表示のエッジの選択を解除します。このメソッドは TriMesh には適用されません。

注: 3ds Max は、エッジを面のエッジとして定義します。メッシュ オブジェクトでは、エッジの数は面の数の 3 倍です。1 つの面には 3 つの頂点があり、面のエッジはこれらの頂点を接続します。エッジ 1、2、3 は、それぞれ頂点 1 と 2、頂点 2 と 3、頂点 3 と 1 の間のエッジです。メッシュ内の最初のエッジは、面 1 上のエッジ 1、最後のエッジは最後の面上のエッジ 3 です。以下のスクリプトでは、所定のメッシュから可視のエッジをすべて選択します。

例:

obj = convertToMesh (Sphere()) -- Create a Sphere, turn to EMesh
obj.allEdges = true -- Show all edges
select obj -- Select the mesh
max modify mode -- Switch to Modify panel
subObjectLevel = 2 -- Set Sub-Object level to Edge
edgeSelSet=#() -- Init. an Array
for face = 1 to obj.numfaces do -- Go through all faces
for edge = 1 to 3 do -- And for every of the 3 edges
if (getedgevis obj face edge) do -- If the visibility is true,
append edgeSelSet (((face-1)*3)+edge) --collect the edge
setedgeselection obj edgeSelSet -- Select all visible edges
 

   

以下の関数は Point 2 値としてエッジを定義する 2 つの頂点のインデックスを返します。関数の 2 つの引数は編集可能メッシュ ノードまたは TriMesh 値とエッジ インデックスです。最初の引数が編集可能メッシュ ノードまたは TriMesh 値でない場合、あるいはエッジ インデックスが範囲外の場合は、 undefined 値が返されます。

関数:

fn edgeVerts theObj theEdge =
(
if not (classof theObj == Editable_mesh or classof theObj == triMesh) do
return undefined
if theEdge < 1 or theEdge >(theObj.numfaces*3) do
return undefined
local theFace = ((theEdge-1)/3)+1
local theVerts = getFace theObj theFace
case ((mod (theEdge-1)3) as integer) of
(
  0: point2 theVerts.x theVerts.y
  1: point2 theVerts.y theVerts.z
  2: point2 theVerts.z theVerts.x
)
)

メッシュに関連するメソッドについては、以下を参照してください。

編集可能メッシュ - トピック インデックス

Editable_Mesh : GeometryClass および TriMesh : 値

関連事項