Mesh Edge Methods

 

   

Editable Mesh - Quick Navigation

The following methods provide basic access to the mesh edges.

Topic Navigation:  

Edge Visibility

Edge Selection

 

Methods:

Edge Visibility

getEdgeVis <mesh> <face_index_integer> <edge_index_integer>

Returns the edge visibility for given edge (1,2,3) on indexed face as a boolean.

   

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

Sets the edge visibility for given edge (1,2,3) on indexed face.

   

Edge Selection

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

Retrieves the edge selection set, or the specified named selection set if the optional name: parameter is specified, as a BitArray. See the getVertSelection() method for more information.

   

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

Sets the edge selections in an Editable Mesh base object, Mesh Select modifier, Edit Mesh Modifier, or TriMesh. This mirrors the selection getting method above. See the setVertSelection() method for more information.

   

deselectHiddenEdges <mesh>

Deselects the hidden edges in the mesh. This method is not applicable to TriMeshes.

NOTE: 3ds Max defines an edge as the edge of a face. In any mesh object, the number of edges is 3 times the number of faces. A face has 3 vertices, and the face edges connect these vertices. Edges 1, 2, and 3 are the edges between vertices 1 and 2, 2 and 3, and 3 and 1, respectively. The first edge in a mesh is edge 1 on face 1, and the last edge is edge 3 on the last face. The following script selects all of the visible edges in the specified mesh:

EXAMPLE:

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 
 

   

The following function returns the indices of the 2 vertices that define an edge as a Point2 value. The two arguments to the function are an editable mesh node or TriMesh value and the edge index. A value of undefined is returned if the first argument isn't an editable mesh node or TriMesh value, or if the edge index is out of range.

FUNCTION

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
)
)

For more mesh-related methods, see

Editable Mesh - Topics Index

Editable_Mesh : GeometryClass and TriMesh : Value

See Also