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