00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _SMDS_QuadraticVolumeOfNodes_HeaderFile
00028 #define _SMDS_QuadraticVolumeOfNodes_HeaderFile
00029
00030 #include "SMESH_SMDS.hxx"
00031
00032 #include "SMDS_MeshVolume.hxx"
00033
00034 class SMDS_EXPORT SMDS_QuadraticVolumeOfNodes: public SMDS_MeshVolume
00035 {
00036 public:
00037
00038 SMDS_QuadraticVolumeOfNodes (const SMDS_MeshNode * n1,
00039 const SMDS_MeshNode * n2,
00040 const SMDS_MeshNode * n3,
00041 const SMDS_MeshNode * n4,
00042 const SMDS_MeshNode * n12,
00043 const SMDS_MeshNode * n23,
00044 const SMDS_MeshNode * n31,
00045 const SMDS_MeshNode * n14,
00046 const SMDS_MeshNode * n24,
00047 const SMDS_MeshNode * n34);
00048
00049
00050 SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
00051 const SMDS_MeshNode * n2,
00052 const SMDS_MeshNode * n3,
00053 const SMDS_MeshNode * n4,
00054 const SMDS_MeshNode * n5,
00055 const SMDS_MeshNode * n12,
00056 const SMDS_MeshNode * n23,
00057 const SMDS_MeshNode * n34,
00058 const SMDS_MeshNode * n41,
00059 const SMDS_MeshNode * n15,
00060 const SMDS_MeshNode * n25,
00061 const SMDS_MeshNode * n35,
00062 const SMDS_MeshNode * n45);
00063
00064
00065 SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
00066 const SMDS_MeshNode * n2,
00067 const SMDS_MeshNode * n3,
00068 const SMDS_MeshNode * n4,
00069 const SMDS_MeshNode * n5,
00070 const SMDS_MeshNode * n6,
00071 const SMDS_MeshNode * n12,
00072 const SMDS_MeshNode * n23,
00073 const SMDS_MeshNode * n31,
00074 const SMDS_MeshNode * n45,
00075 const SMDS_MeshNode * n56,
00076 const SMDS_MeshNode * n64,
00077 const SMDS_MeshNode * n14,
00078 const SMDS_MeshNode * n25,
00079 const SMDS_MeshNode * n36);
00080
00081
00082 SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
00083 const SMDS_MeshNode * n2,
00084 const SMDS_MeshNode * n3,
00085 const SMDS_MeshNode * n4,
00086 const SMDS_MeshNode * n5,
00087 const SMDS_MeshNode * n6,
00088 const SMDS_MeshNode * n7,
00089 const SMDS_MeshNode * n8,
00090 const SMDS_MeshNode * n12,
00091 const SMDS_MeshNode * n23,
00092 const SMDS_MeshNode * n34,
00093 const SMDS_MeshNode * n41,
00094 const SMDS_MeshNode * n56,
00095 const SMDS_MeshNode * n67,
00096 const SMDS_MeshNode * n78,
00097 const SMDS_MeshNode * n85,
00098 const SMDS_MeshNode * n15,
00099 const SMDS_MeshNode * n26,
00100 const SMDS_MeshNode * n37,
00101 const SMDS_MeshNode * n48);
00102
00103 virtual SMDSAbs_EntityType GetEntityType() const;
00104 virtual bool IsQuadratic() const { return true; }
00105
00106 virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
00107
00108 bool ChangeNodes(const SMDS_MeshNode* nodes[],
00109 const int nbNodes);
00110
00111 virtual int NbNodes() const;
00112 virtual int NbEdges() const;
00113 virtual int NbFaces() const;
00114
00115 virtual void Print (std::ostream & OS) const;
00116
00122 virtual const SMDS_MeshNode* GetNode(const int ind) const;
00123
00124 protected:
00125 virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
00126
00127 private:
00128 std::vector<const SMDS_MeshNode *> myNodes;
00129 };
00130
00131 #endif