3ds Max C++ API Reference
Loading...
Searching...
No Matches
MSObjectXtnd< TYPE, MS_SUPER > Class Template Reference

#include <C:/adskgit/3dsmax/3dsmax/3dswin/src/maxsdk/include/maxscript/mxsplugin/mxsPlugin.h>

Inheritance diagram for MSObjectXtnd< TYPE, MS_SUPER >:

Public Member Functions

void DeleteThis () override
 MSObjectXtnd ()
ReferenceTargetget_delegate () override
void GetClassName (MSTR &s, bool localized) const override
Class_ID ClassID () override
void FreeCaches () override
int NumSubs () override
AnimatableSubAnim (int i) override
MSTR SubAnimName (int i, bool localized=true) override
int NumParamBlocks () override
IParamBlock2GetParamBlock (int i) override
IParamBlock2GetParamBlockByID (BlockID id) override
voidGetInterface (ULONG id) override
BaseInterfaceGetInterface (Interface_ID id) override
int NumRefs () override
RefTargetHandle GetReference (int i) override
void SetReference (int i, RefTargetHandle rtarg) override
const MCHARGetObjectName (bool localized=true) const override
void BeginEditParams (IObjParam *objParam, ULONG vflags, Animatable *pPrev) override
void EndEditParams (IObjParam *objParam, ULONG vflags, Animatable *pNext) override
int HitTest (TimeValue t, INode *inode, int type, int crossing, int vflags, IPoint2 *p, ViewExp *vpt) override
int Display (TimeValue t, INode *inode, ViewExp *vpt, int vflags) override
unsigned long GetObjectDisplayRequirement () const override
bool PrepareDisplay (const MaxSDK::Graphics::UpdateDisplayContext &prepareDisplayContext) override
bool UpdatePerNodeItems (const MaxSDK::Graphics::UpdateDisplayContext &updateDisplayContext, MaxSDK::Graphics::UpdateNodeContext &nodeContext, MaxSDK::Graphics::IRenderItemContainer &targetRenderItemContainer) override
bool UpdatePerViewItems (const MaxSDK::Graphics::UpdateDisplayContext &updateDisplayContext, MaxSDK::Graphics::UpdateNodeContext &nodeContext, MaxSDK::Graphics::UpdateViewContext &viewContext, MaxSDK::Graphics::IRenderItemContainer &targetRenderItemContainer) override
const MaxSDK::Graphics::RenderItemHandleArrayGetRenderItems () const override
void GetWorldBoundBox (TimeValue t, INode *inode, ViewExp *vpt, Box3 &box) override
void GetLocalBoundBox (TimeValue t, INode *inode, ViewExp *vpt, Box3 &box) override
void Snap (TimeValue t, INode *inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt) override
CreateMouseCallBackGetCreateMouseCallBack () override
BOOL HasUVW () override
void SetGenUVW (BOOL sw) override
void SetExtendedDisplay (int vflags) override
ObjectState Eval (TimeValue time) override
void InitNodeName (MSTR &s) override
Interval ObjectValidity (TimeValue t) override
int CanConvertToType (Class_ID obtype) override
ObjectConvertToType (TimeValue t, Class_ID obtype) override
void GetCollapseTypes (Tab< Class_ID > &clist, Tab< MSTR * > &nlist) override
void GetDeformBBox (TimeValue t, Box3 &box, Matrix3 *tm, BOOL useSel) override
int IntersectRay (TimeValue t, Ray &r, float &at, Point3 &norm) override

Public Attributes

TYPE * delegate

Constructor & Destructor Documentation

◆ MSObjectXtnd()

template<class TYPE, class MS_SUPER>
MSObjectXtnd ( )
inline
554: MS_SUPER() {}
Definition mxsPlugin.h:548

Member Function Documentation

◆ DeleteThis()

template<class TYPE, class MS_SUPER>
void DeleteThis ( )
override

◆ get_delegate()

template<class TYPE, class MS_SUPER>
ReferenceTarget * get_delegate ( )
inlineoverride
557{ return delegate; }
TYPE * delegate
Definition mxsPlugin.h:550

◆ GetClassName()

template<class TYPE, class MS_SUPER>
void GetClassName ( MSTR & s,
bool localized ) const
inlineoverride
560{ s = (localized) ? MS_SUPER::pc->ClassName() : MS_SUPER::pc->NonLocalizedClassName(); }

◆ ClassID()

template<class TYPE, class MS_SUPER>
Class_ID ClassID ( )
inlineoverride
561{ return MS_SUPER::pc->class_id; }

◆ FreeCaches()

template<class TYPE, class MS_SUPER>
void FreeCaches ( )
inlineoverride
562{ }; // { delegate->FreeCaches(); }

