// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
#include <GEOMAlgo_ShapeInfoFiller.ixx>
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Solid& aSd)
{
for (i=1; i<=aNbF; ++i) {
const TopoDS_Shape& aF=aMF(i);
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aF);
- aKNF=aInfoF.KindOfName();
+ aKNF=aInfoF.KindOfName();
if (aKNF==GEOMAlgo_KN_CYLINDER) {
aFCyl=aF;
++aNbCyl;
aKNF==GEOMAlgo_KN_TRIANGLE ||
aKNF==GEOMAlgo_KN_QUADRANGLE) {
++aNbPgn;
-
- }
+ }
else if (aKNF==GEOMAlgo_KN_RECTANGLE) {
++aNbPgn;
++aNbRct;
if (aNbCyl==1 && aNbCrc==2 && aNbX==aNbF) {
// cylinder (as they understand it)
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aFCyl);
- aKNF=aInfoF.KindOfName();
+ aKNF=aInfoF.KindOfName();
aInfo.SetKindOfName(aKNF);
aInfo.SetLocation(aInfoF.Location());
aInfo.SetPosition(aInfoF.Position());
if (aNbCon==1 && (aNbCrc==1 || aNbCrc==2) && aNbX==aNbF) {
// cone
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aFCon);
- aKNF=aInfoF.KindOfName();
+ aKNF=aInfoF.KindOfName();
aInfo.SetKindOfName(aKNF);
aInfo.SetLocation(aInfoF.Location());
aInfo.SetPosition(aInfoF.Position());
return;
}
//
+ //modified by NIZNHY-PKV Wed Jan 11 11:04:31 2012f
+ if (aNbF!=aNbPgn) {
+ return;// -> GEOMAlgo_KN_UNKNOWN
+ }
+ //modified by NIZNHY-PKV Wed Jan 11 11:04:37 2012t
if (aNbPgn!=6) {
aInfo.SetKindOfName(GEOMAlgo_KN_POLYHEDRON);
return;
}
+ // aNbPgn==6
if (aNbPgn!=aNbRct) {
aInfo.SetKindOfName(GEOMAlgo_KN_POLYHEDRON);
return;
}
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
const gp_Pln& aPln)
}
}
//
- // rectangle
+ // rectangle
aInfo.SetKindOfName(GEOMAlgo_KN_RECTANGLE);
//
// shift location to the center and calc. sizes
gp_Ax3 aAx3(aAx2);
aInfo.SetPosition(aAx3);
}
-
+
return;
}
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
const gp_Sphere& )
{
Standard_Integer aNbV, aNbE, aNbSE, aNbDE;
- TopoDS_Edge aE;
+ TopoDS_Edge aE;
TopExp_Explorer aExp;
- TopTools_MapOfShape aM;
+ TopTools_MapOfShape aM;
GEOMAlgo_KindOfShape aKS, aKSE;
//
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
}
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
const gp_Cone& )//aCone)
}
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
const gp_Cylinder& aCyl)
GEOMAlgo_KindOfShape aKS;
GEOMAlgo_KindOfName aKN, aKNE;
GEOMAlgo_KindOfClosed aKCE;
- //
+ //
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
aKN=GEOMAlgo_KN_UNKNOWN;
aInfo.SetKindOfName(aKN);
//=======================================================================
//function : FillDetails
-//purpose :
+//purpose :
//=======================================================================
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
const gp_Torus& )
{
Standard_Integer aNbV, aNbE, aNbSE;
- TopoDS_Edge aE;
+ TopoDS_Edge aE;
TopExp_Explorer aExp;
- TopTools_MapOfShape aM;
+ TopTools_MapOfShape aM;
GEOMAlgo_KindOfShape aKS;
//
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);