-// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
static TopoDS_Vertex IthVertex( const bool is2nd, TopoDS_Edge anEdge, const bool CumOri=true );
+ static TopAbs_ShapeEnum GetGroupType(const TopoDS_Shape& group,
+ const bool avoidCompound=false);
+
public:
// ---------- PUBLIC INSTANCE METHODS ----------
/*!
* \brief Move medium nodes of faces and volumes to fix distorted elements
+ * \param error - container of fixed distorted elements
* \param volumeOnly - fix nodes on geom faces or not if the shape is solid
*/
- void FixQuadraticElements(bool volumeOnly=true);
+ void FixQuadraticElements(SMESH_ComputeErrorPtr& error, bool volumeOnly=true);
/*!
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
/*!
* Creates a node
*/
- SMDS_MeshNode* AddNode(double x, double y, double z, int ID = 0);
+ SMDS_MeshNode* AddNode(double x, double y, double z, int ID = 0, double u=0., double v=0.);
/*!
* Creates quadratic or linear edge
*/
const int id = 0,
bool force3d = true);
+ /*!
+ * Creates LINEAR!!!!!!!!! octahedron
+ */
+ SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+ const SMDS_MeshNode* n2,
+ const SMDS_MeshNode* n3,
+ const SMDS_MeshNode* n4,
+ const SMDS_MeshNode* n5,
+ const SMDS_MeshNode* n6,
+ const SMDS_MeshNode* n7,
+ const SMDS_MeshNode* n8,
+ const SMDS_MeshNode* n9,
+ const SMDS_MeshNode* n10,
+ const SMDS_MeshNode* n11,
+ const SMDS_MeshNode* n12,
+ const int id = 0,
+ bool force3d = true);
+
/*!
* Creates polyhedron. In quadratic mesh, adds medium nodes
*/
const std::vector<int>& quantities,
const int ID=0,
const bool force3d = true);
+ /*!
+ * \brief Enables fixing node parameters on EDGEs and FACEs by
+ * GetNodeU(...,check=true), GetNodeUV(...,check=true), CheckNodeUV() and
+ * CheckNodeU() in case if a node lies on a shape set via SetSubShape().
+ * Default is False
+ */
+ void ToFixNodeParameters(bool toFix);
+
/*!
* \brief Return U of the given node on the edge
*/
SMESH_Mesh* myMesh;
int myShapeID;
- // to create quadratic elements
bool myCreateQuadratic;
bool mySetElemOnShape;
+ bool myFixNodeParameters;
std::map< int,bool > myNodePosShapesValidity;
bool toCheckPosOnShape(int shapeID ) const;