structs.h File Reference

Go to the source code of this file.

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)

Definition at line 69 of file structs.h.


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.

Definition at line 15 of file structs.h.

                : 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() { delete this; }
    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);
};