3ds Max C++ API Reference
Loading...
Searching...
No Matches
Value Class Reference

#include <value.h>

+ Inheritance diagram for Value:

Public Member Functions

virtual ScripterExport BOOL is_kind_of (ValueMetaClass *c)
 
virtual ScripterExport ValueMetaClass * local_base_class ()
 
virtual Value * eval ()
 
virtual Value * eval_no_wrapper ()
 
virtual ScripterExport Value * apply (Value **arglist, int count, CallContext *cc=nullptr)
 
virtual ScripterExport Value * apply_no_alloc_frame (Value **arglist, int count, CallContext *cc=nullptr)
 
virtual void export_to_scripter ()
 
virtual Value * map (node_map &m)
 
virtual Value * map_path (PathName *path, node_map &m)
 
virtual Value * find_first (BOOL(*test_fn)(INode *node, int level, const void *arg), const void *test_arg)
 
virtual Value * get_path (PathName *path)
 
virtual ScripterExport void sprin1 (CharStream *stream)
 
virtual ScripterExport void sprint (CharStream *stream)
 
virtual void prin1 ()
 
virtual void print ()
 
virtual Class_ID get_max_class_id ()
 
virtual Value * delete_vf (Value **arglist, int arg_count)
 
virtual Value * clearSelection_vf (Value **arglist, int arg_count)
 
virtual float to_float ()
 
virtual double to_double ()
 
virtual const MCHAR * to_string ()
 
virtual MSTR to_mstr ()
 
virtual MSTR to_filename ()
 
virtual int to_int ()
 
virtual INT64 to_int64 ()
 
virtual INT_PTR to_intptr ()
 
virtual BOOL to_bool ()
 
virtual BitArray & to_bitarray ()
 
virtual Point4 to_point4 ()
 
virtual Point3 to_point3 ()
 
virtual Point2 to_point2 ()
 
virtual AColor to_acolor ()
 
virtual COLORREF to_colorref ()
 
virtual INode * to_node ()
 
virtual Ray to_ray ()
 
virtual Interval to_interval ()
 
virtual Quat to_quat ()
 
virtual AngAxis to_angaxis ()
 
virtual Matrix3 & to_matrix3 ()
 
virtual Box3 to_box3 ()
 
virtual float * to_eulerangles ()
 
virtual Mtl * to_mtl ()
 
virtual Texmap * to_texmap ()
 
virtual MtlBase * to_mtlbase ()
 
virtual Modifier * to_modifier ()
 
virtual TimeValue to_timevalue ()
 
virtual Control * to_controller ()
 
virtual Atmospheric * to_atmospheric ()
 
virtual Effect * to_effect ()
 
virtual IMultiPassCameraEffect * to_mpassCamEffect ()
 
virtual ShadowType * to_shadowtype ()
 
virtual FilterKernel * to_filter ()
 
virtual INode * to_rootnode ()
 
virtual ITrackViewNode * to_trackviewnode ()
 
virtual NURBSIndependentPoint * to_nurbsindependentpoint ()
 
virtual NURBSPoint * to_nurbspoint ()
 
virtual NURBSObject * to_nurbsobject ()
 
virtual NURBSControlVertex * to_nurbscontrolvertex ()
 
virtual NURBSCurve * to_nurbscurve ()
 
virtual NURBSCVCurve * to_nurbscvcurve ()
 
virtual NURBSSurface * to_nurbssurface ()
 
virtual NURBSTexturePoint * to_nurbstexturepoint ()
 
virtual NURBSSet * to_nurbsset ()
 
virtual ReferenceTarget * to_reftarg ()
 
virtual Mesh * to_mesh ()
 
virtual BezierShape * to_beziershape ()
 
virtual Thunk * to_thunk ()
 
virtual void to_fpvalue (FPValue &v)
 
virtual Renderer * to_renderer ()
 
virtual Box2 & to_box2 ()
 
virtual NURBSTextureSurface * to_nurbstexturesurface ()
 
virtual NURBSDisplay * to_nurbsdisplay ()
 
virtual TessApprox * to_tessapprox ()
 
virtual Value * widen_to (Value *arg, Value **arg_list)
 
virtual BOOL comparable (Value *arg)
 
virtual BOOL special_case_compare (Value *arg, bool &specialCaseCompareResult)
 
virtual ScripterExport bool ValuesEqual (Value *other, bool strictCompare)
 
virtual ScripterExport Value * deep_copy (HashTable *remapper)
 
virtual BOOL is_const ()
 
virtual ScripterExport Value * get_property (Value **arg_list, int count)
 
virtual ScripterExport Value * set_property (Value **arg_list, int count)
 
