-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 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
//================================================================================
StdMeshers_Prism_3D::~StdMeshers_Prism_3D()
-{}
+{
+ pointsToPython( std::vector<gp_XYZ>() ); // avoid warning: pointsToPython defined but not used
+}
//=======================================================================
//function : CheckHypothesis
( ! botSM->GetAlgo() ||
! _gen->Compute( *botSM->GetFather(), botSM->GetSubShape(), /*shapeOnly=*/true )))
return error( COMPERR_BAD_INPUT_MESH,
- TCom( "No mesher defined to compute the face #")
+ TCom( "No mesher defined to compute the base face #")
<< shapeID( thePrism.myBottom ));
// Make all side FACEs of thePrism meshed with quads
// update state of sub-meshes (mostly in order to erase improper errors)
SMESH_subMesh* sm = myHelper->GetMesh()->GetSubMesh( thePrism.myShape3D );
- SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/false);
+ SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/true);
while ( smIt->more() )
{
sm = smIt->next();
/*!
* \brief Return number of faces sharing given edges
*/
- int nbAdjacentFaces( const std::vector< EdgeWithNeighbors >& edges,
- const TopTools_IndexedDataMapOfShapeListOfShape& facesOfEdge )
- {
- TopTools_MapOfShape adjFaces;
-
- for ( size_t i = 0; i < edges.size(); ++i )
- {
- TopTools_ListIteratorOfListOfShape faceIt( facesOfEdge.FindFromKey( edges[i]._edge ));
- for ( ; faceIt.More(); faceIt.Next() )
- adjFaces.Add( faceIt.Value() );
- }
- return adjFaces.Extent();
- }
+ // int nbAdjacentFaces( const std::vector< EdgeWithNeighbors >& edges,
+ // const TopTools_IndexedDataMapOfShapeListOfShape& facesOfEdge )
+ // {
+ // TopTools_MapOfShape adjFaces;
+
+ // for ( size_t i = 0; i < edges.size(); ++i )
+ // {
+ // TopTools_ListIteratorOfListOfShape faceIt( facesOfEdge.FindFromKey( edges[i]._edge ));
+ // for ( ; faceIt.More(); faceIt.Next() )
+ // adjFaces.Add( faceIt.Value() );
+ // }
+ // return adjFaces.Extent();
+ // }
}
//================================================================================
list< SMESH_subMesh* > meshedSubMesh;
int nbFaces = 0;
//
- SMESH_subMesh* anyFaceSM = 0;
SMESH_subMeshIteratorPtr smIt = mainSubMesh->getDependsOnIterator(false,true);
while ( smIt->more() )
{
if ( face.ShapeType() > TopAbs_FACE ) break;
else if ( face.ShapeType() < TopAbs_FACE ) continue;
nbFaces++;
- anyFaceSM = sm;
// is quadrangle FACE?
list< TopoDS_Edge > orderedEdges;
// find vertex 000 - the one with smallest coordinates (for easy DEBUG :-)
TopoDS_Vertex V000;
- double minVal = DBL_MAX, minX, val;
+ double minVal = DBL_MAX, minX = 0, val;
for ( TopExp_Explorer exp( botSM->GetSubShape(), TopAbs_VERTEX );
exp.More(); exp.Next() )
{
if ( !myHelper->LoadNodeColumns( faceColumns, (*quad)->face, quadBot, meshDS ))
return error(COMPERR_BAD_INPUT_MESH, TCom("Can't find regular quadrangle mesh ")
<< "on a side face #" << MeshDS()->ShapeToIndex( (*quad)->face ));
+
+ if ( !faceColumns.empty() && (int)faceColumns.begin()->second.size() != VerticalSize() )
+ return error(COMPERR_BAD_INPUT_MESH, "Different 'vertical' discretization");
}
// edge columns
int id = MeshDS()->ShapeToIndex( *edgeIt );