root/cgm/trunk/geom/virtual/CAPartitionVG.hpp

Revision 1040, 3.3 KB (checked in by tautges, 2 years ago)

Version 10.2 of cgm.

  • Property svn:executable set to *
Line 
1//- Class:          CAPartitionVG
2//- Owner:          Tim Tautges
3//- Description:    Cubit attribute for partition virtual geometry
4//- Checked by:
5//- Version:
6//-
7//- This attribute holds the information necessary to re-partition
8//- an entity into several parts.  This attribute does not store the
9//- data necessary to create the virtual entities that partitions this
10//- entity; those data are stored on a CAVirtualVG attribute.
11//-
12//- This attribute stores the following data:
13//- numPC, numPS: the number of partition curves, surfaces this entity
14//-     will be split into
15//- vgUIDs[0..3*numPC-1]: uids of start and end vertices, and of partition
16//-     curve formed from those
17//- vgUIDs[3*numPC..(end)]: for each partition surface, the uids of the
18//-     bounding curves (some of them may be virtual), then the uid of the
19//-     partition surface itself
20//- numBdyCurves[numPS]: number of bounding curves for each surface
21//-
22//- For partition surfaces, this attribute actuates by:
23//- . actuating partition VG attributes on next-lower order entities
24//- . actuating virtual VG attributes on self
25//- . gathering up the bounding curve uid's & edges, removing those
26//-   already bounding the (non-partitioned) entity
27//- . using these to partition the entity
28//-
29
30#ifndef CA_PARTITION_VG_HPP
31#define CA_PARTITION_VG_HPP
32
33#include "CubitAttrib.hpp"
34#include "DLIList.hpp"
35#include "CADefines.hpp"
36
37class Point;
38class RefEntity;
39class CubitSimpleAttrib;
40class RefEntity;
41class PartitionCurve;
42class PartitionSurface;
43class CubitVector;
44class RefEdge;
45class RefVertex;
46class RefEdge;
47class BasicTopologyEntity;
48class ToolDataUser;
49
50class CAPartitionVG: public CubitAttrib
51{
52
53private:
54  int numPC, numPS;
55    //- the number of partition curves and surfaces on this entity
56
57  DLIList<int> vgUIDs;
58    //- unique ids of various entities
59
60  DLIList<int> numBdyCurves;
61    //- for each partition surface, the number of bounding curves
62
63#ifdef BOYD15
64  void add_pcurve(PartitionCurve *pcurve);
65    //- adds data for this vpoint to this CA
66#endif
67
68#ifdef BOYD15
69  void add_psurface(PartitionSurface *psurface);
70    //- adds data for this vcurve to this CA
71#endif
72
73#ifdef BOYD15
74  RefEdge *find_edge(RefVertex *start_vert, 
75                     RefVertex *end_vert, DLIList<RefEdge*> &new_edges);
76    //- given a start and end vertex and a list of edges, return the edge in the list
77    //- bounded by those two vertices
78#endif
79   
80#ifdef BOYD15
81  BasicTopologyEntity* find_related( DLIList<ToolDataUser*>& list );
82#endif
83
84public:
85  CAPartitionVG(RefEntity* );
86
87  CAPartitionVG(RefEntity*, CubitSimpleAttrib*);
88    //- construct a CAPVG from a simple attribute
89
90  virtual ~CAPartitionVG() {};
91
92  //HEADER- RTTI and safe casting functions.
93  virtual const type_info& entity_type_info() const { return typeid(*this);}
94  //R- The geometric modeler type
95  //- This function returns the type of the geometric modeler.
96
97  CubitStatus actuate();
98 
99  CubitStatus update();
100
101  CubitStatus reset();
102    //- reset info; called from CAU and also from update!
103
104  CubitSimpleAttrib* cubit_simple_attrib();
105 
106  CubitSimpleAttrib* cubit_simple_attrib(CubitString);
107 
108  int int_attrib_type() {return CA_PARTITION_VG;}
109    //- returns the enumerated attribute type
110
111};
112
113CubitAttrib* CAPartitionVG_creator(RefEntity* entity, CubitSimpleAttrib *p_csa);
114
115#endif
Note: See TracBrowser for help on using the browser.