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, GA_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(const GEO_Point &point, int ordered=0);
00056 virtual int add(const GEO_Primitive &prim, int ordered=0);
00057 virtual int add(const GA_Edge &edge, int ordered=0);
00058 virtual int add(const GA_Edge &edge, GEO_Primitive &,
00059 int ordered=0)
00060 { return add(edge, ordered); }
00061 virtual int add(const GA_Breakpoint &bkp, int ordered=0);
00062 virtual int add(const GEO_Vertex &vtx, int ordered=0);
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 virtual int remove(const GEO_Point &point, int ordered=0);
00073 virtual int remove(const GEO_Primitive &prim, int ordered=0);
00074 virtual int remove(const GA_Edge &edge, int ordered=0);
00075 virtual int remove(const GA_Edge &edge, GEO_Primitive &,
00076 int ordered=0)
00077 { return remove(edge, ordered); }
00078 virtual int remove(const GA_Breakpoint &bkp, int ordered=0);
00079 virtual int remove(const GEO_Vertex &vtx, int ordered=0);
00080
00081
00082
00083
00084
00085 virtual int select(uint *pickbuf, long npicked,
00086 GU_SelectResult &added,
00087 GU_SelectionRule rule = GU_AddSelect,
00088 unsigned *pickid = 0,
00089 GU_LassoInfo *linfo = 0,
00090 const UT_IntArray *prfx = 0);
00091
00092
00093 virtual void clear(void);
00094 virtual void clearAndDestroy(void);
00095
00096 virtual void topologyChanged();
00097
00098
00099 virtual int classType(void) const;
00100
00101
00102 virtual GU_Selection *newSpecies(GU_Detail &gdp);
00103
00104 protected:
00105
00106 GEO_PrimConnector *getConnector();
00107
00108 GU_SelectionConMgr myConnectivityMgr;
00109
00110 private:
00111
00112
00113 GU_PrimConSelection(GU_Detail &gdp, const GU_PrimConSelection &s);
00114
00115
00116 };
00117
00118 #endif