◆ NumSubs()

template<class TYPE, class MS_SUPER>
int NumSubs ( )
inlineoverride
563{ return MS_SUPER::pblocks.Count() + 1; }

◆ SubAnim()

template<class TYPE, class MS_SUPER>
Animatable * SubAnim ( int i)
inlineoverride
564{ if (i == 0) return delegate; return MS_SUPER::pblocks[i-1]; }

◆ SubAnimName()

template<class TYPE, class MS_SUPER>
MSTR SubAnimName ( int i,
bool localized = true )
inlineoverride
566 {
567 if (i == 0)
568 {
569 return delegate->GetObjectName(localized);
570 }
571 if (MS_SUPER::pblocks[i - 1]->GetDesc()->local_name != 0)
572 {
573 return localized ? MS_SUPER::pblocks[i - 1]->GetLocalName() : MS_SUPER::pblocks[i - 1]->GetDesc()->int_name.data();
574 }
575 return _T("");
576 }

◆ NumParamBlocks()

template<class TYPE, class MS_SUPER>
int NumParamBlocks ( )
inlineoverride
577{ return MS_SUPER::pblocks.Count(); }

◆ GetParamBlock()

template<class TYPE, class MS_SUPER>
IParamBlock2 * GetParamBlock ( int i)
inlineoverride
578{ return MS_SUPER::pblocks[i]; }

◆ GetParamBlockByID()

template<class TYPE, class MS_SUPER>
IParamBlock2 * GetParamBlockByID ( BlockID id)
inlineoverride
579{ return MSPlugin::GetParamBlockByID(id); }
ScripterExport IParamBlock2 * GetParamBlockByID(BlockID id)

◆ GetInterface() [1/2]

template<class TYPE, class MS_SUPER>
void * GetInterface ( ULONG id)
inlineoverride
580{ if (id == I_MAXSCRIPTPLUGIN) return (MSPlugin*)this; return MS_SUPER::GetInterface(id); }

◆ GetInterface() [2/2]

template<class TYPE, class MS_SUPER>
BaseInterface * GetInterface ( Interface_ID id)
inlineoverride
581{ return MS_SUPER::GetInterface(id); }

◆ NumRefs()

template<class TYPE, class MS_SUPER>
int NumRefs ( )
override

◆ GetReference()

template<class TYPE, class MS_SUPER>
RefTargetHandle GetReference ( int i)
override

◆ SetReference()

template<class TYPE, class MS_SUPER>
void SetReference ( int i,
RefTargetHandle rtarg )
override

◆ GetObjectName()

template<class TYPE, class MS_SUPER>
const MCHAR * GetObjectName ( bool localized = true) const
inlineoverride
589{ return (localized) ? MS_SUPER::pc->ClassName() : MS_SUPER::pc->NonLocalizedClassName(); }

◆ BeginEditParams()

template<class TYPE, class MS_SUPER>
void BeginEditParams ( IObjParam * objParam,
ULONG vflags,
Animatable * pPrev )
override

◆ EndEditParams()

template<class TYPE, class MS_SUPER>
void EndEditParams ( IObjParam * objParam,
ULONG vflags,
Animatable * pNext )
override

◆ HitTest()

template<class TYPE, class MS_SUPER>
int HitTest ( TimeValue t,
INode * inode,
int type,
int crossing,
int vflags,
IPoint2 * p,
ViewExp * vpt )
inlineoverride

Reimplemented in MSShapeXtnd.

593 { return delegate->HitTest(t, inode, type, crossing, vflags, p, vpt); }

◆ Display()

template<class TYPE, class MS_SUPER>
int Display ( TimeValue t,
INode * inode,
ViewExp * vpt,
int vflags )
inlineoverride
595 { return delegate->Display(t, inode, vpt, vflags); }

◆ GetObjectDisplayRequirement()

template<class TYPE, class MS_SUPER>
unsigned long GetObjectDisplayRequirement ( ) const
override

◆ PrepareDisplay()

template<class TYPE, class MS_SUPER>
bool PrepareDisplay ( const MaxSDK::Graphics::UpdateDisplayContext & prepareDisplayContext)
override

◆ UpdatePerNodeItems()

template<class TYPE, class MS_SUPER>
bool UpdatePerNodeItems ( const MaxSDK::Graphics::UpdateDisplayContext & updateDisplayContext,
MaxSDK::Graphics::UpdateNodeContext & nodeContext,
MaxSDK::Graphics::IRenderItemContainer & targetRenderItemContainer )
override

◆ UpdatePerViewItems()