ScripterExport Value * _get_property (Value *prop)
 
virtual ScripterExport Value * _set_property (Value *prop, Value *val)
 
virtual Value * get_container_property (Value *prop, Value *cur_prop)
 
virtual Value * set_container_property (Value *prop, Value *val, Value *cur_prop)
 
virtual BOOL _is_collection ()
 
virtual BOOL _is_charstream ()
 
virtual BOOL _is_rolloutcontrol ()
 
virtual BOOL _is_rolloutthunk ()
 
virtual BOOL _is_function ()
 
virtual BOOL _is_selection ()
 
virtual BOOL _is_thunk ()
 
virtual BOOL _is_indirect_thunk ()
 
virtual SelectionIterator * selection_iterator ()
 
virtual ScripterExport IOResult Save (ISave *isave)
 
virtual void drop_MAX_refs ()
 
virtual BaseInterface * GetInterface (Interface_ID id)
 
ScripterExport Value * make_heap_permanent ()
 
ScripterExport Value * make_heap_static ()
 
ScripterExport Value * get_heap_ptr ()
 
ScripterExport Value * get_stack_heap_ptr ()
 
ScripterExport Value * migrate_to_heap ()
 
ScripterExport Value * get_live_ptr ()
 
virtual BOOL object_supports_case_sensitive_names ()
 
ScripterExport Value * _get_property (Value *prop, Value *prop_name_as_parsed)
 
ScripterExport Value * _set_property (Value *prop, Value *val, Value *prop_name_as_parsed)
 
