00001 /* Collection.h - MAXScript Collection classes 00002 * 00003 * Copyright (c) John Wainwright, 1996 00004 * 00005 * 00006 */ 00007 00008 #pragma once 00009 00010 class PathName; 00011 #include "..\kernel\value.h" // for value_vf 00012 00013 class Collection 00014 { 00015 public: 00016 # define is_collection(v) ((v)->_is_collection()) 00017 00018 virtual Value* map_path(PathName* path, value_vf vfn_ptr, value_cf cfn_ptr, Value** arg_list, int count); 00019 virtual Value* find_first(BOOL (*test_fn)(INode* node, int level, void* arg), void* test_arg); 00020 virtual Value* get_path(PathName* path_name); 00021 }; 00022 00023 class SelectionIterator 00024 { 00025 public: 00026 # define is_selection(v) ((v)->_is_selection()) 00027 virtual int next() { return -1; } 00028 virtual BOOL more() { return FALSE; } 00029 virtual void rewind() { } 00030 virtual BOOL selected(int index) { UNUSED_PARAM(index); return FALSE; } 00031 }; 00032 00033