excllist.h

Go to the documentation of this file.
00001 //**************************************************************************/
00002 // Copyright (c) 1998-2010 Autodesk, Inc.
00003 // All rights reserved.
00004 // 
00005 // These coded instructions, statements, and computer programs contain
00006 // unpublished proprietary information written by Autodesk, Inc., and are
00007 // protected by Federal copyright law. They may not be disclosed to third
00008 // parties or copied or duplicated in any form, in whole or in part, without
00009 // the prior written consent of Autodesk, Inc.
00010 //**************************************************************************/
00011 #pragma once
00012 #include "coreexp.h"
00013 #include "tab.h"
00014 #include "baseinterface.h"
00015 #include "ExcludeListConstants.h"
00016 
00017 // forward declarations
00018 class ExclList;
00019 class ISave;
00020 class ILoad;
00021 class INode;
00022 class NameTab;
00023 class IMergeManager;
00024 
00025 typedef INode* INodePtr;
00026 
00032 class ExclList : public InterfaceServer {
00033     ULONG flags;
00034     Tab<ULONG> handles;
00035     public:
00037         ExclList() { flags = NT_AFFECT_ILLUM|NT_AFFECT_SHADOWCAST; }
00052         void SetFlag(ULONG f, BOOL b=1) { if (b) flags|=f; else flags &= ~f; }
00066         BOOL TestFlag(ULONG f) const { return (flags&f)?1:0; }
00069         int Count() const { return handles.Count(); }
00071         CoreExport INode* operator[] (const int i);
00079         CoreExport void Set(int i, INode *node);
00081         CoreExport ExclList& operator=(const ExclList& e);
00083         CoreExport ExclList& operator=(const NameTab& n);
00089         CoreExport int FindNode(INode *node);
00095         CoreExport int AddNode(INode *node);
00100         CoreExport void RemoveNode(INode *node);
00105         CoreExport void RemoveNode(int i);
00111         CoreExport void SetSize(int num);     
00117         void SetCount(int num) { SetSize(num); } 
00123         CoreExport IOResult Load(ILoad* iload);
00129         CoreExport IOResult Save(ISave* isave);
00135         CoreExport void OnMerge(IMergeManager* imm);
00136     };  
00137