00001 #ifndef _ENTITYATTRIBUTES_H_
00002 #define _ENTITYATTRIBUTES_H_
00003
00004 #include "../Common.h"
00005
00012 class hObj;
00013 class hHybridMesh;
00015 struct EntityAttributes
00016 {
00017 EntityAttributes(
00018 const uTind myType=0,
00019 const uTind nComponents=0,
00020 const uTind nVertices=0,
00021 const uTind nFlags=0,
00022 const uTind nNeighs=0,
00023 const uTind nSons=0,
00024 const uTind nEdges=0,
00025 const uTind nFaces=0,
00026 const uTind nCoords=0,
00027 void (*const mark2Ref)(hHybridMesh* myMesh,hObj& obj,const int i) = NULL,
00028 void (*const mark2Deref)(hHybridMesh* myMesh,hObj& obj)= NULL,
00029 void (*const mark2Delete)(hHybridMesh* myMesh,hObj& obj)= NULL,
00030 int (*const refine)(hHybridMesh* myMesh,hObj& obj,const int i)= NULL,
00031 void (*const derefine)(hHybridMesh* myMesh,hObj& obj)= NULL,
00032 bool (*const test)(const hHybridMesh* myMesh,const hObj& obj)= NULL,
00033 ID (*const uniqueId)(hHybridMesh* myMesh) = NULL) :
00034
00035 myType(myType),
00036 nComponents_(nComponents),
00037 nVerts_(nVertices),
00038 nFlags_(nFlags),
00039 nNeighs_(nNeighs),
00040 nSons_(nSons),
00041 nEdges_(nEdges),
00042 nFaces_(nFaces),
00043 nCoords_(nCoords),
00044 compOffset_(nVertices),
00045 flagOffset_(nVertices+nComponents),
00046 neighOffset_(nVertices+nComponents+nFlags_),
00047 sonsOffset_(nVertices+nComponents+nFlags_+nNeighs_),
00048 mark2Ref_(mark2Ref),
00049 mark2Deref_(mark2Deref),
00050 mark2Delete_(mark2Delete),
00051 refine_(refine),
00052 derefine_(derefine),
00053 test_(test),
00054 uniqueId_(uniqueId)
00055 {}
00056
00057 const uTind myType,
00058 nComponents_,nVerts_,nFlags_,nNeighs_,nSons_,
00059 nEdges_,nFaces_,nCoords_,
00060 compOffset_,flagOffset_,neighOffset_,sonsOffset_;
00061
00062
00063 void (*const mark2Ref_)(hHybridMesh* myMesh,hObj& obj,const int i);
00064 void (*const mark2Deref_)(hHybridMesh* myMesh,hObj& obj);
00065 void (*const mark2Delete_)(hHybridMesh* myMesh,hObj& obj);
00066 int (*const refine_)(hHybridMesh* myMesh,hObj& obj,const int i);
00067 void (*const derefine_)(hHybridMesh* myMesh,hObj& obj);
00068 bool (*const test_)(const hHybridMesh* myMesh,const hObj& obj);
00069 ID (*const uniqueId_)(hHybridMesh* myMesh);
00070
00071
00072 };
00074 #endif // _ENTITYATTRIBUTES_H_