virtual ScripterExport Value * get_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
virtual ScripterExport Value * set_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
ScripterExport Value * invoke_getter_case_sensitive_property (Value *target, getter_vf getter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
ScripterExport Value * invoke_setter_case_sensitive_property (Value *target, setter_vf setter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
- Public Member Functions inherited from Collectable
ScripterExport Collectable ()
 
virtual ScripterExport ~Collectable ()
 
ScripterExport void * operator new (size_t sz, char flag)
 
ScripterExport void * operator new (size_t sz)
 
ScripterExport void operator delete (void *val)
 
ScripterExport void operator delete (void *val, char flag)
 
virtual void collect ()=0
 
virtual ScripterExport void gc_trace ()
 
ScripterExport bool derives_from_Animatable ()
 
virtual BOOL derives_from_MAXWrapper ()
 
ScripterExport void make_collectable ()
 
void make_permanent ()
 
void make_static ()
 
int is_marked ()
 
int is_not_marked ()
 
int is_garbage ()
 
int is_permanent ()
 
void mark_in_use ()
 
void unmark_in_use ()
 
int has_heap_copy ()
 
int is_in_heap ()
 
int is_on_stack ()
 

Public Attributes

ValueMetaClass * tag
 
- Public Attributes inherited from Collectable
Collectable * next
 
Collectable * prev
 
byte flags
 
byte flags2
 
short flags3
 

Static Protected Attributes

static ScripterExport Value * keyarg_marker_value
 

Additional Inherited Members

- Static Public Member Functions inherited from Collectable
static ScripterExport void for_all_values (void(*map_fn)(Value *val), ValueMapper *mapper=nullptr, ValueMetaClass *c=nullptr)
 
static void mark ()
 
static void sweep ()
 
static void setup (size_t)
 
static ScripterExport void gc ()
 
static void coalesce_free_list ()
 
static void close_down ()
 
static void drop_maxwrapper_refs ()
 
static ScripterExport void push_alloc_stack_frame ()
 
static ScripterExport void pop_alloc_stack_frame ()
 
static ScripterExport ULONGLONG get_num_values_created ()
 
static ScripterExport bool validate_value_linkages ()
 
- Static Public Attributes inherited from Collectable
static CRITICAL_SECTION heap_update
 
static Collectable * collectable_list
 
static Collectable * permanent_list
 
static free_mem * free_list [GC_NUM_SUBLISTS]
 
static size_t heap_allocated
 
static size_t heap_size
 
static ScripterExport collectable_state state
 
static ScripterExport bool fullCollectNextHoldFlush
 
static bool gc_light
 
static bool in_gc
 
static HANDLE hGCCompletedEvent
 

Member Function Documentation

◆ is_kind_of()

◆ local_base_class()

virtual ScripterExport ValueMetaClass * local_base_class ( )
virtual

◆ eval()

◆ eval_no_wrapper()

virtual Value * eval_no_wrapper ( )
inlinevirtual

Reimplemented in SourceFileWrapper.

119{ check_interrupts(); return this; }

◆ apply()

◆ apply_no_alloc_frame()

virtual ScripterExport Value * apply_no_alloc_frame ( Value **  arglist,
int  count,
CallContext *  cc = nullptr 
)
virtual

◆ export_to_scripter()

virtual void export_to_scripter ( )
inlinevirtual

◆ map()

virtual Value * map ( node_map &  m)
inlinevirtual

Reimplemented in Array, BitArrayValue, MXSDictionaryValue, MeshSelection, MAXKeyArray, MAXMultiMaterial, MAXMaterialLibrary, MAXMeditMaterials, MAXNode, MAXNodeChildrenArray, MAXPB2ArrayParam, MAXModifierArray, MAXCustAttribArray, ObjectSet, CurSelObjectSet, PathName, MAXNamedSetArray, and MAXNamedSet.

124{ unimplemented(_M("map"), this) ; return this; }
#define unimplemented(m, t)
Definition: exceptions.h:219
#define _M(x)
Used to wrap string literals.
Definition: strbasic.h:67

◆ map_path()

virtual Value * map_path ( PathName *  path,
node_map &  m 
)
inlinevirtual

Reimplemented in Array, MAXNode, and ObjectSet.

125{ unimplemented(_M("map_path"), this) ; return this; }

◆ find_first()

virtual Value * find_first ( BOOL(*)(INode *node, int level, const void *arg)  test_fn,
const void *  test_arg 
)
inlinevirtual

Reimplemented in Array, MAXNode, and ObjectSet.

126{ unimplemented(_M("find_first"), this) ; return this; }

◆ get_path()

virtual Value * get_path ( PathName *  path)
inlinevirtual

Reimplemented in Array, MAXNode, and ObjectSet.

127{ unimplemented(_M("get"), this) ; return this; }

◆ sprin1()

virtual ScripterExport void sprin1 ( CharStream *  stream)
virtual

Reimplemented in Undefined, Ok, Empty, Unsupplied, NoValue, SourcePositionWrapper, SourceFileWrapper, CodeTree, Maker, CodeBlock, GlobalThunk, SystemGlobalThunk, LocalThunk, IndirectLocalThunk, ContextThunk, FreeThunk, IndirectFreeThunk, PropertyThunk, IndexThunk, RolloutControlThunk, RolloutLocalThunk, ToolLocalThunk, CodeBlockLocalThunk, RCMenuItemThunk, RCMenuLocalThunk, PluginLocalThunk, PluginParamThunk, StructMemberThunk, ThunkReference, DerefThunk, OwnerThunk, ReadOnlyThunk, Point3Value, RayValue, QuatValue, AngAxisValue, EulerAnglesValue, Matrix3Value, Point2Value, Point4Value, Box2Value, Box3Value, Array, BitArrayValue, ColorValue, DataPair, FileStream, Function, MAXScriptFunction, StructMethod, PluginMethod, InterfaceFunction, IObjectValue, FPInterfaceValue, FPMixinInterfaceValue, FPStaticMethodInterfaceValue, MXSDictionaryValue, MSTime, MSInterval, Name, Float, Double, Integer, Integer64, IntegerPtr, ShallowString, String, StringStream, StructDef, Struct, ValueHolder, WindowStream, ValueMetaClass, Boolean, MAXBitMap, MotionTracker, VertSelectionValue, FaceSelectionValue, EdgeSelectionValue, MAXKeyArray, MAXKey, MAXMaterial, MAXMultiMaterial, MAXMaterialLibrary, MAXTexture, MAXMtlBase, MAXMeditMaterials, MAXSuperClass, MAXClass, MAXNode, MAXNodeChildrenArray, MAXObject, MAXPB2ArrayParam, MAXModifier, MAXModifierArray, MAXControl, MAXSubAnim, MAXRefTarg, MAXTVNode, TrackViewPickValue, MAXTVUtility, MAXMeshClass, MeshValue, MAXBezierShapeClass, BezierShapeValue, MAXAtmospheric, MAXEffect, MAXMultiPassCameraEffect, MAXShadowType, MAXRenderer, MAXCustAttrib, MAXCustAttribArray, MAXRootNode, MAXSceneXRef, MAXRootScene, ObjectSet, PathName, MAXNamedSetArray, MAXNamedSet, MSCustAttribDef, MSCustAttrib, Rollout, LabelControl, ButtonControl, CheckButtonControl, EditTextControl, ComboBoxControl, ListBoxControl, SpinnerControl, SliderControl, PickerControl, ColorPickerControl, RadioControl, CheckBoxControl, BitmapControl, MapButtonControl, MtlButtonControl, GroupStartControl, GroupEndControl, MenuItem, RCMenu, MouseTool, OLEObject, and SafeArrayWrapper.

◆ sprint()

virtual ScripterExport void sprint ( CharStream *  stream)
virtual

Reimplemented in NoValue.

◆ prin1()

virtual void prin1 ( )
inlinevirtual
132{ sprin1(thread_local(current_stdout)); }
virtual ScripterExport void sprin1(CharStream *stream)

◆ print()

virtual void print ( )
inlinevirtual
133{ sprint(thread_local(current_stdout)); }
virtual ScripterExport void sprint(CharStream *stream)

◆ get_max_class_id()

virtual Class_ID get_max_class_id ( )
inlinevirtual

Reimplemented in MAXClass, MAXMeshClass, and MAXBezierShapeClass.

166{ return Class_ID(0, 0); }
Definition: maxtypes.h:75

◆ delete_vf()

virtual Value * delete_vf ( Value **  arglist,
int  arg_count 
)
inlinevirtual
167{ ABSTRACT_FUNCTION(_M("delete"), this, Value*); }
Definition: value.h:107
#define ABSTRACT_FUNCTION(m, v, t)
Definition: define_abstract_functions.h:158

◆ clearSelection_vf()

virtual Value * clearSelection_vf ( Value **  arglist,
int  arg_count 
)
inlinevirtual
168{ ABSTRACT_FUNCTION(_M("clearSelection"), this, Value*); }

◆ to_float()

virtual float to_float ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, and IntegerPtr.

176{ ABSTRACT_CONVERTER(float, Float); }
Definition: numbers.h:77
#define ABSTRACT_CONVERTER(t, l)
Definition: define_abstract_functions.h:159

◆ to_double()

virtual double to_double ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, and IntegerPtr.

177{ ABSTRACT_CONVERTER(double, Double); }
Definition: numbers.h:126

◆ to_string()

virtual const MCHAR * to_string ( )
inlinevirtual

Reimplemented in Name, ShallowString, String, and StringStream.

178{ ABSTRACT_CONVERTER(const MCHAR*, String); }
Definition: strings.h:20
#define MCHAR
MBCS/Unicode helper defines std::wofstream doesn't mix well with Unicode.
Definition: strbasic.h:42

◆ to_mstr()

virtual MSTR to_mstr ( )
inlinevirtual

Reimplemented in Name, ShallowString, String, and StringStream.

179{ return MSTR(to_string()); }
virtual const MCHAR * to_string()
Definition: value.h:178
WStr MSTR
Definition: strclass.h:1118

◆ to_filename()

virtual MSTR to_filename ( )
inlinevirtual

Reimplemented in IObjectValue, Name, and String.

180{ ABSTRACT_CONVERTER(const MCHAR*, FileName); }

◆ to_int()

virtual int to_int ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, IntegerPtr, and Boolean.

Definition: numbers.h:176

◆ to_int64()

virtual INT64 to_int64 ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, IntegerPtr, and Boolean.

182{ ABSTRACT_CONVERTER(INT64, Integer64); }
Definition: numbers.h:221

◆ to_intptr()

virtual INT_PTR to_intptr ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, IntegerPtr, and Boolean.

183{ ABSTRACT_CONVERTER(INT_PTR, IntegerPtr); }
Definition: numbers.h:271

◆ to_bool()

virtual BOOL to_bool ( )
inlinevirtual

Reimplemented in Integer, Integer64, IntegerPtr, and Boolean.

184{ ABSTRACT_CONVERTER(BOOL, Boolean); }
Definition: value.h:671

◆ to_bitarray()

virtual BitArray & to_bitarray ( )
inlinevirtual

Reimplemented in BitArrayValue.

185{ throw ConversionError (this, _M("BitArray")); return *(BitArray*)nullptr; }
Definition: exceptions.h:311

◆ to_point4()

virtual Point4 to_point4 ( )
inlinevirtual

Reimplemented in Point4Value, and ColorValue.

186{ ABSTRACT_CONVERTER(Point4, Point4); }

◆ to_point3()

virtual Point3 to_point3 ( )
inlinevirtual

Reimplemented in Point3Value, Point4Value, and ColorValue.

187{ ABSTRACT_CONVERTER(Point3, Point3); }

◆ to_point2()

virtual Point2 to_point2 ( )
inlinevirtual

Reimplemented in Point3Value, Point2Value, and Point4Value.

188{ ABSTRACT_CONVERTER(Point2, Point2); }

◆ to_acolor()

virtual AColor to_acolor ( )
inlinevirtual

Reimplemented in Point3Value, Point4Value, and ColorValue.

189{ throw ConversionError (this, _M("Color")); return AColor(0,0,0); }

◆ to_colorref()

virtual COLORREF to_colorref ( )
inlinevirtual

Reimplemented in Point3Value, Point4Value, and ColorValue.

190{ throw ConversionError (this, _M("Color")); return RGB(0,0,0); }

◆ to_node()

virtual INode * to_node ( )
inlinevirtual

Reimplemented in MAXNode, and MAXSubAnim.

191{ ABSTRACT_CONVERTER(INode*, <node>); }
Definition: inode.h:55

◆ to_ray()

virtual Ray to_ray ( )
inlinevirtual

Reimplemented in RayValue.

192{ throw ConversionError (this, _M("Ray")); return Ray(); }

◆ to_interval()

virtual Interval to_interval ( )
inlinevirtual

Reimplemented in MSInterval.

193{ throw ConversionError (this, _M("Interval")); return Interval(); }
Definition: interval.h:36

◆ to_quat()

virtual Quat to_quat ( )
inlinevirtual

Reimplemented in QuatValue, AngAxisValue, EulerAnglesValue, and Matrix3Value.

194{ throw ConversionError (this, _M("Quaternion")); return Quat(); }

◆ to_angaxis()

virtual AngAxis to_angaxis ( )
inlinevirtual

Reimplemented in QuatValue, AngAxisValue, and EulerAnglesValue.

195{ throw ConversionError (this, _M("AngleAxis")); return AngAxis(); }

◆ to_matrix3()

virtual Matrix3 & to_matrix3 ( )
inlinevirtual

Reimplemented in Matrix3Value.

196{ throw ConversionError (this, _M("Matrix")); return s_error_matrix; }

◆ to_box3()

virtual Box3 to_box3 ( )
inlinevirtual

Reimplemented in Box3Value.

197{ throw ConversionError (this, _M("Box3")); return Box3(); }

◆ to_eulerangles()

virtual float * to_eulerangles ( )
inlinevirtual

Reimplemented in EulerAnglesValue.

198{ ABSTRACT_CONVERTER(float*, Float); }

◆ to_mtl()

virtual Mtl * to_mtl ( )
inlinevirtual

Reimplemented in Undefined, MAXMaterial, MAXMultiMaterial, and MAXSubAnim.

The main material class definition.
Definition: mtl.h:209
Definition: Mtl.h:36

◆ to_texmap()

virtual Texmap * to_texmap ( )
inlinevirtual

Reimplemented in MAXTexture, and MAXSubAnim.

200{ ABSTRACT_CONVERTER(Texmap*, TextureMap); }
Definition: Texmap.h:147

◆ to_mtlbase()

virtual MtlBase * to_mtlbase ( )
inlinevirtual

Reimplemented in MAXMaterial, MAXMultiMaterial, MAXTexture, and MAXMtlBase.

Definition: MtlBase.h:159

◆ to_modifier()

virtual Modifier * to_modifier ( )
inlinevirtual

Reimplemented in MAXModifier, and MAXSubAnim.

This is the class from which you may derive Object Space and Space Warp (World Space) Modifier plug-i...
Definition: object.h:5338

◆ to_timevalue()

virtual TimeValue to_timevalue ( )
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, and IntegerPtr.

int TimeValue
Definition: maxtypes.h:31

◆ to_controller()

virtual Control * to_controller ( )
inlinevirtual

Reimplemented in MAXControl, and MAXSubAnim.

204{ ABSTRACT_CONVERTER(Control*, Controller); }
Definition: control.h:1055

◆ to_atmospheric()

virtual Atmospheric * to_atmospheric ( )
inlinevirtual

Reimplemented in MAXSubAnim, MAXAtmospheric, and MSPluginAtmos.

Definition: sfx.h:387

◆ to_effect()

virtual Effect * to_effect ( )
inlinevirtual

Reimplemented in MAXSubAnim, MAXEffect, and MSPluginEffect.

206{ ABSTRACT_CONVERTER(Effect*, Effect); } // RK: Added this
Definition: sfx.h:523

◆ to_mpassCamEffect()

virtual IMultiPassCameraEffect * to_mpassCamEffect ( )
inlinevirtual

Reimplemented in MAXMultiPassCameraEffect.

207{ ABSTRACT_CONVERTER(IMultiPassCameraEffect*, Effect); } // LAM: Added this
The multipass camera effect allows modification of viewpoints and view directions or time for each pa...
Definition: object.h:2663

◆ to_shadowtype()

virtual ShadowType * to_shadowtype ( )
inlinevirtual

Reimplemented in MAXShadowType.

208{ ABSTRACT_CONVERTER(ShadowType*, ShadowType); } // RK: Added this
Definition: shadgen.h:114

◆ to_filter()

virtual FilterKernel * to_filter ( )
inlinevirtual
209{ ABSTRACT_CONVERTER(FilterKernel*, FilterKernel); } // RK: Added this
Definition: sfx.h:731

◆ to_rootnode()

virtual INode * to_rootnode ( )
inlinevirtual

Reimplemented in MAXRootNode.

210{ ABSTRACT_CONVERTER(INode*, <root>); } // RK: Added this

◆ to_trackviewnode()

virtual ITrackViewNode * to_trackviewnode ( )
inlinevirtual

Reimplemented in MAXSubAnim, and MAXTVNode.

211{ ABSTRACT_CONVERTER(ITrackViewNode*, TrackViewNode); }
Definition: tvnode.h:118

◆ to_nurbsindependentpoint()

virtual NURBSIndependentPoint * to_nurbsindependentpoint ( )
inlinevirtual
212{ throw ConversionError (this, _M("NURBSIndependentPoint")); return (NURBSIndependentPoint*)nullptr; }
Definition: surf_api.h:533

◆ to_nurbspoint()

virtual NURBSPoint * to_nurbspoint ( )
inlinevirtual
213{ throw ConversionError (this, _M("NURBSPoint")); return (NURBSPoint*)nullptr; }
Definition: surf_api.h:423

◆ to_nurbsobject()

virtual NURBSObject * to_nurbsobject ( )
inlinevirtual
214{ throw ConversionError (this, _M("NURBSObject")); return (NURBSObject*)nullptr; }
Definition: surf_api.h:328

◆ to_nurbscontrolvertex()

virtual NURBSControlVertex * to_nurbscontrolvertex ( )
inlinevirtual
215{ throw ConversionError (this, _M("NURBSControlVertex")); return (NURBSControlVertex*)nullptr; }
Definition: surf_api.h:604

◆ to_nurbscurve()

virtual NURBSCurve * to_nurbscurve ( )
inlinevirtual
216{ throw ConversionError (this, _M("NURBSCurve")); return (NURBSCurve*)nullptr; }
Definition: surf_api.h:1462

◆ to_nurbscvcurve()

virtual NURBSCVCurve * to_nurbscvcurve ( )
inlinevirtual
217{ throw ConversionError (this, _M("NURBSCVCurve")); return (NURBSCVCurve*)nullptr; }
Definition: surf_api.h:1599

◆ to_nurbssurface()

virtual NURBSSurface * to_nurbssurface ( )
inlinevirtual
218{ throw ConversionError (this, _M("NURBSSurface")); return (NURBSSurface*)nullptr; }
Definition: surf_api.h:3505

◆ to_nurbstexturepoint()

virtual NURBSTexturePoint * to_nurbstexturepoint ( )
inlinevirtual
219{ throw ConversionError (this, _M("NURBSTexturePoint")); return (NURBSTexturePoint*)nullptr; }
Definition: surf_api.h:458

◆ to_nurbsset()

virtual NURBSSet * to_nurbsset ( )
inlinevirtual
220{ throw ConversionError (this, _M("NURBSSet")); return (NURBSSet*)nullptr; }
Definition: surf_api.h:6341

◆ to_reftarg()

virtual ReferenceTarget * to_reftarg ( )
inlinevirtual

Reimplemented in MAXWrapper.

221{ ABSTRACT_CONVERTER(ReferenceTarget*, MaxObject); }
A scene entity that is being owned and listened to by other scene entities.
Definition: ref.h:1869

◆ to_mesh()

virtual Mesh * to_mesh ( )
inlinevirtual

Reimplemented in MeshValue.

The Mesh class is provided for use by plug-ins and is used by the system.
Definition: mesh.h:1126

◆ to_beziershape()

virtual BezierShape * to_beziershape ( )
inlinevirtual

Reimplemented in BezierShapeValue.

Defines a basic bezier shape object.
Definition: shape.h:273

◆ to_thunk()

virtual Thunk * to_thunk ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, and Thunk.

224{ ABSTRACT_CONVERTER(Thunk*, &-reference); }
Definition: thunks.h:26

◆ to_fpvalue()

◆ to_renderer()

virtual Renderer * to_renderer ( )
inlinevirtual

Reimplemented in MAXRenderer.

227{ ABSTRACT_CONVERTER(Renderer*, Renderer); } // LAM: Added this 9/15/01
This is the base class for any renderer plugin.
Definition: Renderer.h:60

◆ to_box2()

virtual Box2 & to_box2 ( )
inlinevirtual

Reimplemented in Box2Value.

229{ throw ConversionError (this, _M("Box2")); return s_error_box2; }

◆ to_nurbstexturesurface()

virtual NURBSTextureSurface * to_nurbstexturesurface ( )
inlinevirtual
230{ throw ConversionError (this, _M("NURBSTextureSurface")); return (NURBSTextureSurface*)nullptr; }
Definition: surf_api.h:3190

◆ to_nurbsdisplay()

virtual NURBSDisplay * to_nurbsdisplay ( )
inlinevirtual
231{ throw ConversionError (this, _M("NURBSDisplay")); return (NURBSDisplay*)nullptr; }
Definition: surf_api.h:6207

◆ to_tessapprox()

virtual TessApprox * to_tessapprox ( )
inlinevirtual
232{ throw ConversionError (this, _M("TessApprox")); return (TessApprox*)nullptr; }
Definition: maxtess.h:166

◆ widen_to()

virtual Value * widen_to ( Value *  arg,
Value **  arg_list 
)
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, and IntegerPtr.

234{ ABSTRACT_WIDENER(arg); }
#define ABSTRACT_WIDENER(a)
Definition: define_abstract_functions.h:160

◆ comparable()

virtual BOOL comparable ( Value *  arg)
inlinevirtual

Reimplemented in MSTime, Float, Double, Integer, Integer64, and IntegerPtr.

235{ return (tag == arg->tag); }
ValueMetaClass * tag
Definition: value.h:114

◆ special_case_compare()

virtual BOOL special_case_compare ( Value *  arg,
bool &  specialCaseCompareResult 
)
inlinevirtual

Reimplemented in Boolean, Integer, Integer64, and IntegerPtr.

239{ return FALSE; }

◆ ValuesEqual()

virtual ScripterExport bool ValuesEqual ( Value *  other,
bool  strictCompare 
)
virtual
Remarks
Compare whether 2 values are equivalent. The ValuesEqual method is used by the deepEqual function to test to see if two values are equivalent. This allows, for example, testing to see if 2 arrays are equivalent. (The == operator on arrays just tests to see if the two arrays are the same array). Classes that implement this method are Value, Array, DataPair, and MXSDictionary
Parameters
otherThe value to compare against this value
strictCompareIf true, the type of 'other' must be the same as this value. If false, 'other' must just be comparable with this value using the eq_vf method. So, for example, Integer value 1 and Float value 1 would compare as false if strictCompare is true, and true if strictCompare is false.
Returns
True if the value is equivalent, false if not.
Example implementations:
bool Value::ValuesEqual(Value* other, bool strictCompare)
{
if (this == other)
return true;
if (other == nullptr)
return false;
if (strictCompare)
{
if (tag != other->tag)
return false;
}
else
{
if (!comparable(other))
return false;
}
Value* temp[1] = { other };
return (eq_vf(temp, 1) == &true_value);
}
bool Array::ValuesEqual(Value* other, bool strictCompare)
{
if (this == other)
return true;
if (other == nullptr)
return false;
if (!is_array(other))
return false;
Array* a2 = (Array*)other;
if (size != a2->size)
return false;
for (int i = 0; i < size; i++)
{
if (!data[i]->ValuesEqual(a2->data[i], strictCompare))
return false;
}
return true;
}
#define is_array(v)
Definition: arrays.h:39
Definition: arrays.h:20
int volatile size
Definition: arrays.h:22
Value **volatile data
Definition: arrays.h:24
bool ValuesEqual(Value *other, bool strictCompare) override
virtual BOOL comparable(Value *arg)
Definition: value.h:235
virtual ScripterExport bool ValuesEqual(Value *other, bool strictCompare)
ScripterExport Boolean true_value

Reimplemented in Array, DataPair, and MXSDictionaryValue.

◆ deep_copy()

virtual ScripterExport Value * deep_copy ( HashTable *  remapper)
virtual

◆ is_const()

virtual BOOL is_const ( )
inlinevirtual

Reimplemented in ConstPoint3Value, and ConstColorValue.

324{ return FALSE; }

◆ get_property()

◆ set_property()

◆ _get_property() [1/2]

ScripterExport Value * _get_property ( Value *  prop)

◆ _set_property() [1/2]

virtual ScripterExport Value * _set_property ( Value *  prop,
Value *  val 
)
virtual

◆ get_container_property()

virtual Value * get_container_property ( Value *  prop,
Value *  cur_prop 
)
inlinevirtual

Reimplemented in PluginParamThunk, MAXWrapper, and MAXPB2ArrayParam.

340{ if (!dontThrowAccessorError) throw AccessorError (cur_prop, prop); return nullptr; }
Definition: exceptions.h:222
ScripterExport bool dontThrowAccessorError

◆ set_container_property()

virtual Value * set_container_property ( Value *  prop,
Value *  val,
Value *  cur_prop 
)
inlinevirtual

Reimplemented in PluginParamThunk, MAXWrapper, and MAXPB2ArrayParam.

341{ throw AccessorError (cur_prop, prop); return nullptr;}

◆ _is_collection()

virtual BOOL _is_collection ( )
inlinevirtual

◆ _is_charstream()

virtual BOOL _is_charstream ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, and CharStream.

345{ return FALSE; }

◆ _is_rolloutcontrol()

virtual BOOL _is_rolloutcontrol ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, and RolloutControl.

346{ return FALSE; }

◆ _is_rolloutthunk()

virtual BOOL _is_rolloutthunk ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, RolloutControlThunk, and RolloutLocalThunk.

347{ return FALSE; }

◆ _is_function()

◆ _is_selection()

virtual BOOL _is_selection ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, Array, and BitArrayValue.

349{ return FALSE; }

◆ _is_thunk()

virtual BOOL _is_thunk ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, and Thunk.

350{ return FALSE; }

◆ _is_indirect_thunk()

virtual BOOL _is_indirect_thunk ( )
inlinevirtual

Reimplemented in SourcePositionWrapper, IndirectLocalThunk, and IndirectFreeThunk.

351{ return FALSE; }

◆ selection_iterator()

virtual SelectionIterator * selection_iterator ( )
inlinevirtual

Reimplemented in Array, and BitArrayValue.

354{ throw RuntimeError (_M("Operation requires a selection (Array or BitArray)")); return nullptr; }
Definition: exceptions.h:253

◆ Save()

◆ drop_MAX_refs()

virtual void drop_MAX_refs ( )
inlinevirtual

Reimplemented in MAXWrapper, and MAXNode.

361{ }

◆ GetInterface()

◆ make_heap_permanent()

ScripterExport Value * make_heap_permanent ( )

◆ make_heap_static()

ScripterExport Value * make_heap_static ( )
inline
368{ Value* v = make_heap_permanent(); v->flags |= GC_STATIC; return v; }
byte flags
Definition: collectable.h:121
ScripterExport Value * make_heap_permanent()
@ GC_STATIC
Definition: collectable.h:44

◆ get_heap_ptr()

ScripterExport Value * get_heap_ptr ( )
inline
370{ if (!has_heap_copy()) return migrate_to_heap(); return is_on_stack() ? get_stack_heap_ptr() : this; }
int is_on_stack()
Definition: collectable.h:188
int has_heap_copy()
Definition: collectable.h:186
ScripterExport Value * get_stack_heap_ptr()
Definition: value.h:371
ScripterExport Value * migrate_to_heap()

◆ get_stack_heap_ptr()

ScripterExport Value * get_stack_heap_ptr ( )
inline
371{ return (Value*)next; }
Collectable * next
Definition: collectable.h:117

◆ migrate_to_heap()

ScripterExport Value * migrate_to_heap ( )

◆ get_live_ptr()

ScripterExport Value * get_live_ptr ( )
inline
373{ return is_on_stack() && has_heap_copy() ? get_stack_heap_ptr() : this; }

◆ object_supports_case_sensitive_names()

virtual BOOL object_supports_case_sensitive_names ( )
inlinevirtual
382{ return FALSE; }

◆ _get_property() [2/2]

ScripterExport Value * _get_property ( Value *  prop,
Value *  prop_name_as_parsed 
)

◆ _set_property() [2/2]

ScripterExport Value * _set_property ( Value *  prop,
Value *  val,
Value *  prop_name_as_parsed 
)

◆ get_case_sensitive_property()

virtual ScripterExport Value * get_case_sensitive_property ( Value **  arg_list,
int  count,
const TCHAR *  case_sensitive_name 
)
virtual

◆ set_case_sensitive_property()

virtual ScripterExport Value * set_case_sensitive_property ( Value **  arg_list,
int  count,
const TCHAR *  case_sensitive_name 
)
virtual

◆ invoke_getter_case_sensitive_property()

ScripterExport Value * invoke_getter_case_sensitive_property ( Value *  target,
getter_vf  getter,
Value **  arg_list,
int  count,
const TCHAR *  case_sensitive_name,
const TCHAR *  nested_prop_case_sensitive_name 
)

◆ invoke_setter_case_sensitive_property()

ScripterExport Value * invoke_setter_case_sensitive_property ( Value *  target,
setter_vf  setter,
Value **  arg_list,
int  count,
const TCHAR *  case_sensitive_name,
const TCHAR *  nested_prop_case_sensitive_name 
)

Member Data Documentation

◆ tag

◆ keyarg_marker_value

ScripterExport Value* keyarg_marker_value
staticprotected