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

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

Inheritance diagram for DataPair:

Public Member Functions

ScripterExport DataPair ()
ScripterExport DataPair (Value *v1, Value *v2, Value *v1_name=nullptr, Value *v2_name=nullptr)
 classof_methods (DataPair, Value)
void collect () override
void sprin1 (CharStream *s) override
void gc_trace () override
Value * deep_copy (HashTable *remapper) override
bool ValuesEqual (Value *other, bool strictCompare) override
IOResult Save (ISave *isave) override
 use_generic (get_props, "getPropNames")
 use_generic (copy, "copy")
Value * get_property (Value **arg_list, int count) override
Value * set_property (Value **arg_list, int count) override
Public Member Functions inherited from Value
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 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 BOOL is_const ()
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 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)
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 ()

Static Public Member Functions

static Value * make (Value **arg_list, int count)
static Value * Load (ILoad *iload, USHORT chunkID, ValueLoader *vload)
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 ()

Public Attributes

Value * v1
Value * v2
Value * v1_name
Value * v2_name
Public Attributes inherited from Value
ValueMetaClass * tag
Public Attributes inherited from Collectable
Collectable * next
Collectable * prev
byte flags
byte flags2
short flags3

Additional Inherited Members

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
Static Protected Attributes inherited from Value
static ScripterExport Value * keyarg_marker_value

Constructor & Destructor Documentation

◆ DataPair() [1/2]

◆ DataPair() [2/2]

ScripterExport DataPair ( Value * v1,
Value * v2,
Value * v1_name = nullptr,
Value * v2_name = nullptr )

Member Function Documentation

◆ classof_methods()

classof_methods ( DataPair ,
Value  )

◆ make()

Value * make ( Value ** arg_list,
int count )
static

◆ collect()

void collect ( )
inlineoverridevirtual

Implements Collectable.

32{ delete this; }

◆ sprin1()

void sprin1 ( CharStream * s)
overridevirtual

Reimplemented from Value.

◆ gc_trace()

void gc_trace ( )
overridevirtual

Reimplemented from Collectable.

◆ deep_copy()

Value * deep_copy ( HashTable * remapper)
overridevirtual

Reimplemented from Value.

◆ ValuesEqual()

bool ValuesEqual ( Value * other,
bool strictCompare )
overridevirtual
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
int volatile size
Definition arrays.h:22
Value **volatile data
Definition arrays.h:24
bool ValuesEqual(Value *other, bool strictCompare) override
friend class Value
Definition collectable.h:115
bool ValuesEqual(Value *other, bool strictCompare) override
virtual BOOL comparable(Value *arg)
Definition value.h:236
virtual ScripterExport bool ValuesEqual(Value *other, bool strictCompare)
ValueMetaClass * tag
Definition value.h:115
ScripterExport Boolean true_value

Reimplemented from Value.

◆ Save()

IOResult Save ( ISave * isave)
overridevirtual

Reimplemented from Value.

◆ Load()

Value * Load ( ILoad * iload,
USHORT chunkID,
ValueLoader * vload )
static

◆ use_generic() [1/2]

use_generic ( get_props ,
"getPropNames"  )

◆ use_generic() [2/2]

use_generic ( copy ,
"copy"  )

◆ get_property()

Value * get_property ( Value ** arg_list,
int count )
overridevirtual

Reimplemented from Value.

◆ set_property()

Value * set_property ( Value ** arg_list,
int count )
overridevirtual

Reimplemented from Value.

Member Data Documentation

◆ v1

Value* v1

◆ v2

Value* v2

◆ v1_name

Value* v1_name

◆ v2_name

Value* v2_name