cgma
CAPartitionVG.hpp
Go to the documentation of this file.
00001 //- Class:          CAPartitionVG
00002 //- Owner:          Tim Tautges
00003 //- Description:    Cubit attribute for partition virtual geometry
00004 //- Checked by:
00005 //- Version:
00006 //-
00007 //- This attribute holds the information necessary to re-partition
00008 //- an entity into several parts.  This attribute does not store the
00009 //- data necessary to create the virtual entities that partitions this
00010 //- entity; those data are stored on a CAVirtualVG attribute.
00011 //-
00012 //- This attribute stores the following data:
00013 //- numPC, numPS: the number of partition curves, surfaces this entity
00014 //-     will be split into
00015 //- vgUIDs[0..3*numPC-1]: uids of start and end vertices, and of partition
00016 //-     curve formed from those
00017 //- vgUIDs[3*numPC..(end)]: for each partition surface, the uids of the 
00018 //-     bounding curves (some of them may be virtual), then the uid of the
00019 //-     partition surface itself
00020 //- numBdyCurves[numPS]: number of bounding curves for each surface
00021 //-
00022 //- For partition surfaces, this attribute actuates by:
00023 //- . actuating partition VG attributes on next-lower order entities
00024 //- . actuating virtual VG attributes on self
00025 //- . gathering up the bounding curve uid's & edges, removing those
00026 //-   already bounding the (non-partitioned) entity
00027 //- . using these to partition the entity
00028 //-
00029 
00030 #ifndef CA_PARTITION_VG_HPP
00031 #define CA_PARTITION_VG_HPP
00032 
00033 #include "CubitAttrib.hpp"
00034 #include "DLIList.hpp"
00035 #include "CADefines.hpp"
00036 
00037 class Point;
00038 class RefEntity;
00039 class CubitSimpleAttrib;
00040 class RefEntity;
00041 class PartitionCurve;
00042 class PartitionSurface;
00043 class CubitVector;
00044 class RefEdge;
00045 class RefVertex;
00046 class RefEdge;
00047 class BasicTopologyEntity;
00048 class ToolDataUser;
00049 
00050 class CAPartitionVG: public CubitAttrib
00051 {
00052 
00053 private:
00054   int numPC, numPS;
00055     //- the number of partition curves and surfaces on this entity
00056 
00057   DLIList<int> vgUIDs;
00058     //- unique ids of various entities
00059 
00060   DLIList<int> numBdyCurves;
00061     //- for each partition surface, the number of bounding curves
00062 
00063 public:
00064   CAPartitionVG(RefEntity*, const CubitSimpleAttrib&);
00065     //- construct a CAPVG from a simple attribute
00066 
00067   virtual ~CAPartitionVG() {};
00068 
00069   CubitStatus actuate();
00070   
00071   CubitStatus update();
00072 
00073   CubitStatus reset();
00074     //- reset info; called from CAU and also from update!
00075 
00076   CubitSimpleAttrib cubit_simple_attrib();
00077   
00078   CubitSimpleAttrib cubit_simple_attrib(CubitString);
00079   
00080   int int_attrib_type() {return CA_PARTITION_VG;}
00081     //- returns the enumerated attribute type
00082 
00083 };
00084 
00085 CubitAttrib* CAPartitionVG_creator(RefEntity* entity, const CubitSimpleAttrib& p_csa);
00086 
00087 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines