2017-04-17 06:17:10 -06:00

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