nsclip.h

Go to the documentation of this file.
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