This reference page is linked to from the following overview topics: Modeling, Deformable Objects, Primitive Pipeline Objects, Channels, Modifiers, Simple Modifiers, Shape and Spline Principal Classes.
#include <splshape.h>
Public Member Functions |
|
CoreExport | SplineShape () |
CoreExport | SplineShape (SplineShape &from) |
CoreExport void | SplineShapeInit () |
CoreExport | ~SplineShape () |
CoreExport SplineShape & | operator= (SplineShape &from) |
void | SetFlag (DWORD fl, BOOL val=TRUE) |
void | ClearFlag (DWORD fl) |
bool | GetFlag (DWORD fl) |
virtual CoreExport int | HitTest (TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt) |
This method is called to determine if the
specified screen point intersects the item. |
|
virtual CoreExport int | HitTest (TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt, ModContext *mc) |
This method is used in modifier gizmo hit
testing. |
|
virtual CoreExport void | Snap (TimeValue t, INode *inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt) |
Checks the point passed for a snap and
updates the SnapInfo
structure. |
|
virtual CoreExport int | Display (TimeValue t, INode *inode, ViewExp *vpt, int flags) |
This method displays the shape's generated
mesh if necessary. |
|
virtual
CoreExport CreateMouseCallBack * |
GetCreateMouseCallBack () |
This method allows the system to retrieve a
callback object used in creating an object in the 3D viewports.
|
|
virtual CoreExport RefTargetHandle | Clone (RemapDir &remap) |
This method is used by 3ds Max to clone an
object. |
|
CoreExport int | Display (TimeValue t, INode *inode, ViewExp *vpt, int flags, ModContext *mc) |
When this method is called the plug-in
should respond by performing a quick render of the modifier gizmo
in viewport using the current TM. |
|
CoreExport void | GetWorldBoundBox (TimeValue t, INode *inode, ViewExp *vp, Box3 &box, ModContext *mc) |
This method computes the world space
bounding box of the modifier gizmo (or any object that when in
sub-object mode has a gizmo). |
|
CoreExport int | NumSubObjTypes () |
Objects and modifiers that support
subobjects have to overwrite this method - as well as
GetSubObjType() - and return a class derived from
ISubObjType in
GetSubObjType(). |
|
CoreExport ISubObjType * | GetSubObjType (int i) |
Returns a pointer to the sub-object type for
the sub-object whose index is passed. |
|
CoreExport void | XFormHandles (SSXFormProc *xproc, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis) |
CoreExport void | XFormVerts (SSXFormProc *xproc, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis) |
CoreExport void | Move (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin=FALSE) |
When this method is called the plug-in
should respond by moving its selected sub-object components.
|
|
CoreExport void | Rotate (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Quat &val, BOOL localOrigin=FALSE) |
When this method is called the plug-in
should respond by rotating its selected sub-object components.
|
|
CoreExport void | Scale (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin=FALSE) |
When this method is called the plug-in
should respond by scaling its selected sub-object components.
|
|
CoreExport void | TransformStart (TimeValue t) |
This method is called before the first
Move(),
Rotate() or
Scale() call and before a hold is in effect. |
|
CoreExport void | TransformFinish (TimeValue t) |
This method is called after the user has
completed the
Move(),
Rotate() or
Scale() operation and the undo object has been accepted.
|
|
CoreExport void | TransformCancel (TimeValue t) |
This method is called when the transform
operation is canceled by a right-click and the undo has been
canceled. |
|
CoreExport ObjectState | Eval (TimeValue time) |
This method is called to evaluate the object
and return the result as an
ObjectState. |
|
CoreExport Interval | ObjectValidity (TimeValue t) |
This method returns the validity interval of
the object as a whole at the specified time. |
|
CoreExport void | MaybeEnlargeViewportRect (GraphicsWindow *gw, Rect &rect) |
This method allows the object to enlarge its
viewport rectangle, if it wants to. |
|
virtual CoreExport void | InitNodeName (MSTR &s) |
This is the default name of the node when it
is created. |
|
BOOL | SupportsNamedSubSels () |
An object that supports sub-object selection
can choose to support named sub object selection sets. |
|
CoreExport void | ActivateSubSelSet (MSTR &setName) |
When the user chooses a name from the drop
down list this method is called. |
|
CoreExport void | NewSetFromCurSel (MSTR &setName) |
If the user types a new name into the named
selection set drop down then this method is called. |
|
CoreExport void | RemoveSubSelSet (MSTR &setName) |
If the user selects a set from the drop down
and then chooses Remove Named Selections from the Edit menu this
method is called. |
|
CoreExport void | SetupNamedSelDropDown () |
To support the Edit Named Selections dialog,
plug-ins must implement this method. |
|
CoreExport int | NumNamedSelSets () |
To support the Edit Named Selections dialog,
plug-ins must implement this method. |
|
CoreExport MSTR | GetNamedSelSetName (int i) |
To support the Edit Named Selections dialog,
plug-ins must implement this method. |
|
CoreExport void | SetNamedSelSetName (int i, MSTR &newName) |
To support the Edit Named Selections dialog,
plug-ins must implement this method. |
|
CoreExport void | NewSetByOperator (MSTR &newName, Tab< int > &sets, int op) |
To support the Edit Named Selections dialog,
plug-ins must implement this method. |
|
CoreExport BOOL | GetUniqueSetName (MSTR &name) |
CoreExport INT_PTR | SelectNamedSet () |
CoreExport void | NSCopy () |
CoreExport void | NSPaste () |
CoreExport SSNamedSelSetList | GetSelSet () |
CoreExport Interval | ConvertValidity (TimeValue t) |
CoreExport Interval | ChannelValidity (TimeValue t, int nchan) |
Retrieve the current validity interval for
the nchan channel of the object. |
|
CoreExport void | SetChannelValidity (int i, Interval v) |
Sets the validity interval of the specified
channel. |
|
CoreExport void | InvalidateChannels (ChannelMask channels) |
This method invalidates the intervals for
the given channel mask. |
|
int | IsDeformable () |
Indicates whether this object is deformable.
|
|
CoreExport int | NumPoints () |
The points of a deformable object are
accessed through a virtual array interface. |
|
CoreExport Point3 | GetPoint (int i) |
The points of a deformable object are
accessed through a virtual array interface. |
|
CoreExport void | SetPoint (int i, const Point3 &p) |
The points of a deformable object are
accessed through a virtual array interface. |
|
CoreExport BOOL | IsPointSelected (int i) |
Returns TRUE if the 'i-th' point is
selected; otherwise FALSE. |
|
CoreExport void | PointsWereChanged () |
Informs the object that its points have been
deformed, so it can invalidate its cache. |
|
CoreExport void | GetDeformBBox (TimeValue t, Box3 &box, Matrix3 *tm=NULL, BOOL useSel=FALSE) |
This method computes the bounding box in the
objects local coordinates or the optional space defined by tm.
|
|
CoreExport void | Deform (Deformer *defProc, int useSel) |
This is the method used to deform the object
with a deformer. |
|
CoreExport int | CanConvertToType (Class_ID obtype) |
Indicates whether the object can be
converted to the specified type. |
|
CoreExport Object * | ConvertToType (TimeValue t, Class_ID obtype) |
This method converts this object to the type
specified and returns a pointer it. |
|
CoreExport void | GetCollapseTypes (Tab< Class_ID > &clist, Tab< MSTR * > &nlist) |
When the user clicks on the Edit Stack button in the modify
branch a list of 'Convert To:' types is presented. |
|
CoreExport void | FreeChannels (ChannelMask chan) |
This method deletes the memory associated
with the specified channels and set the intervals associated with
the channels to invalid (empty). |
|
CoreExport Object * | MakeShallowCopy (ChannelMask channels) |
This method must make a copy of its "shell"
and then shallow copy (see below) only the specified channels.
|
|
CoreExport void | ShallowCopy (Object *fromOb, ChannelMask channels) |
This method copies the specified channels
from the fromOb to this and copies the validity intervals. |
|
CoreExport void | NewAndCopyChannels (ChannelMask channels) |
This method replaces the locked channels
with newly allocated copies. |
|
CoreExport DWORD | GetSubselState () |
For objects that have sub selection levels,
this method returns the current selection level of the object.
|
|
CoreExport ObjectHandle | CreateTriObjRep (TimeValue t) |
CoreExport void | GetWorldBoundBox (TimeValue t, INode *inode, ViewExp *vpt, Box3 &box) |
This method returns the world space bounding
box for Objects (see below for the Sub-object gizmo or Modifiers
gizmo version). |
|
CoreExport void | GetLocalBoundBox (TimeValue t, INode *inode, ViewExp *vpt, Box3 &box) |
This is the object space bounding box, the
box in the object's local coordinates. |
|
CoreExport int | NumberOfVertices (TimeValue t, int curve) |
This method is used by the Summary Info and
Object
Properties dialogs to inform the user how many vertices or CVs are
in the object. |
|
CoreExport int | NumberOfCurves () |
Returns the number of polygons in the shape.
|
|
CoreExport BOOL | CurveClosed (TimeValue t, int curve) |
This method is called to determine if the
specified curve of the shape is closed at the time passed. |
|
CoreExport Point3 | InterpCurve3D (TimeValue t, int curve, float param, int ptype=PARAM_SIMPLE) |
This method returns a point interpolated on
the entire curve. |
|
CoreExport Point3 | TangentCurve3D (TimeValue t, int curve, float param, int ptype=PARAM_SIMPLE) |
This method returns a tangent vector
interpolated on the entire curve. |
|
CoreExport float | LengthOfCurve (TimeValue t, int curve) |
Returns the length of the specified curve.
|
|
CoreExport int | NumberOfPieces (TimeValue t, int curve) |
Returns the number of sub-curves in a curve.
|
|
CoreExport Point3 | InterpPiece3D (TimeValue t, int curve, int piece, float param, int ptype=PARAM_SIMPLE) |
This method returns the interpolated point
along the specified sub-curve (segment). |
|
CoreExport Point3 | TangentPiece3D (TimeValue t, int curve, int piece, float param, int ptype=PARAM_SIMPLE) |
Returns the tangent vector on a sub-curve at
the specified 'distance' along the curve. |
|
CoreExport MtlID | GetMatID (TimeValue t, int curve, int piece) |
This method provides access to the material
IDs of the shape. |
|
BOOL | CanMakeBezier () |
This method is called to determine if the
shape can be converted to a bezier representation. |
|
CoreExport void | MakeBezier (TimeValue t, BezierShape &shape) |
Creates the bezier representation of the
shape. |
|
CoreExport ShapeHierarchy & | OrganizeCurves (TimeValue t, ShapeHierarchy *hier=NULL) |
This method is called to prepare the shape
for lofting, extrusion, etc. |
|
CoreExport void | MakePolyShape (TimeValue t, PolyShape &shape, int steps=PSHAPE_BUILTIN_STEPS, BOOL optimize=FALSE) |
Create a PolyShape representation with
optional fixed steps. |
|
CoreExport int | MakeCap (TimeValue t, MeshCapInfo &capInfo, int capType) |
This method generates a mesh capping info
for the shape. |
|
CoreExport int | MakeCap (TimeValue t, PatchCapInfo &capInfo) |
This method creates a patch cap info out of
the shape. |
|
BezierShape & | GetShape () |
CoreExport void | DeleteThis () |
Deletes an instance of this class. |
|
void | FreeCaches () |
virtual Class_ID | ClassID () |
Retrieves a constant that uniquely
identifies the plugin class. |
|
virtual CoreExport void | GetClassName (MSTR &s) |
Retrieves the name of the plugin class.
|
|
CoreExport void * | GetInterface (ULONG id) |
Inherited from Animatable. |
|
virtual CoreExport MCHAR * | GetObjectName () |
CoreExport int | NumSubs () |
CoreExport Animatable * | SubAnim (int i) |
This method returns the ShapeObject's
animatable pointer. |
|
CoreExport MSTR | SubAnimName (int i) |
This method returns the name of the
animatable's name. |
|
CoreExport BOOL | AssignController (Animatable *control, int subAnim) |
int | SubNumToRefNum (int subNum) |
CoreExport BOOL | SelectSubAnim (int subNum) |
CoreExport void | RescaleWorldUnits (float f) |
Implemented by the System. |
|
CoreExport int | RemapRefOnLoad (int iref) |
This method remaps references at load time
so that files saved from previous versions of 3ds Max get their
references adjusted properly to allow for the new
ShapeObject reference. |
|
CoreExport int | NumRefs () |
The
ShapeObject makes 1 reference; this is where it tells the
system. |
|
CoreExport RefTargetHandle | GetReference (int i) |
This method allows the
ShapeObject to return a pointer to its parameter block.
|
|
CoreExport void | CreateContArray () |
CoreExport void | SynchContArray () |
CoreExport void | AllocContArray (int count) |
CoreExport void | ReplaceContArray (Tab< Control * > &nc) |
CoreExport void | InsertPointConts (int index, int count) |
CoreExport void | DeletePointConts (BitArray &set) |
CoreExport void | ReversePointConts (int index, int count, BOOL keepFirst) |
CoreExport void | NullPointConts (int index, int count) |
CoreExport void | NullPolyPointConts (int poly) |
CoreExport void | PlugControllersSel (TimeValue t) |
CoreExport BOOL | PlugControl (TimeValue t, int i) |
CoreExport void | SetPtCont (int i, Control *c) |
CoreExport void | SetPointAnim (TimeValue t, int poly, int vert, Point3 pt) |
CoreExport BOOL | CloneVertCont (int from, int to) |
CoreExport void | SetRollupPage (IObjParam *ip, BOOL creating) |
CoreExport void | RemoveRollupPage (IObjParam *ip) |
virtual CoreExport void | BeginEditParams (IObjParam *ip, ULONG flags, Animatable *prev) |
This method allows the
ShapeObject to create its new "Rendering" rollup. |
|
virtual CoreExport void | EndEditParams (IObjParam *ip, ULONG flags, Animatable *next) |
Similarly to BeginEditParams, this method
allows the
ShapeObject to remove its "Rendering" rollup. |
|
CoreExport int | GetSubobjectLevel () |
CoreExport void | SetSubobjectLevel (int level) |
CoreExport void | ActivateSubobjSel (int level, XFormModes &modes) |
When the user changes the selection of the
sub-object drop down, this method is called to notify the plug-in.
|
|
int | NeedUseSubselButton () |
CoreExport void | SelectSubComponent (HitRecord *hitRec, BOOL selected, BOOL all, BOOL invert) |
This method is called to change the
selection state of the component identified by hitRec. |
|
CoreExport void | ClearSelection (int level) |
This method is called to clear the selection
for the given sub-object level. |
|
CoreExport void | SelectAll (int level) |
This method is called to select every
element of the given sub-object level. |
|
CoreExport void | InvertSelection (int level) |
This method is called to invert the
specified sub-object level. |
|
CoreExport void | GetSubObjectCenters (SubObjAxisCallback *cb, TimeValue t, INode *node, ModContext *mc) |
When the user is in a sub-object selection
level, the system needs to get the reference coordinate system
definition from the current modifier being edited so that it can
display the axis. |
|
CoreExport void | GetSubObjectTMs (SubObjAxisCallback *cb, TimeValue t, INode *node, ModContext *mc) |
When the user is in a sub-object selection
level, the system needs to get the reference coordinate system
definition from the current modifier being edited so that it can
display the axis. |
|
CoreExport void | ShowEndResultChanged (BOOL showEndResult) |
This method notifies the BaseObject
that the end result display has been switched (the "Show End
Result" button has been toggled). |
|
CoreExport int | SubObjectIndex (HitRecord *hitRec) |
Returns the index of the sub-object element
identified by the
HitRecord hitRec. |
|
CoreExport void | MultiAttachObject (INodeTab &nodeTab) |
CoreExport void | BeginOutlineMove (TimeValue t) |
CoreExport void | BeginFilletMove (TimeValue t) |
CoreExport void | BeginChamferMove (TimeValue t) |
CoreExport void | OutlineMove (TimeValue t, float amount) |
CoreExport void | FilletMove (TimeValue t, float amount) |
CoreExport void | ChamferMove (TimeValue t, float amount) |
CoreExport void | EndMoveModes (TimeValue t, BOOL accept=TRUE) |
CoreExport void | EndOutlineMove (TimeValue t, BOOL accept=TRUE) |
CoreExport void | EndFilletMove (TimeValue t, BOOL accept=TRUE) |
CoreExport void | EndChamferMove (TimeValue t, BOOL accept=TRUE) |
CoreExport void | StartOutlineMode () |
CoreExport void | StartFilletMode () |
CoreExport void | StartChamferMode () |
CoreExport void | DoOutline () |
CoreExport void | DoFillet () |
CoreExport void | DoChamfer () |
CoreExport void | StartSegBreakMode () |
CoreExport void | DoSegBreak (ViewExp *vpt, BezierShape *shape, int poly, int seg, IPoint2 p, INode *inode=NULL) |
CoreExport void | StartSegRefineMode () |
CoreExport void | DoSegRefine (ViewExp *vpt, BezierShape *shape, int poly, int seg, IPoint2 p, INode *inode=NULL) |
CoreExport void | StartCrossInsertMode () |
CoreExport void | DoCrossInsert (ViewExp *vpt, BezierShape *shape, int poly1, int seg1, int poly2, int seg2, IPoint2 p) |
CoreExport void | StartVertConnectMode () |
CoreExport void | DoVertConnect (ViewExp *vpt, BezierShape *shape, int poly1, int vert1, int poly2, int vert2) |
CoreExport void | StartVertInsertMode (int controlID) |
CoreExport int | StartVertInsert (ViewExp *vpt, BezierShape *shape, int poly, int seg, int vert, INode *inode=NULL) |
CoreExport void | EndVertInsert (BOOL acceptUndo) |
CoreExport void | StartCreateLineMode () |
CoreExport BOOL | StartCreateLine (BezierShape **shape) |
CoreExport void | EndCreateLine () |
CoreExport void | StartCrossSectionMode () |
this has the same effect as pressing the
Cross Section button in the Spline's Geometry rollout |
|
CoreExport void | StartCrossSection () |
should be used before a sequence of calls to
DoCrossSection() |
|
CoreExport void | EndCrossSection (BOOL acceptUndo) |
should be used after a sequence of calls to
DoCrossSection() |
|
CoreExport BOOL | BooleanStartUp () |
CoreExport void | StartBooleanMode () |
CoreExport void | DoBoolean (int poly2) |
CoreExport void | StartTrimMode () |
CoreExport void | StartExtendMode () |
CoreExport void | HandleTrimExtend (ViewExp *vpt, ShapeHitData *hit, IPoint2 &m, int operation) |
CoreExport int | GetAttachMat () |
CoreExport void | SetAttachMat (int value) |
CoreExport BOOL | GetCondenseMat () |
CoreExport void | SetCondenseMat (BOOL sw) |
CoreExport int | DoAttach (INode *node, bool &canUndo) |
CoreExport void | DoCrossSection (Tab< int > &splineIndices) |
creates a cross section of the current
selected spline or segement with the given spline(s). |
|
CoreExport void | DoVertBreak () |
CoreExport void | DoVertWeld () |
CoreExport void | DoMakeFirst () |
CoreExport void | DoVertDelete () |
CoreExport void | DoSegDelete () |
CoreExport void | DoSegDetach (int sameShape, int copy, int reorient) |
CoreExport void | DoSegDivide (int divisions) |
CoreExport void | DoPolyClose () |
CoreExport void | DoPolyDetach (int copy, int reorient) |
CoreExport void | DoPolyMirror (int type, int copy) |
CoreExport void | DoPolyDelete () |
CoreExport void | DoPolyReverse () |
CoreExport void | DoPolyExplode () |
CoreExport void | DoExplodeToObjects () |
CoreExport void | SetBoolOperation (int type) |
CoreExport void | SetMirrorOperation (int type) |
CoreExport int | GetBoolOperation () |
CoreExport int | GetMirrorOperation () |
CoreExport int | GetBoolCursorID () |
CoreExport int | GetBoolMirrString (UINT_PTR type) |
CoreExport void | SetBooleanButton () |
CoreExport void | SetMirrorButton () |
CoreExport void | ChangeSelVerts (int type) |
CoreExport void | ChangeRememberedVert (int type) |
CoreExport int | RememberVertThere (HWND hWnd, IPoint2 m) |
CoreExport void | SetRememberedVertType (int type) |
CoreExport void | ChangeSelSegs (int type) |
CoreExport void | ChangeRememberedSeg (int type) |
CoreExport int | RememberSegThere (HWND hWnd, IPoint2 m) |
CoreExport void | SetRememberedSegType (int type) |
CoreExport void | ChangeSelPolys (int type) |
CoreExport void | ChangeRememberedPoly (int type) |
CoreExport int | RememberPolyThere (HWND hWnd, IPoint2 m) |
CoreExport void | SetRememberedPolyType (int type) |
CoreExport void | SplineShapeClone (SplineShape *source) |
CoreExport int | GetPointIndex (const Tab< Point3 > &vertList, const Point3 &point) const |
this simply performs a linear search through
the given list, returning the index of the given point |
|
CoreExport void | DeleteSpline (int poly) |
CoreExport void | InsertSpline (Spline3D *spline, int poly) |
CoreExport void | Reverse (int poly, BOOL keepFirst=FALSE) |
CoreExport void | DeleteKnot (int poly, int index) |
CoreExport void | AddKnot (int poly, SplineKnot &k, int where=-1) |
CoreExport BOOL | Append (int poly, Spline3D *spline, BOOL weldCoincidentFirstVertex=TRUE) |
CoreExport BOOL | Prepend (int poly, Spline3D *spline, BOOL weldCoincidentLastVertex=TRUE) |
CoreExport void | ReplaceSpline (int poly, Spline3D *spline) |
CoreExport BOOL | DeleteSelVerts (int poly) |
CoreExport BOOL | DeleteSelSegs (int poly) |
CoreExport void | MakeFirst (int poly, int index) |
CoreExport void | SetOptimize (BOOL sw) |
CoreExport void | SetAdaptive (BOOL sw) |
CoreExport void | SetSteps (int n) |
CoreExport void | RecordTopologyTags () |
CoreExport void | ResolveTopoChanges (BezierShape *shape=NULL, int bindTrackingOptions=1) |
CoreExport void | RefreshSelType () |
CoreExport void | UpdateSelectDisplay () |
CoreExport void | SetSelDlgEnables () |
CoreExport void | SetOpsDlgEnables () |
CoreExport void | SetSurfDlgEnables () |
CoreExport void | SetSoftSelDlgEnables (HWND hSoftSel=NULL) |
CoreExport void | SelectionChanged () |
CoreExport BOOL | MaybeSelectSingleSpline (BOOL makeUndo=FALSE) |
CoreExport void | SetFCLimit () |
CoreExport int | GetSelMatIndex () |
CoreExport void | SetSelMatIndex (int index) |
CoreExport void | SelectByMat (int index, BOOL clear) |
CoreExport void | InvalidateSurfaceUI () |
CoreExport IOResult | Save (ISave *isave) |
Implemented by the System. |
|
CoreExport IOResult | Load (ILoad *iload) |
Implemented by the System. |
|
CoreExport void | StartBindMode () |
CoreExport void | DoBind (int poly1, int vert1, int poly2, int vert2) |
CoreExport void | DoUnBind () |
CoreExport void | DoHide () |
CoreExport void | DoUnhide () |
CoreExport void | DoCycleVerts () |
CoreExport void | StartRefineConnectMode () |
CoreExport void | EndRefineConnectMode () |
CoreExport void | DoRefineConnect (ViewExp *vpt, BezierShape *shape, int poly, int seg, IPoint2 p, INode *inode=NULL) |
CoreExport void | DoVertFuse () |
CoreExport void | StartCopyTangentMode () |
this has the same effect as pressing the
Copy button in the "Tangent" section of the Spline UI, when in
Vertex sub-object mode |
|
CoreExport void | StartPasteTangentMode () |
this has the same effect as pressing the
Paste button in the "Tangent" section of the Spline UI, when in
Vertex sub-object mode |
|
CoreExport void | StartPasteTangent () |
should be used before a call to PasteTangent() |
|
CoreExport void | EndPasteTangent () |
should be used following a call to PasteTangent() |
|
CoreExport BOOL | CopyTangent (int poly, int vert) |
copy the given tangent |
|
CoreExport BOOL | PasteTangent (int poly, int vert) |
paste the given tangent. |
|
CoreExport void | StartCommandMode (splineCommandMode mode) |
CoreExport void | ButtonOp (splineButtonOp opcode) |
CoreExport void | GetUIParam (splineUIParam uiCode, int &ret) |
CoreExport void | SetUIParam (splineUIParam uiCode, int val) |
CoreExport void | GetUIParam (splineUIParam uiCode, float &ret) |
CoreExport void | SetUIParam (splineUIParam uiCode, float val) |
bool | Editing () |
CoreExport DWORD | GetSelLevel () |
CoreExport void | SetSelLevel (DWORD level) |
CoreExport void | LocalDataChanged () |
CoreExport BitArray | GetVertSel () |
CoreExport BitArray | GetSegmentSel () |
CoreExport BitArray | GetSplineSel () |
CoreExport void | SelectBySegment (BOOL interactive=TRUE) |
CoreExport void | SelectBySpline (BOOL interactive=TRUE) |
CoreExport void | SetVertSel (BitArray &set, ISplineSelect *imod, TimeValue t) |
CoreExport void | SetSegmentSel (BitArray &set, ISplineSelect *imod, TimeValue t) |
CoreExport void | SetSplineSel (BitArray &set, ISplineSelect *imod, TimeValue t) |
CoreExport GenericNamedSelSetList & | GetNamedVertSelList () |
CoreExport GenericNamedSelSetList & | GetNamedSegmentSelList () |
CoreExport GenericNamedSelSetList & | GetNamedSplineSelList () |
CoreExport MtlID | GetNextAvailMtlID (ModContext *mc) |
CoreExport BOOL | HasFaceSelection (ModContext *mc) |
CoreExport void | SetSelFaceMtlID (ModContext *mc, MtlID id, BOOL bResetUnsel=FALSE) |
CoreExport int | GetSelFaceUniqueMtlID (ModContext *mc) |
CoreExport int | GetSelFaceAnyMtlID (ModContext *mc) |
CoreExport int | GetMaxMtlID (ModContext *mc) |
CoreExport void | InvalidateGeomCache () |
This method is very important - It causes
the
ShapeObject to flush its cached rendering mesh. |
|
CoreExport int | UseEdgeDists () |
CoreExport void | SetUseEdgeDists (int useSoftSelections) |
CoreExport int | UseSoftSelections () |
CoreExport void | SetUseSoftSelections (int useSoftSelections) |
CoreExport void | InvalidateVertexWeights () |
CoreExport void | UpdateVertexDists () |
CoreExport void | UpdateEdgeDists () |
CoreExport void | UpdateVertexWeights () |
Static Public Member Functions |
|
static CoreExport void | InitSplineShapeAutoConnectControls () |
static CoreExport void | SetUseEndPointAutoConnect (UINT i) |
static CoreExport UINT | GetUseEndPointAutoConnect () |
static CoreExport void | SetPromptForEndPointAutoConnect (UINT i) |
static CoreExport UINT | GetPromptForEndPointAutoConnect () |
static CoreExport void | SetEndPointAutoWeldThreshold (float f) |
static CoreExport float | GetEndPointAutoWeldThreshold () |
Public Attributes |
|
SingleRefMakerSplineNode * | noderef |
SingleRefMakerSplineMtl * | mtlref |
BezierShape | shape |
int | steps |
BOOL | showVertNumbers |
BOOL | SVNSelectedOnly |
DWORD | esFlags |
NamedVertSelSetList | vselSet |
NamedSegSelSetList | sselSet |
NamedPolySelSetList | pselSet |
MasterPointControl * | masterCont |
Tab< Control * > | cont |
BOOL | showVerts |
BOOL | showSelected |
BOOL | smoothRefineConnect |
BOOL | closedRefineConnect |
BOOL | bindFirst |
BOOL | bindLast |
BOOL | rConnect |
BOOL | useAreaSelect |
float | areaSelect |
SplineKnot | knotPoint1 |
SplineKnot | knotPoint2 |
int | startSegRC |
int | startSegSplineRC |
int | startSplineRC |
int | endSegRC |
int | endSegSplineRC |
int | endSplineRC |
Tab< Point3 > | pointList |
Static Public Attributes |
|
static IObjParam * | ip |
static SplineShape * | editObj |
static SSBindCMode * | bindMode |
static SSRefineConnectCMode * | refineConnectMode |
Protected Member Functions |
|
CoreExport RefResult | NotifyRefChanged (Interval changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message) |
This method will notify the Shape Object of
changes in values in its parameter block. |
|
virtual CoreExport void | SetReference (int i, RefTargetHandle rtarg) |
This method sets the ShapeObject's parameter
block pointer. |
|
Protected Attributes |
|
BOOL | drawTicks |
BOOL | generalUIDisplayed |
Friends |
|
class | SSXFormProc |
class | SSOutlineCMode |
class | SSFilletCMode |
class | SSChamferCMode |
class | SSSegBreakCMode |
class | SSSegRefineCMode |
class | SSCrossInsertCMode |
class | SSVertConnectCMode |
class | SSVertInsertCMode |
class | SSCreateLineCMode |
class | SSCrossSectionCMode |
class | SSBooleanCMode |
class | SSTrimCMode |
class | SSExtendCMode |
class | SSCopyTangentCMode |
class | SSPasteTangentCMode |
class | SSOutlineMouseProc |
class | SSFilletMouseProc |
class | SSChamferMouseProc |
class | SSSegBreakMouseProc |
class | SSSegRefineMouseProc |
class | SSCrossInsertMouseProc |
class | SSVertConnectMouseProc |
class | SSVertInsertMouseProc |
class | SSCreateLineMouseProc |
class | SSBooleanMouseProc |
class | SSTrimMouseProc |
class | SSExtendMouseProc |
class | SplineShapeRestore |
class | SSRightMenu |
class | SSMBackspaceUser |
class | SSIBackspaceUser |
class | SSPickSplineAttach |
class | SSAttachHitByName |
class | SplineShapeClassDesc |
class | SSBindMouseProc |
class | SSBindCMode |
class | SSRefineConnectMouseProc |
class | SSRefineConnectCMode |
class | SSActionCallback |
INT_PTR CALLBACK | SplineGenDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
INT_PTR CALLBACK | SplineSelectDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
INT_PTR CALLBACK | SplineOpsDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
INT_PTR CALLBACK | SplineSurfDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
INT_PTR CALLBACK | SelectByDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
CoreExport SplineShape | ( | ) |
CoreExport SplineShape | ( | SplineShape & | from | ) |
CoreExport ~SplineShape | ( | ) |
CoreExport RefResult NotifyRefChanged | ( | Interval | changeInt, |
RefTargetHandle | hTarget, | ||
PartID & | partID, | ||
RefMessage | message | ||
) | [protected, virtual] |
This method will notify the Shape Object of changes in values in its parameter block.
The ShapeObject's parameter block is reference number zero. If
subclasses implement this method, they should pass any messages
referring to the ShapeObject's parameter block to it. For
example:
If this isn't one of our references, pass it on to the
ShapeObject...
if(hTarget == GetReference(0))
return
ShapeObject::NotifyRefChanged(
changeInt, hTarget, partID, message);
This is a vital part of the mechanism; When a parameter in the
parameter block changes, the
ShapeObject must be able to flush its cached mesh which will no
longer be valid.
changeInt | This is the interval of time over which the message is active. |
hTarget | This is the handle of the reference target the message was sent by. The reference maker uses this handle to know specifically which reference target sent the message. |
partID | This contains information specific to the message passed in. Some messages don't use the partID at all. See the section Reference Messages for more information about the meaning of the partID for some common messages. |
message | The msg parameter passed into this method is the specific message which needs to be handled. See Reference Messages. |
Reimplemented from ShapeObject.
CoreExport void SplineShapeInit | ( | ) |
CoreExport SplineShape& operator= | ( | SplineShape & | from | ) |
void SetFlag | ( | DWORD | fl, |
BOOL | val = TRUE |
||
) | [inline] |
void ClearFlag | ( | DWORD | fl | ) | [inline] |
{ esFlags &= (~fl); }
bool GetFlag | ( | DWORD | fl | ) | [inline] |
{ return (esFlags&fl) ? TRUE : FALSE; }
virtual CoreExport int HitTest | ( | TimeValue | t, |
INode * | inode, | ||
int | type, | ||
int | crossing, | ||
int | flags, | ||
IPoint2 * | p, | ||
ViewExp * | vpt | ||
) | [virtual] |
This method is called to determine if the specified screen point intersects the item.
The method returns nonzero if the item was hit; otherwise 0.
t | The time to perform the hit test. |
inode | A pointer to the node to test. |
type | The type of hit testing to perform. See Scene and Node Hit Test Types. for details. |
crossing | The state of the crossing setting. If TRUE crossing selection is on. |
flags | The hit test flags. See Scene and Node Hit Testing Flags for details. |
p | The screen point to test. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
Reimplemented from BaseObject.
virtual CoreExport int HitTest | ( | TimeValue | t, |
INode * | inode, | ||
int | type, | ||
int | crossing, | ||
int | flags, | ||
IPoint2 * | p, | ||
ViewExp * | vpt, | ||
ModContext * | mc | ||
) | [virtual] |
This method is used in modifier gizmo hit testing.
It is called to determine if the specified screen point intersects the gizmo. The method returns nonzero if the item was hit; otherwise 0.
t | The time to perform the hit test. |
inode | A pointer to the node to test. |
type | The type of hit testing to perform. See Scene and Node Hit Test Types. for details. |
crossing | The state of the crossing setting. If TRUE crossing selection is on. |
flags | The hit test flags. See Scene and Node Hit Testing Flags for details. |
p | The screen point to test. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
mc | A pointer to the modifiers ModContext. |
Reimplemented from BaseObject.
virtual CoreExport void Snap | ( | TimeValue | t, |
INode * | inode, | ||
SnapInfo * | snap, | ||
IPoint2 * | p, | ||
ViewExp * | vpt | ||
) | [virtual] |
Checks the point passed for a snap and updates the SnapInfo structure.
t | The time to check. |
inode | The node to check. |
snap | The snap info structure to update. |
p | The screen point to check. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
Reimplemented from BaseObject.
This method displays the shape's generated mesh if necessary.
Objects derived from
ShapeObject will want to have the
ShapeObject code display the rendering mesh in the viewport;
this method will do that for them. Simply set the viewport
transform and call this method. An example from the SplineShape code: int SplineShape::Display(TimeValue
t, INode *inode,
ViewExp* vpt, int flags)
{
Eval(t);
GraphicsWindow
*gw = vpt->getGW();
gw->setTransform(inode->GetObjectTM(t));
ShapeObject::Display(t, inode, vpt, flags);
...
}
If the ShapeObject's "Display Render Mesh" switch is off, it will
do nothing. Otherwise, it will display the proper mesh as specified
by its parameter block.
t | The time to display the object. |
inode | The node to display. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
flags | See Display Flags. |
Reimplemented from ShapeObject.
virtual CoreExport CreateMouseCallBack* GetCreateMouseCallBack | ( | ) | [virtual] |
This method allows the system to retrieve a callback object used in creating an object in the 3D viewports.
This method returns a pointer to an instance of a class derived from CreateMouseCallBack. This class has a method proc() which is where the programmer defines the user/mouse interaction during the object creation phase.
Implements BaseObject.
virtual CoreExport RefTargetHandle Clone | ( | RemapDir & | remap | ) | [virtual] |
This method is used by 3ds Max to clone an object.
class MyDerivedPlugin : public MyBasePlugin { const int MY_REFERENCE = 1; ReferenceTarget* Clone(RemapDir& remap) { ReferenceTarget* result = new MyDerivedPlugin(); BaseClone(this, result, remap); return result; } void BaseClone(ReferenceTarget* from, ReferenceTarget* to, RemapDir& remap) { if (!to || !from || from == to) return; MyBasePlugin::BaseClone(from, to, remap); to->ReplaceReference(MY_REFERENCE, remap->CloneRef(from->GetReference(MY_REFERENCE))); } };
This method should not be directly called by plug-ins. Instead, either RemapDir::CloneRef() or CloneRefHierachy() should be used to perform cloning. These methods ensure that the mapping from the original object to the clone is added to the RemapDir used for cloning, which may be used during backpatch operations
remap | - A RemapDir instance used for remapping references during a Clone. |
Reimplemented from ReferenceTarget.
CoreExport int Display | ( | TimeValue | t, |
INode * | inode, | ||
ViewExp * | vpt, | ||
int | flags, | ||
ModContext * | mc | ||
) | [virtual] |
When this method is called the plug-in should respond by performing a quick render of the modifier gizmo in viewport using the current TM.
Note for Modifiers: For this method to be called properly, one
must send two reference messages using NotifyDependents. In
BeginEditParams send: NotifyDependents(Interval(t,t), PART_ALL,
REFMSG_MOD_DISPLAY_ON);
In EndEditParams send: NotifyDependents(Interval(t,t), PART_ALL,
REFMSG_MOD_DISPLAY_OFF);
t | The time to display the item. |
inode | The node to render. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
flags | See Display Flags. |
mc | A pointer to the modifiers ModContext. |
Reimplemented from BaseObject.
CoreExport void GetWorldBoundBox | ( | TimeValue | t, |
INode * | inode, | ||
ViewExp * | vpt, | ||
Box3 & | box, | ||
ModContext * | mc | ||
) | [virtual] |
This method computes the world space bounding box of the modifier gizmo (or any object that when in sub-object mode has a gizmo).
t | The time to compute the bounding box. |
inode | The node to calculate the bounding box for. |
vpt | An interface pointer that may be used to call methods associated with the viewports. |
box | The returned bounding box. |
mc | A pointer to the modifiers ModContext. |
Reimplemented from BaseObject.
CoreExport int NumSubObjTypes | ( | ) | [virtual] |
Objects and modifiers that support subobjects have to overwrite this method - as well as GetSubObjType() - and return a class derived from ISubObjType in GetSubObjType().
Developers can use the GenSubObjType for convenience. If the parameter passed into GetSubObjType is -1, the system requests a ISubObjType, for the current SubObjectLevel that flows up the modifier stack. If the subobject selection of the modifier or base object does not affect the subobj selection that flows up the stack, the method must return NULL. See meshsel.cpp for a sample implementation.
Reimplemented from BaseObject.
CoreExport ISubObjType* GetSubObjType | ( | int | i | ) | [virtual] |
Returns a pointer to the sub-object type for the sub-object whose index is passed.
If the parameter i passed is -1 the system requests an ISubObjType for the current SubObjectLevel that flows up the modifier stack. If the subobject selection of the modifier or base object does not affect the sub-object selection that flows up the stack NULL must be returned. See the sample code in /MAXSDK/SAMPLES/MODIFIERS/MESHSEL.CPP.
i | The zero based index of the sub-object type to get. See the remarks above. |
Reimplemented from BaseObject.
CoreExport void Move | ( | TimeValue | t, |
Matrix3 & | partm, | ||
Matrix3 & | tmAxis, | ||
Point3 & | val, | ||
BOOL | localOrigin =
FALSE |
||
) | [virtual] |
When this method is called the plug-in should respond by moving its selected sub-object components.
t | The time of the transformation. |
partm | The 'parent' transformation matrix. This matrix represents a transformation that would take points in the modifier's space and convert them into world space points. This is constructed as the node's transformation matrix times the inverse of the ModContext's transformation matrix. The node whose transformation is used is the node the user clicked on in the scene - modifiers can be instanced so there could be more than one node. |
tmAxis | The matrix that represents the axis system. This is the space in which the transformation is taking place. |
val | This value is a vector with X, Y, and Z representing the movement along each axis. |
localOrigin | When TRUE the transformation is occurring about the sub-object's local origin. |
Reimplemented from BaseObject.
CoreExport void Rotate | ( | TimeValue | t, |
Matrix3 & | partm, | ||
Matrix3 & | tmAxis, | ||
Quat & | val, | ||
BOOL | localOrigin =
FALSE |
||
) | [virtual] |
When this method is called the plug-in should respond by rotating its selected sub-object components.
t | The time of the transformation. |
partm | The 'parent' transformation matrix. This matrix represents a transformation that would take points in the modifier's space and convert them into world space points. This is constructed as the node's transformation matrix times the inverse of the ModContext's transformation matrix. The node whose transformation is used is the node the user clicked on in the scene - modifiers can be instanced so there could be more than one node. |
tmAxis | The matrix that represents the axis system. This is the space in which the transformation is taking place. |
val | The amount to rotate the selected components. |
localOrigin | When TRUE the transformation is occurring about the sub-object's local origin. Note: This information may be passed onto a transform controller (if there is one) so they may avoid generating 0 valued position keys for rotation and scales. For example if the user is rotating an item about anything other than its local origin then it will have to translate in addition to rotating to achieve the result. If a user creates an object, turns on the animate button, and rotates the object about the world origin, and then plays back the animation, the object does not do what the was done interactively. The object ends up in the same position, but it does so by both moving and rotating. Therefore both a position and a rotation key are created. If the user performs a rotation about the local origin however there is no need to create a position key since the object didn't move (it only rotated). So a transform controller can use this information to avoid generating 0 valued position keys for rotation and scales. |
Reimplemented from BaseObject.
CoreExport void Scale | ( | TimeValue | t, |
Matrix3 & | partm, | ||
Matrix3 & | tmAxis, | ||
Point3 & | val, | ||
BOOL | localOrigin =
FALSE |
||
) | [virtual] |
When this method is called the plug-in should respond by scaling its selected sub-object components.
t | The time of the transformation. |
partm | The 'parent' transformation matrix. This matrix represents a transformation that would take points in the modifier's space and convert them into world space points. This is constructed as the node's transformation matrix times the inverse of the ModContext's transformation matrix. The node whose transformation is used is the node the user clicked on in the scene - modifiers can be instanced so there could be more than one node. |
tmAxis | The matrix that represents the axis system. This is the space in which the transformation is taking place. |
val | This value is a vector with X, Y, and Z representing the scale along X, Y, and Z respectively. |
localOrigin | When TRUE the transformation is occurring about the sub-object's local origin. See the note above in the Rotate method. The following methods may be used to receive notification about the starting and ending phases of transforming the item when in sub-object selection. |
Reimplemented from BaseObject.
CoreExport void TransformStart | ( | TimeValue | t | ) | [virtual] |
This method is called before the first Move(), Rotate() or Scale() call and before a hold is in effect.
t | The current time when this method is called. |
Reimplemented from BaseObject.
CoreExport void TransformFinish | ( | TimeValue | t | ) | [virtual] |
This method is called after the user has completed the Move(), Rotate() or Scale() operation and the undo object has been accepted.
t | The current time when this method is called. |
Reimplemented from BaseObject.
CoreExport void TransformCancel | ( | TimeValue | t | ) | [virtual] |
This method is called when the transform operation is canceled by a right-click and the undo has been canceled.
t | The current time when this method is called. |
Reimplemented from BaseObject.
CoreExport ObjectState Eval | ( | TimeValue | t | ) | [virtual] |
This method is called to evaluate the object and return the result as an ObjectState.
When the system has a pointer to an object it doesn't know if it's a procedural object or a derived object. So it calls Eval() on it and gets back an ObjectState. A derived object managed by the system may have to call Eval() on its input for example. A plug-in (like a procedural object) typically just returns itself. A plug-in that does not just return itself is the Morph Object (/MAXSDK/SAMPLES/OBJECTS/MORPHOBJ.CPP). This object uses a morph controller to compute a new object and fill in an ObjectState which it returns.
t | Specifies the time to evaluate the object. |
{ return ObjectState(this); }
Implements Object.
CoreExport Interval ObjectValidity | ( | TimeValue | t | ) | [virtual] |
This method returns the validity interval of the object as a whole at the specified time.
t | The time to compute the validity interval. |
Reimplemented from Object.
CoreExport void MaybeEnlargeViewportRect | ( | GraphicsWindow * | gw, |
Rect & | rect | ||
) | [virtual] |
This method allows the object to enlarge its viewport rectangle, if it wants to.
The system will call this method for all objects when calculating the viewport rectangle; the object can enlarge the rectangle if desired. This is used by the Editable Spline code to allow extra room for vertex serial numbers, which can extend outside the normal bounding rectangle.
gw | Points to the GraphicsWindow associated with the viewport. |
rect | The enlarged rectangle is returned here. |
void SplineShape::MaybeEnlargeViewportRect(GraphicsWindow *gw, Rect &rect) { if(!showVertNumbers) return; MCHAR dummy[256]; SIZE size; int maxverts = -1; for(int i = 0; i < shape.splineCount; ++i) { int verts = shape.splines[i]->KnotCount(); if(verts > maxverts) maxverts = verts; } sprintf(dummy,"%d",maxverts); gw->getTextExtents(dummy, &size); rect.SetW(rect.w() + size.cx); rect.SetY(rect.y() - size.cy); rect.SetH(rect.h() + size.cy); }
Reimplemented from Object.
virtual CoreExport void InitNodeName | ( | MSTR & | s | ) | [virtual] |
This is the default name of the node when it is created.
s | The default name of the node is stored here. |
Reimplemented from ShapeObject.
BOOL SupportsNamedSubSels | ( | ) | [inline, virtual] |
An object that supports sub-object selection can choose to support named sub object selection sets.
Methods in the the interface passed to objects allow them to add items to the sub-object selection set drop down. The following methods are called when the user picks items from the list.
Reimplemented from BaseObject.
{return TRUE;}
CoreExport void ActivateSubSelSet | ( | MSTR & | setName | ) | [virtual] |
When the user chooses a name from the drop down list this method is called.
The plug-in should respond by selecting the set identified by the name passed.
setName | The name of the set to select. |
Reimplemented from BaseObject.
CoreExport void NewSetFromCurSel | ( | MSTR & | setName | ) | [virtual] |
If the user types a new name into the named selection set drop down then this method is called.
The plug-in should respond by creating a new set and give it the specified name.
setName | The name for the selection set. |
Reimplemented from BaseObject.
CoreExport void RemoveSubSelSet | ( | MSTR & | setName | ) | [virtual] |
If the user selects a set from the drop down and then chooses Remove Named Selections from the Edit menu this method is called.
The plug-in should respond by removing the specified selection set.
setName | The selection set to remove. |
Reimplemented from BaseObject.
CoreExport void SetupNamedSelDropDown | ( | ) | [virtual] |
To support the Edit Named Selections dialog, plug-ins must implement this method.
It is called to rebuild the named selection set drop down list. This is usually done by calling Interface::ClearSubObjectNamedSelSets() followed by calls to Interface:: AppendSubObjectNamedSelSet().
Reimplemented from BaseObject.
CoreExport int NumNamedSelSets | ( | ) | [virtual] |
To support the Edit Named Selections dialog, plug-ins must implement this method.
Reimplemented from BaseObject.
CoreExport MSTR GetNamedSelSetName | ( | int | i | ) | [virtual] |
To support the Edit Named Selections dialog, plug-ins must implement this method.
i | The index of the selection set whose name is returned. |
Reimplemented from BaseObject.
CoreExport void SetNamedSelSetName | ( | int | i, |
MSTR & | newName | ||
) | [virtual] |
To support the Edit Named Selections dialog, plug-ins must implement this method.
It sets the name of the selection set whose index is passed to the name passed. Note: Developers need to implement Undo / Redo for modifications to their named selection sets.
i | The index of the selection set whose name is to be set. |
newName | The new name for the selection set the plug-in should store. |
Reimplemented from BaseObject.
To support the Edit Named Selections dialog, plug-ins must implement this method.
The user may bring up the Edit Named Selections dialog via the Edit / Edit Named Selection ... command. This dialog allows the user to create new selection sets using 'boolean' operations to the sets including 'Combine', 'Subtract (A-B)', 'Subtract (B-A)' and 'Intersection'. This method is called on the plug-in to generate a new selection set via one of these operations. This method assumes the developer will append a new seleciton set with the name passed. This will result in two sets with identical names. Then the system will call RemoveSubSelSet() afterwards, so that the first one that is found (the old one, since the new one was appended) will be deleted. Note: Developers need to implement Undo / Redo for modifications to their named selection sets. See /MAXSDK/SAMPLES/MODIFIERS/MESHSEL.CPP for an example.
newName | The new name for the selection set is passed here. |
sets | A table of the selection sets to operate on. There are sets.Count() sets in the table. |
op | One of the following values defined in Arguments for BaseObject::NewSetByOperator() |
Reimplemented from BaseObject.
CoreExport BOOL GetUniqueSetName | ( | MSTR & | name | ) |
CoreExport INT_PTR SelectNamedSet | ( | ) |
CoreExport void NSCopy | ( | ) |
CoreExport void NSPaste | ( | ) |
CoreExport SSNamedSelSetList GetSelSet | ( | ) |
CoreExport Interval ConvertValidity | ( | TimeValue | t | ) |
CoreExport Interval ChannelValidity | ( | TimeValue | t, |
int | nchan | ||
) | [virtual] |
Retrieve the current validity interval for the nchan channel of the object.
t | The time to retrieve the validity interval of the channel. |
nchan | Specifies the channel to return the validity interval of. See Object Channel Indices. |
Reimplemented from Object.
CoreExport void SetChannelValidity | ( | int | nchan, |
Interval | v | ||
) | [virtual] |
Sets the validity interval of the specified channel.
nchan | Specifies the channel. See Object Channel Indices |
v | The validity interval for the channel. |
Reimplemented from Object.
CoreExport void InvalidateChannels | ( | ChannelMask | channels | ) | [virtual] |
This method invalidates the intervals for the given channel mask.
This just sets the validity intervals to empty (calling SetEmpty() on the interval).
channels | Specifies the channels to invalidate. |
Reimplemented from Object.
int IsDeformable | ( | ) | [inline, virtual] |
Indicates whether this object is deformable.
A deformable object is simply an object with points that can be modified. Deformable objects must implement the generic deformable object methods (NumPoints(), GetPoint(i), SetPoint(i), Deform()). A deformable object is simply an object with points that can be modified. These points can be stored in any form the object wants. They are accessed through a virtual array interface with methods to get and set the 'i-th' point. If an object has tangents for instance, it would convert them to and from points as necessary. For example, a simple Bezier spline object that stored its control handles relative to the knot would convert them to be absolute when GetPoint() was called with 'i' specifying one of the control points. When the control point is later set, the object can convert it back to be relative to its knot. At this point it could also apply any constraints that it may have, such as maintaining a degree of continuity. The idea is that the entity calling GetPoint(i) and SetPoint(i) doesn't care what the point represents. It will simply apply some function to the point.
Reimplemented from Object.
{ return 1; }
CoreExport int NumPoints | ( | ) | [virtual] |
The points of a deformable object are accessed through a virtual array interface.
This method specifies the number of points in the object. The meaning of 'points' is defined by the object. A TriObject uses the vertices as the points for example. b>
Reimplemented from Object.
CoreExport Point3 GetPoint | ( | int | i | ) | [virtual] |
The points of a deformable object are accessed through a virtual array interface.
This method returns the 'i-th' point of the object.
i | Specifies which point should be returned. |
Reimplemented from Object.
CoreExport void SetPoint | ( | int | i, |
const Point3 & | p | ||
) | [virtual] |
The points of a deformable object are accessed through a virtual array interface.
This method stores the 'i-th' point of the object.
i | The index of the point to store. |
p | The point to store. |
Reimplemented from Object.
CoreExport BOOL IsPointSelected | ( | int | i | ) | [virtual] |
Returns TRUE if the 'i-th' point is selected; otherwise FALSE.
i | The zero based index of the point to check. |
Reimplemented from Object.
CoreExport void PointsWereChanged | ( | ) | [virtual] |
Informs the object that its points have been deformed, so it can invalidate its cache.
A developer who uses the GetPoint() / SetPoint() approach to modifying an object will call PointsWereChanged() to invalidate the object's cache. For example, if a modifier calls SetPoint(), when it is finished it should call this method so the object can invalidate and/or update its bounding box and any other data it might cache.
Reimplemented from Object.
CoreExport void GetDeformBBox | ( | TimeValue | t, |
Box3 & | box, | ||
Matrix3 * | tm = NULL , |
||
BOOL | useSel =
FALSE |
||
) | [virtual] |
This method computes the bounding box in the objects local coordinates or the optional space defined by tm.
Note: If you are looking for a precise bounding box, use this method and pass in the node's object TM (INode::GetObjectTM()) as the matrix.
t | The time to compute the box. |
box | A reference to a box the result is stored in. |
tm | This is an alternate coordinate system used to compute the box. If the tm is not NULL this matrix should be used in the computation of the result. |
useSel | If TRUE, the bounding box of selected sub-elements should be computed; otherwise the entire object should be used. |
Reimplemented from Object.
CoreExport void Deform | ( | Deformer * | defProc, |
int | useSel | ||
) | [virtual] |
This is the method used to deform the object with a deformer.
The developer should loop through the object's points calling the defProc for each point (or each selected point if useSel is nonzero). The Deform() method is mostly a convenience. Modifiers can implement a 'Deformer' callback object which is passed to the Deform() method. The object then iterates through its points calling their deformer's callback for each point. The only difference between using the Deform() method as opposed to iterating through the points is that the Deform() method should respect sub-object selection. For example, the TriObject's implementation of Deform() iterates through its vertices, if the TriObject's selection level is set to vertex then it only calls the Deformer's callback for vertices that are selected. This way modifiers can be written that can be applied only to selection sets without any specific code to check selected points. The default implementation of this method just iterates through all points using GetPoint(i) and SetPoint(i). If an object supports sub-object selection sets then it should override this method.
defProc | A pointer to an instance of the Deformer class. This is the callback object that actually performs the deformation. |
useSel | A flag to indicate if the object should use the selected points only. If nonzero the selected points are used; otherwise all the points of the object are used. |
void Object::Deform(Deformer *defProc,int useSel) { int nv = NumPoints(); for (int i=0; i<nv; i++) SetPoint(i,defProc->Map(i,GetPoint(i))); PointsWereChanged(); }
void TriObject::Deform(Deformer *defProc,int useSel) { int nv = NumPoints(); int i; if ( useSel ) { BitArray sel = mesh.VertexTempSel(); float *vssel = mesh.getVSelectionWeights (); if (vssel) { for (i=0; i<nv; i++) { if(sel[i]) { SetPoint(i,defProc->Map(i,GetPoint(i))); continue; } if (vssel[i]==0) continue; Point3 & A = GetPoint(i); Point3 dir = defProc->Map(i,A) - A; SetPoint(i,A+vssel[i]*dir); } } else { for (i=0; i<nv; i++) if (sel[i]) SetPoint(i,defProc->Map(i,GetPoint(i))); } } else { for (i=0; i<nv; i++) SetPoint(i,defProc->Map(i,GetPoint(i))); } PointsWereChanged(); }
Reimplemented from Object.
CoreExport int CanConvertToType | ( | Class_ID | obtype | ) | [virtual] |
Indicates whether the object can be converted to the specified type.
If the object returns nonzero to indicate it can be converted to the specified type, it must handle converting to and returning an object of that type from ConvertToType().
obtype | The Class_ID of the type of object to convert to. See Class Class_ID, List of Class_IDs. |
Reimplemented from Object.
This method converts this object to the type specified and returns a pointer it.
Note that if ConvertToType() returns a new object it should be a completely different object with no ties (pointers or references) to the original.
if (os->GetTM()) { Matrix3 tm = *(os->GetTM()); for (int i=0; i<triOb->mesh.getNumVerts(); i++) { triOb->mesh.verts[i] = triOb->mesh.verts[i] *tm; } os->obj->UpdateValidity(GEOM_CHAN_NUM,os->tmValid()); os->SetTM(NULL,FOREVER); }
t | The time at which to convert. |
obtype | The Class_ID of the type of object to convert to. See Class Class_ID, List of Class_IDs. |
// Retrieve the TriObject from the node int deleteIt; TriObject *triObject = GetTriObjectFromNode(ip->GetSelNode(0),deleteIt); // Use the TriObject if available if (!triObject) return; // ... // Delete it when done... if (deleteIt) triObject->DeleteMe(); // Return a pointer to a TriObject given an INode or return NULL // if the node cannot be converted to a TriObject TriObject *Utility::GetTriObjectFromNode(INode *node, int &deleteIt) { deleteIt = FALSE; Object *obj = node->EvalWorldState(0).obj; if (obj->CanConvertToType(Class_ID(TRIOBJ_CLASS_ID, 0))) { TriObject *tri = (TriObject *) obj->ConvertToType(0,Class_ID(TRIOBJ_CLASS_ID, 0)); // Note that the TriObject should only be deleted // if the pointer to it is not equal to the object // pointer that called ConvertToType() if (obj != tri) deleteIt = TRUE; return tri; } else { return NULL; } }
Reimplemented from Object.
When the user clicks on the Edit Stack button in the modify branch a list of 'Convert To:' types is presented.
The use may click on one of these choices to collapse the object into one of these types (for instance, an Editable Mesh or an Editable NURBS object). This method returns a list of Class_IDs and descriptive strings that specify the allowable types of objects that this object may be collapsed into. Note: Most plug-ins call the base class method in Object in their implementation of this method. The base class implementation provided by Object checks if the object can convert to both an editable mesh and an editable spline. If it can, these are added to the allowable types.
clist | The table of allowable Class_IDs. |
nlist | The table of pointers to strings that correspond to the table of Class_IDs above. |
void SphereObject::GetCollapseTypes(Tab<Class_ID> &clist,Tab<MSTR*>&nlist) { Object::GetCollapseTypes(clist, nlist); Class_ID id = EDITABLE_SURF_CLASS_ID; MSTR *name = new MSTR(GetString(IDS_SM_NURBS_SURFACE)); clist.Append(1,&id); nlist.Append(1,&name); }
Reimplemented from Object.
CoreExport void FreeChannels | ( | ChannelMask | channels | ) | [virtual] |
This method deletes the memory associated with the specified channels and set the intervals associated with the channels to invalid (empty).
channels | Specifies the channels to free. |
Reimplemented from Object.
CoreExport Object* MakeShallowCopy | ( | ChannelMask | channels | ) | [virtual] |
This method must make a copy of its "shell" and then shallow copy (see below) only the specified channels.
It must also copy the validity intervals of the copied channels, and invalidate the other intervals.
channels | The channels to copy. |
Reimplemented from Object.
CoreExport void ShallowCopy | ( | Object * | fromOb, |
ChannelMask | channels | ||
) | [virtual] |
This method copies the specified channels from the fromOb to this and copies the validity intervals.
A plug-in needs to copy the specified channels from the specified object fromOb to itself by just copying pointers (not actually copying the data). No new memory is typically allocated, this method is just copying the pointers.
fromOb | Object to copy the channels from. |
channels | Channels to copy. |
Reimplemented from Object.
CoreExport void NewAndCopyChannels | ( | ChannelMask | channels | ) | [virtual] |
This method replaces the locked channels with newly allocated copies.
It will only be called if the channel is locked.
channels | The channels to be allocate and copy. |
Reimplemented from Object.
CoreExport DWORD GetSubselState | ( | ) | [virtual] |
For objects that have sub selection levels, this method returns the current selection level of the object.
For example, a TriObject has the following selection levels: object, vertex, face, edge. Other object types may have different selection levels. The only standard is that a value of 0 indicates object level. b>
Reimplemented from Object.
CoreExport ObjectHandle CreateTriObjRep | ( | TimeValue | t | ) |
This method returns the world space bounding box for Objects (see below for the Sub-object gizmo or Modifiers gizmo version).
The bounding box returned by this method does not need to be precise. It should however be calculated rapidly. The object can handle this by transforming the 8 points of its local bounding box into world space and take the minimums and maximums of the result. Although this isn't necessarily the tightest bounding box of the objects points in world space, it is close enough.
t | The time to compute the bounding box. |
inode | The node to calculate the bounding box for. |
vp | An interface pointer that can be used to call methods associated with the viewports. |
box | Contains the returned bounding box. |
Reimplemented from BaseObject.
This is the object space bounding box, the box in the object's local coordinates.
The system expects that requesting the object space bounding box will be fast.
t | The time to retrieve the bounding box. |
inode | The node to calculate the bounding box for. |
vp | An interface pointer that may be used to call methods associated with the viewports. |
box | Contains the returned bounding box. |
Reimplemented from BaseObject.
CoreExport int NumberOfVertices | ( | TimeValue | t, |
int | curve | ||
) | [virtual] |
This method is used by the Summary Info and Object Properties dialogs to inform the user how many vertices or CVs are in the object.
The method is passed a TimeValue and a curve index; if the curve index is <0, the function should return the number of vertices/CVs in the entire shape. Otherwise, it should return the number of vertices/CVs in the specified curve.
t | The time at which the number of vertices is to be computed. |
curve | The curve index. See note above. |
Reimplemented from ShapeObject.
CoreExport int NumberOfCurves | ( | ) | [virtual] |
CoreExport BOOL CurveClosed | ( | TimeValue | t, |
int | curve | ||
) | [virtual] |
This method is called to determine if the specified curve of the shape is closed at the time passed.
t | The time to check. |
curve | The index of the curve to check. |
Implements ShapeObject.
CoreExport Point3 InterpCurve3D | ( | TimeValue | t, |
int | curve, | ||
float | param, | ||
int | ptype =
PARAM_SIMPLE |
||
) | [virtual] |
This method returns a point interpolated on the entire curve.
This method returns the point but you don't know which segment the point falls on. See method InterpPiece3D().
t | The time to evaluate. |
curve | The index of the curve to evaluate. |
param | The 'distance' along the curve where 0 is the start and 1 is the end. |
ptype | The parameter type for spline interpolation. See List of Parameter Types for Shape Interpolation. |
Implements ShapeObject.
CoreExport Point3 TangentCurve3D | ( | TimeValue | t, |
int | curve, | ||
float | param, | ||
int | ptype =
PARAM_SIMPLE |
||
) | [virtual] |
This method returns a tangent vector interpolated on the entire curve.
Also see method TangentPiece3D().
t | The time at which to evaluate the curve. |
curve | The index of the curve to evaluate. |
param | The 'distance' along the curve where 0.0 is the start and 1.0
is the end. int ptype=PARAM_SIMPLE The parameter type for spline interpolation. See List of Parameter Types for Shape Interpolation. |
Implements ShapeObject.
CoreExport float LengthOfCurve | ( | TimeValue | t, |
int | curve | ||
) | [virtual] |
Returns the length of the specified curve.
Note: This method makes no allowance for non-uniform scaling in the object transform. To do that, see the following code fragment (os is the ObjectState with the shape object and xfm is the NodeTM of the shape object node).
if (os.obj->SuperClassID() == SHAPE_CLASS_ID) { ShapeObject *sobj; sobj = (ShapeObject *) os.obj; int cct = sobj->NumberOfCurves(); PolyShape workShape; sobj->MakePolyShape(ip->GetTime(), workShape); workShape.Transform(xfm); float len = 0.0f; for (int i=0; i<cct; i++) len += workShape.lines[i].CurveLength(); }
t | The time at which to compute the length. |
curve | The index of the curve. |
Implements ShapeObject.
CoreExport int NumberOfPieces | ( | TimeValue | t, |
int | curve | ||
) | [virtual] |
Returns the number of sub-curves in a curve.
t | The time at which to check. |
curve | The index of the curve. |
Implements ShapeObject.
CoreExport Point3 InterpPiece3D | ( | TimeValue | t, |
int | curve, | ||
int | piece, | ||
float | param, | ||
int | ptype =
PARAM_SIMPLE |
||
) | [virtual] |
This method returns the interpolated point along the specified sub-curve (segment).
For example consider a shape that is a single circle with four knots. If you called this method with curve=0 and piece=0 and param=0.0 you'd get back the point at knot 0. If you passed the same parameters except param=1.0 you'd get back the point at knot 1.
t | The time to evaluate the sub-curve. |
curve | The curve to evaluate. |
piece | The segment to evaluate. |
param | The position along the curve to return where 0.0 is the start and 1.0 is the end. |
ptype | The parameter type for spline interpolation. See List of Parameter Types for Shape Interpolation. |
Implements ShapeObject.
CoreExport Point3 TangentPiece3D | ( | TimeValue | t, |
int | curve, | ||
int | piece, | ||
float | param, | ||
int | ptype =
PARAM_SIMPLE |
||
) | [virtual] |
Returns the tangent vector on a sub-curve at the specified 'distance' along the curve.
t | The time to evaluate the sub-curve. |
curve | The curve to evaluate. |
piece | The sub-curve (segment) to evaluate. |
param | The position along the curve to return where 0 is the start and 1 is the end. |
ptype | The parameter type for spline interpolation. See List of Parameter Types for Shape Interpolation. |
Implements ShapeObject.
CoreExport MtlID GetMatID | ( | TimeValue | t, |
int | curve, | ||
int | piece | ||
) | [virtual] |
This method provides access to the material IDs of the shape.
It returns the material ID of the specified segment of the specified curve of this shape at the time passed. There is a default implementation so there is no need to implement this method if the shape does not support material IDs. Note: typedef unsigned short MtlID;
t | The time to evaluate the sub-curve. |
curve | The zero based index of the curve to evaluate. |
piece | The sub-curve (segment) to evaluate. |
Reimplemented from ShapeObject.
BOOL CanMakeBezier | ( | ) | [inline, virtual] |
This method is called to determine if the shape can be converted to a bezier representation.
Reimplemented from ShapeObject.
{ return TRUE; }
CoreExport void MakeBezier | ( | TimeValue | t, |
BezierShape & | shape | ||
) | [virtual] |
Creates the bezier representation of the shape.
t | The time to convert. |
shape | The bezier representation is stored here. |
Reimplemented from ShapeObject.
CoreExport ShapeHierarchy& OrganizeCurves | ( | TimeValue | t, |
ShapeHierarchy * | hier = NULL |
||
) | [virtual] |
This method is called to prepare the shape for lofting, extrusion, etc.
This methods looks at the shape organization, and puts together a shape hierarchy. This provides information on how the shapes are nested.
t | The time to organize the curves. |
hier | This class provides information about the hierarchy. See Class ShapeHierarchy. |
Implements ShapeObject.
CoreExport void MakePolyShape | ( | TimeValue | t, |
PolyShape & | shape, | ||
int | steps =
PSHAPE_BUILTIN_STEPS , |
||
BOOL | optimize =
FALSE |
||
) | [virtual] |
Create a PolyShape representation with optional fixed steps.
t | The time to make the PolyShape. |
shape | The PolyShape representation is stored here. |
steps | The number of steps between knots. Values >=0 indicates the
use of fixed steps: PSHAPE_BUILTIN_STEPS Use the shape's built-in steps/adaptive settings (default). PSHAPE_ADAPTIVE_STEPS Force adaptive steps. |
optimize | If TRUE intermediate steps are removed from linear segments. |
Implements ShapeObject.
CoreExport int MakeCap | ( | TimeValue | t, |
MeshCapInfo & | capInfo, | ||
int | capType | ||
) | [virtual] |
This method generates a mesh capping info for the shape.
t | The time to create the cap info. |
capInfo | The cap info to update. |
capType | See Shape Capping Types. |
Implements ShapeObject.
CoreExport int MakeCap | ( | TimeValue | t, |
PatchCapInfo & | capInfo | ||
) | [virtual] |
This method creates a patch cap info out of the shape.
Only implement this method if CanMakeBezier() returns TRUE.
t | The time to create the cap info. |
capInfo | The cap info to update. |
Reimplemented from ShapeObject.
BezierShape& GetShape | ( | ) | [inline] |
{ return shape; }
CoreExport void DeleteThis | ( | ) | [virtual] |
Deletes an instance of this class.
3ds Max calls this method when it needs to delete a plugin object (an instance of a class derived from Animatable). Similarly, plugins that need to delete instances of an Animatable or a class directly derived from it via an Animatable pointer, should call this method instead of calling directly operator delete. Following these rules will ensure that the same memory manager is used to allocate and deallocate the object. The default implementation of this method deletes the object. Plugin instances that never need to be deleted from the heap can overwrite this method to do nothing.
Reimplemented from Animatable.
void FreeCaches | ( | ) | [inline, virtual] |
Reimplemented from Animatable.
{ shape.InvalidateGeomCache(); }
virtual Class_ID ClassID | ( | ) | [inline, virtual] |
Retrieves a constant that uniquely identifies the plugin class.
This method must return the unique ID for the plugin class. If two ClassIDs conflict, the system will only load the first conflicting one it finds. A program (gencid.exe) is provided to generate unique class id values.
Reimplemented from Animatable.
{ return splineShapeClassID; }
virtual CoreExport void GetClassName | ( | MSTR & | s | ) | [virtual] |
Retrieves the name of the plugin class.
This name is usually used internally for debugging purposes. For Material plug-ins this method is used to put up the material "type" name in the Material Editor.
s | Reference to a string filled in with the name of the plugin class |
Reimplemented from ReferenceTarget.
CoreExport void* GetInterface | ( | ULONG | id | ) | [virtual] |
Inherited from Animatable.
Returns a pointer to the interface.
id | - The id of the interface. |
Reimplemented from ShapeObject.
virtual CoreExport MCHAR* GetObjectName | ( | ) | [virtual] |
Reimplemented from BaseObject.
CoreExport int NumSubs | ( | ) | [virtual] |
Reimplemented from ShapeObject.
CoreExport Animatable* SubAnim | ( | int | i | ) | [virtual] |
This method returns the ShapeObject's animatable pointer.
Derived classes implementing this method must pass on references
to index 0 to the
ShapeObject. For example:: Animatable* SomeShape::SubAnim(int
i) {
if(i == 0) return ShapeObject::SubAnim(i);
}
i | This is the index of the sub-anim to return. |
Reimplemented from ShapeObject.
CoreExport MSTR SubAnimName | ( | int | i | ) | [virtual] |
This method returns the name of the animatable's name.
Derived classes implementing this method must pass on references
to index 0 to the
ShapeObject. For example: MSTR SomeShape::SubAnimName(int i)
{
if(i == 0) return ShapeObject::SubAnimName(i);
}
i | This is the index of the sub-anim's name to return. |
Reimplemented from ShapeObject.
CoreExport BOOL AssignController | ( | Animatable * | control, |
int | subAnim | ||
) | [virtual] |
control | The controller to assign. |
subAnim | The index of the sub-anim to assign the controller to. |
Reimplemented from Animatable.
int SubNumToRefNum | ( | int | subNum | ) | [inline, virtual] |
subNum | The anim index to return the corresponding reference index of. |
Reimplemented from Animatable.
{return subNum;}
CoreExport BOOL SelectSubAnim | ( | int | subNum | ) | [virtual] |
subNum | The index of the sub-anim that was clicked on. |
Reimplemented from Animatable.
CoreExport void RescaleWorldUnits | ( | float | f | ) | [virtual] |
Implemented by the System.
Objects derived from this class which have RescaleWorldUnits methods implemented need to call this method. The following example is the SplineShape implementation of this method from core.
void SplineShape::RescaleWorldUnits(float f) { if (TestAFlag(A_WORK1)) return; // Call the base class's rescale (this sets the A_WORK1 flag) ShapeObject::RescaleWorldUnits(f); // Now rescale stuff inside our data structures Matrix3 stm = ScaleMatrix(Point3(f, f, f)); shape.Transform(stm); }
Note that the A_WORK1 flags is tested first to be sure it isn't processing the rescale twice. The code then calls ShapeObject::RescaleWorldUnits, which sets the A_WORK1 flag and performs the necessary rescale methods for all references for the object, and scales the renderable thickness value.
f | The parameter to scale. |
Reimplemented from ShapeObject.
CoreExport int RemapRefOnLoad | ( | int | iref | ) | [virtual] |
This method remaps references at load time so that files saved from previous versions of 3ds Max get their references adjusted properly to allow for the new ShapeObject reference.
If derived classes implement this method, they must properly
pass on the call to the ShapeObject's code. An example from the
SplineShape code:
int
SplineShape::RemapRefOnLoad(int iref) {
Have the
ShapeObject do its thing first...
iref = ShapeObject::RemapRefOnLoad(iref);
if(loadRefVersion == ES_REF_VER_0)
return iref+1;
return iref;
}
Note that the SplineShape first calls ShapeObject's
remapper, then applies its remapping operation to the index
returned by the
ShapeObject code. IMPORTANT NOTE: For this remapping to operate
properly, the derived class MUST call ShapeObject::Save as the first
thing in its ::Save method, and must call ShapeObject::Load as the first
thing in its ::Load method. This allows the
ShapeObject to determine file versions and the need for
remapping references.
iref | The input index of the reference. |
Reimplemented from ShapeObject.
CoreExport int NumRefs | ( | ) | [virtual] |
The ShapeObject makes 1 reference; this is where it tells the system.
Any derived classes implementing this method must take this into
account when returning the number of references they make. A good
idea is to implement NumRefs in derived classes as: Int
SomeShape::NumRefs() {
return myNumRefs +
ShapeObject::NumRefs();
}
Reimplemented from ShapeObject.
CoreExport RefTargetHandle GetReference | ( | int | i | ) | [virtual] |
This method allows the ShapeObject to return a pointer to its parameter block.
Any subclasses implementing this method must pass on the call if it indicates the ShapeObject's reference. For example:
>RefTargetHandle SomeShape::GetReference(int i) { If(i == 0) return ShapeObject::GetReference(i); }
i | The reference handle to retrieve. |
Reimplemented from ShapeObject.
virtual CoreExport void SetReference | ( | int | i, |
RefTargetHandle | rtarg | ||
) | [protected, virtual] |
This method sets the ShapeObject's parameter block pointer.
Any subclasses implementing this method must pass on the call to
the
ShapeObject if it refers to index 0. For example: void
SomeShape::SetReference(int i, RefTargetHandle rtarg) {
if(i == 0) ShapeObject::SetReference(i, rtarg);
}
i | The virtual array index of the reference to store. |
rtarg | The reference handle to store. |
Reimplemented from ShapeObject.
CoreExport void CreateContArray | ( | ) |
CoreExport void SynchContArray | ( | ) |
CoreExport void AllocContArray | ( | int | count | ) |
CoreExport void InsertPointConts | ( | int | index, |
int | count | ||
) |
CoreExport void DeletePointConts | ( | BitArray & | set | ) |
CoreExport void ReversePointConts | ( | int | index, |
int | count, | ||
BOOL | keepFirst | ||
) |
CoreExport void NullPointConts | ( | int | index, |
int | count | ||
) |
CoreExport void NullPolyPointConts | ( | int | poly | ) |
CoreExport void PlugControllersSel | ( | TimeValue | t | ) |
CoreExport BOOL PlugControl | ( | TimeValue | t, |
int | i | ||
) |
CoreExport void SetPtCont | ( | int | i, |
Control * | c | ||
) |
CoreExport void SetPointAnim | ( | TimeValue | t, |
int | poly, | ||
int | vert, | ||
Point3 | pt | ||
) |
CoreExport BOOL CloneVertCont | ( | int | from, |
int | to | ||
) |
CoreExport void SetRollupPage | ( | IObjParam * | ip, |
BOOL | creating | ||
) |
CoreExport void RemoveRollupPage | ( | IObjParam * | ip | ) |
virtual CoreExport void BeginEditParams | ( | IObjParam * | ip, |
ULONG | flags, | ||
Animatable * | prev | ||
) | [virtual] |
This method allows the ShapeObject to create its new "Rendering" rollup.
To use it, the derived class simply calls it first thing in its
own BeginEditParams method. An example from the SplineShape code:
void
SplineShape::BeginEditParams(IObjParam *ip, ULONG flags,Animatable prev )
{
ShapeObject::BeginEditParams(ip, flags, prev);
...
}
ip | The interface pointer passed to the plug-in. |
flags | The flags passed along to the plug-in in Animatable::BeginEditParams(). |
prev | The pointer passed to the plug-in in Animatable::BeginEditParams(). |
Reimplemented from ShapeObject.
virtual CoreExport void EndEditParams | ( | IObjParam * | ip, |
ULONG | flags, | ||
Animatable * | next | ||
) | [virtual] |
Similarly to BeginEditParams, this method allows the ShapeObject to remove its "Rendering" rollup.
A derived class simply calls this first thing in its own
EndEditParams. An example from the SplineShape code: void
SplineShape::EndEditParams( IObjParam *ip, ULONG flags,Animatable next )
{
ShapeObject::EndEditParams(ip, flags, next);
...
}
ip | The interface pointer passed to the plug-in. |
flags | The flags passed along to the plug-in in Animatable::BeginEditParams(). |
prev | The pointer passed to the plug-in in Animatable::BeginEditParams(). |
Reimplemented from ShapeObject.
CoreExport int GetSubobjectLevel | ( | ) |
CoreExport void SetSubobjectLevel | ( | int | level | ) |
CoreExport void ActivateSubobjSel | ( | int | level, |
XFormModes & | modes | ||
) | [virtual] |
When the user changes the selection of the sub-object drop down, this method is called to notify the plug-in.
This method should provide instances of a class derived from CommandMode to support move, rotate, non-uniform scale, uniform scale, and squash modes. These modes replace their object mode counterparts however the user still uses the move/rotate/scale tool buttons in the toolbar to activate them. If a certain level of sub-object selection does not support one or more of the modes NULL may be passed. If NULL is specified the corresponding toolbar button will be grayed out.
level | The sub-object selection level the command modes should be set to support. A level of 0 indicates object level selection. If level is greater than or equal to 1 the index refers to the types registered by the object in the order they appeared in the list when registered by Interface::RegisterSubObjectTypes(). See Class Interface. |
modes | The command modes to support |
void SimpleMod::ActivateSubobjSel(int level, XFormModes& modes) { switch ( level ) { case 1: // Modifier box modes = XFormModes(moveMode,rotMode,nuscaleMode,uscaleMode,squashMode,NULL); break; case 2: // Modifier Center modes = XFormModes(moveMode,NULL,NULL,NULL,NULL,NULL); break; } NotifyDependents(FOREVER,PART_DISPLAY,REFMSG_CHANGE); }
Reimplemented from BaseObject.
int NeedUseSubselButton | ( | ) | [inline] |
{ return 0; }
CoreExport void SelectSubComponent | ( | HitRecord * | hitRec, |
BOOL | selected, | ||
BOOL | all, | ||
BOOL | invert | ||
) | [virtual] |
This method is called to change the selection state of the component identified by hitRec.
hitRec | Identifies the component whose selected state should be set. See Class HitRecord . |
selected | TRUE if the item should be selected; FALSE if the item should be de-selected. |
all | TRUE if all components in the HitRecord chain should be selected; FALSE if only the top-level HitRecord should be selected. (A HitRecord contains a Next() pointer; typically you want to do whatever you're doing to all the Next()'s until Next() returns NULL). |
invert | This is set to TRUE when all is also set to TRUE and the user is holding down the Shift key while region selecting in select mode. This indicates the items hit in the region should have their selection state inverted |
Reimplemented from BaseObject.
CoreExport void ClearSelection | ( | int | selLevel | ) | [virtual] |
This method is called to clear the selection for the given sub-object level.
All sub-object elements of this type should be deselected. This will be called when the user chooses Select None from the 3ds Max Edit menu.
selLevel | Specifies the selection level to clear. |
Reimplemented from BaseObject.
CoreExport void SelectAll | ( | int | selLevel | ) | [virtual] |
This method is called to select every element of the given sub-object level.
This will be called when the user chooses Select All from the 3ds Max Edit menu.
selLevel | Specifies the selection level to select. |
Reimplemented from BaseObject.
CoreExport void InvertSelection | ( | int | selLevel | ) | [virtual] |
This method is called to invert the specified sub-object level.
If the element is selected it should be deselected. If it's deselected it should be selected. This will be called when the user chooses Select Invert from the 3ds Max Edit menu.
selLevel | Specifies the selection level to invert. |
Reimplemented from BaseObject.
CoreExport void GetSubObjectCenters | ( | SubObjAxisCallback * | cb, |
TimeValue | t, | ||
INode * | node, | ||
ModContext * | mc | ||
) | [virtual] |
When the user is in a sub-object selection level, the system needs to get the reference coordinate system definition from the current modifier being edited so that it can display the axis.
This method specifies the position of the center. The plug-in enumerates its centers and calls the callback cb once for each.
cb | The callback object whose methods may be called. See Class SubObjAxisCallback. |
t | The time to enumerate the centers. |
node | A pointer to the node. |
mc | A pointer to the ModContext. |
Reimplemented from BaseObject.
CoreExport void GetSubObjectTMs | ( | SubObjAxisCallback * | cb, |
TimeValue | t, | ||
INode * | node, | ||
ModContext * | mc | ||
) | [virtual] |
When the user is in a sub-object selection level, the system needs to get the reference coordinate system definition from the current modifier being edited so that it can display the axis.
This method returns the axis system of the reference coordinate system. The plug-in enumerates its TMs and calls the callback cb once for each. See Sub-Object Coordinate Systems.
cb | The callback object whose methods may be called. |
t | The time to enumerate the TMs. |
node | A pointer to the node. |
mc | A pointer to the ModContext. |
Reimplemented from BaseObject.
CoreExport void ShowEndResultChanged | ( | BOOL | showEndResult | ) | [virtual] |
This method notifies the BaseObject that the end result display has been switched (the "Show End Result" button has been toggled).
Sometimes this is needed for display changes. This method is
implemented in Edit
Mesh, which uses it as shown below: void
EditMeshMod::ShowEndResultChanged(BOOL showEndResult) {
NotifyDependents(FOREVER, PART_DISPLAY, REFMSG_CHANGE);
}
This allows the Edit
Mesh modifier to update itself in repsonse to a user click of
the "Show End Result" button in the modifier panel.
showEndResult | TRUE if Show End Result is on; FALSE if off. |
Reimplemented from BaseObject.
CoreExport int SubObjectIndex | ( | HitRecord * | hitRec | ) | [virtual] |
Returns the index of the sub-object element identified by the HitRecord hitRec.
See Class HitRecord. The sub-object index identifies a sub-object component. The relationship between the index and the component is established by the modifier. For example an edit modifier may allow the user to select a group of faces and these groups of faces may be identified as group 0, group 1, group 2, etc. Given a hit record that identifies a face, the edit modifier's implementation of this method would return the group index that the face belonged to.
Reimplemented from BaseObject.
CoreExport void MultiAttachObject | ( | INodeTab & | nodeTab | ) |
CoreExport void BeginOutlineMove | ( | TimeValue | t | ) |
CoreExport void BeginFilletMove | ( | TimeValue | t | ) |
CoreExport void BeginChamferMove | ( | TimeValue | t | ) |
CoreExport void OutlineMove | ( | TimeValue | t, |
float | amount | ||
) |
CoreExport void FilletMove | ( | TimeValue | t, |
float | amount | ||
) |
CoreExport void ChamferMove | ( | TimeValue | t, |
float | amount | ||
) |
CoreExport void EndMoveModes | ( | TimeValue | t, |
BOOL | accept =
TRUE |
||
) |
CoreExport void EndOutlineMove | ( | TimeValue | t, |
BOOL | accept =
TRUE |
||
) |
CoreExport void EndFilletMove | ( | TimeValue | t, |
BOOL | accept =
TRUE |
||
) |
CoreExport void EndChamferMove | ( | TimeValue | t, |
BOOL | accept =
TRUE |
||
) |
CoreExport void StartOutlineMode | ( | ) |
CoreExport void StartFilletMode | ( | ) |
CoreExport void StartChamferMode | ( | ) |
CoreExport void DoOutline | ( | ) |
CoreExport void DoFillet | ( | ) |
CoreExport void DoChamfer | ( | ) |
CoreExport void StartSegBreakMode | ( | ) |
CoreExport void DoSegBreak | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly, | ||
int | seg, | ||
IPoint2 | p, | ||
INode * | inode = NULL |
||
) |
CoreExport void StartSegRefineMode | ( | ) |
CoreExport void DoSegRefine | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly, | ||
int | seg, | ||
IPoint2 | p, | ||
INode * | inode = NULL |
||
) |
CoreExport void StartCrossInsertMode | ( | ) |
CoreExport void DoCrossInsert | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly1, | ||
int | seg1, | ||
int | poly2, | ||
int | seg2, | ||
IPoint2 | p | ||
) |
CoreExport void StartVertConnectMode | ( | ) |
CoreExport void DoVertConnect | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly1, | ||
int | vert1, | ||
int | poly2, | ||
int | vert2 | ||
) |
CoreExport void StartVertInsertMode | ( | int | controlID | ) |
CoreExport int StartVertInsert | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly, | ||
int | seg, | ||
int | vert, | ||
INode * | inode = NULL |
||
) |
CoreExport void EndVertInsert | ( | BOOL | acceptUndo | ) |
CoreExport void StartCreateLineMode | ( | ) |
CoreExport BOOL StartCreateLine | ( | BezierShape ** | shape | ) |
CoreExport void EndCreateLine | ( | ) |
CoreExport void StartCrossSectionMode | ( | ) |
this has the same effect as pressing the Cross Section button in the Spline's Geometry rollout
CoreExport void StartCrossSection | ( | ) |
should be used before a sequence of calls to DoCrossSection()
CoreExport void EndCrossSection | ( | BOOL | acceptUndo | ) |
should be used after a sequence of calls to DoCrossSection()
CoreExport BOOL BooleanStartUp | ( | ) |
CoreExport void StartBooleanMode | ( | ) |
CoreExport void DoBoolean | ( | int | poly2 | ) |
CoreExport void StartTrimMode | ( | ) |
CoreExport void StartExtendMode | ( | ) |
CoreExport void HandleTrimExtend | ( | ViewExp * | vpt, |
ShapeHitData * | hit, | ||
IPoint2 & | m, | ||
int | operation | ||
) |
CoreExport int GetAttachMat | ( | ) | [virtual] |
Implements AttachMatDlgUser.
CoreExport void SetAttachMat | ( | int | value | ) | [virtual] |
Implements AttachMatDlgUser.
CoreExport BOOL GetCondenseMat | ( | ) | [virtual] |
Implements AttachMatDlgUser.
CoreExport void SetCondenseMat | ( | BOOL | sw | ) | [virtual] |
Implements AttachMatDlgUser.
CoreExport int DoAttach | ( | INode * | node, |
bool & | canUndo | ||
) |
CoreExport void DoCrossSection | ( | Tab< int > & | splineIndices | ) |
creates a cross section of the current selected spline or segement with the given spline(s).
This can be called multiple times in sequence, once for each section in the cross section.
CoreExport void DoVertBreak | ( | ) |
CoreExport void DoVertWeld | ( | ) |
CoreExport void DoMakeFirst | ( | ) |
CoreExport void DoVertDelete | ( | ) |
CoreExport void DoSegDelete | ( | ) |
CoreExport void DoSegDetach | ( | int | sameShape, |
int | copy, | ||
int | reorient | ||
) |
CoreExport void DoSegDivide | ( | int | divisions | ) |
CoreExport void DoPolyClose | ( | ) |
CoreExport void DoPolyDetach | ( | int | copy, |
int | reorient | ||
) |
CoreExport void DoPolyMirror | ( | int | type, |
int | copy | ||
) |
CoreExport void DoPolyDelete | ( | ) |
CoreExport void DoPolyReverse | ( | ) |
CoreExport void DoPolyExplode | ( | ) |
CoreExport void DoExplodeToObjects | ( | ) |
CoreExport void SetBoolOperation | ( | int | type | ) | [inline] |
{ boolType = type; }
CoreExport void SetMirrorOperation | ( | int | type | ) | [inline] |
{ mirrorType = type; }
CoreExport int GetBoolOperation | ( | ) | [inline] |
{ return boolType; }
CoreExport int GetMirrorOperation | ( | ) | [inline] |
{ return mirrorType; }
CoreExport int GetBoolCursorID | ( | ) |
CoreExport int GetBoolMirrString | ( | UINT_PTR | type | ) |
CoreExport void SetBooleanButton | ( | ) |
CoreExport void SetMirrorButton | ( | ) |
CoreExport void ChangeSelVerts | ( | int | type | ) |
CoreExport void ChangeRememberedVert | ( | int | type | ) |
CoreExport int RememberVertThere | ( | HWND | hWnd, |
IPoint2 | m | ||
) |
CoreExport void SetRememberedVertType | ( | int | type | ) |
CoreExport void ChangeSelSegs | ( | int | type | ) |
CoreExport void ChangeRememberedSeg | ( | int | type | ) |
CoreExport int RememberSegThere | ( | HWND | hWnd, |
IPoint2 | m | ||
) |
CoreExport void SetRememberedSegType | ( | int | type | ) |
CoreExport void ChangeSelPolys | ( | int | type | ) |
CoreExport void ChangeRememberedPoly | ( | int | type | ) |
CoreExport int RememberPolyThere | ( | HWND | hWnd, |
IPoint2 | m | ||
) |
CoreExport void SetRememberedPolyType | ( | int | type | ) |
CoreExport void SplineShapeClone | ( | SplineShape * | source | ) |
this simply performs a linear search through the given list, returning the index of the given point
CoreExport void DeleteSpline | ( | int | poly | ) |
CoreExport void InsertSpline | ( | Spline3D * | spline, |
int | poly | ||
) |
CoreExport void Reverse | ( | int | poly, |
BOOL | keepFirst =
FALSE |
||
) |
CoreExport void DeleteKnot | ( | int | poly, |
int | index | ||
) |
CoreExport void AddKnot | ( | int | poly, |
SplineKnot & | k, | ||
int | where = -1 |
||
) |
CoreExport BOOL Append | ( | int | poly, |
Spline3D * | spline, | ||
BOOL | weldCoincidentFirstVertex =
TRUE |
||
) |
CoreExport BOOL Prepend | ( | int | poly, |
Spline3D * | spline, | ||
BOOL | weldCoincidentLastVertex =
TRUE |
||
) |
CoreExport void ReplaceSpline | ( | int | poly, |
Spline3D * | spline | ||
) |
CoreExport BOOL DeleteSelVerts | ( | int | poly | ) |
CoreExport BOOL DeleteSelSegs | ( | int | poly | ) |
CoreExport void MakeFirst | ( | int | poly, |
int | index | ||
) |
CoreExport void SetOptimize | ( | BOOL | sw | ) |
CoreExport void SetAdaptive | ( | BOOL | sw | ) |
CoreExport void SetSteps | ( | int | n | ) |
CoreExport void RecordTopologyTags | ( | ) |
CoreExport void ResolveTopoChanges | ( | BezierShape * | shape = NULL , |
int | bindTrackingOptions =
1 |
||
) |
CoreExport void RefreshSelType | ( | ) |
CoreExport void UpdateSelectDisplay | ( | ) |
CoreExport void SetSelDlgEnables | ( | ) |
CoreExport void SetOpsDlgEnables | ( | ) |
CoreExport void SetSurfDlgEnables | ( | ) |
CoreExport void SetSoftSelDlgEnables | ( | HWND | hSoftSel = NULL |
) |
CoreExport void SelectionChanged | ( | ) |
CoreExport BOOL MaybeSelectSingleSpline | ( | BOOL | makeUndo = FALSE |
) |
CoreExport void SetFCLimit | ( | ) |
CoreExport int GetSelMatIndex | ( | ) |
CoreExport void SetSelMatIndex | ( | int | index | ) |
CoreExport void SelectByMat | ( | int | index, |
BOOL | clear | ||
) |
CoreExport void InvalidateSurfaceUI | ( | ) |
Implemented by the System.
This method handles the storage of the data contained within the ShapeObject. In order to properly store this information, classes which subclass off of ShapeObject need to call this methods before storing their information.
isave | An interface for saving data. See Class ISave. |
Reimplemented from ShapeObject.
Implemented by the System.
This method handles the loading of the data contained within the ShapeObject. In order to properly load this information, classes which subclass off of ShapeObject need to call this methods before loading their information.
iload | An interface for loading data. See Class ILoad. |
Reimplemented from ShapeObject.
CoreExport void StartBindMode | ( | ) |
CoreExport void DoBind | ( | int | poly1, |
int | vert1, | ||
int | poly2, | ||
int | vert2 | ||
) |
CoreExport void DoUnBind | ( | ) |
CoreExport void DoHide | ( | ) |
CoreExport void DoUnhide | ( | ) |
CoreExport void DoCycleVerts | ( | ) |
CoreExport void StartRefineConnectMode | ( | ) |
CoreExport void EndRefineConnectMode | ( | ) |
CoreExport void DoRefineConnect | ( | ViewExp * | vpt, |
BezierShape * | shape, | ||
int | poly, | ||
int | seg, | ||
IPoint2 | p, | ||
INode * | inode = NULL |
||
) |
CoreExport void DoVertFuse | ( | ) |
CoreExport void StartCopyTangentMode | ( | ) |
this has the same effect as pressing the Copy button in the "Tangent" section of the Spline UI, when in Vertex sub-object mode
CoreExport void StartPasteTangentMode | ( | ) |
this has the same effect as pressing the Paste button in the "Tangent" section of the Spline UI, when in Vertex sub-object mode
CoreExport void StartPasteTangent | ( | ) |
should be used before a call to PasteTangent()
CoreExport void EndPasteTangent | ( | ) |
should be used following a call to PasteTangent()
CoreExport BOOL CopyTangent | ( | int | poly, |
int | vert | ||
) |
copy the given tangent
CoreExport BOOL PasteTangent | ( | int | poly, |
int | vert | ||
) |
paste the given tangent.
This should be preceeded by a call to StartPasteTangent() and followed by EndPasteTangent()
CoreExport void StartCommandMode | ( | splineCommandMode | mode | ) | [virtual] |
Implements ISplineOps.
CoreExport void ButtonOp | ( | splineButtonOp | opcode | ) | [virtual] |
Implements ISplineOps.
CoreExport void GetUIParam | ( | splineUIParam | uiCode, |
int & | ret | ||
) | [virtual] |
Reimplemented from ISplineOps.
CoreExport void SetUIParam | ( | splineUIParam | uiCode, |
int | val | ||
) | [virtual] |
Reimplemented from ISplineOps.
CoreExport void GetUIParam | ( | splineUIParam | uiCode, |
float & | ret | ||
) | [virtual] |
Reimplemented from ISplineOps.
CoreExport void SetUIParam | ( | splineUIParam | uiCode, |
float | val | ||
) | [virtual] |
Reimplemented from ISplineOps.
bool Editing | ( | ) | [inline] |
CoreExport DWORD GetSelLevel | ( | ) | [virtual] |
Implements ISplineSelect.
CoreExport void SetSelLevel | ( | DWORD | level | ) | [virtual] |
Implements ISplineSelect.
CoreExport void LocalDataChanged | ( | ) | [virtual] |
Implements ISplineSelect.
CoreExport BitArray GetVertSel | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport BitArray GetSegmentSel | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport BitArray GetSplineSel | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport void SelectBySegment | ( | BOOL | interactive = TRUE |
) |
CoreExport void SelectBySpline | ( | BOOL | interactive = TRUE |
) |
CoreExport void SetVertSel | ( | BitArray & | set, |
ISplineSelect * | imod, | ||
TimeValue | t | ||
) | [virtual] |
Implements ISplineSelectData.
CoreExport void SetSegmentSel | ( | BitArray & | set, |
ISplineSelect * | imod, | ||
TimeValue | t | ||
) | [virtual] |
Implements ISplineSelectData.
CoreExport void SetSplineSel | ( | BitArray & | set, |
ISplineSelect * | imod, | ||
TimeValue | t | ||
) | [virtual] |
Implements ISplineSelectData.
CoreExport GenericNamedSelSetList& GetNamedVertSelList | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport GenericNamedSelSetList& GetNamedSegmentSelList | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport GenericNamedSelSetList& GetNamedSplineSelList | ( | ) | [virtual] |
Implements ISplineSelectData.
CoreExport MtlID GetNextAvailMtlID | ( | ModContext * | mc | ) | [virtual] |
Implements ISubMtlAPI.
CoreExport BOOL HasFaceSelection | ( | ModContext * | mc | ) | [virtual] |
Implements ISubMtlAPI.
CoreExport void SetSelFaceMtlID | ( | ModContext * | mc, |
MtlID | id, | ||
BOOL | bResetUnsel =
FALSE |
||
) | [virtual] |
Implements ISubMtlAPI.
CoreExport int GetSelFaceUniqueMtlID | ( | ModContext * | mc | ) | [virtual] |
Implements ISubMtlAPI.
CoreExport int GetSelFaceAnyMtlID | ( | ModContext * | mc | ) | [virtual] |
Implements ISubMtlAPI.
CoreExport int GetMaxMtlID | ( | ModContext * | mc | ) | [virtual] |
Implements ISubMtlAPI.
CoreExport void InvalidateGeomCache | ( | ) | [virtual] |
This method is very important - It causes the ShapeObject to flush its cached rendering mesh.
Most objects have their own "InvalidateGeomCache" methods; simply call this when a shape derived from ShapeObject changes and it will ensure that the rendering mesh is regenerated the next time it is evaluated. Failure to call this method will result in improper rendering mesh updates.
Reimplemented from ShapeObject.
CoreExport int UseEdgeDists | ( | ) |
CoreExport void SetUseEdgeDists | ( | int | useSoftSelections | ) |
CoreExport int UseSoftSelections | ( | ) |
CoreExport void SetUseSoftSelections | ( | int | useSoftSelections | ) |
CoreExport void InvalidateVertexWeights | ( | ) |
CoreExport void UpdateVertexDists | ( | ) |
CoreExport void UpdateEdgeDists | ( | ) |
CoreExport void UpdateVertexWeights | ( | ) |
static CoreExport void InitSplineShapeAutoConnectControls | ( | ) | [static] |
static CoreExport void SetUseEndPointAutoConnect | ( | UINT | i | ) | [static] |
static CoreExport UINT GetUseEndPointAutoConnect | ( | ) | [static] |
static CoreExport void SetPromptForEndPointAutoConnect | ( | UINT | i | ) | [static] |
static CoreExport UINT GetPromptForEndPointAutoConnect | ( | ) | [static] |
static CoreExport void SetEndPointAutoWeldThreshold | ( | float | f | ) | [static] |
static CoreExport float GetEndPointAutoWeldThreshold | ( | ) | [static] |
friend class SSXFormProc
[friend] |
friend class SSOutlineCMode
[friend] |
friend class SSFilletCMode
[friend] |
friend class SSChamferCMode
[friend] |
friend class SSSegBreakCMode
[friend] |
friend class SSSegRefineCMode
[friend] |
friend class SSCrossInsertCMode
[friend] |
friend class SSVertConnectCMode
[friend] |
friend class SSVertInsertCMode
[friend] |
friend class SSCreateLineCMode
[friend] |
friend class SSCrossSectionCMode
[friend] |
friend class SSBooleanCMode
[friend] |
friend class SSTrimCMode
[friend] |
friend class SSExtendCMode
[friend] |
friend class SSCopyTangentCMode
[friend] |
friend class SSPasteTangentCMode
[friend] |
friend class SSOutlineMouseProc
[friend] |
friend class SSFilletMouseProc
[friend] |
friend class SSChamferMouseProc
[friend] |
friend class SSSegBreakMouseProc
[friend] |
friend class SSSegRefineMouseProc
[friend] |
friend class SSCrossInsertMouseProc
[friend] |
friend class SSVertConnectMouseProc
[friend] |
friend class SSVertInsertMouseProc
[friend] |
friend class SSCreateLineMouseProc
[friend] |
friend class SSBooleanMouseProc
[friend] |
friend class SSTrimMouseProc
[friend] |
friend class SSExtendMouseProc
[friend] |
friend class SplineShapeRestore
[friend] |
friend class SSRightMenu
[friend] |
friend class SSMBackspaceUser
[friend] |
friend class SSIBackspaceUser
[friend] |
friend class SSPickSplineAttach
[friend] |
friend class SSAttachHitByName
[friend] |
friend class SplineShapeClassDesc
[friend] |
friend class SSBindMouseProc
[friend] |
friend class SSBindCMode
[friend] |
friend class SSRefineConnectMouseProc
[friend] |
friend class SSRefineConnectCMode
[friend] |
friend class SSActionCallback
[friend] |
INT_PTR CALLBACK SplineGenDlgProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) | [friend] |
INT_PTR CALLBACK SplineSelectDlgProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) | [friend] |
INT_PTR CALLBACK SplineOpsDlgProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) | [friend] |
INT_PTR CALLBACK SplineSurfDlgProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) | [friend] |
INT_PTR CALLBACK SelectByDlgProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) | [friend] |
BOOL drawTicks
[protected] |
BOOL generalUIDisplayed
[protected] |
Reimplemented from ShapeObject.
SplineShape* editObj
[static] |
SSBindCMode* bindMode
[static] |