typedef std::pair< const SMDS_MeshNode*, const SMDS_MeshNode* > NLink;
+struct faceQuadStruct; // defined in StdMeshers_Quadrangle_2D.hxx
+typedef boost::shared_ptr<faceQuadStruct> TFaceQuadStructPtr;
+
namespace SMESHUtils
{
struct SMESH_TNodeXYZ : public gp_XYZ
{
const SMDS_MeshNode* _node;
- SMESH_TNodeXYZ( const SMDS_MeshElement* e):gp_XYZ(0,0,0),_node(0) {
+ double _xyz[3];
+ SMESH_TNodeXYZ( const SMDS_MeshElement* e=0):gp_XYZ(0,0,0),_node(0) {
if (e) {
assert( e->GetType() == SMDSAbs_Node );
_node = static_cast<const SMDS_MeshNode*>(e);
- double xyz[3];
- _node->GetXYZ(xyz); // - thread safe gatting coords
- SetCoord( xyz[0], xyz[1], xyz[2] );
+ _node->GetXYZ(_xyz); // - thread safe getting coords
+ SetCoord( _xyz[0], _xyz[1], _xyz[2] );
}
}
double Distance(const SMDS_MeshNode* n) const { return (SMESH_TNodeXYZ( n )-*this).Modulus(); }
bool operator==(const SMESH_TNodeXYZ& other) const { return _node == other._node; }
};
+//--------------------------------------------------
+/*!
+ * \brief Data of a node generated on FACE boundary
+ */
+//--------------------------------------------------
+typedef struct uvPtStruct
+{
+ double param;
+ double normParam;
+ double u, v; // original 2d parameter
+ double x, y; // 2d parameter, normalized [0,1]
+ const SMDS_MeshNode * node;
+
+ struct NodeAccessor // accessor to iterate on nodes in UVPtStructVec
+ {
+ static const SMDS_MeshNode* value(std::vector< uvPtStruct >::const_iterator it)
+ { return it->node; }
+ };
+} UVPtStruct;
+
+typedef std::vector< UVPtStruct > UVPtStructVec;
+
// --------------------------------------------------------------------------------
// class SMESH_SequenceOfElemPtr
#include <NCollection_DefineSequence.hxx>