// check that uv is correct
TopLoc_Location loc;
Handle(Geom_Surface) surface = BRep_Tool::Surface( F,loc );
- gp_Pnt nodePnt = XYZ( n ), surfPnt(0,0,0);
+ SMESH_NodeXYZ nXYZ( n );
+ gp_Pnt nodePnt = nXYZ, surfPnt(0,0,0);
double dist = 0;
if ( !loc.IsIdentity() ) nodePnt.Transform( loc.Transformation().Inverted() );
if ( infinit ||
(dist = nodePnt.Distance( surfPnt = surface->Value( uv.X(), uv.Y() ))) > tol )
{
setPosOnShapeValidity( shapeID, false );
- if ( !infinit && distXYZ ) {
- surfPnt.Transform( loc );
- distXYZ[0] = dist;
- distXYZ[1] = surfPnt.X(); distXYZ[2] = surfPnt.Y(); distXYZ[3]=surfPnt.Z();
- }
// uv incorrect, project the node to surface
- GeomAPI_ProjectPointOnSurf& projector = GetProjector( F, loc, tol );
- projector.SetExtremaFlag( Extrema_ExtFlag_MIN );
- projector.Perform( nodePnt );
- if ( !projector.IsDone() || projector.NbPoints() < 1 )
- {
- MESSAGE( "SMESH_MesherHelper::CheckNodeUV() failed to project" );
- return false;
- }
- Standard_Real U,V;
- projector.LowerDistanceParameters(U,V);
- uv.SetCoord( U,V );
- surfPnt = surface->Value( U, V );
- dist = nodePnt.Distance( surfPnt );
+ Handle(ShapeAnalysis_Surface) sprojector = GetSurface( F );
+ uv = sprojector->ValueOfUV( nXYZ, tol ).XY();
+ surfPnt = sprojector->Value( uv );
+ dist = surfPnt.Distance( nXYZ );
if ( distXYZ ) {
- surfPnt.Transform( loc );
distXYZ[0] = dist;
distXYZ[1] = surfPnt.X(); distXYZ[2] = surfPnt.Y(); distXYZ[3]=surfPnt.Z();
}
if ( dist > tol )
{
- Handle(ShapeAnalysis_Surface) sprojector = GetSurface( F );
- uv = sprojector->ValueOfUV( nodePnt, tol ).XY();
- surfPnt = sprojector->Value( uv );
- dist = nodePnt.Distance( surfPnt );
- if ( distXYZ ) {
- surfPnt.Transform( loc );
- distXYZ[0] = dist;
- distXYZ[1] = surfPnt.X(); distXYZ[2] = surfPnt.Y(); distXYZ[3]=surfPnt.Z();
- }
- if ( dist > tol )
- {
- MESSAGE( "SMESH_MesherHelper::CheckNodeUV(), invalid projection" );
- return false;
- }
+ MESSAGE( "SMESH_MesherHelper::CheckNodeUV(), invalid projection" );
+ return false;
}
// store the fixed UV on the face
if ( myShape.IsSame(F) && shapeID == myShapeID && myFixNodeParameters )
const_cast<SMDS_MeshNode*>(n)->SetPosition
- ( SMDS_PositionPtr( new SMDS_FacePosition( U, V )));
+ ( SMDS_PositionPtr( new SMDS_FacePosition( uv.X(), uv.Y() )));
}
else if ( myShape.IsSame(F) && uv.Modulus() > numeric_limits<double>::min() )
{
}
// import python files corresponding to plugins if they are used in anUpdatedScript
{
- TCollection_AsciiString importStr;
+ //TCollection_AsciiString importStr;
std::vector<std::string> pluginNames = getPluginNames();
for ( size_t i = 0; i < pluginNames.size(); ++i )
{
// Convert access to plugin members:
- // e.g. StdMeshers.QUAD_REDUCED -> StdMeshersBuilder.QUAD_REDUCED
+ // e.g. StdMeshers.QUAD_REDUCED -> smeshBuilder.QUAD_REDUCED
TCollection_AsciiString pluginAccess = (pluginNames[i] + ".").c_str() ;
int iFrom = 1, iPos;
while (( iPos = anUpdatedScript.Location( pluginAccess, iFrom, anUpdatedScript.Length() )))
{
- anUpdatedScript.Insert( iPos + pluginNames[i].size(), "Builder" );
- iFrom = iPos + pluginNames[i].size() + 8;
+ //anUpdatedScript.Insert( iPos + pluginNames[i].size(), "Builder" );
+ anUpdatedScript.Remove( iPos, pluginNames[i].size() );
+ anUpdatedScript.Insert( iPos, "smeshBuilder" );
+ iFrom = iPos - pluginNames[i].size() + 12;
}
// if any plugin member is used, import the plugin
- if ( iFrom > 1 )
- importStr += ( helper + "\n" "from salome." + pluginNames[i].c_str() +
- " import " + pluginNames[i].c_str() +"Builder" );
+ // if ( iFrom > 1 )
+ // importStr += ( helper + "\n" "from salome." + pluginNames[i].c_str() +
+ // " import " + pluginNames[i].c_str() +"Builder" );
}
- if ( !importStr.IsEmpty() )
- initPart += importStr + "\n";
+ // if ( !importStr.IsEmpty() )
+ // initPart += importStr + "\n";
}
if ( isMultiFile )