00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #pragma once
00018
00019 #include "maxheap.h"
00020 #include "baseInterface.h"
00021 #include "strbasic.h"
00022 #include "iparamb2Typedefs.h"
00023 #include "coreexp.h"
00024 #include "strclass.h"
00025
00026
00027 class ISave;
00028 class ILoad;
00029 class AColor;
00030 class Point4;
00031
00032
00033 class FPInterface;
00034 class FPInterfaceDesc;
00035 class FPStaticInterface;
00036 class FPMixinInterface;
00037
00038 class FPFunctionDef;
00039 class FPActionDef;
00040 class FPParamDef;
00041 class FPPropDef;
00042 class FPParams;
00043 class FPParamOptions;
00044 class FPValidator;
00045 class FPEnum;
00046 class FPValue;
00047 class IObject;
00048 class MAXException;
00049 class FPMacroEmitter;
00050
00051 typedef int FPStatus;
00053 typedef short FunctionID;
00055 #define FP_NO_FUNCTION ((FunctionID)-1)
00056 typedef short EnumID;
00057 #define FP_NO_ENUM ((EnumID)-1)
00058
00059
00060 #define NULLINTERFACE_ID Interface_ID(0, 0) // null interface
00061
00062 #define FPINTERFACE_ID Interface_ID(0, 2) // root FPInterface
00063 #define FPMIXININTERFACE_ID Interface_ID(0, 3) // root FPMixinInterface
00064 #define FPINTERFACEDESC_ID Interface_ID(0, 4) // root FPInterfaceDesc
00065
00066
00067 inline FPInterface* GetFPInterface(BaseInterface* bi) { return reinterpret_cast<FPInterface*>( bi->GetInterface(FPINTERFACE_ID)); }
00068 inline FPInterfaceDesc* GetFPInterfaceDesc(BaseInterface* bi) { return reinterpret_cast<FPInterfaceDesc*>( bi->GetInterface(FPINTERFACEDESC_ID)); }
00069 inline FPMixinInterface* GetFPMixinInterface(BaseInterface* bi){ return reinterpret_cast<FPMixinInterface*>(bi->GetInterface(FPMIXININTERFACE_ID)); }
00070
00071
00072 class ClassDesc;
00073 class MSPluginClass;
00074 class Rollout;
00075 class MaxIcon;
00076 class ActionTable;
00077 class Point3;
00078 class PBBitmap;
00079 class Mtl;
00080 class Texmap;
00081 class INode;
00082 class ReferenceTarget;
00083 class Matrix3;
00084 class AngAxis;
00085 class Quat;
00086 class Ray;
00087 class Point2;
00088 class BitArray;
00089 class ClassDesc;
00090 class Mesh;
00091 class Object;
00092 class Control;
00093 class Interval;
00094 class Color;
00095 class Value;
00096
00101 #define FPS_FAIL 0 //!< Indicates a failure.
00102 #define FPS_NO_SUCH_FUNCTION -1 //!< The function called does not exist.
00103 #define FPS_ACTION_DISABLED -2 //!< The action is disabled.
00104 #define FPS_OK 1 //!< Indicates a success.
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00132 class FPInterface : public BaseInterface
00133 {
00134 protected:
00135 #pragma warning(push)
00136 #pragma warning(disable:4100)
00137 virtual FPStatus _dispatch_fn(FunctionID fid, TimeValue t, FPValue& result, FPParams* p) { return FPS_NO_SUCH_FUNCTION; }
00138 #pragma warning(pop)
00139 public:
00140 static CoreExport FPInterfaceDesc nullInterface;
00141
00142
00143 virtual BaseInterface* GetInterface(Interface_ID id)
00144 {
00145 if (id == FPINTERFACE_ID) return this;
00146 else if (id == FPINTERFACEDESC_ID) return (BaseInterface*)GetDesc();
00147 else return BaseInterface::GetInterface(id);
00148 }
00149
00150
00153 virtual FPInterfaceDesc* GetDesc() = 0;
00154
00155
00165 CoreExport virtual FPStatus Invoke(FunctionID fid, TimeValue t=0, FPParams* params=NULL);
00173 virtual inline FPStatus Invoke(FunctionID fid, FPParams* params) { return Invoke(fid, 0, params); }
00185 CoreExport virtual FPStatus Invoke(FunctionID fid, TimeValue t, FPValue& result, FPParams* params=NULL);
00195 virtual inline FPStatus Invoke(FunctionID fid, FPValue& result, FPParams* params=NULL) { return Invoke(fid, 0, result, params); }
00201 CoreExport virtual FunctionID FindFn(MCHAR* name);
00202
00203
00210 CoreExport virtual BOOL IsEnabled(FunctionID actionID);
00217 CoreExport virtual BOOL IsChecked(FunctionID actionID);
00225 CoreExport virtual BOOL IsVisible(FunctionID actionID);
00231 CoreExport virtual FunctionID GetIsEnabled(FunctionID actionID);
00237 CoreExport virtual FunctionID GetIsChecked(FunctionID actionID);
00243 CoreExport virtual FunctionID GetIsVisible(FunctionID actionID);
00244
00245
00249 virtual ActionTable* GetActionTable() { return NULL; }
00250
00260 virtual void EnableActions(BOOL onOff) { UNUSED_PARAM(onOff); }
00261 };
00262
00263 #include "paramtype.h"
00264
00265
00266
00267
00268
00326 class FPInterfaceDesc : public FPInterface
00327 {
00328 protected:
00329 CoreExport void load_descriptor(Interface_ID id, MCHAR* int_name, StringResID descr, ClassDesc* cd, USHORT flag, va_list ap);
00330
00331 public:
00332
00333 Interface_ID ID;
00334 MSTR internal_name;
00335 StringResID description;
00336 ClassDesc* cd;
00337 USHORT flags;
00338 Tab<FPFunctionDef*> functions;
00339 Tab<FPPropDef*> props;
00340 Tab<FPEnum*> enumerations;
00341
00342 MSPluginClass* pc;
00343 Rollout* rollout;
00344
00345 ActionTable* action_table;
00346
00347
00349 CoreExport FPInterfaceDesc() { }
00371 CoreExport FPInterfaceDesc(Interface_ID id, MCHAR* int_name, StringResID descr, ClassDesc* cd, ULONG flag, ...);
00372
00373 CoreExport ~FPInterfaceDesc();
00384 virtual void Init() { }
00385
00386
00387 LifetimeType LifetimeControl() { return noRelease; }
00388
00389
00390 virtual BaseInterface* GetInterface(Interface_ID id) { if (id == FPINTERFACEDESC_ID) return this; else return FPInterface::GetInterface(id); }
00391
00392
00420 CoreExport void LoadDescriptor(Interface_ID id, MCHAR* int_name, StringResID descr, ClassDesc* cd, ULONG flag, ...);
00421
00429 CoreExport void AppendFunction(int id, ...);
00430
00431
00439 CoreExport void AppendProperty(int id, ...);
00440
00448 CoreExport void AppendEnum(int id, ...);
00449
00450
00459 CoreExport void SetClassDesc(ClassDesc* i_cd);
00461 CoreExport va_list check_fn(va_list ap, int id);
00463 CoreExport va_list scan_fn(va_list ap, int id, int index);
00465 CoreExport va_list check_prop(va_list ap, int id);
00467 CoreExport va_list scan_prop(va_list ap, int id, int index);
00469 CoreExport va_list check_enum(va_list ap, EnumID id);
00471 CoreExport va_list scan_enum(va_list ap, EnumID id, int index);
00472
00473
00478 FPInterfaceDesc* GetDesc() { return this; }
00479 Interface_ID GetID() { return ID; }
00488 CoreExport FPFunctionDef* GetFnDef(FunctionID fid);
00492 ActionTable* GetActionTable() { return action_table; }
00493
00494
00502 CoreExport void EnableActions(BOOL onOff);
00503
00504
00506 CoreExport virtual HINSTANCE HInstance();
00512 CoreExport virtual MCHAR* GetRsrcString(StringResID id);
00513
00514 private:
00515 va_list AppendFunction(va_list ap, int id);
00516 va_list AppendProperty(va_list ap, int id);
00517 va_list AppendEnum(va_list ap, int id);
00518 };
00519
00520
00521
00522 #define FP_ACTIONS 0x0001 // marks this as an Action Interface, holding only UI modal, zero param action fns
00523 #define FP_MIXIN 0x0002 // marks this as a Mixin Interface, it is implemented directly by the plugin class, so the
00524
00525 #define FP_CORE 0x0004 // marks this as a MAX Core Interface, available through GetCOREInterface(Interface_ID)
00526 #define FP_STATIC_METHODS 0x0008 // this interface is used as a static method interface in MAXScript, properties are not directly callable
00527 #define FP_TEST_INTERFACE 0x0010 // a non-public test interface, Discreet internal use only
00528
00529
00530 #define FP_SCRIPTED_CLASS 0x1000 // belongs to a scripted plug-in class
00531 #define FP_TEMPORARY 0x2000 // temporary descripter built during scene load to support schema migration
00532
00533
00541 class FPStaticInterface : public FPInterfaceDesc
00542 {
00543 };
00544
00545
00546 class FPMixinInterfaceValue;
00547
00548
00563 class FPMixinInterface : public FPInterface
00564 {
00565 friend class FPMixinInterfaceValue;
00566 private:
00567 FPMixinInterfaceValue* MXS_fpi;
00568 protected:
00569 Tab<InterfaceNotifyCallback*> *interfaceNotifyCBs;
00570
00571
00572
00573
00574 FPMixinInterface(const FPMixinInterface& rhs) : MXS_fpi(NULL), interfaceNotifyCBs(NULL) { UNUSED_PARAM(rhs); }
00575 FPMixinInterface& operator=(const FPMixinInterface& rhs) { UNUSED_PARAM(rhs); return *this;}
00576
00577 public:
00578
00579 FPMixinInterface() : MXS_fpi(NULL), interfaceNotifyCBs(NULL) {}
00580
00581
00582
00583 virtual LifetimeType LifetimeControl() { return serverControlled; }
00584
00585 CoreExport virtual bool RegisterNotifyCallback(InterfaceNotifyCallback* incb);
00586
00587 virtual void UnRegisterNotifyCallback(InterfaceNotifyCallback* incb)
00588 {
00589 if (interfaceNotifyCBs)
00590 for (int i=0; i < interfaceNotifyCBs->Count(); i++)
00591 { if (incb == (*interfaceNotifyCBs)[i])
00592 interfaceNotifyCBs->Delete(i,1);
00593 }
00594 }
00595
00596 CoreExport ~FPMixinInterface();
00597
00598
00599 virtual BaseInterface* GetInterface(Interface_ID id) { if (id == FPMIXININTERFACE_ID) return this; else return FPInterface::GetInterface(id); }
00600
00601
00602
00603
00604
00617 virtual FPInterfaceDesc* GetDescByID(Interface_ID id) { UNUSED_PARAM(id); return &nullInterface; }
00618
00619
00620
00628 virtual Interface_ID GetID() { return GetDesc()->ID; }
00629 };
00630
00631
00632
00676 class FPFunctionDef: public MaxHeapOperators
00677 {
00678 public:
00679
00680 DWORD cbStruct;
00681 FunctionID ID;
00682 MSTR internal_name;
00683 StringResID description;
00684 USHORT flags;
00685 ParamType2 result_type;
00686 EnumID enumID;
00687 FPActionDef* action_def;
00688 Tab<FPParamDef*> params;
00689 SHORT keyparam_count;
00690
00695 FPFunctionDef() {cbStruct = sizeof(FPFunctionDef); flags = 0; description = 0; action_def = NULL; enumID = FP_NO_ENUM; keyparam_count = 0; }
00696 CoreExport ~FPFunctionDef();
00697 };
00698
00724 class FPPropDef: public MaxHeapOperators
00725 {
00726 public:
00727 DWORD cbStruct;
00728 FunctionID getter_ID;
00729 FunctionID setter_ID;
00730 MSTR internal_name;
00731 StringResID description;
00732 USHORT flags;
00733 ParamType2 prop_type;
00734 EnumID enumID;
00735 FPParamDef* setter_param;
00736
00740 FPPropDef() { cbStruct = sizeof(FPPropDef); flags = 0; description = 0; getter_ID = setter_ID = FPS_NO_SUCH_FUNCTION; enumID = FP_NO_ENUM; setter_param = NULL; }
00741 CoreExport ~FPPropDef();
00742 };
00743
00744
00745 #define FP_NO_REDRAW 0x0001 // do not flag need for viewport redraw when function is invoked, MAXScript defaults to flag redraw
00746 #define FP_VAR_ARGS 0x0002 // variable number of args, pass args directly in a FPParams instance
00747 #define FP_CLIENT_OWNS_RESULT 0x0004 // client owns lifetime of pointer-based results, should delete when finished using
00748
00749 #define FP_ACTION 0x0100 // indicates an action function
00750 #define FP_HAS_UI 0x0200 // action has UI specifiec
00751 #define FP_ICONRES 0x0400 // icon via res ID
00752 #define FP_ICONFILE 0x0800 // icon via bmp file + index
00753 #define FP_HAS_SHORTCUT 0x1000 // has default KB shortct
00754 #define FP_HAS_KEYARGS 0x2000 // fn has some optional keyword args defined
00755
00756
00757
00802 class FPActionDef: public MaxHeapOperators
00803 {
00804 public:
00805 DWORD cbStruct;
00806 MSTR internal_cat;
00807 StringResID category;
00808 FunctionID isEnabled_id;
00809 FunctionID isChecked_id;
00810 FunctionID isVisible_id;
00811 ResID icon_resID;
00812 MSTR icon_file;
00813 short icon_index;
00814 MaxIcon* icon;
00815 StringResID button_text;
00816 StringResID tool_tip;
00817 StringResID menu_text;
00818 ControlType2 ctrl_type;
00819 ResID ctrl_pbID;
00820 MapID ctrl_mapID;
00821 int ctrl_id;
00822 COLORREF ctrl_hiCol;
00823 ACCEL shortcut;
00824 FPMacroEmitter* macro_emitter;
00825
00828 CoreExport FPActionDef();
00830 CoreExport ~FPActionDef();
00831 };
00832
00833
00834 enum {
00835
00836 f_category = -(1<<30),
00837 f_predicates,
00838 f_isEnabled,
00839 f_isChecked,
00840 f_isVisible,
00841 f_iconRes,
00842 f_icon,
00843 f_buttonText,
00844 f_toolTip,
00845 f_menuText,
00846 f_ui,
00847 f_shortCut,
00848 f_macroEmitter,
00849
00850 f_range,
00851 f_validator,
00852 f_inOut,
00853 f_keyArgDefault,
00854 f_index,
00855 };
00856
00857
00858
00859
00860
00861 #define FPP_HAS_RANGE 0x0001
00862 #define FPP_HAS_VALIDATOR 0x0002
00863 #define FPP_IN_PARAM 0x0004 // in-out flags used by _BR ref types to decide when to pass in source values or hand back returns
00864 #define FPP_OUT_PARAM 0x0008 // " "
00865 #define FPP_IN_OUT_PARAM 0x000C // " " both
00866 #define FPP_KEYARG 0x0010 // if p_keyArgDefault supplied, client canuse keyword args if supported for this param
00867 #define FPP_INDEX 0x0020 // parameter values used as indexes, always 0-origin internally, allows client to map to other origins
00868
00908 class FPParamDef: public MaxHeapOperators
00909 {
00910 public:
00911 DWORD cbStruct;
00912 MSTR internal_name;
00913 StringResID description;
00914 ParamType2 type;
00915 EnumID enumID;
00916 USHORT flags;
00917 FPParamOptions* options;
00918
00923 FPParamDef() : cbStruct(sizeof(FPParamDef)), description(0), options(NULL), enumID(FP_NO_ENUM), flags(FPP_IN_OUT_PARAM) { }
00924 CoreExport ~FPParamDef() ;
00925 };
00926
00927
00928
00929
00930
00939 class FPParams: public MaxHeapOperators
00940 {
00941 public:
00942 Tab<FPValue> params;
00943
00947 FPParams() { }
00955 CoreExport FPParams(int count, ...);
00957 CoreExport ~FPParams();
00958
00966 CoreExport void Load(int count, ...);
00967 };
00968
00969
00970
00971
01069 class FPEnum : public MaxHeapOperators
01070 {
01071 public:
01073 EnumID ID;
01074 struct enum_code: public MaxHeapOperators
01075 {
01077 MCHAR* name;
01079 int code;
01080 };
01082 Tab<enum_code> enumeration;
01083 };
01084
01085
01086 class PBBitmap;
01087 class Texmap;
01088 class Value;
01089
01171 class FPValue: public MaxHeapOperators
01172 {
01173 public:
01174 ParamType2 type;
01175 union
01176 {
01177 int i;
01178 float f;
01179 DWORD d;
01180 bool b;
01181
01182 INT_PTR intptr;
01183
01184
01185
01186 INT64 i64;
01187
01188 double dbl;
01189
01190 int* iptr;
01191 float* fptr;
01192 Point3* p;
01193 Point4* p4;
01194 TimeValue t;
01195 MCHAR* s;
01196 MSTR* tstr;
01197 PBBitmap* bm;
01198 Mtl* mtl;
01199 Texmap* tex;
01200 INode* n;
01201 ReferenceTarget* r;
01202 Matrix3* m;
01203 AngAxis* aa;
01204 Quat* q;
01205 Ray* ray;
01206 Point2* p2;
01207 BitArray* bits;
01208 ClassDesc* cd;
01209 Mesh* msh;
01210 Object* obj;
01211 Control* ctrl;
01212 Interval* intvl;
01213 POINT* pt;
01214 HWND hwnd;
01215 IObject* iobj;
01216 FPInterface* fpi;
01217 void* ptr;
01218 Color* clr;
01219 AColor* aclr;
01220 FPValue* fpv;
01221 Value* v;
01222 DWORD* dptr;
01223 bool* bptr;
01224 INT_PTR* intptrptr;
01225 INT64* i64ptr;
01226 double* dblptr;
01227
01228
01229 Tab<int>* i_tab;
01230 Tab<float>* f_tab;
01231 Tab<Point3*>* p_tab;
01232 Tab<Point4*>* p4_tab;
01233 Tab<TimeValue>* t_tab;
01234 Tab<MCHAR*>* s_tab;
01235 Tab<MSTR*>* tstr_tab;
01236 Tab<PBBitmap*>* bm_tab;
01237 Tab<Mtl*>* mtl_tab;
01238 Tab<Texmap*>* tex_tab;
01239 Tab<INode*>* n_tab;
01240 Tab<ReferenceTarget*>* r_tab;
01241 Tab<Matrix3*>* m3_tab;
01242 Tab<AngAxis*>* aa_tab;
01243 Tab<Quat*>* q_tab;
01244 Tab<Ray*>* ray_tab;
01245 Tab<Point2*>* p2_tab;
01246 Tab<BitArray*>* bits_tab;
01247 Tab<ClassDesc*>* cd_tab;
01248 Tab<Mesh*>* msh_tab;
01249 Tab<Object*>* obj_tab;
01250 Tab<Control*>* ctrl_tab;
01251 Tab<Interval*>* intvl_tab;
01252 Tab<POINT*>* pt_tab;
01253 Tab<HWND>* hwnd_tab;
01254 Tab<IObject*>* iobj_tab;
01255 Tab<FPInterface*>* fpi_tab;
01256 Tab<void*>* ptr_tab;
01257 Tab<Color*>* clr_tab;
01258 Tab<AColor*>* aclr_tab;
01259 Tab<FPValue*>* fpv_tab;
01260 Tab<Value*>* v_tab;
01261 Tab<DWORD>* d_tab;
01262 Tab<bool>* b_tab;
01263 Tab<INT_PTR>* intptr_tab;
01264 Tab<INT64>* i64_tab;
01265 Tab<double>* dbl_tab;
01266 };
01267
01271 FPValue() { Init(); }
01278 FPValue(const FPValue& from) { Init(); *this = from; }
01283 FPValue(int type, ...) { va_list ap; va_start(ap, type); ap = Loadva(type, ap); va_end(ap); }
01287 CoreExport ~FPValue() { Free(); }
01290 CoreExport void Free();
01291
01295 CoreExport void Init();
01296
01298
01301 CoreExport void InitTab(ParamType2 type, int size);
01302
01304 CoreExport FPValue& operator=(const FPValue& sv);
01305 CoreExport va_list Loadva(int type, va_list ap, bool ptr=false);
01316 inline void Load(int type, ...) { va_list ap; va_start(ap, type); ap = Loadva(type, ap); va_end(ap); }
01327 inline void LoadPtr(int type, ...) { va_list ap; va_start(ap, type); ap = Loadva(type, ap, true); va_end(ap); }
01328
01330
01354 CoreExport IOResult Save(ISave* isave);
01355
01357
01362 CoreExport IOResult Load(ILoad* iload);
01363
01365
01368 CoreExport static bool IsPointerBasedType(ParamType2 type);
01369
01370 };
01371
01372
01390 class FPParamOptions: public MaxHeapOperators
01391 {
01392 public:
01393 DWORD cbStruct;
01394 FPValue range_low;
01395 FPValue range_high;
01396 FPValidator* validator;
01397 FPValue keyarg_default;
01398
01400 FPParamOptions() : cbStruct(sizeof(FPParamOptions)), validator(NULL) { }
01401 };
01402
01403
01437 class FPValidator : public InterfaceServer
01438 {
01439 public:
01440
01459 virtual bool Validate(FPInterface* fpi, FunctionID fid, int paramNum, FPValue& val, MSTR& msg)=0;
01460 };
01461
01462
01463 class FPMacroEmitter: public MaxHeapOperators
01464 {
01465 public:
01466
01467 virtual void EmitMacro(FPInterface* fpi, FPFunctionDef* fd)=0;
01468 };
01469
01470
01471
01472
01473
01474
01475
01495 class IObject : public BaseInterfaceServer
01496 {
01497 public:
01498
01499
01500
01501
01502
01503
01504
01508 virtual MCHAR* GetIObjectName() { return _M(""); }
01509
01510
01511
01518 virtual void AcquireIObject() { }
01525 virtual void ReleaseIObject() { }
01526
01530 virtual void DeleteIObject() { }
01531 };
01532
01533
01534
01560 class MAXException: public MaxHeapOperators
01561 {
01562 public:
01563 MSTR message;
01564 int error_code;
01565
01575 MAXException(MCHAR* msg, int code=0) : message(msg), error_code(code) { }
01576 };
01577
01578
01579
01580 #define DECLARE_DESCRIPTOR(_interface) \
01581 public: \
01582 _interface() { } \
01583 _interface(Interface_ID id, MCHAR* name, \
01584 StringResID descr, ClassDesc* cd, \
01585 USHORT flags, ...) \
01586 { \
01587 va_list ap; \
01588 va_start(ap, flags); \
01589 load_descriptor(id, name, descr, cd, flags, ap); \
01590 va_end(ap); \
01591 }
01592
01593 #define DECLARE_DESCRIPTOR_INIT(_interface) \
01594 public: \
01595 _interface() { init(); } \
01596 void init(); \
01597 _interface(Interface_ID id, MCHAR* name, \
01598 StringResID descr, ClassDesc* cd, \
01599 USHORT flags, ...) \
01600 { \
01601 init(); \
01602 va_list ap; \
01603 va_start(ap, flags); \
01604 load_descriptor(id, name, descr, cd, flags, ap); \
01605 va_end(ap); \
01606 }
01607
01608
01609
01610 #define DECLARE_DESCRIPTOR_NDC(_interface) \
01611 public: \
01612 _interface(Interface_ID id, MCHAR* name, \
01613 StringResID descr, ClassDesc* cd, \
01614 USHORT flags, ...) \
01615 { \
01616 va_list ap; \
01617 va_start(ap, flags); \
01618 load_descriptor(id, name, descr, cd, flags, ap); \
01619 va_end(ap); \
01620 }
01621
01622 #define DECLARE_DESCRIPTOR_INIT_NDC(_interface) \
01623 public: \
01624 void init(); \
01625 _interface(Interface_ID id, MCHAR* name, \
01626 StringResID descr, ClassDesc* cd, \
01627 USHORT flags, ...) \
01628 { \
01629 init(); \
01630 va_list ap; \
01631 va_start(ap, flags); \
01632 load_descriptor(id, name, descr, cd, flags, ap); \
01633 va_end(ap); \
01634 }
01635
01636 #define BEGIN_FUNCTION_MAP \
01637 public: \
01638 FPStatus _dispatch_fn(FunctionID fid, TimeValue t, \
01639 FPValue& result, FPParams* p) \
01640 { \
01641 UNUSED_PARAM(t); \
01642 UNUSED_PARAM(result); \
01643 UNUSED_PARAM(p); \
01644 FPStatus status = FPS_OK; \
01645 switch (fid) \
01646 {
01647
01648 #define BEGIN_FUNCTION_MAP_PARENT(Parent) \
01649 public: \
01650 FPStatus _dispatch_fn(FunctionID fid, TimeValue t, \
01651 FPValue& result, FPParams* p) \
01652 { \
01653 FPStatus status \
01654 = Parent::_dispatch_fn(fid, t, result, p); \
01655 if (status == FPS_OK) return status; \
01656 status = FPS_OK; \
01657 switch (fid) \
01658 {
01659
01660 #define END_FUNCTION_MAP \
01661 default: status = FPS_NO_SUCH_FUNCTION; \
01662 } \
01663 return status; \
01664 }
01665
01666 #define NO_FUNCTION_MAP \
01667 public: \
01668 FPStatus _dispatch_fn(FunctionID fid, TimeValue t, \
01669 FPValue& result, FPParams* p) \
01670 { \
01671 return FPS_NO_SUCH_FUNCTION; \
01672 }
01673
01674
01675
01676 #define FP_FIELD(_type, _v) (_type##_FIELD(_v))
01677
01678
01679
01680 #define FN_ACTION(_fid, _fn) \
01681 case _fid: \
01682 status = _fn(); \
01683 break;
01684
01685
01686
01687 #define FN_PRED(_fid, _fn) \
01688 case _fid: \
01689 result.Load(TYPE_BOOL, _fn()); \
01690 break;
01691 #define FN_PREDS(_fid1, _fn1, _fid2, _fn2, _fid3, _fn3) \
01692 case _fid1: \
01693 result.Load(TYPE_BOOL, _fn1()); \
01694 break; \
01695 case _fid2: \
01696 result.Load(TYPE_BOOL, _fn2()); \
01697 break; \
01698 case _fid3: \
01699 result.Load(TYPE_BOOL, _fn3()); \
01700 break;
01701
01704
01705
01706
01712 #define PROP_FNS(_getID, _getFn, _setID, _setFn, _ptype) \
01713 case _getID: \
01714 result.LoadPtr(_ptype, _ptype##_RSLT( \
01715 _getFn())); \
01716 break; \
01717 case _setID: \
01718 _setFn(FP_FIELD(_ptype, p->params[0])); \
01719 break;
01720
01722
01724 #define RO_PROP_FN(_getID, _getFn, _ptype) \
01725 case _getID: \
01726 result.LoadPtr(_ptype, _ptype##_RSLT( \
01727 _getFn())); \
01728 break;
01729
01731
01733 #define PROP_TFNS(_getID, _getFn, _setID, _setFn, _ptype) \
01734 case _getID: \
01735 result.LoadPtr(_ptype, _ptype##_RSLT( \
01736 _getFn(t))); \
01737 break; \
01738 case _setID: \
01739 _setFn(FP_FIELD(_ptype, p->params[0]), t); \
01740 break;
01741
01743
01745 #define RO_PROP_TFN(_getID, _getFn, _ptype) \
01746 case _getID: \
01747 result.LoadPtr(_ptype, _ptype##_RSLT( \
01748 _getFn(t))); \
01749 break;
01750
01751
01754
01755 #define SM_PROP_FNS(_getID, _getFn, _setID, _setFn, _ptype) \
01756 case _getID: \
01757 result.LoadPtr(_ptype, _ptype##_RSLT( \
01758 _getFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0])))); \
01759 break; \
01760 case _setID: \
01761 _setFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0]), FP_FIELD(_ptype, p->params[1])); \
01762 break;
01763 #define SM_RO_PROP_FN(_getID, _getFn, _ptype) \
01764 case _getID: \
01765 result.LoadPtr(_ptype, _ptype##_RSLT( \
01766 _getFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0]))));\
01767 break;
01768 #define SM_PROP_TFNS(_getID, _getFn, _setID, _setFn, _ptype) \
01769 case _getID: \
01770 result.LoadPtr(_ptype, _ptype##_RSLT( \
01771 _getFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0]), t)));\
01772 break; \
01773 case _setID: \
01774 _setFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0]), FP_FIELD(_ptype, p->params[1]), t); \
01775 break;
01776 #define SM_RO_PROP_TFN(_getID, _getFn, _ptype) \
01777 case _getID: \
01778 result.LoadPtr(_ptype, _ptype##_RSLT( \
01779 _getFn(FP_FIELD(TYPE_FPVALUE_BR, p->params[0]), t))); \
01780 break;
01781
01782
01785
01786 #define FN_VA(_fid, _rtype, _f) \
01787 case _fid: \
01788 result.LoadPtr(_rtype, _rtype##_RSLT( \
01789 _f(p))); \
01790 break;
01791
01792 #define FN_0(_fid, _rtype, _f) \
01793 case _fid: \
01794 result.LoadPtr(_rtype, _rtype##_RSLT( \
01795 _f())); \
01796 break;
01797
01798 #define FN_1(_fid, _rtype, _f, _p1) \
01799 case _fid: \
01800 result.LoadPtr(_rtype, _rtype##_RSLT( \
01801 _f(FP_FIELD(_p1, p->params[0])))); \
01802 break;
01803
01804 #define FN_2(_fid, _rtype, _f, _p1, _p2) \
01805 case _fid: \
01806 result.LoadPtr(_rtype, _rtype##_RSLT( \
01807 _f(FP_FIELD(_p1, p->params[0]), \
01808 FP_FIELD(_p2, p->params[1])))); \
01809 break;
01810 #define FN_3(_fid, _rtype, _f, _p1, _p2, _p3) \
01811 case _fid: \
01812 result.LoadPtr(_rtype, _rtype##_RSLT( \
01813 _f(FP_FIELD(_p1, p->params[0]), \
01814 FP_FIELD(_p2, p->params[1]), \
01815 FP_FIELD(_p3, p->params[2])))); \
01816 break;
01817 #define FN_4(_fid, _rtype, _f, _p1, _p2, _p3, _p4) \
01818 case _fid: \
01819 result.LoadPtr(_rtype, _rtype##_RSLT( \
01820 _f(FP_FIELD(_p1, p->params[0]), \
01821 FP_FIELD(_p2, p->params[1]), \
01822 FP_FIELD(_p3, p->params[2]), \
01823 FP_FIELD(_p4, p->params[3])))); \
01824 break;
01825 #define FN_5(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5) \
01826 case _fid: \
01827 result.LoadPtr(_rtype, _rtype##_RSLT( \
01828 _f(FP_FIELD(_p1, p->params[0]), \
01829 FP_FIELD(_p2, p->params[1]), \
01830 FP_FIELD(_p3, p->params[2]), \
01831 FP_FIELD(_p4, p->params[3]), \
01832 FP_FIELD(_p5, p->params[4])))); \
01833 break;
01834
01835 #define FN_6(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6) \
01836 case _fid: \
01837 result.LoadPtr(_rtype, _rtype##_RSLT( \
01838 _f(FP_FIELD(_p1, p->params[0]), \
01839 FP_FIELD(_p2, p->params[1]), \
01840 FP_FIELD(_p3, p->params[2]), \
01841 FP_FIELD(_p4, p->params[3]), \
01842 FP_FIELD(_p5, p->params[4]), \
01843 FP_FIELD(_p6, p->params[5])))); \
01844 break;
01845 #define FN_7(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7) \
01846 case _fid: \
01847 result.LoadPtr(_rtype, _rtype##_RSLT( \
01848 _f(FP_FIELD(_p1, p->params[0]), \
01849 FP_FIELD(_p2, p->params[1]), \
01850 FP_FIELD(_p3, p->params[2]), \
01851 FP_FIELD(_p4, p->params[3]), \
01852 FP_FIELD(_p5, p->params[4]), \
01853 FP_FIELD(_p6, p->params[5]), \
01854 FP_FIELD(_p7, p->params[6])))); \
01855 break;
01856 #define FN_8(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8) \
01857 case _fid: \
01858 result.LoadPtr(_rtype, _rtype##_RSLT( \
01859 _f(FP_FIELD(_p1, p->params[0]), \
01860 FP_FIELD(_p2, p->params[1]), \
01861 FP_FIELD(_p3, p->params[2]), \
01862 FP_FIELD(_p4, p->params[3]), \
01863 FP_FIELD(_p5, p->params[4]), \
01864 FP_FIELD(_p6, p->params[5]), \
01865 FP_FIELD(_p7, p->params[6]), \
01866 FP_FIELD(_p8, p->params[7])))); \
01867 break;
01868 #define FN_9(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9) \
01869 case _fid: \
01870 result.LoadPtr(_rtype, _rtype##_RSLT( \
01871 _f(FP_FIELD(_p1, p->params[0]), \
01872 FP_FIELD(_p2, p->params[1]), \
01873 FP_FIELD(_p3, p->params[2]), \
01874 FP_FIELD(_p4, p->params[3]), \
01875 FP_FIELD(_p5, p->params[4]), \
01876 FP_FIELD(_p6, p->params[5]), \
01877 FP_FIELD(_p7, p->params[6]), \
01878 FP_FIELD(_p8, p->params[7]), \
01879 FP_FIELD(_p9, p->params[8])))); \
01880 break;
01881 #define FN_10(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10) \
01882 case _fid: \
01883 result.LoadPtr(_rtype, _rtype##_RSLT( \
01884 _f(FP_FIELD(_p1, p->params[0]), \
01885 FP_FIELD(_p2, p->params[1]), \
01886 FP_FIELD(_p3, p->params[2]), \
01887 FP_FIELD(_p4, p->params[3]), \
01888 FP_FIELD(_p5, p->params[4]), \
01889 FP_FIELD(_p6, p->params[5]), \
01890 FP_FIELD(_p7, p->params[6]), \
01891 FP_FIELD(_p8, p->params[7]), \
01892 FP_FIELD(_p9, p->params[8]), \
01893 FP_FIELD(_p10, p->params[9])))); \
01894 break;
01895 #define FN_11(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10,_p11) \
01896 case _fid: \
01897 result.LoadPtr(_rtype, _rtype##_RSLT( \
01898 _f(FP_FIELD(_p1, p->params[0]), \
01899 FP_FIELD(_p2, p->params[1]), \
01900 FP_FIELD(_p3, p->params[2]), \
01901 FP_FIELD(_p4, p->params[3]), \
01902 FP_FIELD(_p5, p->params[4]), \
01903 FP_FIELD(_p6, p->params[5]), \
01904 FP_FIELD(_p7, p->params[6]), \
01905 FP_FIELD(_p8, p->params[7]), \
01906 FP_FIELD(_p9, p->params[8]), \
01907 FP_FIELD(_p10, p->params[9]), \
01908 FP_FIELD(_p11, p->params[10])))); \
01909 break;
01910
01911
01914
01915 #define VFN_VA(_fid, _f) \
01916 case _fid: \
01917 _f(p); \
01918 break;
01919 #define VFN_0(_fid, _f) \
01920 case _fid: \
01921 _f(); \
01922 break;
01923 #define VFN_1(_fid, _f, _p1) \
01924 case _fid: \
01925 _f(FP_FIELD(_p1, p->params[0])); \
01926 break;
01927 #define VFN_2(_fid, _f, _p1, _p2) \
01928 case _fid: \
01929 _f(FP_FIELD(_p1, p->params[0]), \
01930 FP_FIELD(_p2, p->params[1])); \
01931 break;
01932 #define VFN_3(_fid, _f, _p1, _p2, _p3) \
01933 case _fid: \
01934 _f(FP_FIELD(_p1, p->params[0]), \
01935 FP_FIELD(_p2, p->params[1]), \
01936 FP_FIELD(_p3, p->params[2])); \
01937 break;
01938 #define VFN_4(_fid, _f, _p1, _p2, _p3, _p4) \
01939 case _fid: \
01940 _f(FP_FIELD(_p1, p->params[0]), \
01941 FP_FIELD(_p2, p->params[1]), \
01942 FP_FIELD(_p3, p->params[2]), \
01943 FP_FIELD(_p4, p->params[3])); \
01944 break;
01945 #define VFN_5(_fid, _f, _p1, _p2, _p3, _p4, _p5) \
01946 case _fid: \
01947 _f(FP_FIELD(_p1, p->params[0]), \
01948 FP_FIELD(_p2, p->params[1]), \
01949 FP_FIELD(_p3, p->params[2]), \
01950 FP_FIELD(_p4, p->params[3]), \
01951 FP_FIELD(_p5, p->params[4])); \
01952 break;
01953 #define VFN_6(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6) \
01954 case _fid: \
01955 _f(FP_FIELD(_p1, p->params[0]), \
01956 FP_FIELD(_p2, p->params[1]), \
01957 FP_FIELD(_p3, p->params[2]), \
01958 FP_FIELD(_p4, p->params[3]), \
01959 FP_FIELD(_p5, p->params[4]), \
01960 FP_FIELD(_p6, p->params[5])); \
01961 break;
01962 #define VFN_7(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7) \
01963 case _fid: \
01964 _f(FP_FIELD(_p1, p->params[0]), \
01965 FP_FIELD(_p2, p->params[1]), \
01966 FP_FIELD(_p3, p->params[2]), \
01967 FP_FIELD(_p4, p->params[3]), \
01968 FP_FIELD(_p5, p->params[4]), \
01969 FP_FIELD(_p6, p->params[5]), \
01970 FP_FIELD(_p7, p->params[6])); \
01971 break;
01972
01973
01976
01977 #define CFN_VA(_fid, _rtype, _f) \
01978 case _fid: \
01979 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
01980 _f(p)))); \
01981 break;
01982
01983 #define CFN_0(_fid, _rtype, _f) \
01984 case _fid: \
01985 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
01986 _f()))); \
01987 break;
01988
01989 #define CFN_1(_fid, _rtype, _f, _p1) \
01990 case _fid: \
01991 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
01992 _f(FP_FIELD(_p1, p->params[0]))))); \
01993 break;
01994
01995 #define CFN_2(_fid, _rtype, _f, _p1, _p2) \
01996 case _fid: \
01997 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
01998 _f(FP_FIELD(_p1, p->params[0]), \
01999 FP_FIELD(_p2, p->params[1]))))); \
02000 break;
02001 #define CFN_3(_fid, _rtype, _f, _p1, _p2, _p3) \
02002 case _fid: \
02003 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
02004 _f(FP_FIELD(_p1, p->params[0]), \
02005 FP_FIELD(_p2, p->params[1]), \
02006 FP_FIELD(_p3, p->params[2]))))); \
02007 break;
02008 #define CFN_4(_fid, _rtype, _f, _p1, _p2, _p3, _p4) \
02009 case _fid: \
02010 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
02011 _f(FP_FIELD(_p1, p->params[0]), \
02012 FP_FIELD(_p2, p->params[1]), \
02013 FP_FIELD(_p3, p->params[2]), \
02014 FP_FIELD(_p4, p->params[3]))))); \
02015 break;
02016 #define CFN_5(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5) \
02017 case _fid: \
02018 result.LoadPtr(_rtype, _rtype##_RSLT(const_cast<_rtype##_TYPE>( \
02019 _f(FP_FIELD(_p1, p->params[0]), \
02020 FP_FIELD(_p2, p->params[1]), \
02021 FP_FIELD(_p3, p->params[2]), \
02022 FP_FIELD(_p4, p->params[3]), \
02023 FP_FIELD(_p5, p->params[4]))))); \
02024 break;
02025
02026
02029
02030 #define FNT_VA(_fid, _rtype, _f) \
02031 case _fid: \
02032 result.LoadPtr(_rtype, _rtype##_RSLT( \
02033 _f(p, t))); \
02034 break;
02035 #define FNT_0(_fid, _rtype, _f) \
02036 case _fid: \
02037 result.LoadPtr(_rtype, _rtype##_RSLT( \
02038 _f(t))); \
02039 break;
02040 #define FNT_1(_fid, _rtype, _f, _p1) \
02041 case _fid: \
02042 result.LoadPtr(_rtype, _rtype##_RSLT( \
02043 _f(FP_FIELD(_p1, p->params[0]), \
02044 t))); \
02045 break;
02046 #define FNT_2(_fid, _rtype, _f, _p1, _p2) \
02047 case _fid: \
02048 result.LoadPtr(_rtype, _rtype##_RSLT( \
02049 _f(FP_FIELD(_p1, p->params[0]), \
02050 FP_FIELD(_p2, p->params[1]), \
02051 t))); \
02052 break;
02053 #define FNT_3(_fid, _rtype, _f, _p1, _p2, _p3) \
02054 case _fid: \
02055 result.LoadPtr(_rtype, _rtype##_RSLT( \
02056 _f(FP_FIELD(_p1, p->params[0]), \
02057 FP_FIELD(_p2, p->params[1]), \
02058 FP_FIELD(_p3, p->params[2]), \
02059 t))); \
02060 break;
02061 #define FNT_4(_fid, _rtype, _f, _p1, _p2, _p3, _p4) \
02062 case _fid: \
02063 result.LoadPtr(_rtype, _rtype##_RSLT( \
02064 _f(FP_FIELD(_p1, p->params[0]), \
02065 FP_FIELD(_p2, p->params[1]), \
02066 FP_FIELD(_p3, p->params[2]), \
02067 FP_FIELD(_p4, p->params[3]), \
02068 t))); \
02069 break;
02070 #define FNT_5(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5) \
02071 case _fid: \
02072 result.LoadPtr(_rtype, _rtype##_RSLT( \
02073 _f(FP_FIELD(_p1, p->params[0]), \
02074 FP_FIELD(_p2, p->params[1]), \
02075 FP_FIELD(_p3, p->params[2]), \
02076 FP_FIELD(_p4, p->params[3]), \
02077 FP_FIELD(_p5, p->params[4]), \
02078 t))); \
02079 break;
02080 #define FNT_6(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6) \
02081 case _fid: \
02082 result.LoadPtr(_rtype, _rtype##_RSLT( \
02083 _f(FP_FIELD(_p1, p->params[0]), \
02084 FP_FIELD(_p2, p->params[1]), \
02085 FP_FIELD(_p3, p->params[2]), \
02086 FP_FIELD(_p4, p->params[3]), \
02087 FP_FIELD(_p5, p->params[4]), \
02088 FP_FIELD(_p6, p->params[5]), \
02089 t))); \
02090 break;
02091 #define FNT_7(_fid, _rtype, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7) \
02092 case _fid: \
02093 result.LoadPtr(_rtype, _rtype##_RSLT( \
02094 _f(FP_FIELD(_p1, p->params[0]), \
02095 FP_FIELD(_p2, p->params[1]), \
02096 FP_FIELD(_p3, p->params[2]), \
02097 FP_FIELD(_p4, p->params[3]), \
02098 FP_FIELD(_p5, p->params[4]), \
02099 FP_FIELD(_p6, p->params[5]), \
02100 FP_FIELD(_p7, p->params[6]), \
02101 t))); \
02102 break;
02103
02104
02107
02108 #define VFNT_VA(_fid, _f) \
02109 case _fid: \
02110 _f(p, t); \
02111 break;
02112 #define VFNT_0(_fid, _f) \
02113 case _fid: \
02114 _f(t); \
02115 break;
02116 #define VFNT_1(_fid, _f, _p1) \
02117 case _fid: \
02118 _f(FP_FIELD(_p1, p->params[0]), \
02119 t); \
02120 break;
02121 #define VFNT_2(_fid, _f, _p1, _p2) \
02122 case _fid: \
02123 _f(FP_FIELD(_p1, p->params[0]), \
02124 FP_FIELD(_p2, p->params[1]), \
02125 t); \
02126 break;
02127 #define VFNT_3(_fid, _f, _p1, _p2, _p3) \
02128 case _fid: \
02129 _f(FP_FIELD(_p1, p->params[0]), \
02130 FP_FIELD(_p2, p->params[1]), \
02131 FP_FIELD(_p3, p->params[2]), \
02132 t); \
02133 break;
02134 #define VFNT_4(_fid, _f, _p1, _p2, _p3, _p4) \
02135 case _fid: \
02136 _f(FP_FIELD(_p1, p->params[0]), \
02137 FP_FIELD(_p2, p->params[1]), \
02138 FP_FIELD(_p3, p->params[2]), \
02139 FP_FIELD(_p4, p->params[3]), \
02140 t); \
02141 break;
02142 #define VFNT_5(_fid, _f, _p1, _p2, _p3, _p4, _p5) \
02143 case _fid: \
02144 _f(FP_FIELD(_p1, p->params[0]), \
02145 FP_FIELD(_p2, p->params[1]), \
02146 FP_FIELD(_p3, p->params[2]), \
02147 FP_FIELD(_p4, p->params[3]), \
02148 FP_FIELD(_p5, p->params[4]), \
02149 t); \
02150 break;
02151 #define VFNT_6(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6) \
02152 case _fid: \
02153 _f(FP_FIELD(_p1, p->params[0]), \
02154 FP_FIELD(_p2, p->params[1]), \
02155 FP_FIELD(_p3, p->params[2]), \
02156 FP_FIELD(_p4, p->params[3]), \
02157 FP_FIELD(_p5, p->params[4]), \
02158 FP_FIELD(_p6, p->params[5]), \
02159 t); \
02160 break;
02161 #define VFNT_7(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7) \
02162 case _fid: \
02163 _f(FP_FIELD(_p1, p->params[0]), \
02164 FP_FIELD(_p2, p->params[1]), \
02165 FP_FIELD(_p3, p->params[2]), \
02166 FP_FIELD(_p4, p->params[3]), \
02167 FP_FIELD(_p5, p->params[4]), \
02168 FP_FIELD(_p6, p->params[5]), \
02169 FP_FIELD(_p7, p->params[6]), \
02170 t); \
02171 break;
02172 #define VFNT_8(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8) \
02173 case _fid: \
02174 _f(FP_FIELD(_p1, p->params[0]), \
02175 FP_FIELD(_p2, p->params[1]), \
02176 FP_FIELD(_p3, p->params[2]), \
02177 FP_FIELD(_p4, p->params[3]), \
02178 FP_FIELD(_p5, p->params[4]), \
02179 FP_FIELD(_p6, p->params[5]), \
02180 FP_FIELD(_p7, p->params[6]), \
02181 FP_FIELD(_p8, p->params[7]), \
02182 t); \
02183 break;
02184 #define VFNT_9(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9) \
02185 case _fid: \
02186 _f(FP_FIELD(_p1, p->params[0]), \
02187 FP_FIELD(_p2, p->params[1]), \
02188 FP_FIELD(_p3, p->params[2]), \
02189 FP_FIELD(_p4, p->params[3]), \
02190 FP_FIELD(_p5, p->params[4]), \
02191 FP_FIELD(_p6, p->params[5]), \
02192 FP_FIELD(_p7, p->params[6]), \
02193 FP_FIELD(_p8, p->params[7]), \
02194 FP_FIELD(_p9, p->params[8]), \
02195 t); \
02196 break;
02197 #define VFNT_10(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10) \
02198 case _fid: \
02199 _f(FP_FIELD(_p1, p->params[0]), \
02200 FP_FIELD(_p2, p->params[1]), \
02201 FP_FIELD(_p3, p->params[2]), \
02202 FP_FIELD(_p4, p->params[3]), \
02203 FP_FIELD(_p5, p->params[4]), \
02204 FP_FIELD(_p6, p->params[5]), \
02205 FP_FIELD(_p7, p->params[6]), \
02206 FP_FIELD(_p8, p->params[7]), \
02207 FP_FIELD(_p9, p->params[8]), \
02208 FP_FIELD(_p10, p->params[9]), \
02209 t); \
02210 break;
02211 #define VFNT_11(_fid, _f, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10, _p11) \
02212 case _fid: \
02213 _f(FP_FIELD(_p1, p->params[0]), \
02214 FP_FIELD(_p2, p->params[1]), \
02215 FP_FIELD(_p3, p->params[2]), \
02216 FP_FIELD(_p4, p->params[3]), \
02217 FP_FIELD(_p5, p->params[4]), \
02218 FP_FIELD(_p6, p->params[5]), \
02219 FP_FIELD(_p7, p->params[6]), \
02220 FP_FIELD(_p8, p->params[7]), \
02221 FP_FIELD(_p9, p->params[8]), \
02222 FP_FIELD(_p10, p->params[9]), \
02223 FP_FIELD(_p11, p->params[10]), \
02224 t); \
02225 break;
02226
02227
02228
02229 #define TYPE_FLOAT_FP_FIELD f
02230 #define TYPE_INT_FP_FIELD i
02231 #define TYPE_RGBA_FP_FIELD p
02232 #define TYPE_POINT3_FP_FIELD p
02233 #define TYPE_FRGBA_FP_FIELD p4
02234 #define TYPE_POINT4_FP_FIELD p4
02235 #define TYPE_BOOL_FP_FIELD i
02236 #define TYPE_ANGLE_FP_FIELD f
02237 #define TYPE_PCNT_FRAC_FP_FIELD f
02238 #define TYPE_WORLD_FP_FIELD f
02239 #define TYPE_STRING_FP_FIELD s
02240 #define TYPE_FILENAME_FP_FIELD s
02241 #define TYPE_HSV_FP_FIELD p
02242 #define TYPE_COLOR_CHANNEL_FP_FIELD f
02243 #define TYPE_TIMEVALUE_FP_FIELD i
02244 #define TYPE_RADIOBTN_INDEX_FP_FIELD i
02245 #define TYPE_MTL_FP_FIELD mtl
02246 #define TYPE_TEXMAP_FP_FIELD tex
02247 #define TYPE_BITMAP_FP_FIELD bm
02248 #define TYPE_INODE_FP_FIELD n
02249 #define TYPE_REFTARG_FP_FIELD r
02250 #define TYPE_INDEX_FP_FIELD i
02251 #define TYPE_MATRIX3_FP_FIELD m
02252 #define TYPE_VOID_FP_FIELD void_paramtype_bad
02253 #define TYPE_ENUM_FP_FIELD i
02254 #define TYPE_INTERVAL_FP_FIELD intvl
02255 #define TYPE_ANGAXIS_FP_FIELD aa
02256 #define TYPE_QUAT_FP_FIELD q
02257 #define TYPE_RAY_FP_FIELD ray
02258 #define TYPE_POINT2_FP_FIELD p2
02259 #define TYPE_BITARRAY_FP_FIELD bits
02260 #define TYPE_CLASS_FP_FIELD cd
02261 #define TYPE_MESH_FP_FIELD msh
02262 #define TYPE_OBJECT_FP_FIELD obj
02263 #define TYPE_CONTROL_FP_FIELD ctrl
02264 #define TYPE_POINT_FP_FIELD pt
02265 #define TYPE_TSTR_FP_FIELD tstr
02266 #define TYPE_IOBJECT_FP_FIELD iobj
02267 #define TYPE_INTERFACE_FP_FIELD fpi
02268 #define TYPE_HWND_FP_FIELD hwnd
02269 #define TYPE_NAME_FP_FIELD s
02270 #define TYPE_COLOR_FP_FIELD clr
02271 #define TYPE_ACOLOR_FP_FIELD aclr
02272 #define TYPE_FPVALUE_FP_FIELD fpv
02273 #define TYPE_VALUE_FP_FIELD v
02274 #define TYPE_DWORD_FP_FIELD d
02275 #define TYPE_bool_FP_FIELD b
02276 #define TYPE_INTPTR_FP_FIELD intptr
02277 #define TYPE_INT64_FP_FIELD i64
02278 #define TYPE_DOUBLE_FP_FIELD dbl
02279
02280
02281
02282 #define TYPE_FLOAT_TAB_FP_FIELD f_tab
02283 #define TYPE_INT_TAB_FP_FIELD i_tab
02284 #define TYPE_RGBA_TAB_FP_FIELD p_tab
02285 #define TYPE_POINT3_TAB_FP_FIELD p_tab
02286 #define TYPE_FRGBA_TAB_FP_FIELD p4_tab
02287 #define TYPE_POINT4_TAB_FP_FIELD p4_tab
02288 #define TYPE_BOOL_TAB_FP_FIELD i_tab
02289 #define TYPE_ANGLE_TAB_FP_FIELD f_tab
02290 #define TYPE_PCNT_FRAC_TAB_FP_FIELD f_tab
02291 #define TYPE_WORLD_TAB_FP_FIELD f_tab
02292 #define TYPE_STRING_TAB_FP_FIELD s_tab
02293 #define TYPE_FILENAME_TAB_FP_FIELD s_tab
02294 #define TYPE_HSV_TAB_FP_FIELD p_tab
02295 #define TYPE_COLOR_CHANNEL_TAB_FP_FIELD f_tab
02296 #define TYPE_TIMEVALUE_TAB_FP_FIELD i_tab
02297 #define TYPE_RADIOBTN_INDEX_TAB_FP_FIELD i_tab
02298 #define TYPE_MTL_TAB_FP_FIELD mtl_tab
02299 #define TYPE_TEXMAP_TAB_FP_FIELD tex_tab
02300 #define TYPE_BITMAP_TAB_FP_FIELD bm_tab
02301 #define TYPE_INODE_TAB_FP_FIELD n_tab
02302 #define TYPE_REFTARG_TAB_FP_FIELD r_tab
02303 #define TYPE_INDEX_TAB_FP_FIELD i_tab
02304 #define TYPE_MATRIX3_TAB_FP_FIELD m3_tab
02305 #define TYPE_ENUM_TAB_FP_FIELD i_tab
02306 #define TYPE_INTERVAL_TAB_FP_FIELD intvl_tab
02307 #define TYPE_ANGAXIS_TAB_FP_FIELD aa_tab
02308 #define TYPE_QUAT_TAB_FP_FIELD q_tab
02309 #define TYPE_RAY_TAB_FP_FIELD ray_tab
02310 #define TYPE_POINT2_TAB_FP_FIELD p2_tab
02311 #define TYPE_BITARRAY_TAB_FP_FIELD bits_tab
02312 #define TYPE_CLASS_TAB_FP_FIELD cd_tab
02313 #define TYPE_MESH_TAB_FP_FIELD msh_tab
02314 #define TYPE_OBJECT_TAB_FP_FIELD obj_tab
02315 #define TYPE_CONTROL_TAB_FP_FIELD ctrl_tab
02316 #define TYPE_POINT_TAB_FP_FIELD pt_tab
02317 #define TYPE_TSTR_TAB_FP_FIELD tstr_tab
02318 #define TYPE_IOBJECT_TAB_FP_FIELD iobj_tab
02319 #define TYPE_INTERFACE_TAB_FP_FIELD fpi_tab
02320 #define TYPE_HWND_TAB_FP_FIELD hwnd_tab
02321 #define TYPE_NAME_TAB_FP_FIELD s_tab
02322 #define TYPE_COLOR_TAB_FP_FIELD clr_tab
02323 #define TYPE_ACOLOR_TAB_FP_FIELD aclr_tab
02324 #define TYPE_FPVALUE_TAB_FP_FIELD fpv_tab
02325 #define TYPE_VALUE_TAB_FP_FIELD v_tab
02326 #define TYPE_DWORD_TAB_FP_FIELD d_tab
02327 #define TYPE_bool_TAB_FP_FIELD b_tab
02328 #define TYPE_INTPTR_TAB_FP_FIELD intptr_tab
02329 #define TYPE_INT64_TAB_FP_FIELD i64_tab
02330 #define TYPE_DOUBLE_TAB_FP_FIELD dbl_tab
02331
02332
02333 #define TYPE_FLOAT_BP_FP_FIELD fptr
02334 #define TYPE_INT_BP_FP_FIELD iptr
02335 #define TYPE_BOOL_BP_FP_FIELD iptr
02336 #define TYPE_ANGLE_BP_FP_FIELD fptr
02337 #define TYPE_PCNT_FRAC_BP_FP_FIELD fptr
02338 #define TYPE_WORLD_BP_FP_FIELD fptr
02339 #define TYPE_COLOR_CHANNEL_BP_FP_FIELD fptr
02340 #define TYPE_TIMEVALUE_BP_FP_FIELD iptr
02341 #define TYPE_RADIOBTN_INDEX_BP_FP_FIELD iptr
02342 #define TYPE_INDEX_BP_FP_FIELD iptr
02343 #define TYPE_ENUM_BP_FP_FIELD iptr
02344 #define TYPE_DWORD_BP_FP_FIELD dptr
02345 #define TYPE_bool_BP_FP_FIELD bptr
02346 #define TYPE_INTPTR_BP_FP_FIELD intptrptr
02347 #define TYPE_INT64_BP_FP_FIELD i64ptr
02348 #define TYPE_DOUBLE_BP_FP_FIELD dblptr
02349
02350
02351 #define TYPE_FLOAT_BR_FP_FIELD fptr
02352 #define TYPE_INT_BR_FP_FIELD iptr
02353 #define TYPE_RGBA_BR_FP_FIELD p
02354 #define TYPE_POINT3_BR_FP_FIELD p
02355 #define TYPE_FRGBA_BR_FP_FIELD p4
02356 #define TYPE_POINT4_BR_FP_FIELD p4
02357 #define TYPE_BOOL_BR_FP_FIELD iptr
02358 #define TYPE_ANGLE_BR_FP_FIELD fptr
02359 #define TYPE_PCNT_FRAC_BR_FP_FIELD fptr
02360 #define TYPE_WORLD_BR_FP_FIELD fptr
02361 #define TYPE_HSV_BR_FP_FIELD p
02362 #define TYPE_COLOR_CHANNEL_BR_FP_FIELD f
02363 #define TYPE_TIMEVALUE_BR_FP_FIELD iptr
02364 #define TYPE_RADIOBTN_INDEX_BR_FP_FIELD iptr
02365 #define TYPE_BITMAP_BR_FP_FIELD bm
02366 #define TYPE_INDEX_BR_FP_FIELD iptr
02367 #define TYPE_ENUM_BR_FP_FIELD iptr
02368 #define TYPE_REFTARG_BR_FP_FIELD r
02369 #define TYPE_MATRIX3_BR_FP_FIELD m
02370 #define TYPE_ANGAXIS_BR_FP_FIELD aa
02371 #define TYPE_QUAT_BR_FP_FIELD q
02372 #define TYPE_BITARRAY_BR_FP_FIELD bits
02373 #define TYPE_RAY_BR_FP_FIELD ray
02374 #define TYPE_POINT2_BR_FP_FIELD p2
02375 #define TYPE_MESH_BR_FP_FIELD msh
02376 #define TYPE_INTERVAL_BR_FP_FIELD intvl
02377 #define TYPE_POINT_BR_FP_FIELD pt
02378 #define TYPE_TSTR_BR_FP_FIELD tstr
02379 #define TYPE_COLOR_BR_FP_FIELD clr
02380 #define TYPE_ACOLOR_BR_FP_FIELD aclr
02381 #define TYPE_FPVALUE_BR_FP_FIELD fpv
02382 #define TYPE_DWORD_BR_FP_FIELD dptr
02383 #define TYPE_bool_BR_FP_FIELD bptr
02384 #define TYPE_INTPTR_BR_FP_FIELD intptrptr
02385 #define TYPE_INT64_BR_FP_FIELD i64ptr
02386 #define TYPE_DOUBLE_BR_FP_FIELD dblptr
02387
02388
02389 #define TYPE_FLOAT_TAB_BR_FP_FIELD f_tab
02390 #define TYPE_INT_TAB_BR_FP_FIELD i_tab
02391 #define TYPE_RGBA_TAB_BR_FP_FIELD p_tab
02392 #define TYPE_POINT3_TAB_BR_FP_FIELD p_tab
02393 #define TYPE_FRGBA_TAB_BR_FP_FIELD p4_tab
02394 #define TYPE_POINT4_TAB_BR_FP_FIELD p4_tab
02395 #define TYPE_BOOL_TAB_BR_FP_FIELD i_tab
02396 #define TYPE_ANGLE_TAB_BR_FP_FIELD f_tab
02397 #define TYPE_PCNT_FRAC_TAB_BR_FP_FIELD f_tab
02398 #define TYPE_WORLD_TAB_BR_FP_FIELD f_tab
02399 #define TYPE_STRING_TAB_BR_FP_FIELD s_tab
02400 #define TYPE_FILENAME_TAB_BR_FP_FIELD s_tab
02401 #define TYPE_HSV_TAB_BR_FP_FIELD p_tab
02402 #define TYPE_COLOR_CHANNEL_TAB_BR_FP_FIELD f_tab
02403 #define TYPE_TIMEVALUE_TAB_BR_FP_FIELD i_tab
02404 #define TYPE_RADIOBTN_INDEX_TAB_BR_FP_FIELD i_tab
02405 #define TYPE_MTL_TAB_BR_FP_FIELD mtl_tab
02406 #define TYPE_TEXMAP_TAB_BR_FP_FIELD tex_tab
02407 #define TYPE_BITMAP_TAB_BR_FP_FIELD bm_tab
02408 #define TYPE_INODE_TAB_BR_FP_FIELD n_tab
02409 #define TYPE_REFTARG_TAB_BR_FP_FIELD r_tab
02410 #define TYPE_INDEX_TAB_BR_FP_FIELD i_tab
02411 #define TYPE_ENUM_TAB_BR_FP_FIELD i_tab
02412 #define TYPE_MATRIX3_TAB_BR_FP_FIELD m3_tab
02413 #define TYPE_ANGAXIS_TAB_BR_FP_FIELD aa_tab
02414 #define TYPE_QUAT_TAB_BR_FP_FIELD q_tab
02415 #define TYPE_BITARRAY_TAB_BR_FP_FIELD bits_tab
02416 #define TYPE_CLASS_TAB_BR_FP_FIELD cd_tab
02417 #define TYPE_RAY_TAB_BR_FP_FIELD ray_tab
02418 #define TYPE_POINT2_TAB_BR_FP_FIELD p2_tab
02419 #define TYPE_MESH_TAB_BR_FP_FIELD msh_tab
02420 #define TYPE_OBJECT_TAB_BR_FP_FIELD obj_tab
02421 #define TYPE_CONTROL_TAB_BR_FP_FIELD ctrl_tab
02422 #define TYPE_INTERVAL_TAB_BR_FP_FIELD intvl_tab
02423 #define TYPE_POINT_TAB_BR_FP_FIELD pt_tab
02424 #define TYPE_HWND_TAB_BR_FP_FIELD hwnd_tab
02425 #define TYPE_TSTR_TAB_BR_FP_FIELD tstr_tab
02426 #define TYPE_IOBJECT_TAB_BR_FP_FIELD iobj_tab
02427 #define TYPE_INTERFACE_TAB_BR_FP_FIELD fpi_tab
02428 #define TYPE_NAME_TAB_BR_FP_FIELD s_tab
02429 #define TYPE_COLOR_TAB_BR_FP_FIELD clr_tab
02430 #define TYPE_ACOLOR_TAB_BR_FP_FIELD aclr_tab
02431 #define TYPE_FPVALUE_TAB_BR_FP_FIELD fpv_tab
02432 #define TYPE_VALUE_TAB_BR_FP_FIELD v_tab
02433 #define TYPE_DWORD_TAB_BR_FP_FIELD d_tab
02434 #define TYPE_bool_TAB_BR_FP_FIELD b_tab
02435 #define TYPE_INTPTR_TAB_BR_FP_FIELD intptr_tab
02436 #define TYPE_INT64_TAB_BR_FP_FIELD i64_tab
02437 #define TYPE_DOUBLE_TAB_BR_FP_FIELD dbl_tab
02438
02439
02440 #define TYPE_RGBA_BV_FP_FIELD p
02441 #define TYPE_POINT3_BV_FP_FIELD p
02442 #define TYPE_FRGBA_BV_FP_FIELD p4
02443 #define TYPE_POINT4_BV_FP_FIELD p4
02444 #define TYPE_HSV_BV_FP_FIELD p
02445 #define TYPE_BITMAP_BV_FP_FIELD bm
02446 #define TYPE_MATRIX3_BV_FP_FIELD m
02447 #define TYPE_ANGAXIS_BV_FP_FIELD aa
02448 #define TYPE_QUAT_BV_FP_FIELD q
02449 #define TYPE_BITARRAY_BV_FP_FIELD bits
02450 #define TYPE_RAY_BV_FP_FIELD ray
02451 #define TYPE_POINT2_BV_FP_FIELD p2
02452 #define TYPE_MESH_BV_FP_FIELD msh
02453 #define TYPE_INTERVAL_BV_FP_FIELD intvl
02454 #define TYPE_POINT_BV_FP_FIELD pt
02455 #define TYPE_TSTR_BV_FP_FIELD tstr
02456 #define TYPE_COLOR_BV_FP_FIELD clr
02457 #define TYPE_ACOLOR_BV_FP_FIELD aclr
02458 #define TYPE_FPVALUE_BV_FP_FIELD fpv
02459 #define TYPE_CLASS_BV_FP_FIELD cd
02460
02461
02462 #define TYPE_FLOAT_TAB_BV_FP_FIELD f_tab
02463 #define TYPE_INT_TAB_BV_FP_FIELD i_tab
02464 #define TYPE_RGBA_TAB_BV_FP_FIELD p_tab
02465 #define TYPE_POINT3_TAB_BV_FP_FIELD p_tab
02466 #define TYPE_FRGBA_TAB_BV_FP_FIELD p4_tab
02467 #define TYPE_POINT4_TAB_BV_FP_FIELD p4_tab
02468 #define TYPE_BOOL_TAB_BV_FP_FIELD i_tab
02469 #define TYPE_ANGLE_TAB_BV_FP_FIELD f_tab
02470 #define TYPE_PCNT_FRAC_TAB_BV_FP_FIELD f_tab
02471 #define TYPE_WORLD_TAB_BV_FP_FIELD f_tab
02472 #define TYPE_STRING_TAB_BV_FP_FIELD s_tab
02473 #define TYPE_FILENAME_TAB_BV_FP_FIELD s_tab
02474 #define TYPE_HSV_TAB_BV_FP_FIELD p_tab
02475 #define TYPE_COLOR_CHANNEL_TAB_BV_FP_FIELD f_tab
02476 #define TYPE_TIMEVALUE_TAB_BV_FP_FIELD i_tab
02477 #define TYPE_RADIOBTN_INDEX_TAB_BV_FP_FIELD i_tab
02478 #define TYPE_MTL_TAB_BV_FP_FIELD mtl_tab
02479 #define TYPE_TEXMAP_TAB_BV_FP_FIELD tex_tab
02480 #define TYPE_BITMAP_TAB_BV_FP_FIELD bm_tab
02481 #define TYPE_INODE_TAB_BV_FP_FIELD n_tab
02482 #define TYPE_REFTARG_TAB_BV_FP_FIELD r_tab
02483 #define TYPE_INDEX_TAB_BV_FP_FIELD i_tab
02484 #define TYPE_ENUM_TAB_BV_FP_FIELD i_tab
02485 #define TYPE_MATRIX3_TAB_BV_FP_FIELD m3_tab
02486 #define TYPE_ANGAXIS_TAB_BV_FP_FIELD aa_tab
02487 #define TYPE_QUAT_TAB_BV_FP_FIELD q_tab
02488 #define TYPE_BITARRAY_TAB_BV_FP_FIELD bits_tab
02489 #define TYPE_CLASS_TAB_BV_FP_FIELD cd_tab
02490 #define TYPE_RAY_TAB_BV_FP_FIELD ray_tab
02491 #define TYPE_POINT2_TAB_BV_FP_FIELD p2_tab
02492 #define TYPE_MESH_TAB_BV_FP_FIELD msh_tab
02493 #define TYPE_OBJECT_TAB_BV_FP_FIELD obj_tab
02494 #define TYPE_CONTROL_TAB_BV_FP_FIELD ctrl_tab
02495 #define TYPE_INTERVAL_TAB_BV_FP_FIELD intvl_tab
02496 #define TYPE_POINT_TAB_BV_FP_FIELD pt_tab
02497 #define TYPE_HWND_TAB_BV_FP_FIELD hwnd_tab
02498 #define TYPE_TSTR_TAB_BV_FP_FIELD tstr_tab
02499 #define TYPE_IOBJECT_TAB_BV_FP_FIELD iobj_tab
02500 #define TYPE_INTERFACE_TAB_BV_FP_FIELD fpi_tab
02501 #define TYPE_NAME_TAB_BV_FP_FIELD s_tab
02502 #define TYPE_COLOR_TAB_BV_FP_FIELD clr_tab
02503 #define TYPE_ACOLOR_TAB_BV_FP_FIELD aclr_tab
02504 #define TYPE_FPVALUE_TAB_BV_FP_FIELD fpv_tab
02505 #define TYPE_VALUE_TAB_BV_FP_FIELD v_tab
02506 #define TYPE_DWORD_TAB_BV_FP_FIELD d_tab
02507 #define TYPE_bool_TAB_BV_FP_FIELD b_tab
02508 #define TYPE_INTPTR_TAB_BV_FP_FIELD intptr_tab
02509 #define TYPE_INT64_TAB_BV_FP_FIELD i64_tab
02510 #define TYPE_DOUBLE_TAB_BV_FP_FIELD dbl_tab
02511
02512
02513
02514
02515
02516
02517
02518 #define TYPE_FLOAT_FIELD(_v) (((_v).f))
02519 #define TYPE_INT_FIELD(_v) (((_v).i))
02520 #define TYPE_RGBA_FIELD(_v) (*((_v).p))
02521 #define TYPE_POINT3_FIELD(_v) (*((_v).p))
02522 #define TYPE_FRGBA_FIELD(_v) (*((_v).p4))
02523 #define TYPE_POINT4_FIELD(_v) (*((_v).p4))
02524 #define TYPE_BOOL_FIELD(_v) (((_v).i))
02525 #define TYPE_ANGLE_FIELD(_v) (((_v).f))
02526 #define TYPE_PCNT_FRAC_FIELD(_v) (((_v).f))
02527 #define TYPE_WORLD_FIELD(_v) (((_v).f))
02528 #define TYPE_STRING_FIELD(_v) (((_v).s))
02529 #define TYPE_FILENAME_FIELD(_v) (((_v).s))
02530 #define TYPE_HSV_FIELD(_v) (*((_v).p))
02531 #define TYPE_COLOR_CHANNEL_FIELD(_v) (((_v).f))
02532 #define TYPE_TIMEVALUE_FIELD(_v) (((_v).i))
02533 #define TYPE_RADIOBTN_INDEX_FIELD(_v) (((_v).i))
02534 #define TYPE_MTL_FIELD(_v) (((_v).mtl))
02535 #define TYPE_TEXMAP_FIELD(_v) (((_v).tex))
02536 #define TYPE_BITMAP_FIELD(_v) (((_v).bm))
02537 #define TYPE_INODE_FIELD(_v) (((_v).n))
02538 #define TYPE_REFTARG_FIELD(_v) (((_v).r))
02539 #define TYPE_INDEX_FIELD(_v) (((_v).i))
02540 #define TYPE_ENUM_FIELD(_v) (((_v).i))
02541 #define TYPE_MATRIX3_FIELD(_v) (*((_v).m))
02542 #define TYPE_ANGAXIS_FIELD(_v) (*((_v).aa))
02543 #define TYPE_QUAT_FIELD(_v) (*((_v).q))
02544 #define TYPE_BITARRAY_FIELD(_v) (((_v).bits))
02545 #define TYPE_CLASS_FIELD(_v) (((_v).cd))
02546 #define TYPE_RAY_FIELD(_v) (*((_v).ray))
02547 #define TYPE_POINT2_FIELD(_v) (*((_v).p2))
02548 #define TYPE_MESH_FIELD(_v) (((_v).msh))
02549 #define TYPE_OBJECT_FIELD(_v) (((_v).obj))
02550 #define TYPE_CONTROL_FIELD(_v) (((_v).ctrl))
02551 #define TYPE_INTERVAL_FIELD(_v) (*((_v).intvl))
02552 #define TYPE_POINT_FIELD(_v) (*((_v).pt))
02553 #define TYPE_TSTR_FIELD(_v) (*((_v).tstr))
02554 #define TYPE_IOBJECT_FIELD(_v) (((_v).iobj))
02555 #define TYPE_INTERFACE_FIELD(_v) (((_v).fpi))
02556 #define TYPE_HWND_FIELD(_v) (((_v).hwnd))
02557 #define TYPE_NAME_FIELD(_v) (((_v).s))
02558 #define TYPE_COLOR_FIELD(_v) (((_v).clr))
02559 #define TYPE_ACOLOR_FIELD(_v) (((_v).aclr))
02560 #define TYPE_FPVALUE_FIELD(_v) (((_v).fpv))
02561 #define TYPE_VALUE_FIELD(_v) (((_v).v))
02562 #define TYPE_DWORD_FIELD(_v) (((_v).d))
02563 #define TYPE_bool_FIELD(_v) (((_v).b))
02564 #define TYPE_INTPTR_FIELD(_v) (((_v).intptr))
02565 #define TYPE_INT64_FIELD(_v) (((_v).i64))
02566 #define TYPE_DOUBLE_FIELD(_v) (((_v).dbl))
02567
02568
02569
02570 #define TYPE_FLOAT_TAB_FIELD(_v) (((_v).f_tab))
02571 #define TYPE_INT_TAB_FIELD(_v) (((_v).i_tab))
02572 #define TYPE_RGBA_TAB_FIELD(_v) (((_v).p_tab))
02573 #define TYPE_POINT3_TAB_FIELD(_v) (((_v).p_tab))
02574 #define TYPE_FRGBA_TAB_FIELD(_v) (((_v).p4_tab))
02575 #define TYPE_POINT4_TAB_FIELD(_v) (((_v).p4_tab))
02576 #define TYPE_BOOL_TAB_FIELD(_v) (((_v).i_tab))
02577 #define TYPE_ANGLE_TAB_FIELD(_v) (((_v).f_tab))
02578 #define TYPE_PCNT_FRAC_TAB_FIELD(_v) (((_v).f_tab))
02579 #define TYPE_WORLD_TAB_FIELD(_v) (((_v).f_tab))
02580 #define TYPE_STRING_TAB_FIELD(_v) (((_v).s_tab))
02581 #define TYPE_FILENAME_TAB_FIELD(_v) (((_v).s_tab))
02582 #define TYPE_HSV_TAB_FIELD(_v) (((_v).p_tab))
02583 #define TYPE_COLOR_CHANNEL_TAB_FIELD(_v) (((_v).f_tab))
02584 #define TYPE_TIMEVALUE_TAB_FIELD(_v) (((_v).i_tab))
02585 #define TYPE_RADIOBTN_INDEX_TAB_FIELD(_v) (((_v).i_tab))
02586 #define TYPE_MTL_TAB_FIELD(_v) (((_v).mtl_tab))
02587 #define TYPE_TEXMAP_TAB_FIELD(_v) (((_v).tex_tab))
02588 #define TYPE_BITMAP_TAB_FIELD(_v) (((_v).bm_tab))
02589 #define TYPE_INODE_TAB_FIELD(_v) (((_v).n_tab))
02590 #define TYPE_REFTARG_TAB_FIELD(_v) (((_v).r_tab))
02591 #define TYPE_INDEX_TAB_FIELD(_v) (((_v).i_tab))
02592 #define TYPE_ENUM_TAB_FIELD(_v) (((_v).i_tab))
02593 #define TYPE_MATRIX3_TAB_FIELD(_v) (((_v).m3_tab))
02594 #define TYPE_ANGAXIS_TAB_FIELD(_v) (((_v).aa_tab))
02595 #define TYPE_QUAT_TAB_FIELD(_v) (((_v).q_tab))
02596 #define TYPE_BITARRAY_TAB_FIELD(_v) (((_v).bits_tab))
02597 #define TYPE_CLASS_TAB_FIELD(_v) (((_v).cd_tab))
02598 #define TYPE_RAY_TAB_FIELD(_v) (((_v).ray_tab))
02599 #define TYPE_POINT2_TAB_FIELD(_v) (((_v).p2_tab))
02600 #define TYPE_MESH_TAB_FIELD(_v) (((_v).msh_tab))
02601 #define TYPE_OBJECT_TAB_FIELD(_v) (((_v).obj_tab))
02602 #define TYPE_CONTROL_TAB_FIELD(_v) (((_v).ctrl_tab))
02603 #define TYPE_INTERVAL_TAB_FIELD(_v) (((_v).intvl_tab))
02604 #define TYPE_POINT_TAB_FIELD(_v) (((_v).pt_tab))
02605 #define TYPE_TSTRT_TAB_FIELD(_v) (((_v).tstr_tab))
02606 #define TYPE_IOBJECT_TAB_FIELD(_v) (((_v).iobj_tab))
02607 #define TYPE_INTERFACE_TAB_FIELD(_v) (((_v).fpi_tab))
02608 #define TYPE_HWND_TAB_FIELD(_v) (((_v).hwnd_tab))
02609 #define TYPE_NAME_TAB_FIELD(_v) (((_v).s_tab))
02610 #define TYPE_COLOR_TAB_FIELD(_v) (((_v).clr_tab))
02611 #define TYPE_ACOLOR_TAB_FIELD(_v) (((_v).aclr_tab))
02612 #define TYPE_FPVALUE_TAB_FIELD(_v) (((_v).fpv_tab))
02613 #define TYPE_VALUE_TAB_FIELD(_v) (((_v).v_tab))
02614 #define TYPE_DWORD_TAB_FIELD(_v) (((_v).d_tab))
02615 #define TYPE_bool_TAB_FIELD(_v) (((_v).b_tab))
02616 #define TYPE_INTPTR_TAB_FIELD(_v) (((_v).intptr_tab))
02617 #define TYPE_INT64_TAB_FIELD(_v) (((_v).i64_tab))
02618 #define TYPE_DOUBLE_TAB_FIELD(_v) (((_v).dbl_tab))
02619
02620
02621
02622
02623
02624
02625
02626
02627
02628 #define TYPE_FLOAT_BP_FIELD(_v) (((_v).fptr))
02629 #define TYPE_INT_BP_FIELD(_v) (((_v).iptr))
02630 #define TYPE_BOOL_BP_FIELD(_v) (((_v).iptr))
02631 #define TYPE_ANGLE_BP_FIELD(_v) (((_v).fptr))
02632 #define TYPE_PCNT_FRAC_BP_FIELD(_v) (((_v).fptr))
02633 #define TYPE_WORLD_BP_FIELD(_v) (((_v).fptr))
02634 #define TYPE_COLOR_CHANNEL_BP_FIELD(_v) (((_v).fptr))
02635 #define TYPE_TIMEVALUE_BP_FIELD(_v) (((_v).iptr))
02636 #define TYPE_RADIOBTN_INDEX_BP_FIELD(_v) (((_v).iptr))
02637 #define TYPE_INDEX_BP_FIELD(_v) (((_v).iptr))
02638 #define TYPE_ENUM_BP_FIELD(_v) (((_v).iptr))
02639 #define TYPE_DWORD_BP_FIELD(_v) (((_v).dptr))
02640 #define TYPE_bool_BP_FIELD(_v) (((_v).bptr))
02641 #define TYPE_INTPTR_BP_FIELD(_v) (((_v).intptrptr))
02642 #define TYPE_INT64_BP_FIELD(_v) (((_v).i64ptr))
02643 #define TYPE_DOUBLE_BP_FIELD(_v) (((_v).dblptr))
02644
02645
02646
02647
02648 #define TYPE_FLOAT_BR_FIELD(_v) (*((_v).fptr))
02649 #define TYPE_INT_BR_FIELD(_v) (*((_v).iptr))
02650 #define TYPE_RGBA_BR_FIELD(_v) (*((_v).p))
02651 #define TYPE_POINT3_BR_FIELD(_v) (*((_v).p))
02652 #define TYPE_FRGBA_BR_FIELD(_v) (*((_v).p4))
02653 #define TYPE_POINT4_BR_FIELD(_v) (*((_v).p4))
02654 #define TYPE_BOOL_BR_FIELD(_v) (*((_v).iptr))
02655 #define TYPE_ANGLE_BR_FIELD(_v) (*((_v).fptr))
02656 #define TYPE_PCNT_FRAC_BR_FIELD(_v) (*((_v).fptr))
02657 #define TYPE_WORLD_BR_FIELD(_v) (*((_v).fptr))
02658 #define TYPE_HSV_BR_FIELD(_v) (*((_v).p))
02659 #define TYPE_COLOR_CHANNEL_BR_FIELD(_v) (*((_v).f))
02660 #define TYPE_TIMEVALUE_BR_FIELD(_v) (*((_v).iptr))
02661 #define TYPE_RADIOBTN_INDEX_BR_FIELD(_v) (*((_v).iptr))
02662 #define TYPE_BITMAP_BR_FIELD(_v) (*((_v).bm))
02663 #define TYPE_INDEX_BR_FIELD(_v) (*((_v).iptr))
02664 #define TYPE_ENUM_BR_FIELD(_v) (*((_v).iptr))
02665 #define TYPE_REFTARG_BR_FIELD(_v) (*((_v).r))
02666 #define TYPE_MATRIX3_BR_FIELD(_v) (*((_v).m))
02667 #define TYPE_ANGAXIS_BR_FIELD(_v) (*((_v).aa))
02668 #define TYPE_QUAT_BR_FIELD(_v) (*((_v).q))
02669 #define TYPE_BITARRAY_BR_FIELD(_v) (*((_v).bits))
02670 #define TYPE_RAY_BR_FIELD(_v) (*((_v).ray))
02671 #define TYPE_POINT2_BR_FIELD(_v) (*((_v).p2))
02672 #define TYPE_MESH_BR_FIELD(_v) (*((_v).msh))
02673 #define TYPE_INTERVAL_BR_FIELD(_v) (*((_v).intvl))
02674 #define TYPE_POINT_BR_FIELD(_v) (*((_v).pt))
02675 #define TYPE_TSTR_BR_FIELD(_v) (*((_v).tstr))
02676 #define TYPE_COLOR_BR_FIELD(_v) (*((_v).clr))
02677 #define TYPE_ACOLOR_BR_FIELD(_v) (*((_v).aclr))
02678 #define TYPE_FPVALUE_BR_FIELD(_v) (*((_v).fpv))
02679 #define TYPE_DWORD_BR_FIELD(_v) (*((_v).d))
02680 #define TYPE_bool_BR_FIELD(_v) (*((_v).b))
02681 #define TYPE_INTPTR_BR_FIELD(_v) (*((_v).intptrptr))
02682 #define TYPE_INT64_BR_FIELD(_v) (*((_v).i64ptr))
02683 #define TYPE_DOUBLE_BR_FIELD(_v) (*((_v).dblptr))
02684
02685
02686
02687 #define TYPE_FLOAT_TAB_BR_FIELD(_v) (*((_v).f_tab))
02688 #define TYPE_INT_TAB_BR_FIELD(_v) (*((_v).i_tab))
02689 #define TYPE_RGBA_TAB_BR_FIELD(_v) (*((_v).p_tab))
02690 #define TYPE_POINT3_TAB_BR_FIELD(_v) (*((_v).p_tab))
02691 #define TYPE_FRGBA_TAB_BR_FIELD(_v) (*((_v).p4_tab))
02692 #define TYPE_POINT4_TAB_BR_FIELD(_v) (*((_v).p4_tab))
02693 #define TYPE_BOOL_TAB_BR_FIELD(_v) (*((_v).i_tab))
02694 #define TYPE_ANGLE_TAB_BR_FIELD(_v) (*((_v).f_tab))
02695 #define TYPE_PCNT_FRAC_TAB_BR_FIELD(_v) (*((_v).f_tab))
02696 #define TYPE_WORLD_TAB_BR_FIELD(_v) (*((_v).f_tab))
02697 #define TYPE_STRING_TAB_BR_FIELD(_v) (*((_v).s_tab))
02698 #define TYPE_FILENAME_TAB_BR_FIELD(_v) (*((_v).s_tab))
02699 #define TYPE_HSV_TAB_BR_FIELD(_v) (*((_v).p_tab))
02700 #define TYPE_COLOR_CHANNEL_TAB_BR_FIELD(_v) (*((_v).f_tab))
02701 #define TYPE_TIMEVALUE_TAB_BR_FIELD(_v) (*((_v).i_tab))
02702 #define TYPE_RADIOBTN_INDEX_TAB_BR_FIELD(_v) (*((_v).i_tab))
02703 #define TYPE_MTL_TAB_BR_FIELD(_v) (*((_v).mtl_tab))
02704 #define TYPE_TEXMAP_TAB_BR_FIELD(_v) (*((_v).tex_tab))
02705 #define TYPE_BITMAP_TAB_BR_FIELD(_v) (*((_v).bm_tab))
02706 #define TYPE_INODE_TAB_BR_FIELD(_v) (*((_v).n_tab))
02707 #define TYPE_REFTARG_TAB_BR_FIELD(_v) (*((_v).r_tab))
02708 #define TYPE_INDEX_TAB_BR_FIELD(_v) (*((_v).i_tab))
02709 #define TYPE_ENUM_TAB_BR_FIELD(_v) (*((_v).i_tab))
02710 #define TYPE_MATRIX3_TAB_BR_FIELD(_v) (*((_v).m3_tab))
02711 #define TYPE_ANGAXIS_TAB_BR_FIELD(_v) (*((_v).aa_tab))
02712 #define TYPE_QUAT_TAB_BR_FIELD(_v) (*((_v).q_tab))
02713 #define TYPE_BITARRAY_TAB_BR_FIELD(_v) (*((_v).bits_tab))
02714 #define TYPE_CLASS_TAB_BR_FIELD(_v) (*((_v).cd_tab))
02715 #define TYPE_RAY_TAB_BR_FIELD(_v) (*((_v).ray_tab))
02716 #define TYPE_POINT2_TAB_BR_FIELD(_v) (*((_v).p2_tab))
02717 #define TYPE_MESH_TAB_BR_FIELD(_v) (*((_v).msh_tab))
02718 #define TYPE_OBJECT_TAB_BR_FIELD(_v) (*((_v).obj_tab))
02719 #define TYPE_CONTROL_TAB_BR_FIELD(_v) (*((_v).ctrl_tab))
02720 #define TYPE_INTERVAL_TAB_BR_FIELD(_v) (*((_v).intvl_tab))
02721 #define TYPE_POINT_TAB_BR_FIELD(_v) (*((_v).pt_tab))
02722 #define TYPE_HWND_TAB_BR_FIELD(_v) (*((_v).hwnd_tab))
02723 #define TYPE_TSTR_TAB_BR_FIELD(_v) (*((_v).tstr_tab))
02724 #define TYPE_IOBJECT_TAB_BR_FIELD(_v) (*((_v).iobj_tab))
02725 #define TYPE_INTERFACE_TAB_BR_FIELD(_v) (*((_v).fpi_tab))
02726 #define TYPE_NAME_TAB_BR_FIELD(_v) (*((_v).s_tab))
02727 #define TYPE_COLOR_TAB_BR_FIELD(_v) (*((_v).clr_tab))
02728 #define TYPE_ACOLOR_TAB_BR_FIELD(_v) (*((_v).aclr_tab))
02729 #define TYPE_FPVALUE_TAB_BR_FIELD(_v) (*((_v).fpv_tab))
02730 #define TYPE_VALUE_TAB_BR_FIELD(_v) (*((_v).v_tab))
02731 #define TYPE_DWORD_TAB_BR_FIELD(_v) (*((_v).d_tab))
02732 #define TYPE_bool_TAB_BR_FIELD(_v) (*((_v).b_tab))
02733 #define TYPE_INTPTR_TAB_BR_FIELD(_v) (*((_v).intptr_tab))
02734 #define TYPE_INT64_TAB_BR_FIELD(_v) (*((_v).i64_tab))
02735 #define TYPE_DOUBLE_TAB_BR_FIELD(_v) (*((_v).dbl_tab))
02736
02737
02738
02739 #define TYPE_RGBA_BV_FIELD(_v) (*((_v).p))
02740 #define TYPE_POINT3_BV_FIELD(_v) (*((_v).p))
02741 #define TYPE_HSV_BV_FIELD(_v) (*((_v).p))
02742 #define TYPE_FRGBA_BV_FIELD(_v) (*((_v).p4))
02743 #define TYPE_POINT4_BV_FIELD(_v) (*((_v).p4))
02744 #define TYPE_BITMAP_BV_FIELD(_v) (*((_v).bm))
02745 #define TYPE_MATRIX3_BV_FIELD(_v) (*((_v).m))
02746 #define TYPE_ANGAXIS_BV_FIELD(_v) (*((_v).aa))
02747 #define TYPE_QUAT_BV_FIELD(_v) (*((_v).q))
02748 #define TYPE_BITARRAY_BV_FIELD(_v) (*((_v).bits))
02749 #define TYPE_RAY_BV_FIELD(_v) (*((_v).ray))
02750 #define TYPE_POINT2_BV_FIELD(_v) (*((_v).p2))
02751 #define TYPE_MESH_BV_FIELD(_v) (*((_v).msh))
02752 #define TYPE_INTERVAL_BV_FIELD(_v) (*((_v).intvl))
02753 #define TYPE_POINT_BV_FIELD(_v) (*((_v).pt))
02754 #define TYPE_TSTR_BV_FIELD(_v) (*((_v).tstr))
02755 #define TYPE_COLOR_BV_FIELD(_v) (*((_v).clr))
02756 #define TYPE_ACOLOR_BV_FIELD(_v) (*((_v).aclr))
02757 #define TYPE_FPVALUE_BV_FIELD(_v) (*((_v).fpv))
02758 #define TYPE_CLASS_BV_FIELD(_v) (*((_v).cd))
02759
02760
02761 #define TYPE_FLOAT_TAB_BV_FIELD(_v) (*((_v).f_tab))
02762 #define TYPE_INT_TAB_BV_FIELD(_v) (*((_v).i_tab))
02763 #define TYPE_RGBA_TAB_BV_FIELD(_v) (*((_v).p_tab))
02764 #define TYPE_POINT3_TAB_BV_FIELD(_v) (*((_v).p_tab))
02765 #define TYPE_FRGBA_TAB_BV_FIELD(_v) (*((_v).p4_tab))
02766 #define TYPE_POINT4_TAB_BV_FIELD(_v) (*((_v).p4_tab))
02767 #define TYPE_BOOL_TAB_BV_FIELD(_v) (*((_v).i_tab))
02768 #define TYPE_ANGLE_TAB_BV_FIELD(_v) (*((_v).f_tab))
02769 #define TYPE_PCNT_FRAC_TAB_BV_FIELD(_v) (*((_v).f_tab))
02770 #define TYPE_WORLD_TAB_BV_FIELD(_v) (*((_v).f_tab))
02771 #define TYPE_STRING_TAB_BV_FIELD(_v) (*((_v).s_tab))
02772 #define TYPE_FILENAME_TAB_BV_FIELD(_v) (*((_v).s_tab))
02773 #define TYPE_HSV_TAB_BV_FIELD(_v) (*((_v).p_tab))
02774 #define TYPE_COLOR_CHANNEL_TAB_BV_FIELD(_v) (*((_v).f_tab))
02775 #define TYPE_TIMEVALUE_TAB_BV_FIELD(_v) (*((_v).i_tab))
02776 #define TYPE_RADIOBTN_INDEX_TAB_BV_FIELD(_v) (*((_v).i_tab))
02777 #define TYPE_MTL_TAB_BV_FIELD(_v) (*((_v).mtl_tab))
02778 #define TYPE_TEXMAP_TAB_BV_FIELD(_v) (*((_v).tex_tab))
02779 #define TYPE_BITMAP_TAB_BV_FIELD(_v) (*((_v).bm_tab))
02780 #define TYPE_INODE_TAB_BV_FIELD(_v) (*((_v).n_tab))
02781 #define TYPE_REFTARG_TAB_BV_FIELD(_v) (*((_v).r_tab))
02782 #define TYPE_INDEX_TAB_BV_FIELD(_v) (*((_v).i_tab))
02783 #define TYPE_ENUM_TAB_BV_FIELD(_v) (*((_v).i_tab))
02784 #define TYPE_MATRIX3_TAB_BV_FIELD(_v) (*((_v).m3_tab))
02785 #define TYPE_ANGAXIS_TAB_BV_FIELD(_v) (*((_v).aa_tab))
02786 #define TYPE_QUAT_TAB_BV_FIELD(_v) (*((_v).q_tab))
02787 #define TYPE_BITARRAY_TAB_BV_FIELD(_v) (*((_v).bits_tab))
02788 #define TYPE_CLASS_TAB_BV_FIELD(_v) (*((_v).cd_tab))
02789 #define TYPE_RAY_TAB_BV_FIELD(_v) (*((_v).ray_tab))
02790 #define TYPE_POINT2_TAB_BV_FIELD(_v) (*((_v).p2_tab))
02791 #define TYPE_MESH_TAB_BV_FIELD(_v) (*((_v).msh_tab))
02792 #define TYPE_OBJECT_TAB_BV_FIELD(_v) (*((_v).obj_tab))
02793 #define TYPE_CONTROL_TAB_BV_FIELD(_v) (*((_v).ctrl_tab))
02794 #define TYPE_INTERVAL_TAB_BV_FIELD(_v) (*((_v).intvl_tab))
02795 #define TYPE_POINT_TAB_BV_FIELD(_v) (*((_v).pt_tab))
02796 #define TYPE_HWND_TAB_BV_FIELD(_v) (*((_v).hwnd_tab))
02797 #define TYPE_TSTR_TAB_BV_FIELD(_v) (*((_v).tstr_tab))
02798 #define TYPE_IOBJECT_TAB_BV_FIELD(_v) (*((_v).iobj_tab))
02799 #define TYPE_INTERFACE_TAB_BV_FIELD(_v) (*((_v).fpi_tab))
02800 #define TYPE_NAME_TAB_BV_FIELD(_v) (*((_v).s_tab))
02801 #define TYPE_COLOR_TAB_BV_FIELD(_v) (*((_v).clr_tab))
02802 #define TYPE_ACOLOR_TAB_BV_FIELD(_v) (*((_v).aclr_tab))
02803 #define TYPE_FPVALUE_TAB_BV_FIELD(_v) (*((_v).fpv_tab))
02804 #define TYPE_VALUE_TAB_BV_FIELD(_v) (*((_v).v_tab))
02805 #define TYPE_DWORD_TAB_BV_FIELD(_v) (*((_v).d_tab))
02806 #define TYPE_bool_TAB_BV_FIELD(_v) (*((_v).b_tab))
02807 #define TYPE_INTPTR_TAB_BV_FIELD(_v) (*((_v).intptr_tab))
02808 #define TYPE_INT64_TAB_BV_FIELD(_v) (*((_v).i64_tab))
02809 #define TYPE_DOUBLE_TAB_BV_FIELD(_v) (*((_v).dbl_tab))
02810
02811
02812
02813
02814
02815
02816
02817
02818
02819 #define TYPE_FLOAT_RSLT
02820 #define TYPE_INT_RSLT
02821 #define TYPE_RGBA_RSLT
02822 #define TYPE_POINT3_RSLT
02823 #define TYPE_FRGBA_RSLT
02824 #define TYPE_POINT4_RSLT
02825 #define TYPE_BOOL_RSLT
02826 #define TYPE_ANGLE_RSLT
02827 #define TYPE_PCNT_FRAC_RSLT
02828 #define TYPE_WORLD_RSLT
02829 #define TYPE_STRING_RSLT
02830 #define TYPE_FILENAME_RSLT
02831 #define TYPE_HSV_RSLT
02832 #define TYPE_COLOR_CHANNEL_RSLT
02833 #define TYPE_TIMEVALUE_RSLT
02834 #define TYPE_RADIOBTN_INDEX_RSLT
02835 #define TYPE_MTL_RSLT
02836 #define TYPE_TEXMAP_RSLT
02837 #define TYPE_BITMAP_RSLT
02838 #define TYPE_INODE_RSLT
02839 #define TYPE_REFTARG_RSLT
02840 #define TYPE_INDEX_RSLT
02841 #define TYPE_ENUM_RSLT
02842 #define TYPE_MATRIX3_RSLT
02843 #define TYPE_VOID_RSLT
02844 #define TYPE_INTERVAL_RSLT
02845 #define TYPE_ANGAXIS_RSLT
02846 #define TYPE_QUAT_RSLT
02847 #define TYPE_RAY_RSLT
02848 #define TYPE_POINT2_RSLT
02849 #define TYPE_BITARRAY_RSLT
02850 #define TYPE_CLASS_RSLT
02851 #define TYPE_MESH_RSLT
02852 #define TYPE_OBJECT_RSLT
02853 #define TYPE_CONTROL_RSLT
02854 #define TYPE_POINT_RSLT
02855 #define TYPE_TSTR_RSLT
02856 #define TYPE_IOBJECT_RSLT
02857 #define TYPE_INTERFACE_RSLT
02858 #define TYPE_HWND_RSLT
02859 #define TYPE_NAME_RSLT
02860 #define TYPE_COLOR_RSLT
02861 #define TYPE_ACOLOR_RSLT
02862 #define TYPE_FPVALUE_RSLT
02863 #define TYPE_VALUE_RSLT
02864 #define TYPE_DWORD_RSLT
02865 #define TYPE_bool_RSLT
02866 #define TYPE_INTPTR_RSLT
02867 #define TYPE_INT64_RSLT
02868 #define TYPE_DOUBLE_RSLT
02869
02870
02871
02872 #define TYPE_FLOAT_TAB_RSLT
02873 #define TYPE_INT_TAB_RSLT
02874 #define TYPE_RGBA_TAB_RSLT
02875 #define TYPE_POINT3_TAB_RSLT
02876 #define TYPE_FRGBA_TAB_RSLT
02877 #define TYPE_POINT4_TAB_RSLT
02878 #define TYPE_BOOL_TAB_RSLT
02879 #define TYPE_ANGLE_TAB_RSLT
02880 #define TYPE_PCNT_FRAC_TAB_RSLT
02881 #define TYPE_WORLD_TAB_RSLT
02882 #define TYPE_STRING_TAB_RSLT
02883 #define TYPE_FILENAME_TAB_RSLT
02884 #define TYPE_HSV_TAB_RSLT
02885 #define TYPE_COLOR_CHANNEL_TAB_RSLT
02886 #define TYPE_TIMEVALUE_TAB_RSLT
02887 #define TYPE_RADIOBTN_INDEX_TAB_RSLT
02888 #define TYPE_MTL_TAB_RSLT
02889 #define TYPE_TEXMAP_TAB_RSLT
02890 #define TYPE_BITMAP_TAB_RSLT
02891 #define TYPE_INODE_TAB_RSLT
02892 #define TYPE_REFTARG_TAB_RSLT
02893 #define TYPE_INDEX_TAB_RSLT
02894 #define TYPE_ENUM_TAB_RSLT
02895 #define TYPE_MATRIX3_TAB_RSLT
02896 #define TYPE_INTERVAL_TAB_RSLT
02897 #define TYPE_ANGAXIS_TAB_RSLT
02898 #define TYPE_QUAT_TAB_RSLT
02899 #define TYPE_RAY_TAB_RSLT
02900 #define TYPE_POINT2_TAB_RSLT
02901 #define TYPE_BITARRAY_TAB_RSLT
02902 #define TYPE_CLASS_TAB_RSLT
02903 #define TYPE_MESH_TAB_RSLT
02904 #define TYPE_OBJECT_TAB_RSLT
02905 #define TYPE_CONTROL_TAB_RSLT
02906 #define TYPE_POINT_TAB_RSLT
02907 #define TYPE_TSTR_TAB_RSLT
02908 #define TYPE_IOBJECT_TAB_RSLT
02909 #define TYPE_INTERFACE_TAB_RSLT
02910 #define TYPE_HWND_TAB_RSLT
02911 #define TYPE_NAME_TAB_RSLT
02912 #define TYPE_COLOR_TAB_RSLT
02913 #define TYPE_ACOLOR_TAB_RSLT
02914 #define TYPE_FPVALUE_TAB_RSLT
02915 #define TYPE_VALUE_TAB_RSLT
02916 #define TYPE_DWORD_TAB_RSLT
02917 #define TYPE_bool_TAB_RSLT
02918 #define TYPE_INTPTR_TAB_RSLT
02919 #define TYPE_INT64_TAB_RSLT
02920 #define TYPE_DOUBLE_TAB_RSLT
02921
02922
02923
02924 #define TYPE_FLOAT_BP_RSLT
02925 #define TYPE_INT_BP_RSLT
02926 #define TYPE_BOOL_BP_RSLT
02927 #define TYPE_ANGLE_BP_RSLT
02928 #define TYPE_PCNT_FRAC_BP_RSLT
02929 #define TYPE_WORLD_BP_RSLT
02930 #define TYPE_COLOR_CHANNEL_BP_RSLT
02931 #define TYPE_TIMEVALUE_BP_RSLT
02932 #define TYPE_RADIOBTN_INDEX_BP_RSLT
02933 #define TYPE_INDEX_BP_RSLT
02934 #define TYPE_ENUM_BP_RSLT
02935 #define TYPE_DWORD_BP_RSLT
02936 #define TYPE_bool_BP_RSLT
02937 #define TYPE_INTPTR_BP_RSLT
02938 #define TYPE_INT64_BP_RSLT
02939 #define TYPE_DOUBLE_BP_RSLT
02940
02941
02942 #define TYPE_FLOAT_BR_RSLT &
02943 #define TYPE_INT_BR_RSLT &
02944 #define TYPE_RGBA_BR_RSLT &
02945 #define TYPE_POINT3_BR_RSLT &
02946 #define TYPE_FRGBA_BR_RSLT &
02947 #define TYPE_POINT4_BR_RSLT &
02948 #define TYPE_BOOL_BR_RSLT &
02949 #define TYPE_ANGLE_BR_RSLT &
02950 #define TYPE_PCNT_FRAC_BR_RSLT &
02951 #define TYPE_WORLD_BR_RSLT &
02952 #define TYPE_HSV_BR_RSLT &
02953 #define TYPE_COLOR_CHANNEL_BR_RSLT &
02954 #define TYPE_TIMEVALUE_BR_RSLT &
02955 #define TYPE_RADIOBTN_INDEX_BR_RSLT &
02956 #define TYPE_BITMAP_BR_RSLT &
02957 #define TYPE_INDEX_BR_RSLT &
02958 #define TYPE_ENUM_BR_RSLT &
02959 #define TYPE_REFTARG_BR_RSLT &
02960 #define TYPE_MATRIX3_BR_RSLT &
02961 #define TYPE_ANGAXIS_BR_RSLT &
02962 #define TYPE_QUAT_BR_RSLT &
02963 #define TYPE_BITARRAY_BR_RSLT &
02964 #define TYPE_RAY_BR_RSLT &
02965 #define TYPE_POINT2_BR_RSLT &
02966 #define TYPE_MESH_BR_RSLT &
02967 #define TYPE_INTERVAL_BR_RSLT &
02968 #define TYPE_POINT_BR_RSLT &
02969 #define TYPE_TSTR_BR_RSLT &
02970 #define TYPE_COLOR_BR_RSLT &
02971 #define TYPE_ACOLOR_BR_RSLT &
02972 #define TYPE_FPVALUE_BR_RSLT &
02973 #define TYPE_DWORD_BR_RSLT &
02974 #define TYPE_bool_BR_RSLT &
02975 #define TYPE_INTPTR_BR_RSLT &
02976 #define TYPE_INT64_BR_RSLT &
02977 #define TYPE_DOUBLE_BR_RSLT &
02978
02979
02980 #define TYPE_FLOAT_TAB_BR_RSLT &
02981 #define TYPE_INT_TAB_BR_RSLT &
02982 #define TYPE_RGBA_TAB_BR_RSLT &
02983 #define TYPE_POINT3_TAB_BR_RSLT &
02984 #define TYPE_FRGBA_TAB_BR_RSLT &
02985 #define TYPE_POINT4_TAB_BR_RSLT &
02986 #define TYPE_BOOL_TAB_BR_RSLT &
02987 #define TYPE_ANGLE_TAB_BR_RSLT &
02988 #define TYPE_PCNT_FRAC_TAB_BR_RSLT &
02989 #define TYPE_WORLD_TAB_BR_RSLT &
02990 #define TYPE_STRING_TAB_BR_RSLT &
02991 #define TYPE_FILENAME_TAB_BR_RSLT &
02992 #define TYPE_HSV_TAB_BR_RSLT &
02993 #define TYPE_COLOR_CHANNEL_TAB_BR_RSLT &
02994 #define TYPE_TIMEVALUE_TAB_BR_RSLT &
02995 #define TYPE_RADIOBTN_INDEX_TAB_BR_RSLT &
02996 #define TYPE_MTL_TAB_BR_RSLT &
02997 #define TYPE_TEXMAP_TAB_BR_RSLT &
02998 #define TYPE_BITMAP_TAB_BR_RSLT &
02999 #define TYPE_INODE_TAB_BR_RSLT &
03000 #define TYPE_REFTARG_TAB_BR_RSLT &
03001 #define TYPE_INDEX_TAB_BR_RSLT &
03002 #define TYPE_ENUM_TAB_BR_RSLT &
03003 #define TYPE_MATRIX3_TAB_BR_RSLT &
03004 #define TYPE_ANGAXIS_TAB_BR_RSLT &
03005 #define TYPE_QUAT_TAB_BR_RSLT &
03006 #define TYPE_BITARRAY_TAB_BR_RSLT &
03007 #define TYPE_CLASS_TAB_BR_RSLT &
03008 #define TYPE_RAY_TAB_BR_RSLT &
03009 #define TYPE_POINT2_TAB_BR_RSLT &
03010 #define TYPE_MESH_TAB_BR_RSLT &
03011 #define TYPE_OBJECT_TAB_BR_RSLT &
03012 #define TYPE_CONTROL_TAB_BR_RSLT &
03013 #define TYPE_INTERVAL_TAB_BR_RSLT &
03014 #define TYPE_POINT_TAB_BR_RSLT &
03015 #define TYPE_HWND_TAB_BR_RSLT &
03016 #define TYPE_TSTR_TAB_BR_RSLT &
03017 #define TYPE_IOBJECT_TAB_BR_RSLT &
03018 #define TYPE_INTERFACE_TAB_BR_RSLT &
03019 #define TYPE_NAME_TAB_BR_RSLT &
03020 #define TYPE_COLOR_TAB_BR_RSLT &
03021 #define TYPE_ACOLOR_TAB_BR_RSLT &
03022 #define TYPE_FPVALUE_TAB_BR_RSLT &
03023 #define TYPE_VALUE_TAB_BR_RSLT &
03024 #define TYPE_DWORD_TAB_BR_RSLT &
03025 #define TYPE_bool_TAB_BR_RSLT &
03026 #define TYPE_INTPTR_TAB_BR_RSLT &
03027 #define TYPE_INT64_TAB_BR_RSLT &
03028 #define TYPE_DOUBLE_TAB_BR_RSLT &
03029
03030
03031 #define TYPE_RGBA_BV_RSLT &
03032 #define TYPE_POINT3_BV_RSLT &
03033 #define TYPE_HSV_BV_RSLT &
03034 #define TYPE_FRGBA_BV_RSLT &
03035 #define TYPE_POINT4_BV_RSLT &
03036 #define TYPE_BITMAP_BV_RSLT &
03037 #define TYPE_MATRIX3_BV_RSLT &
03038 #define TYPE_ANGAXIS_BV_RSLT &
03039 #define TYPE_QUAT_BV_RSLT &
03040 #define TYPE_BITARRAY_BV_RSLT &
03041 #define TYPE_RAY_BV_RSLT &
03042 #define TYPE_POINT2_BV_RSLT &
03043 #define TYPE_MESH_BV_RSLT &
03044 #define TYPE_INTERVAL_BV_RSLT &
03045 #define TYPE_POINT_BV_RSLT &
03046 #define TYPE_TSTR_BV_RSLT &
03047 #define TYPE_COLOR_BV_RSLT &
03048 #define TYPE_ACOLOR_BV_RSLT &
03049 #define TYPE_FPVALUE_BV_RSLT &
03050 #define TYPE_CLASS_BV_RSLT &
03051
03052
03053 #define TYPE_FLOAT_TAB_BV_RSLT &
03054 #define TYPE_INT_TAB_BV_RSLT &
03055 #define TYPE_RGBA_TAB_BV_RSLT &
03056 #define TYPE_POINT3_TAB_BV_RSLT &
03057 #define TYPE_FRGBA_TAB_BV_RSLT &
03058 #define TYPE_POINT4_TAB_BV_RSLT &
03059 #define TYPE_BOOL_TAB_BV_RSLT &
03060 #define TYPE_ANGLE_TAB_BV_RSLT &
03061 #define TYPE_PCNT_FRAC_TAB_BV_RSLT &
03062 #define TYPE_WORLD_TAB_BV_RSLT &
03063 #define TYPE_STRING_TAB_BV_RSLT &
03064 #define TYPE_FILENAME_TAB_BV_RSLT &
03065 #define TYPE_HSV_TAB_BV_RSLT &
03066 #define TYPE_COLOR_CHANNEL_TAB_BV_RSLT &
03067 #define TYPE_TIMEVALUE_TAB_BV_RSLT &
03068 #define TYPE_RADIOBTN_INDEX_TAB_BV_RSLT &
03069 #define TYPE_MTL_TAB_BV_RSLT &
03070 #define TYPE_TEXMAP_TAB_BV_RSLT &
03071 #define TYPE_BITMAP_TAB_BV_RSLT &
03072 #define TYPE_INODE_TAB_BV_RSLT &
03073 #define TYPE_REFTARG_TAB_BV_RSLT &
03074 #define TYPE_INDEX_TAB_BV_RSLT &
03075 #define TYPE_ENUM_TAB_BV_RSLT &
03076 #define TYPE_MATRIX3_TAB_BV_RSLT &
03077 #define TYPE_ANGAXIS_TAB_BV_RSLT &
03078 #define TYPE_QUAT_TAB_BV_RSLT &
03079 #define TYPE_BITARRAY_TAB_BV_RSLT &
03080 #define TYPE_CLASS_TAB_BV_RSLT &
03081 #define TYPE_RAY_TAB_BV_RSLT &
03082 #define TYPE_POINT2_TAB_BV_RSLT &
03083 #define TYPE_MESH_TAB_BV_RSLT &
03084 #define TYPE_OBJECT_TAB_BV_RSLT &
03085 #define TYPE_CONTROL_TAB_BV_RSLT &
03086 #define TYPE_INTERVAL_TAB_BV_RSLT &
03087 #define TYPE_POINT_TAB_BV_RSLT &
03088 #define TYPE_HWND_TAB_BV_RSLT &
03089 #define TYPE_TSTR_TAB_BV_RSLT &
03090 #define TYPE_IOBJECT_TAB_BV_RSLT &
03091 #define TYPE_INTERFACE_TAB_BV_RSLT &
03092 #define TYPE_NAME_TAB_BV_RSLT &
03093 #define TYPE_COLOR_TAB_BV_RSLT &
03094 #define TYPE_ACOLOR_TAB_BV_RSLT &
03095 #define TYPE_FPVALUE_TAB_BV_RSLT &
03096 #define TYPE_VALUE_TAB_BV_RSLT &
03097 #define TYPE_DWORD_TAB_BV_RSLT &
03098 #define TYPE_bool_TAB_BV_RSLT &
03099 #define TYPE_INTPTR_TAB_BV_RSLT &
03100 #define TYPE_INT64_TAB_BV_RSLT &
03101 #define TYPE_DOUBLE_TAB_BV_RSLT &
03102
03103
03104
03105 #define TYPE_FLOAT_TYPE float
03106 #define TYPE_INT_TYPE int
03107 #define TYPE_RGBA_TYPE Point3
03108 #define TYPE_POINT3_TYPE Point3
03109 #define TYPE_FRGBA_TYPE Point4
03110 #define TYPE_POINT4_TYPE Point4
03111 #define TYPE_BOOL_TYPE BOOL
03112 #define TYPE_ANGLE_TYPE float
03113 #define TYPE_PCNT_FRAC_TYPE float
03114 #define TYPE_WORLD_TYPE float
03115 #define TYPE_STRING_TYPE MCHAR*
03116 #define TYPE_FILENAME_TYPE MCHAR*
03117 #define TYPE_HSV_TYPE Point3
03118 #define TYPE_COLOR_CHANNEL_TYPE float
03119 #define TYPE_TIMEVALUE_TYPE int
03120 #define TYPE_RADIOBTN_INDEX_TYPE int
03121 #define TYPE_MTL_TYPE Mtl*
03122 #define TYPE_TEXMAP_TYPE Texmap*
03123 #define TYPE_BITMAP_TYPE PBBitmap*
03124 #define TYPE_INODE_TYPE INode*
03125 #define TYPE_REFTARG_TYPE ReferenceTarget*
03126 #define TYPE_INDEX_TYPE int
03127 #define TYPE_ENUM_TYPE int
03128 #define TYPE_MATRIX3_TYPE Matrix*
03129 #define TYPE_VOID_TYPE void
03130 #define TYPE_INTERVAL_TYPE Interval*
03131 #define TYPE_ANGAXIS_TYPE AngAxis*
03132 #define TYPE_QUAT_TYPE Quat*
03133 #define TYPE_RAY_TYPE Ray*
03134 #define TYPE_POINT2_TYPE Point2*
03135 #define TYPE_BITARRAY_TYPE BitArray*
03136 #define TYPE_CLASS_TYPE ClassID*
03137 #define TYPE_MESH_TYPE Mesh*
03138 #define TYPE_OBJECT_TYPE Object*
03139 #define TYPE_CONTROL_TYPE Control*
03140 #define TYPE_POINT_TYPE POINT*
03141 #define TYPE_TSTR_TYPE MSTR*
03142 #define TYPE_IOBJECT_TYPE IObject*
03143 #define TYPE_INTERFACE_TYPE FPInterface*
03144 #define TYPE_HWND_TYPE HWND
03145 #define TYPE_NAME_TYPE MCHAR*
03146 #define TYPE_COLOR_TYPE Color*
03147 #define TYPE_ACOLOR_TYPE AColor*
03148 #define TYPE_FPVALUE_TYPE FPValue*
03149 #define TYPE_VALUE_TYPE Value*
03150 #define TYPE_DWORD_TYPE DWORD
03151 #define TYPE_bool_TYPE bool
03152 #define TYPE_INTPTR_TYPE INT_PTR
03153 #define TYPE_INT64_TYPE INT64
03154 #define TYPE_DOUBLE_TYPE double
03155
03156
03157 #define TYPE_FLOAT_TAB_TYPE Tab<float>*
03158 #define TYPE_INT_TAB_TYPE Tab<int>*
03159 #define TYPE_RGBA_TAB_TYPE Tab<Point3>*
03160 #define TYPE_POINT3_TAB_TYPE Tab<Point3>*
03161 #define TYPE_FRGBA_TAB_TYPE Tab<Point4>*
03162 #define TYPE_POINT4_TAB_TYPE Tab<Point4>*
03163 #define TYPE_BOOL_TAB_TYPE Tab<BOOL>*
03164 #define TYPE_ANGLE_TAB_TYPE Tab<float>*
03165 #define TYPE_PCNT_FRAC_TAB_TYPE Tab<float>*
03166 #define TYPE_WORLD_TAB_TYPE Tab<float>*
03167 #define TYPE_STRING_TAB_TYPE Tab<MCHAR*>*
03168 #define TYPE_FILENAME_TAB_TYPE Tab<MCHAR*>*
03169 #define TYPE_HSV_TAB_TYPE Tab<Point3>*
03170 #define TYPE_COLOR_CHANNEL_TAB_TYPE Tab<float>*
03171 #define TYPE_TIMEVALUE_TAB_TYPE Tab<int>*
03172 #define TYPE_RADIOBTN_INDEX_TAB_TYPE Tab<int>*
03173 #define TYPE_MTL_TAB_TYPE Tab<Mtl*>*
03174 #define TYPE_TEXMAP_TAB_TYPE Tab<Texmap*>*
03175 #define TYPE_BITMAP_TAB_TYPE Tab<PBBitmap*>*
03176 #define TYPE_INODE_TAB_TYPE Tab<INode*>*
03177 #define TYPE_REFTARG_TAB_TYPE Tab<ReferenceTarget*>*
03178 #define TYPE_INDEX_TAB_TYPE Tab<int>*
03179 #define TYPE_ENUM_TAB_TYPE Tab<int>*
03180 #define TYPE_MATRIX3_TAB_TYPE Tab<Matrix*>*
03181 #define TYPE_VOID_TAB_TYPE Tab<void>*
03182 #define TYPE_INTERVAL_TAB_TYPE Tab<Interval*>*
03183 #define TYPE_ANGAXIS_TAB_TYPE Tab<AngAxis*>*
03184 #define TYPE_QUAT_TAB_TYPE Tab<Quat*>*
03185 #define TYPE_RAY_TAB_TYPE Tab<Ray*>*
03186 #define TYPE_POINT2_TAB_TYPE Tab<Point2*>*
03187 #define TYPE_BITARRAY_TAB_TYPE Tab<BitArray*>*
03188 #define TYPE_CLASS_TAB_TYPE Tab<ClassID*>*
03189 #define TYPE_MESH_TAB_TYPE Tab<Mesh*>*
03190 #define TYPE_OBJECT_TAB_TYPE Tab<Object*>*
03191 #define TYPE_CONTROL_TAB_TYPE Tab<Control*>*
03192 #define TYPE_POINT_TAB_TYPE Tab<POINT*>*
03193 #define TYPE_TSTR_TAB_TYPE Tab<MSTR*>*
03194 #define TYPE_IOBJECT_TAB_TYPE Tab<IObject*>*
03195 #define TYPE_INTERFACE_TAB_TYPE Tab<FPInterface*>*
03196 #define TYPE_HWND_TAB_TYPE Tab<HWND>*
03197 #define TYPE_NAME_TAB_TYPE Tab<MCHAR*>*
03198 #define TYPE_COLOR_TAB_TYPE Tab<Color*>*
03199 #define TYPE_ACOLOR_TAB_TYPE Tab<AColor*>*
03200 #define TYPE_FPVALUE_TAB_TYPE Tab<FPValue*>*
03201 #define TYPE_VALUE_TAB_TYPE Tab<Value*>*
03202 #define TYPE_DWORD_TAB_TYPE Tab<DWORD>*
03203 #define TYPE_bool_TAB_TYPE Tab<bool>*
03204 #define TYPE_INTPTR_TAB_TYPE Tab<INT_PTR>*
03205 #define TYPE_INT64_TAB_TYPE Tab<INT64>*
03206 #define TYPE_DOUBLE_TAB_TYPE Tab<double>*
03207
03208
03209
03210 #define TYPE_FLOAT_BP_TYPE float*
03211 #define TYPE_INT_BP_TYPE int*
03212 #define TYPE_BOOL_BP_TYPE int*
03213 #define TYPE_ANGLE_BP_TYPE float*
03214 #define TYPE_PCNT_FRAC_BP_TYPE float*
03215 #define TYPE_WORLD_BP_TYPE float*
03216 #define TYPE_COLOR_CHANNEL_BP_TYPE float*
03217 #define TYPE_TIMEVALUE_BP_TYPE int*
03218 #define TYPE_RADIOBTN_INDEX_BP_TYPE int*
03219 #define TYPE_INDEX_BP_TYPE int*
03220 #define TYPE_ENUM_BP_TYPE int*
03221 #define TYPE_DWORD_BP_TYPE DWORD*
03222 #define TYPE_bool_BP_TYPE bool*
03223 #define TYPE_INTPTR_BP_TYPE INT_PTR*
03224 #define TYPE_INT64_BP_TYPE INT64*
03225 #define TYPE_DOUBLE_BP_TYPE double*
03226
03227
03228 #define TYPE_FLOAT_BR_TYPE float&
03229 #define TYPE_INT_BR_TYPE int&
03230 #define TYPE_RGBA_BR_TYPE Point3&
03231 #define TYPE_POINT3_BR_TYPE Point3&
03232 #define TYPE_FRGBA_BR_TYPE Point4&
03233 #define TYPE_POINT4_BR_TYPE Point4&
03234 #define TYPE_BOOL_BR_TYPE int&
03235 #define TYPE_ANGLE_BR_TYPE float&
03236 #define TYPE_PCNT_FRAC_BR_TYPE float&
03237 #define TYPE_WORLD_BR_TYPE float&
03238 #define TYPE_HSV_BR_TYPE Point3&
03239 #define TYPE_COLOR_CHANNEL_BR_TYPE float&
03240 #define TYPE_TIMEVALUE_BR_TYPE int&
03241 #define TYPE_RADIOBTN_INDEX_BR_TYPE int&
03242 #define TYPE_BITMAP_BR_TYPE PBBitmap&
03243 #define TYPE_INDEX_BR_TYPE int&
03244 #define TYPE_ENUM_BR_TYPE int&
03245 #define TYPE_REFTARG_BR_TYPE ReferenceTarget&
03246 #define TYPE_MATRIX3_BR_TYPE Matrix3&
03247 #define TYPE_ANGAXIS_BR_TYPE AngAxis&
03248 #define TYPE_QUAT_BR_TYPE Quat&
03249 #define TYPE_BITARRAY_BR_TYPE BitArray&
03250 #define TYPE_RAY_BR_TYPE Ray&
03251 #define TYPE_POINT2_BR_TYPE Point2&
03252 #define TYPE_MESH_BR_TYPE Mesh&
03253 #define TYPE_INTERVAL_BR_TYPE Interval&
03254 #define TYPE_POINT_BR_TYPE POINT&
03255 #define TYPE_TSTR_BR_TYPE MSTR&
03256 #define TYPE_COLOR_BR_TYPE Color&
03257 #define TYPE_ACOLOR_BR_TYPE AColor&
03258 #define TYPE_FPVALUE_BR_TYPE FPValue&
03259 #define TYPE_DWORD_BR_TYPE DWORD&
03260 #define TYPE_bool_BR_TYPE bool&
03261 #define TYPE_INTPTR_BR_TYPE INT_PTR&
03262 #define TYPE_INT64_BR_TYPE INT64&
03263 #define TYPE_DOUBLE_BR_TYPE double&
03264
03265
03266 #define TYPE_FLOAT_TAB_BR_TYPE Tab<float>&
03267 #define TYPE_INT_TAB_BR_TYPE Tab<int>&
03268 #define TYPE_RGBA_TAB_BR_TYPE Tab<Point3>&
03269 #define TYPE_POINT3_TAB_BR_TYPE Tab<Point3>&
03270 #define TYPE_FRGBA_TAB_BR_TYPE Tab<Point4>&
03271 #define TYPE_POINT4_TAB_BR_TYPE Tab<Point4>&
03272 #define TYPE_BOOL_TAB_BR_TYPE Tab<BOOL>&
03273 #define TYPE_ANGLE_TAB_BR_TYPE Tab<float>&
03274 #define TYPE_PCNT_FRAC_TAB_BR_TYPE Tab<float>&
03275 #define TYPE_WORLD_TAB_BR_TYPE Tab<float>&
03276 #define TYPE_STRING_TAB_BR_TYPE Tab<MCHAR*>&
03277 #define TYPE_FILENAME_TAB_BR_TYPE Tab<MCHAR*>&
03278 #define TYPE_HSV_TAB_BR_TYPE Tab<Point3>&
03279 #define TYPE_COLOR_CHANNEL_TAB_BR_TYPE Tab<float>&
03280 #define TYPE_TIMEVALUE_TAB_BR_TYPE Tab<int>&
03281 #define TYPE_RADIOBTN_INDEX_TAB_BR_TYPE Tab<int>&
03282 #define TYPE_MTL_TAB_BR_TYPE Tab<Mtl*>&
03283 #define TYPE_TEXMAP_TAB_BR_TYPE Tab<Texmap*>&
03284 #define TYPE_BITMAP_TAB_BR_TYPE Tab<PBBitmap*>&
03285 #define TYPE_INODE_TAB_BR_TYPE Tab<INode*>&
03286 #define TYPE_REFTARG_TAB_BR_TYPE Tab<ReferenceTarget*>&
03287 #define TYPE_INDEX_TAB_BR_TYPE Tab<int>&
03288 #define TYPE_ENUM_TAB_BR_TYPE Tab<int>&
03289 #define TYPE_MATRIX3_TAB_BR_TYPE Tab<Matrix*>&
03290 #define TYPE_VOID_TAB_BR_TYPE Tab<void>&
03291 #define TYPE_INTERVAL_TAB_BR_TYPE Tab<Interval*>&
03292 #define TYPE_ANGAXIS_TAB_BR_TYPE Tab<AngAxis*>&
03293 #define TYPE_QUAT_TAB_BR_TYPE Tab<Quat*>&
03294 #define TYPE_RAY_TAB_BR_TYPE Tab<Ray*>&
03295 #define TYPE_POINT2_TAB_BR_TYPE Tab<Point2*>&
03296 #define TYPE_BITARRAY_TAB_BR_TYPE Tab<BitArray*>&
03297 #define TYPE_CLASS_TAB_BR_TYPE Tab<ClassID*>&
03298 #define TYPE_MESH_TAB_BR_TYPE Tab<Mesh*>&
03299 #define TYPE_OBJECT_TAB_BR_TYPE Tab<Object*>&
03300 #define TYPE_CONTROL_TAB_BR_TYPE Tab<Control*>&
03301 #define TYPE_POINT_TAB_BR_TYPE Tab<POINT*>&
03302 #define TYPE_TSTR_TAB_BR_TYPE Tab<MSTR*>&
03303 #define TYPE_IOBJECT_TAB_BR_TYPE Tab<IObject*>&
03304 #define TYPE_INTERFACE_TAB_BR_TYPE Tab<FPInterface*>&
03305 #define TYPE_HWND_TAB_BR_TYPE Tab<HWND>&
03306 #define TYPE_NAME_TAB_BR_TYPE Tab<MCHAR*>&
03307 #define TYPE_COLOR_TAB_BR_TYPE Tab<Color*>&
03308 #define TYPE_ACOLOR_TAB_BR_TYPE Tab<AColor*>&
03309 #define TYPE_FPVALUE_TAB_BR_TYPE Tab<FPValue*>&
03310 #define TYPE_VALUE_TAB_BR_TYPE Tab<Value*>&
03311 #define TYPE_DWORD_TAB_BR_TYPE Tab<DWORD>&
03312 #define TYPE_bool_TAB_BR_TYPE Tab<bool>&
03313 #define TYPE_INTPTR_TAB_BR_TYPE Tab<INT_PTR>&
03314 #define TYPE_INT64_TAB_BR_TYPE Tab<INT64>&
03315 #define TYPE_DOUBLE_TAB_BR_TYPE Tab<double>&
03316
03317
03318 #define TYPE_RGBA_BV_TYPE Point3
03319 #define TYPE_POINT3_BV_TYPE Point3
03320 #define TYPE_HSV_BV_TYPE Point3
03321 #define TYPE_FRGBA_BV_TYPE Point4
03322 #define TYPE_POINT4_BV_TYPE Point4
03323 #define TYPE_BITMAP_BV_TYPE PBBitmap
03324 #define TYPE_MATRIX3_BV_TYPE Matrix3
03325 #define TYPE_ANGAXIS_BV_TYPE AngAxis
03326 #define TYPE_QUAT_BV_TYPE Quat
03327 #define TYPE_BITARRAY_BV_TYPE BitArray
03328 #define TYPE_RAY_BV_TYPE Ray
03329 #define TYPE_POINT2_BV_TYPE Point2
03330 #define TYPE_MESH_BV_TYPE Mesh
03331 #define TYPE_INTERVAL_BV_TYPE Interval
03332 #define TYPE_POINT_BV_TYPE POINT
03333 #define TYPE_TSTR_BV_TYPE MSTR
03334 #define TYPE_COLOR_BV_TYPE Color
03335 #define TYPE_ACOLOR_BV_TYPE AColor
03336 #define TYPE_FPVALUE_BV_TYPE FPValue
03337 #define TYPE_CLASS_BV_TYPE ClassID
03338
03339
03340 #define TYPE_FLOAT_TAB_BV_TYPE Tab<float>
03341 #define TYPE_INT_TAB_BV_TYPE Tab<int>
03342 #define TYPE_RGBA_TAB_BV_TYPE Tab<Point3>
03343 #define TYPE_POINT3_TAB_BV_TYPE Tab<Point3>
03344 #define TYPE_FRGBA_TAB_BV_TYPE Tab<Point4>
03345 #define TYPE_POINT4_TAB_BV_TYPE Tab<Point4>
03346 #define TYPE_BOOL_TAB_BV_TYPE Tab<BOOL>
03347 #define TYPE_ANGLE_TAB_BV_TYPE Tab<float>
03348 #define TYPE_PCNT_FRAC_TAB_BV_TYPE Tab<float>
03349 #define TYPE_WORLD_TAB_BV_TYPE Tab<float>
03350 #define TYPE_STRING_TAB_BV_TYPE Tab<MCHAR*>
03351 #define TYPE_FILENAME_TAB_BV_TYPE Tab<MCHAR*>
03352 #define TYPE_HSV_TAB_BV_TYPE Tab<Point3>
03353 #define TYPE_COLOR_CHANNEL_TAB_BV_TYPE Tab<float>
03354 #define TYPE_TIMEVALUE_TAB_BV_TYPE Tab<int>
03355 #define TYPE_RADIOBTN_INDEX_TAB_BV_TYPE Tab<int>
03356 #define TYPE_MTL_TAB_BV_TYPE Tab<Mtl*>
03357 #define TYPE_TEXMAP_TAB_BV_TYPE Tab<Texmap*>
03358 #define TYPE_BITMAP_TAB_BV_TYPE Tab<PBBitmap*>
03359 #define TYPE_INODE_TAB_BV_TYPE Tab<INode*>
03360 #define TYPE_REFTARG_TAB_BV_TYPE Tab<ReferenceTarget*>
03361 #define TYPE_INDEX_TAB_BV_TYPE Tab<int>
03362 #define TYPE_ENUM_TAB_BV_TYPE Tab<int>
03363 #define TYPE_MATRIX3_TAB_BV_TYPE Tab<Matrix*>
03364 #define TYPE_VOID_TAB_BV_TYPE Tab<void>
03365 #define TYPE_INTERVAL_TAB_BV_TYPE Tab<Interval*>
03366 #define TYPE_ANGAXIS_TAB_BV_TYPE Tab<AngAxis*>
03367 #define TYPE_QUAT_TAB_BV_TYPE Tab<Quat*>
03368 #define TYPE_RAY_TAB_BV_TYPE Tab<Ray*>
03369 #define TYPE_POINT2_TAB_BV_TYPE Tab<Point2*>
03370 #define TYPE_BITARRAY_TAB_BV_TYPE Tab<BitArray*>
03371 #define TYPE_CLASS_TAB_BV_TYPE Tab<ClassID*>
03372 #define TYPE_MESH_TAB_BV_TYPE Tab<Mesh*>
03373 #define TYPE_OBJECT_TAB_BV_TYPE Tab<Object*>
03374 #define TYPE_CONTROL_TAB_BV_TYPE Tab<Control*>
03375 #define TYPE_POINT_TAB_BV_TYPE Tab<POINT*>
03376 #define TYPE_TSTR_TAB_BV_TYPE Tab<MSTR*>
03377 #define TYPE_IOBJECT_TAB_BV_TYPE Tab<IObject*>
03378 #define TYPE_INTERFACE_TAB_BV_TYPE Tab<FPInterface*>
03379 #define TYPE_HWND_TAB_BV_TYPE Tab<HWND>
03380 #define TYPE_NAME_TAB_BV_TYPE Tab<MCHAR*>
03381 #define TYPE_COLOR_TAB_BV_TYPE Tab<Color*>
03382 #define TYPE_ACOLOR_TAB_BV_TYPE Tab<AColor*>
03383 #define TYPE_FPVALUE_TAB_BV_TYPE Tab<FPValue*>
03384 #define TYPE_VALUE_TAB_BV_TYPE Tab<Value*>
03385 #define TYPE_DWORD_TAB_BV_TYPE Tab<DWORD>
03386 #define TYPE_bool_TAB_BV_TYPE Tab<bool>
03387 #define TYPE_INTPTR_TAB_BV_TYPE Tab<INT_PTR>
03388 #define TYPE_INT64_TAB_BV_TYPE Tab<INT64>
03389 #define TYPE_DOUBLE_TAB_BV_TYPE Tab<double>
03390
03391
03392
03393
03394