- int myVolumeNbNodes;
- const SMDS_MeshNode** myVolumeNodes;
- std::vector< int > myPolyIndices;
-
- mutable bool myExternalFaces;
-
- mutable const int* myAllFacesNodeIndices_F;
- mutable const int* myAllFacesNodeIndices_RE;
- mutable const int* myAllFacesNbNodes;
- mutable int myMaxFaceNbNodes;
-
- mutable int myCurFace;
- mutable int myFaceNbNodes;
- mutable int* myFaceNodeIndices;
- mutable const SMDS_MeshNode** myFaceNodes;
+ std::vector<const SMDS_MeshNode*> myVolumeNodes;
+ std::vector< int > myPolyIndices; // of a myCurFace
+ std::vector< int > myPolyQuantities;
+ std::vector< int > myPolyFacetOri; // -1-in, +1-out, 0-undef
+
+ typedef std::pair<int,int> Link;
+ std::map<Link, int> myFwdLinks; // used in IsFaceExternal() to find out myPolyFacetOri
+
+ mutable bool myExternalFaces;
+
+ mutable const int* myAllFacesNodeIndices_F;
+ mutable const int* myAllFacesNodeIndices_RE;
+ mutable const int* myAllFacesNbNodes;
+ mutable int myMaxFaceNbNodes;
+
+ struct SaveFacet;
+ struct Facet
+ {
+ int myIndex;
+ int myNbNodes;
+ int* myNodeIndices;
+ std::vector<const SMDS_MeshNode*> myNodes;
+ };
+ mutable Facet myCurFace;