88 lines
2.1 KiB
C++
Executable File
88 lines
2.1 KiB
C++
Executable File
/*
|
|
* ObjectSets.h - ObjectSet classes for MAXScript
|
|
*
|
|
* Copyright © John Wainwright 1996
|
|
*
|
|
*/
|
|
|
|
#ifndef _H_OBJECTSET
|
|
#define _H_OBJECTSET
|
|
|
|
#include "Collect.h"
|
|
visible_class (Set)
|
|
|
|
class Set : public Value, public Collection
|
|
{
|
|
public:
|
|
classof_methods (Set, Value);
|
|
BOOL _is_collection() { return 1; }
|
|
|
|
#include "defimpfn.h"
|
|
def_generic (coerce, "coerce");
|
|
};
|
|
|
|
#include "PathName.h"
|
|
|
|
visible_class_s (ObjectSet, Set)
|
|
|
|
class ObjectSet : public Set
|
|
{
|
|
protected:
|
|
ObjectSet() { }
|
|
public:
|
|
TCHAR* set_name;
|
|
BOOL (*selector)(INode* node, int level, void* arg); // set selector function
|
|
void* selector_arg; // selector fn argument
|
|
|
|
ObjectSet(TCHAR* name, SClass_ID class_id);
|
|
ObjectSet(TCHAR* init_name, BOOL (*sel_fn)(INode*, int, void*), void* init_arg = NULL);
|
|
void init(TCHAR* name);
|
|
|
|
classof_methods (ObjectSet, Set);
|
|
static void setup();
|
|
TCHAR* name() { return set_name; }
|
|
void collect() { delete this; }
|
|
void sprin1(CharStream* s) { s->printf(_T("$%s"), set_name); }
|
|
void export_to_scripter();
|
|
|
|
ScripterExport Value* map(node_map& m);
|
|
ScripterExport Value* map_path(PathName* path, node_map& m);
|
|
ScripterExport Value* find_first(BOOL (*test_fn)(INode* node, int level, void* arg), void* test_arg);
|
|
ScripterExport Value* get_path(PathName* path);
|
|
|
|
#include "defimpfn.h"
|
|
def_generic (get, "get"); // indexed get (no put or append)
|
|
def_property ( count );
|
|
def_property ( center );
|
|
def_property ( min );
|
|
def_property ( max );
|
|
};
|
|
|
|
class CurSelObjectSet : public ObjectSet
|
|
{
|
|
public:
|
|
CurSelObjectSet(TCHAR* name);
|
|
|
|
void collect() { delete this; }
|
|
|
|
ScripterExport Value* map(node_map& m);
|
|
|
|
#include "defimpfn.h"
|
|
def_generic (get, "get"); // indexed get (no put or append)
|
|
def_generic (coerce, "coerce");
|
|
|
|
def_property ( count );
|
|
};
|
|
|
|
extern ObjectSet all_objects;
|
|
extern ObjectSet all_geometry;
|
|
extern ObjectSet all_lights;
|
|
extern ObjectSet all_cameras;
|
|
extern ObjectSet all_helpers;
|
|
extern ObjectSet all_shapes;
|
|
extern ObjectSet all_systems;
|
|
extern ObjectSet all_spacewarps;
|
|
extern CurSelObjectSet current_selection;
|
|
|
|
#endif
|