template<class TYPE, class MS_SUPER>
bool UpdatePerViewItems ( const MaxSDK::Graphics::UpdateDisplayContext & updateDisplayContext,
MaxSDK::Graphics::UpdateNodeContext & nodeContext,
MaxSDK::Graphics::UpdateViewContext & viewContext,
MaxSDK::Graphics::IRenderItemContainer & targetRenderItemContainer )
override

◆ GetRenderItems()

template<class TYPE, class MS_SUPER>
const MaxSDK::Graphics::RenderItemHandleArray & GetRenderItems ( ) const
inlineoverride
612 { return delegate->GetRenderItems(); }

◆ GetWorldBoundBox()

template<class TYPE, class MS_SUPER>
void GetWorldBoundBox ( TimeValue t,
INode * inode,
ViewExp * vpt,
Box3 & box )
inlineoverride
613{ delegate->GetWorldBoundBox(t, inode, vpt, box); }

◆ GetLocalBoundBox()

template<class TYPE, class MS_SUPER>
void GetLocalBoundBox ( TimeValue t,
INode * inode,
ViewExp * vpt,
Box3 & box )
inlineoverride
614{ delegate->GetLocalBoundBox(t, inode, vpt, box ); }

◆ Snap()

template<class TYPE, class MS_SUPER>
void Snap ( TimeValue t,
INode * inode,
SnapInfo * snap,
IPoint2 * p,
ViewExp * vpt )
inlineoverride
615{ delegate->Snap(t, inode, snap, p, vpt); }

◆ GetCreateMouseCallBack()

template<class TYPE, class MS_SUPER>
CreateMouseCallBack * GetCreateMouseCallBack ( )
override

◆ HasUVW()

template<class TYPE, class MS_SUPER>
BOOL HasUVW ( )
inlineoverride

Reimplemented in MSShapeXtnd.

617{ return delegate->HasUVW(); }

◆ SetGenUVW()

template<class TYPE, class MS_SUPER>
void SetGenUVW ( BOOL sw)
inlineoverride

Reimplemented in MSShapeXtnd.

618{ delegate->SetGenUVW(sw); }

◆ SetExtendedDisplay()

template<class TYPE, class MS_SUPER>
void SetExtendedDisplay ( int vflags)
inlineoverride
619{ delegate->SetExtendedDisplay( vflags); } // for setting mode-dependent display attributes

◆ Eval()

template<class TYPE, class MS_SUPER>
ObjectState Eval ( TimeValue time)
override

Reimplemented in MSShapeXtnd.

◆ InitNodeName()

template<class TYPE, class MS_SUPER>
void InitNodeName ( MSTR & s)
inlineoverride

Reimplemented in MSShapeXtnd.

623{s = GetObjectName(true);} // non-localized name
const MCHAR * GetObjectName(bool localized=true) const override
Definition mxsPlugin.h:589

◆ ObjectValidity()

template<class TYPE, class MS_SUPER>
Interval ObjectValidity ( TimeValue t)
override

◆ CanConvertToType()

template<class TYPE, class MS_SUPER>
int CanConvertToType ( Class_ID obtype)
inlineoverride
626 {
628 return TRUE;
629 return delegate->CanConvertToType(obtype);
630 }

◆ ConvertToType()

template<class TYPE, class MS_SUPER>
Object * ConvertToType ( TimeValue t,
Class_ID obtype )
inlineoverride
632 {
634 return this;
635 // CAL-10/1/2002: Don't return the delegate, because it might be deleted.
636 // Return a copy of the delegate instead. (422964)
637 Object* obj = delegate->ConvertToType(t, obtype);
638 if (obj == delegate)
639 {
640 obj = delegate->MakeShallowCopy(OBJ_CHANNELS);
641 obj->LockChannels(OBJ_CHANNELS); //if we shallow copy these channels they need to be locked since they will get double deleted
642 }
643 return obj;
644 }

◆ GetCollapseTypes()

template<class TYPE, class MS_SUPER>
void GetCollapseTypes ( Tab< Class_ID > & clist,
Tab< MSTR * > & nlist )
inlineoverride
645{ delegate->GetCollapseTypes(clist, nlist); }

◆ GetDeformBBox()

template<class TYPE, class MS_SUPER>
void GetDeformBBox ( TimeValue t,
Box3 & box,
Matrix3 * tm,
BOOL useSel )
inlineoverride
646{ delegate->GetDeformBBox(t, box, tm, useSel); }

◆ IntersectRay()

template<class TYPE, class MS_SUPER>
int IntersectRay ( TimeValue t,
Ray & r,
float & at,
Point3 & norm )
inlineoverride

Reimplemented in MSShapeXtnd.

647{ return delegate->IntersectRay(t, r, at, norm); }

Member Data Documentation

◆ delegate

template<class TYPE, class MS_SUPER>
TYPE* delegate