mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
22361: EDF SMESH: Quadrangle (mapping) algorithm: faces with more than 4 edges
- StdMeshers_FaceSide(const SMDS_MeshNode* theNode, - const gp_Pnt2d thePnt2d, - const StdMeshers_FaceSide* theSide); + StdMeshers_FaceSide(const StdMeshers_FaceSide* theSide, + const SMDS_MeshNode* theNode, + const gp_Pnt2d* thePnt2d1, + const gp_Pnt2d* thePnt2d2=NULL, + const Handle(Geom2d_Curve)& theC2d=NULL, + const double theUFirst=0., + const double theULast=1.);
This commit is contained in:
parent
199de1cfdb
commit
8093357296
@ -202,30 +202,46 @@ StdMeshers_FaceSide::StdMeshers_FaceSide(const TopoDS_Face& theFace,
|
|||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Constructor of a side for vertex using data from other FaceSide
|
* \brief Constructor of a side for vertex using data from other FaceSide
|
||||||
* \param theVertex - the vertex
|
* \param theVertex - the vertex
|
||||||
* \param theSide - the side
|
* \param theSide - the side
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
StdMeshers_FaceSide::StdMeshers_FaceSide(const SMDS_MeshNode* theNode,
|
StdMeshers_FaceSide::StdMeshers_FaceSide(const StdMeshers_FaceSide* theSide,
|
||||||
const gp_Pnt2d thePnt2d,
|
const SMDS_MeshNode* theNode,
|
||||||
const StdMeshers_FaceSide* theSide)
|
const gp_Pnt2d* thePnt2d1,
|
||||||
|
const gp_Pnt2d* thePnt2d2,
|
||||||
|
const Handle(Geom2d_Curve)& theC2d,
|
||||||
|
const double theUFirst,
|
||||||
|
const double theULast)
|
||||||
{
|
{
|
||||||
myC2d.resize(1);
|
myC2d.push_back ( theC2d );
|
||||||
|
myFirst.push_back ( theUFirst );
|
||||||
|
myLast.push_back ( theULast );
|
||||||
|
myNormPar.push_back ( 1. );
|
||||||
|
myIsUniform.push_back( true );
|
||||||
|
myEdgeID.push_back ( 0 );
|
||||||
myLength = 0;
|
myLength = 0;
|
||||||
myProxyMesh = theSide->myProxyMesh;
|
myProxyMesh = theSide->myProxyMesh;
|
||||||
myDefaultPnt2d = thePnt2d;
|
myDefaultPnt2d = *thePnt2d1;
|
||||||
|
myPoints = theSide->GetUVPtStruct();
|
||||||
myPoints = theSide->GetUVPtStruct();
|
myNbPonits = myPoints.size();
|
||||||
myNbPonits = myPoints.size();
|
myNbSegments = theSide->myNbSegments;
|
||||||
myNbSegments = theSide->myNbSegments;
|
if ( thePnt2d2 )
|
||||||
std::vector<uvPtStruct>::iterator it = myPoints.begin();
|
for ( size_t i = 0; i < myPoints.size(); ++i )
|
||||||
for(; it!=myPoints.end(); it++) {
|
{
|
||||||
(*it).u = thePnt2d.X();
|
double r = i / ( myPoints.size() - 1. );
|
||||||
(*it).v = thePnt2d.Y();
|
myPoints[i].u = (1-r) * thePnt2d1->X() + r * thePnt2d2->X();
|
||||||
(*it).y = 0.0;
|
myPoints[i].v = (1-r) * thePnt2d1->Y() + r * thePnt2d2->Y();
|
||||||
(*it).node = theNode;
|
myPoints[i].node = theNode;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
for ( size_t i = 0; i < myPoints.size(); ++i )
|
||||||
|
{
|
||||||
|
myPoints[i].u = thePnt2d1->X();
|
||||||
|
myPoints[i].v = thePnt2d1->Y();
|
||||||
|
myPoints[i].node = theNode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
Loading…
Reference in New Issue
Block a user