EPolyMod Class Reference

EPolyMod Class Referenceabstract

#include <iEPolyMod.h>

Class Description

This class is the published interface for Edit Poly modifiers.

You can use it to manipulate Edit Poly modifiers directly. / Implementations of all of these methods can be found in the source for the Edit Poly modifier. / usages for most of them can be found there as well.

+ Inheritance diagram for EPolyMod:

Public Member Functions

 FN_0 (epmod_get_sel_level, TYPE_ENUM, GetEPolySelLevel)
 
 FN_0 (epmod_get_mn_sel_level, TYPE_ENUM, GetMNSelLevel)
 
 VFN_1 (epmod_set_sel_level, SetEPolySelLevel, TYPE_ENUM)
 
 FN_3 (epmod_convert_selection, TYPE_INT, EpModConvertSelection, TYPE_ENUM, TYPE_ENUM, TYPE_bool)
 
 FN_0 (epmod_get_operation, TYPE_ENUM, GetPolyOperationID)
 
 VFN_1 (epmod_set_operation, EpModSetOperation, TYPE_ENUM)
 
 VFN_1 (epmod_popup_dialog, EpModPopupDialog, TYPE_ENUM)
 
 VFN_1 (epmod_button_op, EpModButtonOp, TYPE_ENUM)
 
 VFN_0 (epmod_repeat_last, EpModRepeatLast)
 
 VFNT_0 (epmod_commit, EpModCommit)
 
 VFNT_0 (epmod_commit_unless_animating, EpModCommitUnlessAnimating)
 
 VFNT_0 (epmod_commit_and_repeat, EpModCommitAndRepeat)
 
 VFN_0 (epmod_cancel_operation, EpModCancel)
 
 FN_2 (epmod_get_selection, TYPE_BITARRAY, EpModGetSelection, TYPE_ENUM, TYPE_INODE)
 
 FN_3 (epmod_set_selection, TYPE_bool, EpModSetSelection, TYPE_ENUM, TYPE_BITARRAY_BR, TYPE_INODE)
 
 FN_5 (epmod_select, TYPE_bool, EpModSelect, TYPE_ENUM, TYPE_BITARRAY_BR, TYPE_bool, TYPE_bool, TYPE_INODE)
 
 VFN_1 (epmod_set_primary_node, EpModSetPrimaryNode, TYPE_INODE)
 
 VFN_1 (epmod_toggle_command_mode, EpModToggleCommandMode, TYPE_ENUM)
 
 VFN_1 (epmod_enter_command_mode, EpModEnterCommandMode, TYPE_ENUM)
 
 FN_0 (epmod_get_command_mode, TYPE_ENUM, EpModGetCommandMode)
 
 VFN_1 (epmod_enter_pick_mode, EpModEnterPickMode, TYPE_ENUM)
 
 FN_0 (epmod_get_pick_mode, TYPE_ENUM, EpModGetPickMode)
 
 VFNT_4 (epmod_move_selection, EpModMoveSelection, TYPE_POINT3_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR, TYPE_BOOL)
 
 VFNT_4 (epmod_rotate_selection, EpModRotateSelection, TYPE_QUAT_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR, TYPE_BOOL)
 
 VFNT_4 (epmod_scale_selection, EpModScaleSelection, TYPE_POINT3_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR, TYPE_BOOL)
 
 VFNT_3 (epmod_move_slicer, EpModMoveSlicePlane, TYPE_POINT3_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR)
 
 VFNT_4 (epmod_rotate_slicer, EpModRotateSlicePlane, TYPE_QUAT_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR, TYPE_BOOL)
 
 VFNT_4 (epmod_scale_slicer, EpModScaleSlicePlane, TYPE_POINT3_BR, TYPE_MATRIX3_BR, TYPE_MATRIX3_BR, TYPE_BOOL)
 
 FN_0 (epmod_in_slice_mode, TYPE_bool, EpInSliceMode)
 
 VFN_0 (epmod_reset_slice_plane, EpResetSlicePlane)
 
 FNT_0 (epmod_get_slice_plane_tm, TYPE_MATRIX3_BV, EpGetSlicePlaneTM)
 
 VFNT_2 (epmod_get_slice_plane, EpGetSlicePlane, TYPE_POINT3_BR, TYPE_POINT3_BR)
 
 VFNT_2 (epmod_set_slice_plane, EpSetSlicePlane, TYPE_POINT3_BR, TYPE_POINT3_BR)
 
 FN_2 (epmod_create_vertex, TYPE_INDEX, EpModCreateVertex, TYPE_POINT3, TYPE_INODE)
 
 FN_2 (epmod_create_face, TYPE_INDEX, EpModCreateFace, TYPE_INDEX_TAB, TYPE_INODE)
 
 FN_3 (epmod_create_edge, TYPE_INDEX, EpModCreateEdge, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_3 (epmod_set_diagonal, EpModSetDiagonal, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_5 (epmod_cut, EpModCut, TYPE_ENUM, TYPE_INDEX, TYPE_POINT3, TYPE_POINT3, TYPE_INODE)
 
 VFN_3 (epmod_target_weld_vertex, EpModWeldVerts, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_3 (epmod_target_weld_edge, EpModWeldEdges, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFNT_2 (epmod_attach_node, EpModAttach, TYPE_INODE, TYPE_INODE)
 
 VFNT_2 (epmod_attach_nodes, EpModMultiAttach, TYPE_INODE_TAB_BR, TYPE_INODE)
 
 VFNT_1 (epmod_detach_to_object, EpModDetachToObject, TYPE_TSTR_BR)
 
 VFNT_1 (epmod_create_shape, EpModCreateShape, TYPE_TSTR_BR)
 
 VFN_3 (epmod_set_hinge_edge, EpModSetHingeEdge, TYPE_INDEX, TYPE_MATRIX3, TYPE_INODE)
 
 FN_1 (epmod_get_hinge_edge, TYPE_INDEX, EpModGetHingeEdge, TYPE_INODE)
 
 VFN_3 (epmod_bridge_borders, EpModBridgeBorders, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_3 (epmod_bridge_polygons, EpModBridgePolygons, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_0 (epmod_get_bridge_node, TYPE_INODE, EpModGetBridgeNode)
 
 VFN_1 (epmod_set_bridge_node, EpModSetBridgeNode, TYPE_INODE)
 
 FN_0 (epmod_ready_to_bridge_selected, TYPE_bool, EpModReadyToBridgeSelected)
 
 FN_1 (epmod_get_preserve_map, TYPE_bool, EpModGetPreserveMap, TYPE_INT)
 
 VFN_2 (epmod_set_preserve_map, EpModSetPreserveMap, TYPE_INT, TYPE_bool)
 
 VFN_3 (epmod_turn_diagonal, EpModTurnDiagonal, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_1 (epmod_get_num_vertices, TYPE_INT, EpMeshGetNumVertices, TYPE_INODE)
 
 FN_2 (epmod_get_vertex, TYPE_POINT3_BV, EpMeshGetVertex, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_vertex_face_count, TYPE_INT, EpMeshGetVertexFaceCount, TYPE_INDEX, TYPE_INODE)
 
 FN_3 (epmod_get_vertex_face, TYPE_INDEX, EpMeshGetVertexFace, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_vertex_edge_count, TYPE_INT, EpMeshGetVertexEdgeCount, TYPE_INDEX, TYPE_INODE)
 
 FN_3 (epmod_get_vertex_edge, TYPE_INDEX, EpMeshGetVertexEdge, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_1 (epmod_get_num_edges, TYPE_INT, EpMeshGetNumEdges, TYPE_INODE)
 
 FN_3 (epmod_get_edge_vertex, TYPE_INDEX, EpMeshGetEdgeVertex, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_3 (epmod_get_edge_face, TYPE_INDEX, EpMeshGetEdgeFace, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_1 (epmod_get_num_faces, TYPE_INT, EpMeshGetNumFaces, TYPE_INODE)
 
 FN_2 (epmod_get_face_degree, TYPE_INT, EpMeshGetFaceDegree, TYPE_INDEX, TYPE_INODE)
 
 FN_3 (epmod_get_face_vertex, TYPE_INDEX, EpMeshGetFaceVertex, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_3 (epmod_get_face_edge, TYPE_INDEX, EpMeshGetFaceEdge, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_4 (epmod_get_face_diagonal, TYPE_INDEX, EpMeshGetFaceDiagonal, TYPE_INDEX, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_face_material, TYPE_INDEX, EpMeshGetFaceMaterial, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_face_smoothing_group, TYPE_DWORD, EpMeshGetFaceSmoothingGroup, TYPE_INDEX, TYPE_INODE)
 
 FN_1 (epmod_get_num_map_channels, TYPE_INT, EpMeshGetNumMapChannels, TYPE_INODE)
 
 FN_2 (epmod_get_map_channel_active, TYPE_bool, EpMeshGetMapChannelActive, TYPE_INT, TYPE_INODE)
 
 FN_2 (epmod_get_num_map_vertices, TYPE_INT, EpMeshGetNumMapVertices, TYPE_INT, TYPE_INODE)
 
 FN_3 (epmod_get_map_vertex, TYPE_POINT3_BV, EpMeshGetMapVertex, TYPE_INT, TYPE_INDEX, TYPE_INODE)
 
 FN_4 (epmod_get_map_face_vertex, TYPE_INDEX, EpMeshGetMapFaceVertex, TYPE_INT, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_1 (epmod_list_operations, EpModListOperations, TYPE_INODE)
 
 VFN_1 (epmod_local_data_changed, EpModLocalDataChanged, TYPE_DWORD)
 
 VFN_0 (epmod_refresh_screen, EpModRefreshScreen)
 
 FN_0 (epmod_in_slice, TYPE_bool, EpInSlice)
 
 FN_0 (epmod_show_operation_dialog, TYPE_bool, EpModShowOperationDialog)
 
 FN_0 (epmod_showing_operation_dialog, TYPE_bool, EpModShowingOperationDialog)
 
 VFN_0 (epmod_close_operation_dialog, EpModCloseOperationDialog)
 
 FN_0 (epmod_get_primary_node, TYPE_INODE, EpModGetPrimaryNode)
 
 FNT_1 (epmod_get_node_tm, TYPE_MATRIX3_BV, EpModGetNodeTM_FPS, TYPE_INODE)
 
 VFN_2 (epmod_set_cut_end, EpModSetCutEnd, TYPE_POINT3, TYPE_INODE)
 
 FN_0 (epmod_get_last_cut_end, TYPE_INDEX, EpModGetLastCutEnd)
 
 VFN_0 (epmod_clear_last_cut_end, EpModClearLastCutEnd)
 
 VFN_1 (epmod_cut_cancel, EpModCutCancel, TYPE_INODE)
 
 VFN_3 (epmod_divide_edge, EpModDivideEdge, TYPE_INDEX, TYPE_FLOAT, TYPE_INODE)
 
 VFN_3 (epmod_divide_face, EpModDivideFace, TYPE_INDEX, TYPE_FLOAT_TAB, TYPE_INODE)
 
 VFN_3 (epmod_bridge_edges, EpModBridgeEdges, TYPE_INDEX, TYPE_INDEX, TYPE_INODE)
 
 VFN_3 (epmod_ring_sel, EpModSetRingShift, TYPE_INT, TYPE_bool, TYPE_bool)
 
 VFN_3 (epmod_loop_sel, EpModSetLoopShift, TYPE_INT, TYPE_bool, TYPE_bool)
 
 FN_2 (epmod_convert_selection_to_border, TYPE_INT, EpModConvertSelectionToBorder, TYPE_ENUM, TYPE_ENUM)
 
 VFN_0 (epmod_paintdeform_commit, EpModPaintDeformCommit)
 
 VFN_0 (epmod_paintdeform_cancel, EpModPaintDeformCancel)
 
 FN_2 (epmod_get_face_normal, TYPE_POINT3_BV, EPMeshGetFaceNormal, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_face_center, TYPE_POINT3_BV, EPMeshGetFaceCenter, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_face_area, TYPE_FLOAT, EPMeshGetFaceArea, TYPE_INDEX, TYPE_INODE)
 
 FN_1 (epmod_get_open_edges, TYPE_BITARRAY, EPMeshGetOpenEdges, TYPE_INODE)
 
 FN_4 (epmod_get_verts_by_flag, TYPE_bool, EPMeshGetVertsByFlag, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_INODE)
 
 FN_4 (epmod_get_edges_by_flag, TYPE_bool, EPMeshGetEdgesByFlag, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_INODE)
 
 FN_4 (epmod_get_faces_by_flag, TYPE_bool, EPMeshGetFacesByFlag, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_INODE)
 
 VFN_5 (epmod_set_vertex_flags, EPMeshSetVertexFlags, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_bool, TYPE_INODE)
 
 VFN_5 (epmod_set_edge_flags, EPMeshSetEdgeFlags, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_bool, TYPE_INODE)
 
 VFN_5 (epmod_set_face_flags, EPMeshSetFaceFlags, TYPE_BITARRAY_BR, TYPE_DWORD, TYPE_DWORD, TYPE_bool, TYPE_INODE)
 
 FN_2 (epmod_get_vertex_flags, TYPE_INT, EPMeshGetVertexFlags, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_edge_flags, TYPE_INT, EPMeshGetEdgeFlags, TYPE_INDEX, TYPE_INODE)
 
 FN_2 (epmod_get_face_flags, TYPE_INT, EPMeshGetFaceFlags, TYPE_INDEX, TYPE_INODE)
 
 VFN_3 (epmod_get_verts_using_edge, EPMeshGetVertsUsingEdge, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_3 (epmod_get_edges_using_vert, EPMeshGetEdgesUsingVert, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_3 (epmod_get_faces_using_edge, EPMeshGetFacesUsingEdge, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_4 (epmod_get_elements_using_face, EPMeshGetElementsUsingFace, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_3 (epmod_get_faces_using_vert, EPMeshGetFacesUsingVert, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_3 (epmod_get_verts_using_face, EPMeshGetVertsUsingFace, TYPE_BITARRAY_BR, TYPE_BITARRAY_BR, TYPE_INODE)
 
 VFN_3 (epmod_set_vert, EPMeshSetVert, TYPE_BITARRAY_BR, TYPE_POINT3_BR, TYPE_INODE)
 
 VFN_0 (epmod_smgrp_floater, SmGrpFloater)
 
 FN_0 (epmod_smgrp_floatervisible, TYPE_BOOL, SmGrpFloaterVisible)
 
 VFN_0 (epmod_matid_floater, MatIDFloater)
 
 FN_0 (epmod_matid_floatervisible, TYPE_BOOL, MatIDFloaterVisible)
 
 VFN_0 (epmod_list_delta_ops, ListDeltaOps)
 
 FN_0 (epmod_get_last, TYPE_INT, EpModGetLast)
 
FPInterfaceDescGetDesc ()
 For system use only - retrieves the function publishing interface description. More...
 
virtual int GetEPolySelLevel ()=0
 Returns the Edit Poly selection level - one of the ePolyModSelLevel enum defined above, such as EPM_SL_VERTEX. More...
 
virtual int GetMNSelLevel ()=0
 Returns the MNMesh selection level - one of MNM_SL_OBJECT, MNM_SL_VERTEX, MNM_SL_EDGE, or MNM_SL_FACE. More...
 
virtual void SetEPolySelLevel (int sl)=0
 Sets the Edit Poly selection level. More...
 
virtual int EpModConvertSelection (int epSelLevelFrom, int epSelLevelTo, bool requireAll)
 Converts selection between two Edit Poly selection levels, by selecting adjacent subobjects, such as edges using selected vertices, or vertices used by selected faces, etc. More...
 
virtual int GetPolyOperationID ()
 Returns the "current" Edit Poly operation. More...
 
virtual IParamBlock2getParamBlock ()
 Returns the parameter block for the Edit Poly modifier. More...
 
virtual MapBitArray GetPreserveMapSettings () const
 Returns the Preserve settings for all map channels. More...
 
virtual void SetPreserveMapSettings (const MapBitArray &mapSettings)
 Sets the Preserve settings for all map channels. More...
 
virtual void EpModSetPreserveMap (int mapChannel, bool preserve)
 Sets whether a particular map channel will be "preserved" in geometric operations. More...
 
virtual bool EpModGetPreserveMap (int mapChannel)
 Indicates whether a particular map channel is set to be "preserved" in geometric operations. More...
 
virtual void InvalidateDistanceCache ()
 Invalidates the computed distances from selected vertices that are used to generate soft selections. More...
 
virtual void InvalidateSoftSelectionCache ()
 Invalidates the computed soft selections (but not the distances from selected vertices that the soft selections are based on). More...
 
virtual void EpModSetOperation (int opcode)
 Sets the current operation. More...
 
virtual void EpModPopupDialog (int opcode)
 Sets the operation to the one given, and then pops up the operation dialog, if one exists. More...
 
virtual void EpModButtonOp (int opcode)
 Applies the operation given, and commits to it immediately. More...
 
virtual void EpModLocalDataChanged (ChannelMask channels)
 Indicates to the EditPolyMod that some channels of its mesh have changed. More...
 
virtual void EpModRefreshScreen ()
 Triggers a redraw of the viewports at the current time. More...
 
virtual void EpModCommitUnlessAnimating (TimeValue t)
 Commits to the current operation unless we're set to "animation mode" (epm_animation_mode parameter is true) and the current operation supports animation. More...
 
virtual void EpModCommit (TimeValue t)
 Commits to the current operation, and clears any animation. More...
 
virtual void EpModCommitAndRepeat (TimeValue t)
 Commits to the current operation, but maintains it as the current operation with the same settings (and any animation in those parameters). More...
 
virtual void EpModCancel ()
 Cancels the current operation. More...
 
virtual void EpModToggleCommandMode (int mode)
 Toggles a given command mode - if it's not currently in this mode it will enter it, otherwise it will exit it. More...
 
virtual void EpModEnterCommandMode (int mode)
 Exits any previous Edit Poly command modes, and enters the command mode given. More...
 
virtual void EpModEnterPickMode (int mode)
 Enters the pick mode given. More...
 
virtual int EpModGetCommandMode ()
 Retrieves the current Edit Poly command mode in use, if any. More...
 
virtual int EpModGetPickMode ()
 Retrieves the current Edit Poly pick mode in use, if any. More...
 
virtual BitArrayEpModGetSelection (int meshSelLevel, INode *pNode=NULL)
 Returns a BitArray containing the subobject selection in the desired selection level. More...
 
virtual bool EpModSetSelection (int meshSelLevel, BitArray &selection, INode *pNode=NULL)
 Sets the subobject selection explicitly. More...
 
virtual bool EpModSelect (int meshSelLevel, BitArray &selection, bool invert=false, bool select=true, INode *pNode=NULL)
 Change the selection state of a subset of subobjects - select them, invert their selection, or deselect them. More...
 
virtual void SetHitLevelOverride (DWORD hlo)
 Force any hit-testing on the Edit Poly modifier to use the hit level given, instead of the default hit level associated with the current subobject level. More...
 
virtual void ClearHitLevelOverride ()
 Clear any hit level override, and let hit-testing fall back on the normal hit level for subobject selection. More...
 
virtual DWORD GetHitLevelOverride ()
 Returns the current hit level override, or 0 if there is none. More...
 
virtual DWORD CurrentHitLevel (int *selByVert=NULL)
 Indicates the current hit level. More...
 
virtual void SetHitTestResult (bool ignoreNew=false)
 Normally, all hit-testing on Edit Poly meshes is done on the mesh before the "current operation". More...
 
virtual void ClearHitTestResult ()
 Clears any HitTestResult settings, and falls back on hit-testing before the current operation. More...
 
virtual void SetDisplayLevelOverride (DWORD dlo)
 Sets the display level override, to force display of a particular type of subobject regardless of the current subobject level. More...
 
virtual void ClearDisplayLevelOverride ()
 Clear any display level override, and let hit-testing fall back on the normal display for the current selection level. More...
 
virtual DWORD GetDisplayLevelOverride ()
 Returns any current DisplayLevelOverride. More...
 
virtual void ForceIgnoreBackfacing (bool force)
 This method is used to temporarily force the Edit Poly to ignore backfacing subobjects when hit-testing. More...
 
virtual bool GetForceIgnoreBackfacing ()
 Indicates whether or not the Edit Poly is currently set to force ignoring backfacing subobjects. More...
 
virtual void EpModMoveSelection (Point3 &val, Matrix3 &partm, Matrix3 &tmAxis, BOOL localOrigin, TimeValue t)
 Move the current subobject selection. More...
 
virtual void EpModRotateSelection (Quat &val, Matrix3 &partm, Matrix3 &tmAxis, BOOL localOrigin, TimeValue t)
 Rotate the current subobject selection. More...
 
virtual void EpModScaleSelection (Point3 &val, Matrix3 &partm, Matrix3 &tmAxis, BOOL localOrigin, TimeValue t)
 Scale the current subobject selection. More...
 
virtual void EpModMoveSlicePlane (Point3 &val, Matrix3 &partm, Matrix3 &tmAxis, TimeValue t)
 Move the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations. More...
 
virtual void EpModRotateSlicePlane (Quat &val, Matrix3 &partm, Matrix3 &tmAxis, BOOL localOrigin, TimeValue t)
 Rotate the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations. More...
 
virtual void EpModScaleSlicePlane (Point3 &val, Matrix3 &partm, Matrix3 &tmAxis, BOOL localOrigin, TimeValue t)
 Scale the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations. More...
 
virtual void EpResetSlicePlane ()
 Resets the slice plane used in the slice operations so that it lies in the XY plane in object space. More...
 
virtual Matrix3 EpGetSlicePlaneTM (TimeValue t)
 Returns the current transform of the slice plane. More...
 
virtual void EpGetSlicePlane (Point3 &planeNormal, Point3 &planeCenter, TimeValue t)
 Retrieves the current slice plane, by its normal and center. More...
 
virtual void EpSetSlicePlane (Point3 &planeNormal, Point3 &planeCenter, TimeValue t)
 Sets the slice plane to use the normal and center given. More...
 
virtual bool EpInSliceMode ()
 Indicates if we're currently in the "Slice Plane" mode, which is not a command mode, but rather a different way of handling the regular (move, rotate, scale) command modes. More...
 
virtual bool EpInSlice ()
 Indicates if we're currently in a Slice operation (ep_op_slice or ep_op_slice_face). More...
 
virtual ModifierGetModifier ()=0
 Returns the Edit Poly cast as a modifier. More...
 
virtual IObjParamEpModGetIP ()
 Returns NULL if the Edit Poly is not currently up in the modifier panel, or the IObjParam interface pointer otherwise. More...
 
virtual HWND GetDlgHandle (int paramPanelID)
 Returns the handle of the dialog specified. More...
 
virtual void UpdateAlignParameters (TimeValue t)
 Updates the Align normal and offset parameters based on the current viewport and on the ep_align_type parameter. More...
 
virtual void UpdateCache (TimeValue t)
 Makes sure that all the LocalModData used by the Edit Poly modifiers has an up to date cache. More...
 
virtual bool EpModShowOperationDialog ()
 Show the popup dialog associated with the current operation. More...
 
virtual bool EpModShowingOperationDialog ()
 Indicates whether or not there is currently a popup dialog being displayed with parameters for the current operation. More...
 
virtual void EpModCloseOperationDialog ()
 Close the popup dialog which shows the current operation's parameters, if it's currently being displayed. More...
 
virtual void EpModRepeatLast ()
 Repeat the last operation. More...
 
virtual INodeEpModGetPrimaryNode ()
 Get the current "Primary" node, which is used by default when node-specific commands are given and the node given is NULL. More...
 
virtual void EpModSetPrimaryNode (INode *node)
 Set the current "Primary" node, which is used by default when node-specific commands are given and the node given is NULL. More...
 
virtual Matrix3 EpModGetNodeTM (TimeValue t, INode *node=NULL)
 Retrieve the transform of the Edit Poly's node. More...
 
Matrix3 EpModGetNodeTM_FPS (INode *node=NULL, TimeValue t=0)
 
virtual int EpModCreateVertex (Point3 p, INode *pNode=NULL)
 Create a new vertex in the mesh. More...
 
virtual int EpModCreateFace (Tab< int > *vertex, INode *pNode=NULL)
 Create a new face in the mesh. More...
 
virtual int EpModCreateEdge (int v1, int v2, INode *pNode=NULL)
 Create a new edge in the mesh. More...
 
virtual void EpModSetDiagonal (int v1, int v2, INode *pNode=NULL)
 Change the triangulation of a polygon such that there will be a diagonal between the two vertices given. More...
 
virtual void EpModCut (int startLevel, int startIndex, Point3 startPoint, Point3 normal, INode *pNode=NULL)
 Set up a Cut operation, starting at a specific subobject and at a specific point. More...
 
virtual void EpModSetCutEnd (Point3 endPoint, INode *pNode=NULL)
 Set the end point of a cut. More...
 
virtual int EpModGetLastCutEnd ()
 If the last Cut we made finished successfully, this method will return the index of the vertex at the end of the cut. More...
 
virtual void EpModClearLastCutEnd ()
 Resets the "last cut end" data to -1. More...
 
virtual void EpModCutCancel (INode *pNode=NULL)
 Please ignore - this method was never implemented, it does nothing. More...
 
virtual void EpModDivideEdge (int edge, float prop, INode *pNode=NULL)
 Divides edge, inserting a vertex partway along its length. More...
 
virtual void EpModDivideFace (int face, Tab< float > *bary, INode *pNode=NULL)
 Divides the face, inserting a vertex in it and splitting the face up into triangles connecting the new vertex with all the face's original edges. More...
 
virtual void EpModWeldVerts (int v1, int v2, INode *pNode=NULL)
 Weld two vertices. More...
 
virtual void EpModWeldEdges (int e1, int e2, INode *pNode=NULL)
 Weld two edges (by welding the vertex endpoints). More...
 
virtual void EpModAttach (INode *node, INode *pNode=NULL, TimeValue t=0)
 Attach another mesh to this one. More...
 
virtual void EpModMultiAttach (Tab< INode * > &nodeTab, INode *pNode=NULL, TimeValue t=0)
 Attach a bunch of other meshes to this one. More...
 
virtual void EpModDetachToObject (MSTR &newObjectName, TimeValue t)
 Detaches the current selection to a new Editable Poly object. More...
 
virtual void EpModCreateShape (MSTR &shapeObjectName, TimeValue t)
 Creates a shape object based on the current set of selected edges. More...
 
virtual void EpModSetHingeEdge (int edge, Matrix3 modContextTM, INode *pNode=NULL)
 Sets the Hinge from Edge operation to use the hinge edge given. More...
 
virtual int EpModGetHingeEdge (INode *pNode)
 Retrieves the current Hinge Edge, or -1 if no hinge edge is set (or if it's set on a different node). More...
 
virtual void EpModBridgeBorders (int edge1, int edge2, INode *pNode=NULL)
 Create a Bridge between two border loops. More...
 
virtual void EpModBridgePolygons (int face1, int face2, INode *pNode=NULL)
 
virtual void EpModSetBridgeNode (INode *pNode)
 
virtual INodeEpModGetBridgeNode ()
 
virtual bool EpModReadyToBridgeSelected ()
 
virtual void EpModTurnDiagonal (int faceIndex, int diagonal, INode *pNode=NULL)
 
virtual void EpModListOperations (INode *pNode=NULL)
 Lists the entire history of applied operations to the Maxscript listener window. More...
 
virtual MNMeshEpModGetMesh (INode *pNode=NULL)
 Get a pointer to the Edit Poly's cached mesh. More...
 
virtual MNMeshEpModGetOutputMesh (INode *pNode=NULL)
 Get a pointer to the Edit Poly's cached output mesh. More...
 
virtual int EpMeshGetNumVertices (INode *pNode=NULL)
 Returns the number of vertices in the mesh. More...
 
virtual Point3 EpMeshGetVertex (int vertIndex, INode *pNode=NULL)
 Returns the position (in object space) of a particular vertex in the mesh. More...
 
virtual int EpMeshGetVertexFaceCount (int vertIndex, INode *pNode=NULL)
 Returns the number of faces using a particular vertex. More...
 
virtual int EpMeshGetVertexFace (int vertIndex, int whichFace, INode *pNode=NULL)
 Returns a face that uses the vertex given. More...
 
virtual int EpMeshGetVertexEdgeCount (int vertIndex, INode *pNode=NULL)
 Returns the number of edges using a particualr vertex. More...
 
virtual int EpMeshGetVertexEdge (int vertIndex, int whichEdge, INode *pNode=NULL)
 Returns one of the edges using the vertex given. More...
 
virtual int EpMeshGetNumEdges (INode *pNode=NULL)
 Returns the number of edges in the mesh. More...
 
virtual int EpMeshGetEdgeVertex (int edgeIndex, int end, INode *pNode=NULL)
 Returns the vertex at one end of the edge given. More...
 
virtual int EpMeshGetEdgeFace (int edgeIndex, int side, INode *pNode=NULL)
 Returns the face on one side of the edge given. More...
 
virtual int EpMeshGetNumFaces (INode *pNode=NULL)
 Returns the number of faces in the mesh. More...
 
virtual int EpMeshGetFaceDegree (int faceIndex, INode *pNode=NULL)
 Returns the degree of the indicated face. More...
 
virtual int EpMeshGetFaceVertex (int faceIndex, int corner, INode *pNode=NULL)
 Returns the vertex in a particular corner of a particular face. More...
 
virtual int EpMeshGetFaceEdge (int faceIndex, int side, INode *pNode=NULL)
 Returns the edge on a particular side of a particular face. More...
 
virtual int EpMeshGetFaceDiagonal (int faceIndex, int diagonal, int end, INode *pNode=NULL)
 Returns the index of the corner used at an end of a face diagonal. More...
 
virtual int EpMeshGetFaceMaterial (int faceIndex, INode *pNode=NULL)
 Returns the material ID used by a particular face. More...
 
virtual DWORD EpMeshGetFaceSmoothingGroup (int faceIndex, INode *pNode=NULL)
 Returns the smoothing groups used by a particular face. More...
 
virtual int EpMeshGetNumMapChannels (INode *pNode=NULL)
 Returns the number of positive map channels in the mesh. More...
 
virtual bool EpMeshGetMapChannelActive (int mapChannel, INode *pNode=NULL)
 Indicates if the specified map channel is "active", that is, if it contains a set of map coordinates and map faces. More...
 
virtual int EpMeshGetNumMapVertices (int mapChannel, INode *pNode=NULL)
 Returns the number of map vertices in the specified map. More...
 
virtual UVVert EpMeshGetMapVertex (int mapChannel, int vertIndex, INode *pNode=NULL)
 Returns the UVVert map vertex position for a given map channel and map vertex index. More...
 
virtual int EpMeshGetMapFaceVertex (int mapChannel, int faceIndex, int corner, INode *pNode=NULL)
 Returns the index of the map vertex used in a particular corner of a particular map face (in a particular map). More...
 
virtual void EpModBridgeEdges (const int in_edge1, const int in_edge2, INode *in_pNode=NULL)
 Bridges individual edges, will use current parameters. More...
 
virtual void EpModUpdateRingEdgeSelection (int in_val, INode *in_pNode=NULL)
 Changea the edge selection in the ring direction. More...
 
virtual void EpModUpdateLoopEdgeSelection (int in_val, INode *in_pNode=NULL)
 Changes the edge selection in the loop direction. More...
 
virtual void EpModSetRingShift (int in_newPos, bool in_moveOnly, bool in_add)
 Changes the edge selection , in the ring direction. More...
 
virtual void EpModSetLoopShift (int in_newPos, bool in_moveOnly, bool in_add)
 Changes the edge selection , in the loop direction. More...
 
virtual int EpModConvertSelectionToBorder (int in_epSelLevelFrom, int in_epSelLevelTo)
 Converts current sub-object selection to the specified sub-object border. More...
 
virtual void EpModPaintDeformCommit ()
 Commits any Paint Deformation as if pressing the Commit button. More...
 
virtual void EpModPaintDeformCancel ()
 Reverts any Paint Deformation as if pressing the Revert button. More...
 
virtual Point3 EPMeshGetFaceNormal (const int in_faceIndex, INode *in_pNode=NULL)
 Returns the normal of the face specified. More...
 
virtual Point3 EPMeshGetFaceCenter (const int in_faceIndex, INode *in_pNode=NULL)
 Returns the center of the face specified. More...
 
virtual float EPMeshGetFaceArea (const int in_faceIndex, INode *in_pNode=NULL)
 Returns the area of the face specified. More...
 
virtual BitArrayEPMeshGetOpenEdges (INode *in_pNode=NULL)
 Returns a list of edges that are adjacent to at least one empty face. More...
 
virtual void EPMeshSetVert (const BitArray &in_vset, const Point3 &in_point, INode *in_pNode=NULL)
 Moves the specified vertices to the specified point. More...
 
virtual void SmGrpFloater ()=0
 Brings up the Smooting Group floater dialog. If it is already up it closes it. More...
 
virtual void MatIDFloater ()=0
 Brings up the Material ID floater dialog. If it is already up it closes it. More...
 
virtual BOOL MatIDFloaterVisible ()=0
 Returns whether the Material ID floater dialog is up. More...
 
virtual BOOL SmGrpFloaterVisible ()=0
 Returns whether the Smooting Group floater dialog is up. More...
 
virtual void CloseSmGrpFloater ()
 Closes the Smoothing Group Floater Dialog. More...
 
virtual void CloseMatIDFloater ()
 
virtual HWND MatIDFloaterHWND ()
 Returns the Material ID Floater Dialog Handle. More...
 
virtual HWND SmGrpFloaterHWND ()
 Returns the SmGrp Floater Dialog Handle. More...
 
virtual void ListDeltaOps ()=0
 Prints the delta operations to script window. More...
 
virtual int EpModGetLast ()
 Returns the last operation used or -1 if none. More...
 
GetByFlag

These methods retrieve the parts of the object that match the specified flags and mask passed in

virtual bool EPMeshGetVertsByFlag (BitArray &out_vset, const DWORD in_flags, const DWORD in_fmask=0x0, INode *in_pNode=NULL)
 Retrieves the vertices specified the flag and mask, and updates the bitarray passed in. More...
 
virtual bool EPMeshGetEdgesByFlag (BitArray &out_eset, const DWORD in_flags, const DWORD in_fmask=0x0, INode *in_pNode=NULL)
 Retrieves the edges specified the flag and mask, and updates the bitarray passed in. More...
 
virtual bool EPMeshGetFacesByFlag (BitArray &out_fset, const DWORD in_flags, const DWORD in_fmask=0x0, INode *in_pNode=NULL)
 Retrieves the faces specified the flag and mask, and updates the bitarray passed in. More...
 
SetFlags

These methods set the flags on the specified subobjects to match the flags and mask passed in

virtual void EPMeshSetVertexFlags (BitArray &in_vset, const DWORD in_flags, DWORD in_fmask=0x0, const bool in_undoable=true, INode *in_pNode=NULL)
 Sets the specified vertices flags to the specified value. More...
 
virtual void EPMeshSetEdgeFlags (BitArray &in_eset, const DWORD in_flags, DWORD in_fmask=0x0, const bool in_undoable=true, INode *in_pNode=NULL)
 Sets the specified vertices flags to the specified value. More...
 
virtual void EPMeshSetFaceFlags (BitArray &in_fset, const DWORD in_flags, DWORD in_fmask=0x0, const bool in_undoable=true, INode *in_pNode=NULL)
 Sets the specified faces flags to the specified value. More...
 
GetFlags

These methods get the flags on the specified subobjects

virtual int EPMeshGetVertexFlags (const int in_vertexIndex, INode *in_pNode=NULL)
 Retrieves the flags from the specified vertex. More...
 
virtual int EPMeshGetEdgeFlags (const int in_edgeIndex, INode *in_pNode=NULL)
 Retrieves the flags from the specified edge. More...
 
virtual int EPMeshGetFaceFlags (const int in_faceIndex, INode *in_pNode=NULL)
 Retrieves the flags from the specified face. More...
 
GetUsing

These methods retrieve all subobjects of the specified type that are connected to the second list of subobjects passed in \

virtual void EPMeshGetVertsUsingEdge (BitArray &out_vset, const BitArray &in_eset, INode *in_pNode=NULL)
 Retrieves list of verts that are used by the edges specified. More...
 
virtual void EPMeshGetEdgesUsingVert (BitArray &out_eset, BitArray &in_vset, INode *in_pNode=NULL)
 Retrieves list of edges that are used by the vertices specified. More...
 
virtual void EPMeshGetFacesUsingEdge (BitArray &out_fset, BitArray &in_eset, INode *in_pNode=NULL)
 Retrieves list of faces that are used by the edges specified. More...
 
virtual void EPMeshGetElementsUsingFace (BitArray &out_eset, BitArray &in_fset, BitArray &in_fenceSet, INode *in_pNode=NULL)
 Retrieves list of elements that are used by the faces specified. More...
 
virtual void EPMeshGetFacesUsingVert (BitArray &out_fset, BitArray &in_vset, INode *in_pNode=NULL)
 Retrieves list of faces that are used by the vertices specified. More...
 
virtual void EPMeshGetVertsUsingFace (BitArray &out_vset, BitArray &in_fset, INode *in_pNode=NULL)
 Retrieves list of verts that are used by the faces specified. More...
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID id)
 
virtual Interface_ID GetID ()
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Member Function Documentation

VFN_1 ( epmod_button_op  ,
EpModButtonOp  ,
TYPE_ENUM   
)
VFN_0 ( epmod_repeat_last  ,
EpModRepeatLast   
)
VFNT_0 ( epmod_commit  ,
EpModCommit   
)
VFN_0 ( epmod_cancel_operation  ,
EpModCancel   
)
VFN_5 ( epmod_cut  ,
EpModCut  ,
TYPE_ENUM  ,
TYPE_INDEX  ,
TYPE_POINT3  ,
TYPE_POINT3  ,
TYPE_INODE   
)
VFNT_2 ( epmod_attach_node  ,
EpModAttach  ,
TYPE_INODE  ,
TYPE_INODE   
)
FN_0 ( epmod_in_slice  ,
TYPE_bool  ,
EpInSlice   
)
VFN_1 ( epmod_cut_cancel  ,
EpModCutCancel  ,
TYPE_INODE   
)
VFN_0 ( epmod_smgrp_floater  ,
SmGrpFloater   
)
VFN_0 ( epmod_matid_floater  ,
MatIDFloater   
)
VFN_0 ( epmod_list_delta_ops  ,
ListDeltaOps   
)
FN_0 ( epmod_get_last  ,
TYPE_INT  ,
EpModGetLast   
)
FPInterfaceDesc* GetDesc ( )
virtual

For system use only - retrieves the function publishing interface description.

Implements FPInterface.

virtual int GetEPolySelLevel ( )
pure virtual

Returns the Edit Poly selection level - one of the ePolyModSelLevel enum defined above, such as EPM_SL_VERTEX.

virtual int GetMNSelLevel ( )
pure virtual

Returns the MNMesh selection level - one of MNM_SL_OBJECT, MNM_SL_VERTEX, MNM_SL_EDGE, or MNM_SL_FACE.

virtual void SetEPolySelLevel ( int  sl)
pure virtual

Sets the Edit Poly selection level.

Parameters
slOne of the ePolyModSelLevel enum defined above - such as EPM_SL_VERTEX
virtual int EpModConvertSelection ( int  epSelLevelFrom,
int  epSelLevelTo,
bool  requireAll 
)
inlinevirtual

Converts selection between two Edit Poly selection levels, by selecting adjacent subobjects, such as edges using selected vertices, or vertices used by selected faces, etc.

Parameters
epSelLevelFromThe selection level to convert from.
epSelLevelToThe selection level to convert to - subobjects in this selection level will have their selection set or cleared based on this algorithm.
requireAllIndicates if subobjects in the "to" level should be selected if any subobjects in the "from" level are selected (false) or if all subobjects in the "from" level are selected (true).
Returns
The number of subobjects this method selected in the "To" level.


Example: This could be used to convert the current vertex selection to a selection of all border loops containing only selected vertices by calling EpModConvertSelection (EPM_SL_VERTEX, EPM_SL_BORDER, true);

553 { return 0; }
virtual int GetPolyOperationID ( )
inlinevirtual

Returns the "current" Edit Poly operation.

If there is no current operation ep_op_null is returned. (Values are from the epolyModButtonOp enum above.)

559 { return ep_op_null; }
Definition: iEPolyMod.h:231
virtual IParamBlock2* getParamBlock ( )
inlinevirtual

Returns the parameter block for the Edit Poly modifier.

(Clients can use this to control the individual parameters of the modifier. Parameters are listed above in the epolyModParameters enum.)

565 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual MapBitArray GetPreserveMapSettings ( ) const
inlinevirtual

Returns the Preserve settings for all map channels.

(Does not reflect the epm_preserve_maps parameter, however.)

570 { return MapBitArray(true, false); }
This class can be used to store a bit per map channel, including both negative and positive map chann...
Definition: mesh.h:580
virtual void SetPreserveMapSettings ( const MapBitArray mapSettings)
inlinevirtual

Sets the Preserve settings for all map channels.

(Does not affect the epm_preserve_maps parameter, however.)

575 { }
virtual void EpModSetPreserveMap ( int  mapChannel,
bool  preserve 
)
inlinevirtual

Sets whether a particular map channel will be "preserved" in geometric operations.

(Note: This does not affect the epm_preserve_maps parameter, it just changes the setting for this particular map channel.)

582 { }
virtual bool EpModGetPreserveMap ( int  mapChannel)
inlinevirtual

Indicates whether a particular map channel is set to be "preserved" in geometric operations.

(Note: This does not indicate whether the epm_preserve_maps parameter is set to true, it only indicates the setting for this particular map channel.)

589 { return (mapChannel>0); }
virtual void InvalidateDistanceCache ( )
inlinevirtual

Invalidates the computed distances from selected vertices that are used to generate soft selections.

594 { }
virtual void InvalidateSoftSelectionCache ( )
inlinevirtual

Invalidates the computed soft selections (but not the distances from selected vertices that the soft selections are based on).

600 { }
virtual void EpModSetOperation ( int  opcode)
inlinevirtual

Sets the current operation.

Parameters
opcodeIndicates the desired operation, from the epolyModButtonOp enum above
606 { }
virtual void EpModPopupDialog ( int  opcode)
inlinevirtual

Sets the operation to the one given, and then pops up the operation dialog, if one exists.

virtual void EpModSetOperation(int opcode)
Sets the current operation.
Definition: iEPolyMod.h:606
virtual bool EpModShowOperationDialog()
Show the popup dialog associated with the current operation.
Definition: iEPolyMod.h:959
virtual void EpModButtonOp ( int  opcode)
inlinevirtual

Applies the operation given, and commits to it immediately.

616 { }
virtual void EpModLocalDataChanged ( ChannelMask  channels)
inlinevirtual

Indicates to the EditPolyMod that some channels of its mesh have changed.

Forces an update of UI elements based on the mesh, such as the Number Selected display and the Smoothing Group buttons, and also notifies the Edit Poly's dependents of the change.

623 { }
virtual void EpModRefreshScreen ( )
inlinevirtual

Triggers a redraw of the viewports at the current time.

628 { }
virtual void EpModCommitUnlessAnimating ( TimeValue  t)
inlinevirtual

Commits to the current operation unless we're set to "animation mode" (epm_animation_mode parameter is true) and the current operation supports animation.

634 { }
virtual void EpModCommit ( TimeValue  t)
inlinevirtual

Commits to the current operation, and clears any animation.

639 { }
virtual void EpModCommitAndRepeat ( TimeValue  t)
inlinevirtual

Commits to the current operation, but maintains it as the current operation with the same settings (and any animation in those parameters).

645 { }
virtual void EpModCancel ( )
inlinevirtual

Cancels the current operation.

650 { }
virtual void EpModToggleCommandMode ( int  mode)
inlinevirtual

Toggles a given command mode - if it's not currently in this mode it will enter it, otherwise it will exit it.

Parameters
modeThe command mode, from the epolyModCommandMode enum above.
657 { }
virtual void EpModEnterCommandMode ( int  mode)
inlinevirtual

Exits any previous Edit Poly command modes, and enters the command mode given.

Parameters
modeThe command mode, from the epolyModCommandMode enum above.
663 { }
virtual void EpModEnterPickMode ( int  mode)
inlinevirtual

Enters the pick mode given.

Parameters
modeThe pick mode, from the epolyModPickMode enum above.
669 { }
virtual int EpModGetCommandMode ( )
inlinevirtual

Retrieves the current Edit Poly command mode in use, if any.

Returns
The current command mode from the epolyModCommandMode above, or -1 if the current command mode is not any of the Edit Poly command modes.
676 { return -1; }
virtual int EpModGetPickMode ( )
inlinevirtual

Retrieves the current Edit Poly pick mode in use, if any.

Returns
The current pick mode (from the epolyModPickMode above), or -1 if the current pick mode is not any of the Edit Poly pick modes.
683 { return -1; }
virtual BitArray* EpModGetSelection ( int  meshSelLevel,
INode pNode = NULL 
)
inlinevirtual

Returns a BitArray containing the subobject selection in the desired selection level.

Parameters
meshSelLevelThe MNMesh selection level, such as MNM_SL_VERTEX for vertex or MNM_SL_CURRENT for "the current level".
pNodeIf this Edit Poly modifier is instanced across multiple nodes, this parameter specifies which node we're inquiring about.
Returns
A pointer to an internal BitArray containing the selection. This BitArray should not be altered! It is available for read only.
692 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual bool EpModSetSelection ( int  meshSelLevel,
BitArray selection,
INode pNode = NULL 
)
inlinevirtual

Sets the subobject selection explicitly.

Parameters
meshSelLevelThe MNMesh selection level, such as MNM_SL_VERTEX for vertex or MNM_SL_CURRENT for "the current level".
selectionA BitArray containing the desired selection.
pNodeIf this Edit Poly modifier is instanced across multiple nodes, this parameter specifies which node we want to set selection in.
701 { return false; }
virtual bool EpModSelect ( int  meshSelLevel,
BitArray selection,
bool  invert = false,
bool  select = true,
INode pNode = NULL 
)
inlinevirtual

Change the selection state of a subset of subobjects - select them, invert their selection, or deselect them.

Parameters
meshSelLevelThe MNMesh selection level, such as MNM_SL_VERTEX for vertex or MNM_SL_CURRENT for "the current level".
selectionA BitArray indicating which subobjects we want to change the selection state of.
invertIf true, the selection state of the subobjects should be inverted. Otherwise, it should be set or cleared depending on "select"
selectIf true, the subobjects indicated should be selected; if false, the subobjects indicated should be deselected. Ignored if "invert" is true.
pNodeIf this Edit Poly modifier is instanced across multiple nodes, this parameter specifies which node we want to set selection in.
712 { return false; }
virtual void SetHitLevelOverride ( DWORD  hlo)
inlinevirtual

Force any hit-testing on the Edit Poly modifier to use the hit level given, instead of the default hit level associated with the current subobject level.

Parameters
hloThe Hit Level - one of SUBHIT_MNVERTS, SUBHIT_MNEDGES, SUBHIT_MNFACES, or SUBHIT_MNDIAGONALS, along with SUBHIT_OPENONLY if you want to restrict hit-testing to "open" vertices or edges (ie those on borders)


Example: Edit Poly's Hinge from Edge interactive command mode uses this to hit-test on faces even though the user is in Polygon subobject level. The Cut mode uses it to hit-test on all three subobject levels, one at a time.

725 { }
virtual void ClearHitLevelOverride ( )
inlinevirtual

Clear any hit level override, and let hit-testing fall back on the normal hit level for subobject selection.

731 { }
virtual DWORD GetHitLevelOverride ( )
inlinevirtual

Returns the current hit level override, or 0 if there is none.

Returns
The Hit Level - one of SUBHIT_MNVERTS, SUBHIT_MNEDGES, SUBHIT_MNFACES, or SUBHIT_MNDIAGONALS, along with SUBHIT_OPENONLY if hit-testing is restricted to "open" vertices or edges (ie those on borders)
739 { return 0x0; }
virtual DWORD CurrentHitLevel ( int selByVert = NULL)
inlinevirtual

Indicates the current hit level.

If there's a HitLevelOverride in place, that's returned; otherwise this method returns the regular hit level, which is typically the hit level for the current selection level. If "Select by vertex" is turned on, SUBHIT_MNVERTS will be returned.

Parameters
selByVertIf you specifically want to know whether "Select by vertex" is being used currently, pass a pointer to an int here. The int pointed to will be set to true if select by vertex is on, or false if not.
Returns
The Hit Level - one of SUBHIT_MNVERTS, SUBHIT_MNEDGES, SUBHIT_MNFACES, or SUBHIT_MNDIAGONALS, along with SUBHIT_OPENONLY if hit-testing is restricted to "open" vertices or edges (ie those on borders)
753 { return 0x0; }
virtual void SetHitTestResult ( bool  ignoreNew = false)
inlinevirtual

Normally, all hit-testing on Edit Poly meshes is done on the mesh before the "current operation".

(This makes it possible to change selections underneath a Bevel or Extrude or Vertex Weld.) If you want to hit-test on the result of the current operation, you need to call this method.

Parameters
ignoreNewControls whether subobjects that are newly created by the current operation can be hit-tested. For instance, if the current operation is an Extrude, this controls whether or not the sides of the extrusion can generate hits.
Remarks
This is typically used in Edit Poly command modes, such as Chamfer or Extrude, after the user has entered the mode, but while the last operation might still be the "current" one, so that we can hit-test as though the current operation had already been committed. It's also used in command modes like Create Face so that we can hit-test on the freshly created vertices.
768 { }
virtual void ClearHitTestResult ( )
inlinevirtual

Clears any HitTestResult settings, and falls back on hit-testing before the current operation.

(See SetHitTestResult for more details.)

774 { }
virtual void SetDisplayLevelOverride ( DWORD  dlo)
inlinevirtual

Sets the display level override, to force display of a particular type of subobject regardless of the current subobject level.

Parameters
dloThe set of display flags to show. These are MNDISP flags, such as MNDISP_VERTTICKS, that are defined in MNMesh.h.


Example: Edit Poly's Create Face command mode uses this to show vertex ticks so that the user can see what they're clicking on.

785 { }
virtual void ClearDisplayLevelOverride ( )
inlinevirtual

Clear any display level override, and let hit-testing fall back on the normal display for the current selection level.

791 { }
virtual DWORD GetDisplayLevelOverride ( )
inlinevirtual

Returns any current DisplayLevelOverride.

See SetDisplayLevelOverride for more details.

Returns
The set of display flags to show, or 0 for no override currently set. These are MNDISP flags, such as MNDISP_VERTTICKS, that are defined in MNMesh.h.
798 { return 0x0; }
virtual void ForceIgnoreBackfacing ( bool  force)
inlinevirtual

This method is used to temporarily force the Edit Poly to ignore backfacing subobjects when hit-testing.

Parameters
forceTrue to force ignoring backfacing, false to fall back on normal hit-testing.
805 { }
virtual bool GetForceIgnoreBackfacing ( )
inlinevirtual

Indicates whether or not the Edit Poly is currently set to force ignoring backfacing subobjects.

See ForceIgnoreBackfacing for details.

811 { return false; }
virtual void EpModMoveSelection ( Point3 val,
Matrix3 partm,
Matrix3 tmAxis,
BOOL  localOrigin,
TimeValue  t 
)
inlinevirtual

Move the current subobject selection.

This method uses the current selection and soft selection, and respects the settings for Constraints and for Preserving texture maps.

Parameters
valThe Point3 representing the move.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
localOriginThis parameter is ignored
tThe time at which to move the points. This time is used to generate vertex animation keys, if appropriate, as well as to obtain the current soft selection parameters.
823 { }
virtual void EpModRotateSelection ( Quat val,
Matrix3 partm,
Matrix3 tmAxis,
BOOL  localOrigin,
TimeValue  t 
)
inlinevirtual

Rotate the current subobject selection.

This method uses the current selection and soft selection, and respects the settings for Constraints and for Preserving texture maps.

Parameters
valThe Quaternion representing the rotation.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
localOriginThis parameter is ignored
tThe time at which to rotate the points. This time is used to generate vertex animation keys, if appropriate, as well as to obtain the current soft selection parameters.
835 { }
virtual void EpModScaleSelection ( Point3 val,
Matrix3 partm,
Matrix3 tmAxis,
BOOL  localOrigin,
TimeValue  t 
)
inlinevirtual

Scale the current subobject selection.

This method uses the current selection and soft selection, and respects the settings for Constraints and for Preserving texture maps.

Parameters
valA Point3 representing the scale in each dimension.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
localOriginThis parameter is ignored
tThe time at which to scale the points. This time is used to generate vertex animation keys, if appropriate, as well as to obtain the current soft selection parameters.
847 { }
virtual void EpModMoveSlicePlane ( Point3 val,
Matrix3 partm,
Matrix3 tmAxis,
TimeValue  t 
)
inlinevirtual

Move the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations.

Parameters
valThe Point3 representing the move.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
tThe time at which to move the plane. This time is used to generate animation keys, if appropriate.
856 { }
virtual void EpModRotateSlicePlane ( Quat val,
Matrix3 partm,
Matrix3 tmAxis,
BOOL  localOrigin,
TimeValue  t 
)
inlinevirtual

Rotate the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations.

Parameters
valThe Quaternion representing the rotation.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
localOriginWhen TRUE the transformation is occurring about the sub-object's local origin; otherwise, the rotation occurs in object space.
tThe time at which to move the plane. This time is used to generate animation keys, if appropriate.
866 { }
virtual void EpModScaleSlicePlane ( Point3 val,
Matrix3 partm,
Matrix3 tmAxis,
BOOL  localOrigin,
TimeValue  t 
)
inlinevirtual

Scale the Slice Plane that's used in the ep_op_slice and ep_op_slice_face operations.

Note that scaling the slice plane with localOrigin == true has no effect on the actual slice effect; it only affects the way the slice plane is displayed.

Parameters
valThe Point3 representing the scale in each dimension.
partmThe 'parent' transformation matrix.
tmAxisThe matrix that represents the axis system. This is the space in which the transformation is taking place.
localOriginWhen TRUE the transformation is occurring about the sub-object's local origin; otherwise, the scale occurs in object space.
tThe time at which to move the plane. This time is used to generate animation keys, if appropriate.
877 { }
virtual void EpResetSlicePlane ( )
inlinevirtual

Resets the slice plane used in the slice operations so that it lies in the XY plane in object space.

882 { }
virtual Matrix3 EpGetSlicePlaneTM ( TimeValue  t)
inlinevirtual

Returns the current transform of the slice plane.

887 { return Matrix3(true); }
Definition: matrix3.h:81
virtual void EpGetSlicePlane ( Point3 planeNormal,
Point3 planeCenter,
TimeValue  t 
)
inlinevirtual

Retrieves the current slice plane, by its normal and center.

892 { }
virtual void EpSetSlicePlane ( Point3 planeNormal,
Point3 planeCenter,
TimeValue  t 
)
inlinevirtual

Sets the slice plane to use the normal and center given.

897 { }
virtual bool EpInSliceMode ( )
inlinevirtual

Indicates if we're currently in the "Slice Plane" mode, which is not a command mode, but rather a different way of handling the regular (move, rotate, scale) command modes.

903 { return false; }
virtual bool EpInSlice ( )
inlinevirtual

Indicates if we're currently in a Slice operation (ep_op_slice or ep_op_slice_face).

908 { return false; }
virtual Modifier* GetModifier ( )
pure virtual

Returns the Edit Poly cast as a modifier.

virtual IObjParam* EpModGetIP ( )
inlinevirtual

Returns NULL if the Edit Poly is not currently up in the modifier panel, or the IObjParam interface pointer otherwise.

918 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual HWND GetDlgHandle ( int  paramPanelID)
inlinevirtual

Returns the handle of the dialog specified.

Parameters
paramPanelIDThis is an int representing the ID of the dialog. This enum should be moved to this header, but currently it resides in maxsdk/samples/mesh/EditPoly/EditPoly.h. Here are the IDs: 0 - ep_animate - The dialog displaying the current operation, and controlling whether we're in model or animate mode 1 - ep_select - The subobject selection dialog 2 - ep_softsel - The soft selection dialog 3 - ep_geom - The dialog with general Edit Geometry operations, such as Create, Collapse, and Attach. 4 - ep_subobj - The subobject level specific Edit dialog, such as "Edit Vertex" or "Edit Borders", 5 - ep_surface - The face-level dialog for editing surface material surface features 6 - ep_settings - The popup dialog with settings for the current operation 7 - ep_paintdeform - the Paint Deformation dialog. 8 - ep_face_smooth - The face-level dialog for editing smoothing groups. If the dialog you're requesting is not currently displayed, NULL will be returned.


Example: The Edit Poly command modes use this method to access the buttons for their command mode, to set them to checked when entering the command mode and unchecked when leaving.

939 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual void UpdateAlignParameters ( TimeValue  t)
inlinevirtual

Updates the Align normal and offset parameters based on the current viewport and on the ep_align_type parameter.

If there's no viewport available, method does nothing.

946 { }
virtual void UpdateCache ( TimeValue  t)
inlinevirtual

Makes sure that all the LocalModData used by the Edit Poly modifiers has an up to date cache.

This should be called before trying to obtain information about the mesh.

952 { }
virtual bool EpModShowOperationDialog ( )
inlinevirtual

Show the popup dialog associated with the current operation.

Does nothing if there is no current operation, or if the current operation has no associated popup dialog.

Returns
True if we succeeded in displaying a popup dialog, false if we couldn't find one to display.
959 { return false; }
virtual bool EpModShowingOperationDialog ( )
inlinevirtual

Indicates whether or not there is currently a popup dialog being displayed with parameters for the current operation.

965 { return false; }
virtual void EpModCloseOperationDialog ( )
inlinevirtual

Close the popup dialog which shows the current operation's parameters, if it's currently being displayed.

970 { }
virtual void EpModRepeatLast ( )
inlinevirtual

Repeat the last operation.

If there is a "current" operation, it will be committed and repeated, without changing any parameters or removing any animations. If there is not, the last recorded operation, if any, will be applied and committed. (In Max 7.0, unfortunately, the identity of this last operation is not exposed in the SDK. You can examine it in the Edit Poly source, maxsdk/samples/mesh/EditPoly, the EditPolyMod::mLastOperation data member.

979 { }
virtual INode* EpModGetPrimaryNode ( )
inlinevirtual

Get the current "Primary" node, which is used by default when node-specific commands are given and the node given is NULL.

985 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual void EpModSetPrimaryNode ( INode node)
inlinevirtual

Set the current "Primary" node, which is used by default when node-specific commands are given and the node given is NULL.

991 { }
virtual Matrix3 EpModGetNodeTM ( TimeValue  t,
INode node = NULL 
)
inlinevirtual

Retrieve the transform of the Edit Poly's node.

Parameters
tThe time at which to retrieve the node's TM.
nodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
If the node is given, we just return node->GetObjectTM (t). This method is more interesting when you just want to know what the TM is of the primary node, without bothering to retrive it.
1004 { return Matrix3(1); }
Definition: matrix3.h:81
Matrix3 EpModGetNodeTM_FPS ( INode node = NULL,
TimeValue  t = 0 
)
inline
1011 { return EpModGetNodeTM(t,node); }
virtual Matrix3 EpModGetNodeTM(TimeValue t, INode *node=NULL)
Retrieve the transform of the Edit Poly's node.
Definition: iEPolyMod.h:1004
virtual int EpModCreateVertex ( Point3  p,
INode pNode = NULL 
)
inlinevirtual

Create a new vertex in the mesh.

Parameters
pThe location of the vertex in object space
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Returns
The (0-based) index of the newly created vertex
1022 { return 0; }
virtual int EpModCreateFace ( Tab< int > *  vertex,
INode pNode = NULL 
)
inlinevirtual

Create a new face in the mesh.

Parameters
vertexA table of the vertices to use as the corners of the face
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Returns
The (0-based) index of the newly created face
1033 { return 0; }
virtual int EpModCreateEdge ( int  v1,
int  v2,
INode pNode = NULL 
)
inlinevirtual

Create a new edge in the mesh.

The vertices which we're creating a new edge between must be on the same polygon, but not have an existing edge between them. The polygon is split in two by the new edge.

Parameters
v1The start vertex of the new edge.
v2The end vertex of the new edge.
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Returns
The (0-based) index of the newly created edge
1047 { return 0; }
virtual void EpModSetDiagonal ( int  v1,
int  v2,
INode pNode = NULL 
)
inlinevirtual

Change the triangulation of a polygon such that there will be a diagonal between the two vertices given.

(The two vertices must obviously be used by the same polygon.)

Parameters
v1The start vertex of the new diagonal.
v2The end vertex of the new diagonal.
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.


Example: This is used in the Edit Poly "Edit Triangulation" command mode

1061 { }
virtual void EpModCut ( int  startLevel,
int  startIndex,
Point3  startPoint,
Point3  normal,
INode pNode = NULL 
)
inlinevirtual

Set up a Cut operation, starting at a specific subobject and at a specific point.

(Use EpModSetCutEnd to finish the cut.)

Parameters
startLevelThe starting subobject level, which should be an MNMesh level such as MNM_SL_VERTEX for vertex or MNM_SL_FACE for face.
startIndexThe index of the starting subobject. For instance, if startLevel==MNM_SL_EDGE, and startIndex==4, the Cut should start on edge 4.
startPointThe location (in object space) of the start of the cut. The end of the cut is also initialized to this value, and can be further modified by using EpModSetCutEnd.
normalThe normal direction for the Cut. In the Cut command mode, this is generally set to the viewport direction. Cuts should occur where the plane defined by the start point, the end point, and this normal intersects the mesh.
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1080 { }
virtual void EpModSetCutEnd ( Point3  endPoint,
INode pNode = NULL 
)
inlinevirtual

Set the end point of a cut.

Parameters
endPointThe location of the end of the Cut, in object space
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1090 { }
virtual int EpModGetLastCutEnd ( )
inlinevirtual

If the last Cut we made finished successfully, this method will return the index of the vertex at the end of the cut.

If there was no previous Cut or if it couldn't reach all the way to the desired end point, this method will return -1.


Example: The Cut mode uses this method to generate a series of sequential cuts, where each cut begins exactly on the vertex at the end of the last cut.

1099 { return -1; }
virtual void EpModClearLastCutEnd ( )
inlinevirtual

Resets the "last cut end" data to -1.

(See EpModGetLastCutEnd for more details.)

1104 { }
virtual void EpModCutCancel ( INode pNode = NULL)
inlinevirtual

Please ignore - this method was never implemented, it does nothing.

At some point in the future, it may be used to cancel out of a cut, but this probably isn't necessary since EpModCancel does that effectively.

1110 { }
virtual void EpModDivideEdge ( int  edge,
float  prop,
INode pNode = NULL 
)
inlinevirtual

Divides edge, inserting a vertex partway along its length.

Used in the Edit Poly "Insert Vertex" mode in the Edge subobject level.

Parameters
edgeThe edge to divide
propThe proportion along the edge for the location of the new vertex. This should be in the range 0-1, where 0 is on top of the edge's v1 vertex, 1 is on top of the v2 vertex, and .5 is exactly in the middle.
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1124 { }
virtual void EpModDivideFace ( int  face,
Tab< float > *  bary,
INode pNode = NULL 
)
inlinevirtual

Divides the face, inserting a vertex in it and splitting the face up into triangles connecting the new vertex with all the face's original edges.

Parameters
faceThe face to divide
baryA set of weights for the corners of the face. This table should have Count equal to the face's degree, and its values should add up to 1. NULL is not permitted. If you want a vertex in the center of the polygon, set all values to 1.0f / (face degree).
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1138 { }
virtual void EpModWeldVerts ( int  v1,
int  v2,
INode pNode = NULL 
)
inlinevirtual

Weld two vertices.

In order for the operation to succeed, the vertices must either share an edge, or both be on borders. Success can be detected by checking vertex v2's MN_DEAD flag after the operation - if it's set, the weld succeeded.

Parameters
v1index of the first vertex
v2index of the second vertex
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1151 { }
virtual void EpModWeldEdges ( int  e1,
int  e2,
INode pNode = NULL 
)
inlinevirtual

Weld two edges (by welding the vertex endpoints).

In order for the operation to succeed, both edges must be on borders - their "f2" face should be empty (-1). Success can be detected by checking edge e2's MN_DEAD flag after the operation - if it's set, the weld succeeded.

Parameters
e1index of the first edge
e2index of the second edge
pNodeThe specific node to use, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1165 { }
virtual void EpModAttach ( INode node,
INode pNode = NULL,
TimeValue  t = 0 
)
inlinevirtual

Attach another mesh to this one.

Parameters
nodeThe node containing the mesh to attach. (If the object contained is not a mesh, it will be converted to a mesh.)
pNodeThe specific node to attach to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
tThe time at which to attach it. (This is the time at which the other node is evaluated, which may be important if the other node is animated.)
Remarks
Note that this method deletes the original node which is being attached.
1179 { }
virtual void EpModMultiAttach ( Tab< INode * > &  nodeTab,
INode pNode = NULL,
TimeValue  t = 0 
)
inlinevirtual

Attach a bunch of other meshes to this one.

Parameters
nodeTabThe table of nodes containing the meshes to attach. (If the object contained is not a mesh, it will be converted to a mesh.)
pNodeThe specific node to attach to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
tThe time at which to attach it. (This is the time at which the other nodes are evaluated, which may be important if the other nodes are animated.)
Remarks
Note that this method deletes the original nodes which are being attached.
1193 { }
virtual void EpModDetachToObject ( MSTR newObjectName,
TimeValue  t 
)
inlinevirtual

Detaches the current selection to a new Editable Poly object.

Remarks
If this Edit Poly modifier is instanced across multiple nodes, a new Editable Poly object will be created for each node.
1200 { }
virtual void EpModCreateShape ( MSTR shapeObjectName,
TimeValue  t 
)
inlinevirtual

Creates a shape object based on the current set of selected edges.

Remarks
Note that control over whether the resulting shape is curved or linear is not currently exposed in the SDK. It's controlled by the static EditPolyMod variable "mCreateShapeType", which you can find in the Edit Poly source in maxsdk/samples/mesh/EditPoly.
1208 { }
virtual void EpModSetHingeEdge ( int  edge,
Matrix3  modContextTM,
INode pNode = NULL 
)
inlinevirtual

Sets the Hinge from Edge operation to use the hinge edge given.

Parameters
edgeThe edge to use as a hinge
modContextTMThe mod context TM for the node containing the edge. This is important when the Edit Poly is instanced across multiple nodes, because the coordinates of the edge are used to hinge the faces in the other nodes as well. We need to get these coordinates in some common reference frame, which is what the mod context tm is used for.
pNodeThe specific node which contains the hinge, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1222 { }
virtual int EpModGetHingeEdge ( INode pNode)
inlinevirtual

Retrieves the current Hinge Edge, or -1 if no hinge edge is set (or if it's set on a different node).

Note that if the Edit Poly is instanced across multiple nodes, only one node should contain a hinge edge.

Parameters
pNodeThe specific node which we're referring to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1232 { return -1; }
virtual void EpModBridgeBorders ( int  edge1,
int  edge2,
INode pNode = NULL 
)
inlinevirtual

Create a Bridge between two border loops.

Parameters
edge1An edge on the first border loop
edge2An edge on the second border loop
pNodeThe specific node which we're referring to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1243 { }
virtual void EpModBridgePolygons ( int  face1,
int  face2,
INode pNode = NULL 
)
inlinevirtual
Parameters
face1index of the first face to bridge
face2index of the second face to bridge
pNodeThe specific node which we're referring to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1254 { }
virtual void EpModSetBridgeNode ( INode pNode)
inlinevirtual
1259 { }
virtual INode* EpModGetBridgeNode ( )
inlinevirtual
1264 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual bool EpModReadyToBridgeSelected ( )
inlinevirtual
1269 { return false; }
virtual void EpModTurnDiagonal ( int  faceIndex,
int  diagonal,
INode pNode = NULL 
)
inlinevirtual
Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
diagonalThe index of the diagonal - between 0 and EpMeshGetFaceDegree(faceIndex, pNode)-4. (There are always n-3 diagonals in a polygon of degree n.)
pNodeThe specific node which we're referring to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1280 { }
virtual void EpModListOperations ( INode pNode = NULL)
inlinevirtual

Lists the entire history of applied operations to the Maxscript listener window.

This is not quite adequate for recreating the Edit Poly in a script, because some information is omitted; but it'

Parameters
pNodeThe specific node which we're referring to, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1291 { }
virtual MNMesh* EpModGetMesh ( INode pNode = NULL)
inlinevirtual

Get a pointer to the Edit Poly's cached mesh.

This is the mesh after all the committed operations, but before the current operation, if any. The mesh returned from this method should not be modified!

Parameters
pNodeThe specific node which we want the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1302 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual MNMesh* EpModGetOutputMesh ( INode pNode = NULL)
inlinevirtual

Get a pointer to the Edit Poly's cached output mesh.

This is the mesh after all committed operations as well as the current operation, if any. The mesh returned from this method should not be modified!

Parameters
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
1312 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual int EpMeshGetNumVertices ( INode pNode = NULL)
inlinevirtual

Returns the number of vertices in the mesh.

Parameters
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1323 { return 0; }
virtual Point3 EpMeshGetVertex ( int  vertIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the position (in object space) of a particular vertex in the mesh.

Parameters
vertIndexThe index of the vertex - between 0 and EpMeshGetNumVertices(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1335 { return Point3(0,0,0); }
Definition: point3.h:55
virtual int EpMeshGetVertexFaceCount ( int  vertIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the number of faces using a particular vertex.

Parameters
vertIndexThe index of the vertex - between 0 and EpMeshGetNumVertices(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1347 { return 0; }
virtual int EpMeshGetVertexFace ( int  vertIndex,
int  whichFace,
INode pNode = NULL 
)
inlinevirtual

Returns a face that uses the vertex given.

Parameters
vertIndexThe index of the vertex - between 0 and EpMeshGetNumVertices(pNode)-1.
whichFaceThe index of the face - between 0 and EpMeshGetVertexFaceCount(vertIndex, pNode)-1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1360 { return 0; }
virtual int EpMeshGetVertexEdgeCount ( int  vertIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the number of edges using a particualr vertex.

Parameters
vertIndexThe index of the vertex - between 0 and EpMeshGetNumVertices(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1372 { return 0; }
virtual int EpMeshGetVertexEdge ( int  vertIndex,
int  whichEdge,
INode pNode = NULL 
)
inlinevirtual

Returns one of the edges using the vertex given.

Parameters
vertIndexThe index of the vertex - between 0 and EpMeshGetNumVertices(pNode)-1.
whichEdgeThe index of the edge - between 0 and EpMeshGetVertexEdgeCount(vertIndex, pNode)-1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1385 { return 0; }
virtual int EpMeshGetNumEdges ( INode pNode = NULL)
inlinevirtual

Returns the number of edges in the mesh.

Parameters
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1396 { return 0; }
virtual int EpMeshGetEdgeVertex ( int  edgeIndex,
int  end,
INode pNode = NULL 
)
inlinevirtual

Returns the vertex at one end of the edge given.

Parameters
edgeIndexThe index of the edge - between 0 and EpMeshGetNumEdges(pNode)-1.
endThe end of the edge - 0 or 1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1409 { return 0; }
virtual int EpMeshGetEdgeFace ( int  edgeIndex,
int  side,
INode pNode = NULL 
)
inlinevirtual

Returns the face on one side of the edge given.

Parameters
edgeIndexThe index of the edge - between 0 and EpMeshGetNumEdges(pNode)-1.
sideThe side of the edge. Edges are guaranteed to have a face on side 0, but "border" edges have no face on side 1. "No face" is indicated by a return value of -1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1423 { return 0; }
virtual int EpMeshGetNumFaces ( INode pNode = NULL)
inlinevirtual

Returns the number of faces in the mesh.

Parameters
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1434 { return 0; }
virtual int EpMeshGetFaceDegree ( int  faceIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the degree of the indicated face.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1446 { return 0; }
virtual int EpMeshGetFaceVertex ( int  faceIndex,
int  corner,
INode pNode = NULL 
)
inlinevirtual

Returns the vertex in a particular corner of a particular face.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
cornerThe corner of the face - between 0 and EpMeshGetFaceDegree(faceIndex,pNode)-1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any. The relationship between sides and corners of the polygon is: side i goes from corner i to corner (i+1)degree.
1460 { return 0; }
virtual int EpMeshGetFaceEdge ( int  faceIndex,
int  side,
INode pNode = NULL 
)
inlinevirtual

Returns the edge on a particular side of a particular face.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
sideThe side of the face - between 0 and EpMeshGetFaceDegree(faceIndex,pNode)-1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any. The relationship between sides and corners of the polygon is: side i goes from corner i to corner (i+1)degree.
1474 { return 0; }
virtual int EpMeshGetFaceDiagonal ( int  faceIndex,
int  diagonal,
int  end,
INode pNode = NULL 
)
inlinevirtual

Returns the index of the corner used at an end of a face diagonal.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
diagonalThe index of the diagonal - between 0 and EpMeshGetFaceDegree(faceIndex, pNode)-4. (There are always n-3 diagonals in a polygon of degree n.)
end0 for the start of the diagonal, 1 for the end.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Returns
The index of the corner of the face. To get the index of the vertex at that corner, call EpMeshGetFaceVertex on this result.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1491 { return 0; }
virtual int EpMeshGetFaceMaterial ( int  faceIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the material ID used by a particular face.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1503 { return 0; }
virtual DWORD EpMeshGetFaceSmoothingGroup ( int  faceIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the smoothing groups used by a particular face.

Parameters
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1515 { return 0; }
virtual int EpMeshGetNumMapChannels ( INode pNode = NULL)
inlinevirtual

Returns the number of positive map channels in the mesh.

This number depends on the map channels that are active, or have been in the past. Default is 2, typically it's in the single digits, but it can range as high as MAX_MESHMAPS. (These channels need not all be active - this method just gives an upper bound on the index of active map channels.)

Parameters
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1529 { return 0; }
virtual bool EpMeshGetMapChannelActive ( int  mapChannel,
INode pNode = NULL 
)
inlinevirtual

Indicates if the specified map channel is "active", that is, if it contains a set of map coordinates and map faces.

Parameters
mapChannelThe index of the map channel, which can range from -NUM_HIDDENMAPS to EpMeshGetNumMapChannels(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1543 { return false; }
virtual int EpMeshGetNumMapVertices ( int  mapChannel,
INode pNode = NULL 
)
inlinevirtual

Returns the number of map vertices in the specified map.

This is typically larger than the number of regular vertices in the mesh, though it can be the same or lower. Returns 0 for inactive maps.

Parameters
mapChannelThe index of the map channel, which can range from -NUM_HIDDENMAPS to EpMeshGetNumMapChannels(pNode)-1.
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1557 { return 0; }
virtual UVVert EpMeshGetMapVertex ( int  mapChannel,
int  vertIndex,
INode pNode = NULL 
)
inlinevirtual

Returns the UVVert map vertex position for a given map channel and map vertex index.

Parameters
mapChannelThe index of the map channel, which can range from -NUM_HIDDENMAPS to EpMeshGetNumMapChannels(pNode)-1.
vertIndexThe index of the map vertex, in the range of 0 to EpMeshGetNumMapVertices(mapChannel,pNode)-1
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1571 { return UVVert(0,0,0); }
Point3 UVVert
Definition: point3.h:358
virtual int EpMeshGetMapFaceVertex ( int  mapChannel,
int  faceIndex,
int  corner,
INode pNode = NULL 
)
inlinevirtual

Returns the index of the map vertex used in a particular corner of a particular map face (in a particular map).

Parameters
mapChannelThe index of the map channel, which can range from -NUM_HIDDENMAPS to EpMeshGetNumMapChannels(pNode)-1.
faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1. (All map channels have the same number of faces as the mesh.)
cornerThe corner of the face - between 0 and EpMeshGetFaceDegree(faceIndex,pNode)-1. (Each map face has the same degree as the corresponding mesh face.)
pNodeThe specific node to get the mesh from, in cases where the Edit Poly is instanced across multiple nodes. If left at NULL, the Primary node is used. (See EpModSetPrimaryNode.) If no primary node has yet been established, one is picked arbitrarily. If the Edit Poly is only used by one node, you may safely leave this at NULL.
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1588 { return 0; }
virtual void EpModBridgeEdges ( const int  in_edge1,
const int  in_edge2,
INode in_pNode = NULL 
)
inlinevirtual

Bridges individual edges, will use current parameters.

Parameters
[in]in_edge1The source of the bridge operation
[in]in_edge2The target of the bridge operation
[in]in_pNodeThe node to which the bridge is applied
1599 { }
virtual void EpModUpdateRingEdgeSelection ( int  in_val,
INode in_pNode = NULL 
)
inlinevirtual

Changea the edge selection in the ring direction.

1617 { }
virtual void EpModUpdateLoopEdgeSelection ( int  in_val,
INode in_pNode = NULL 
)
inlinevirtual

Changes the edge selection in the loop direction.

Parameters
[in]in_valSpecifies which way the current edge selection is changed. it can take the values :
  • RING_UP: Moves the selection one edge up in the ring direction
  • LOOP_UP: Moves the selection one edge up in the loop direction
  • RING_DOWN: Moves the selection one edge down in the ring direction
  • LOOP_DOWN: Moves the selection one edge up in the loop direction
  • RING_UP_ADD: Adds to the selection one edge in the up ring direction
  • LOOP_UP_ADD: Adds to the selection one edge in the up loop direction
  • RING_DOWN_ADD: Adds to the selection one edge in the down ring direction
  • LOOP_DOWN_ADD: Adds to the selection one edge in the down loop direction
  • RING_UP_SUBTRACT: Subtracts to the selection one edge in the up ring direction
  • LOOP_UP_SUBTRACT: Subtracts to the selection one edge in the up loop direction
  • RING_DOWN_SUBTRACT: Subtracts to the selection one edge in the down ring direction
  • LOOP_DOWN_SUBTRACT: Subtracts to the selection one edge in the down loop direction
[in]in_pNodeThe node to which the bridge is applied
1635 { }
virtual void EpModSetRingShift ( int  in_newPos,
bool  in_moveOnly,
bool  in_add 
)
inlinevirtual

Changes the edge selection , in the ring direction.

This method adds ( move or remove ) edges from the current selection.
n the 'positive' ( or negative ) ring direction,using the 3 existing parameters. The ring direction is vertical for a plane.
If in_newPos == -3 , in_moveOnly == false and in_add == true, it adds 3 edges from the current selection,
in the negative ring direction. this is equivalent to the MaxScript: $.setRingShift -3 false true

Parameters
[in]in_newPosIf > 0 will change the edge selection the 'positive' ring direction, if < 0 in the 'negative' direction.
[in]in_moveOnlyIf true, edges are moved, if false, edges are added or removed from selection
[in]in_addIf true edges are added, if false, edges are removed from current selection
1646 {}
virtual void EpModSetLoopShift ( int  in_newPos,
bool  in_moveOnly,
bool  in_add 
)
inlinevirtual

Changes the edge selection , in the loop direction.

This method adds ( move or remove ) edges from the current selection.
n the 'positive' ( or negative ) loop direction,using the 3 existing parameters. The loop direction is horizontal for a plane.
If in_newPos == -3 , in_moveOnly == false and in_add == true, it adds 3 edges from the current selection,
in the negative ring direction. this is equivalent to the MaxScript: $.setLoopShift -3 false true

Parameters
[in]in_newPosIf > 0 will change the edge selection the 'positive' ring direction, if < 0 in the 'negative' direction.
[in]in_moveOnlyIf true, edges are moved, if false, edges are added or removed from selection
[in]in_addIf true edges are added, if false, edges are removed from current selection
1658 {}
virtual int EpModConvertSelectionToBorder ( int  in_epSelLevelFrom,
int  in_epSelLevelTo 
)
inlinevirtual

Converts current sub-object selection to the specified sub-object border.

It converts for instance selected faces into their border edges and selects it,
if you call EpModConvertSelectionToBorder( EPM_SL_FACE, EPM_SL_EDGE);

Parameters
[in]in_epSelLevelFromCan be EPM_SL_EDGE, EPM_SL_FACE or EPM_SL_VERTEX
[in]in_epSelLevelToCan be EPM_SL_EDGE, EPM_SL_FACE or EPM_SL_VERTEX
1667 { return 0; }
virtual void EpModPaintDeformCommit ( )
inlinevirtual

Commits any Paint Deformation as if pressing the Commit button.

Has no effect when the Commit button is disabled

1672 {}
virtual void EpModPaintDeformCancel ( )
inlinevirtual

Reverts any Paint Deformation as if pressing the Revert button.

Has no effect when the Revert button is disabled

1677 {}
virtual Point3 EPMeshGetFaceNormal ( const int  in_faceIndex,
INode in_pNode = NULL 
)
inlinevirtual

Returns the normal of the face specified.

Parameters
[in]in_faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1690 { return Point3(0,0,0); }
Definition: point3.h:55
virtual Point3 EPMeshGetFaceCenter ( const int  in_faceIndex,
INode in_pNode = NULL 
)
inlinevirtual

Returns the center of the face specified.

Parameters
[in]in_faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1698 { return Point3(0,0,0); }
Definition: point3.h:55
virtual float EPMeshGetFaceArea ( const int  in_faceIndex,
INode in_pNode = NULL 
)
inlinevirtual

Returns the area of the face specified.

Parameters
[in]in_faceIndexThe index of the face - between 0 and EpMeshGetNumFaces(pNode)-1.
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1706 { return 0.0f; }
virtual BitArray* EPMeshGetOpenEdges ( INode in_pNode = NULL)
inlinevirtual

Returns a list of edges that are adjacent to at least one empty face.

Parameters
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1713 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual bool EPMeshGetVertsByFlag ( BitArray out_vset,
const DWORD  in_flags,
const DWORD  in_fmask = 0x0,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the vertices specified the flag and mask, and updates the bitarray passed in.

Parameters
[out]out_vsetThe BitArray passed by reference - the bits will be updated to show the specified vertices
[in]in_flagsThe flags that are to be checked for
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1727 { return false; }
virtual bool EPMeshGetEdgesByFlag ( BitArray out_eset,
const DWORD  in_flags,
const DWORD  in_fmask = 0x0,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the edges specified the flag and mask, and updates the bitarray passed in.

Parameters
[out]out_esetThe BitArray passed by reference - the bits will be updated to show the specified edges
[in]in_flagsThe flags that are to be checked for
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1737 { return false; }
virtual bool EPMeshGetFacesByFlag ( BitArray out_fset,
const DWORD  in_flags,
const DWORD  in_fmask = 0x0,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the faces specified the flag and mask, and updates the bitarray passed in.

Parameters
[out]out_fsetThe BitArray passed by reference - the bits will be updated to show the specified faces
[in]in_flagsThe flags that are to be checked for
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1747 { return false; }
virtual void EPMeshSetVertexFlags ( BitArray in_vset,
const DWORD  in_flags,
DWORD  in_fmask = 0x0,
const bool  in_undoable = true,
INode in_pNode = NULL 
)
inlinevirtual

Sets the specified vertices flags to the specified value.

Parameters
[in]in_vsetThe list of vertices to have their flag changed
[in]in_flagsThe flags that are to be set
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
[in]in_undoableCan the results of this operation be undone through the normal method
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
1761 { return; }
virtual void EPMeshSetEdgeFlags ( BitArray in_eset,
const DWORD  in_flags,
DWORD  in_fmask = 0x0,
const bool  in_undoable = true,
INode in_pNode = NULL 
)
inlinevirtual

Sets the specified vertices flags to the specified value.

Parameters
[in]in_esetThe list of edges to have their flag changed
[in]in_flagsThe flags that are to be set
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
[in]in_undoableCan the results of this operation be undone through the normal method
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
1770 { return; }
virtual void EPMeshSetFaceFlags ( BitArray in_fset,
const DWORD  in_flags,
DWORD  in_fmask = 0x0,
const bool  in_undoable = true,
INode in_pNode = NULL 
)
inlinevirtual

Sets the specified faces flags to the specified value.

Parameters
[in]in_fsetThe list of faces to have their flag changed
[in]in_flagsThe flags that are to be set
[in]in_fmaskThe results will use the bitwise-AND of fmask and flags if it is specified
[in]in_undoableCan the results of this operation be undone through the normal method
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
1779 { return; }
virtual int EPMeshGetVertexFlags ( const int  in_vertexIndex,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the flags from the specified vertex.

Parameters
[in]in_vertexIndexThe vertex to retrieve the flags from - between 0 and EpMeshGetNumVertices - 1
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1792 { return 0; }
virtual int EPMeshGetEdgeFlags ( const int  in_edgeIndex,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the flags from the specified edge.

Parameters
[in]in_edgeIndexThe edge to retrieve the flags from - between 0 and EpMeshGetNumEdges - 1
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1800 { return 0; }
virtual int EPMeshGetFaceFlags ( const int  in_faceIndex,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves the flags from the specified face.

Parameters
[in]in_faceIndexThe face to retrieve the flags from - between 0 and EpMeshGetNumFaces - 1
[in]in_pNodeOptional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1808 { return 0; }
virtual void EPMeshGetVertsUsingEdge ( BitArray out_vset,
const BitArray in_eset,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of verts that are used by the edges specified.

Parameters
[out]out_vset- List of vertices that will be updated with the vertices used by the edges
[in]in_eset- List of edges used for finding the vertices
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1822 { return; }
virtual void EPMeshGetEdgesUsingVert ( BitArray out_eset,
BitArray in_vset,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of edges that are used by the vertices specified.

Parameters
[out]out_eset- List of edges that will be updated with the edges used by the vertices
[in]in_vset- List of vertices used for finding the edges
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1831 { return; }
virtual void EPMeshGetFacesUsingEdge ( BitArray out_fset,
BitArray in_eset,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of faces that are used by the edges specified.

Parameters
[out]out_fset- List of faces that will be updated with the faces used by the edges
[in]in_eset- List of edges used for finding the faces
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1840 { return; }
virtual void EPMeshGetElementsUsingFace ( BitArray out_eset,
BitArray in_fset,
BitArray in_fenceSet,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of elements that are used by the faces specified.

Parameters
[out]out_eset- List of elements that will be updated with the elements used by the faces
[in]in_fset- List of faces used for finding the elements
[in]in_fenceSet- List for calculating elements from the face
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1850 { return; }
virtual void EPMeshGetFacesUsingVert ( BitArray out_fset,
BitArray in_vset,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of faces that are used by the vertices specified.

Parameters
[out]out_fset- List of faces that will be updated with the faces used by the vertices
[in]in_vset- List of vertices used for finding the faces
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1859 { return; }
virtual void EPMeshGetVertsUsingFace ( BitArray out_vset,
BitArray in_fset,
INode in_pNode = NULL 
)
inlinevirtual

Retrieves list of verts that are used by the faces specified.

Parameters
[out]out_vset- List of vertices that will be updated with the vertices used by the faces
[in]in_fset- List of faces used for finding the vertices
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1868 { return; }
virtual void EPMeshSetVert ( const BitArray in_vset,
const Point3 in_point,
INode in_pNode = NULL 
)
inlinevirtual

Moves the specified vertices to the specified point.

Requires a commit for other functions to return the proper data

Parameters
[in]in_vset- List of vertices that will be moved
[in]in_point- Point in the current coordinate system that the vertices will be moved to
[in]in_pNode- Optional node to run the check on. If the node is not specified, we will use the currently selected noe
Remarks
This is based on the mesh after all committed operations, but before the current operation, if any.
1879 { return; }
virtual void SmGrpFloater ( )
pure virtual

Brings up the Smooting Group floater dialog. If it is already up it closes it.

virtual void MatIDFloater ( )
pure virtual

Brings up the Material ID floater dialog. If it is already up it closes it.

virtual BOOL MatIDFloaterVisible ( )
pure virtual

Returns whether the Material ID floater dialog is up.

virtual BOOL SmGrpFloaterVisible ( )
pure virtual

Returns whether the Smooting Group floater dialog is up.

virtual void CloseSmGrpFloater ( )
inlinevirtual

Closes the Smoothing Group Floater Dialog.

1891 {}
virtual void CloseMatIDFloater ( )
inlinevirtual
1893 {}
virtual HWND MatIDFloaterHWND ( )
inlinevirtual

Returns the Material ID Floater Dialog Handle.

1896 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual HWND SmGrpFloaterHWND ( )
inlinevirtual

Returns the SmGrp Floater Dialog Handle.

1899 { return NULL; }
#define NULL
Definition: autoptr.h:18
virtual void ListDeltaOps ( )
pure virtual

Prints the delta operations to script window.

virtual int EpModGetLast ( )
inlinevirtual

Returns the last operation used or -1 if none.

Reimplemented in EPolyMod18.

1905 { return -1; }