00001 /********************************************************************** 00002 *< 00003 FILE: nsclip.h 00004 00005 DESCRIPTION: Clip board for named selection sets 00006 00007 CREATED BY: Rolf Berteig 00008 00009 HISTORY: 1/9/97 00010 00011 *> Copyright (c) 1997, All Rights Reserved. 00012 **********************************************************************/ 00013 00014 #pragma once 00015 #include "maxheap.h" 00016 #include "strclass.h" 00017 // forward declarations 00018 class BitArray; 00019 class ShapeVSel; 00020 class ShapeSSel; 00021 class ShapePSel; 00022 00023 // The mesh select modifier and the editable tri object need 00024 // to be able to share the clipboard for named selection sets, 00025 // however they are in two separate DLLs. So I've provided a 00026 // place in CORE for the clipboard. Note that if 3rd parties 00027 // run into a similar problem they could always create their 00028 // own shared DLL, I just used CORE because it was handy. 00029 00040 class MeshNamedSelClip: public MaxHeapOperators { 00041 public: 00042 MSTR name; 00043 Tab<BitArray*> sets; 00044 00046 MeshNamedSelClip(MSTR &n) {name=n;} 00048 CoreExport ~MeshNamedSelClip(); 00049 }; 00050 00051 #define CLIP_VERT 1 00052 #define CLIP_FACE 2 00053 #define CLIP_EDGE 3 00054 00065 CoreExport void SetMeshNamedSelClip(MeshNamedSelClip *clip, int which); 00074 CoreExport MeshNamedSelClip *GetMeshNamedSelClip(int which); 00075 00076 // Here is the equivalent for patches 00077 00087 class PatchNamedSelClip: public MaxHeapOperators { 00088 public: 00089 MSTR name; 00090 Tab<BitArray*> sets; 00091 00093 PatchNamedSelClip(MSTR &n) {name=n;} 00095 CoreExport ~PatchNamedSelClip(); 00096 }; 00097 00098 #define CLIP_P_VERT 1 00099 #define CLIP_P_PATCH 2 00100 #define CLIP_P_EDGE 3 00101 #define CLIP_P_HANDLE 4 00102 00113 CoreExport void SetPatchNamedSelClip(PatchNamedSelClip *clip, int which); 00122 CoreExport PatchNamedSelClip *GetPatchNamedSelClip(int which); 00123 00124 // Here are the equivalents for shapes: 00125 00135 class ShapeNamedVertSelClip: public MaxHeapOperators { 00136 public: 00137 MSTR name; 00138 Tab<ShapeVSel*> sets; 00139 00141 ShapeNamedVertSelClip(MSTR &n) {name=n;} 00143 CoreExport ~ShapeNamedVertSelClip(); 00144 }; 00145 00150 CoreExport void SetShapeNamedVertSelClip(ShapeNamedVertSelClip *clip); 00153 CoreExport ShapeNamedVertSelClip *GetShapeNamedVertSelClip(); 00154 00164 class ShapeNamedSegSelClip: public MaxHeapOperators { 00165 public: 00166 MSTR name; 00167 Tab<ShapeSSel*> sets; 00168 00170 ShapeNamedSegSelClip(MSTR &n) {name=n;} 00172 CoreExport ~ShapeNamedSegSelClip(); 00173 }; 00174 00179 CoreExport void SetShapeNamedSegSelClip(ShapeNamedSegSelClip *clip); 00182 CoreExport ShapeNamedSegSelClip *GetShapeNamedSegSelClip(); 00183 00193 class ShapeNamedPolySelClip: public MaxHeapOperators { 00194 public: 00195 MSTR name; 00196 Tab<ShapePSel*> sets; 00197 00199 ShapeNamedPolySelClip(MSTR &n) {name=n;} 00201 CoreExport ~ShapeNamedPolySelClip(); 00202 }; 00203 00208 CoreExport void SetShapeNamedPolySelClip(ShapeNamedPolySelClip *clip); 00211 CoreExport ShapeNamedPolySelClip *GetShapeNamedPolySelClip(); 00212 00213