maxscript/foundation/structs.h File Reference
 
 
 
maxscript/foundation/structs.h File Reference
#include "../kernel/value.h"
#include "functions.h"
#include "../macros/define_implementations.h"

Classes

class   Struct

Defines

#define  is_structdef(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(StructDef))
#define  is_struct(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_STRUCT_TAG)

Functions

  visible_class_debug_ok (StructDef) class StructDef

Define Documentation

#define is_structdef (   v )    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(StructDef))
#define is_struct (   v )    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_STRUCT_TAG)

Function Documentation

visible_class_debug_ok ( StructDef  )

Define an equal operator (i.e. '==') for maxscript visible values.

Define a NOT equal operator (i.e. '!=') for maxscript visible values.

                : public Value
{
        friend StructMemberThunk;
        friend Struct;
        friend void Function::export_to_scripter();
private:
        Value*          name;                                           /* struct's global var name */
        Value**         member_inits;                           /* member init vals                     */
        int                     member_count;                           /*   "    count                         */
        HashTable*      members;                                        /* member name to index table */
        HashTable*      member_isPublicAccess;          /* member name is public?   */
        HashTable*      handlers;                                       /* event handlers */

public:

        // note: if members is null, a default hashtable is created in the ctor
        // if member_isPublicAccess is null, all members are considered public. If member cannot be found in member_isPublicAccess, member is considered public
        ScripterExport StructDef(Value* name, int member_count, Value** inits, HashTable* members, HashTable* member_isPublicAccess, HashTable* handlers);
                                ~StructDef();
                                classof_methods (StructDef, Value);
#       define          is_structdef(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(StructDef))

        void            collect();
        void            gc_trace();
        ScripterExport void             sprin1(CharStream* s);

#include "../macros/define_implementations.h"
        def_generic ( get_props,        "getPropNames"); // LAM: added 4/27/00
        def_generic ( show_props,       "showProperties");

        ScripterExport Value* apply(Value** arglist, int count, CallContext* cc=NULL);
        ScripterExport Value* get_property(Value** arg_list, int count);
        ScripterExport Value* set_property(Value** arg_list, int count);
        ScripterExport bool   IsPropertyPublic(Value* prop);
        ScripterExport Value* Name();
        ScripterExport void   map_members(HashTabMapper* mapper);
        ScripterExport void       map_members(void (*fn)(const void* key, const void* val, void* arg), void* arg);
        ScripterExport Value* get_member_value(Value* key);
        ScripterExport Value* put_member_value(Value* key, Value* value);
};