00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __GU_PrimConSelection_h__
00022 #define __GU_PrimConSelection_h__
00023
00024 #include "GU_API.h"
00025 #include "GU_PrimSelection.h"
00026 #include "GU_SelectionConMgr.h"
00027
00028 #define GU_primConSelectName "selectedConnectedPrims"
00029
00030 class GU_API GU_PrimConSelection : public GU_PrimSelection
00031 {
00032 public:
00033
00034
00035
00036
00037 GU_PrimConSelection(GU_Detail &gdp,
00038 const char *grpname = "_gu_pmcselection_",
00039 int reset = 0, const char *prefix = 0);
00040 GU_PrimConSelection(GU_Detail &gdp, GB_PrimitiveGroup &ptgroup,
00041 const char *prefix = 0);
00042 virtual ~GU_PrimConSelection(void);
00043
00044
00045
00046 virtual GU_Selection &operator=(GU_PointSelection &);
00047 virtual GU_Selection &operator=(GU_PrimSelection &);
00048 virtual GU_Selection &operator=(GU_EdgeSelection &);
00049 virtual GU_Selection &operator=(GU_BreakpointSelection &);
00050 virtual GU_Selection &operator=(GU_VertexSelection &);
00051 virtual GU_Selection &operator=(GU_PointGroupSelection &);
00052 virtual GU_Selection &operator=(GU_PrimGroupSelection &);
00053
00054
00055 virtual int add(GEO_Point &point, int ordered=0);
00056 virtual int add(GEO_Primitive &prim, int ordered=0);
00057 virtual int add(GB_Edge &edge, int ordered=0);
00058 virtual int add(GEO_Breakpoint &bkp, int ordered=0);
00059 virtual int add(GB_VertexData &vtx, int ordered=0);
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 virtual int remove(GEO_Point &point, int ordered=0);
00070 virtual int remove(GEO_Primitive &prim, int ordered=0);
00071 virtual int remove(GB_Edge &edge, int ordered=0);
00072 virtual int remove(GEO_Breakpoint &bkp, int ordered=0);
00073 virtual int remove(GB_VertexData &vtx, int ordered=0);
00074
00075
00076
00077
00078
00079 virtual int select(uint *pickbuf, long npicked,
00080 void *&added,
00081 GU_SelectionRule rule = GU_AddSelect,
00082 unsigned *pickid = 0,
00083 GU_LassoInfo *linfo = 0,
00084 const UT_IntArray *prfx = 0);
00085
00086
00087 virtual void clear(void);
00088 virtual void clearAndDestroy(void);
00089
00090 virtual void topologyChanged();
00091
00092
00093 virtual int classType(void) const;
00094
00095
00096 virtual GU_Selection *newSpecies(GU_Detail &gdp);
00097
00098 protected:
00099
00100 GEO_PrimConnector *getConnector();
00101
00102 GU_SelectionConMgr myConnectivityMgr;
00103
00104 private:
00105
00106
00107 GU_PrimConSelection(GU_Detail &gdp, const GU_PrimConSelection &s);
00108
00109
00110 };
00111
00112 #endif