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