void BRepCheck::Print(const BRepCheck_Status stat,
Standard_OStream& OS)
{
+#define PRINT_CASE(stat) case stat: OS << #stat "\n"; break
switch (stat) {
- case BRepCheck_NoError:
- OS << "BRepCheck_NoError\n";
- break;
- case BRepCheck_InvalidPointOnCurve:
- OS << "BRepCheck_InvalidPointOnCurve\n";
- break;
- case BRepCheck_InvalidPointOnCurveOnSurface:
- OS << "BRepCheck_InvalidPointOnCurveOnSurface\n";
- break;
- case BRepCheck_InvalidPointOnSurface:
- OS << "BRepCheck_InvalidPointOnSurface\n";
- break;
- case BRepCheck_No3DCurve:
- OS << "BRepCheck_No3DCurve\n";
- break;
- case BRepCheck_Multiple3DCurve:
- OS << "BRepCheck_Multiple3DCurve\n";
- break;
- case BRepCheck_Invalid3DCurve:
- OS << "BRepCheck_Invalid3DCurve\n";
- break;
- case BRepCheck_NoCurveOnSurface:
- OS << "BRepCheck_NoCurveOnSurface\n";
- break;
- case BRepCheck_InvalidCurveOnSurface:
- OS << "BRepCheck_InvalidCurveOnSurface\n";
- break;
- case BRepCheck_InvalidCurveOnClosedSurface:
- OS << "BRepCheck_InvalidCurveOnClosedSurface\n";
- break;
- case BRepCheck_InvalidSameRangeFlag:
- OS << "BRepCheck_InvalidSameRangeFlag\n";
- break;
- case BRepCheck_InvalidSameParameterFlag:
- OS << "BRepCheck_InvalidSameParameterFlag\n";
- break;
- case BRepCheck_InvalidDegeneratedFlag:
- OS << "BRepCheck_InvalidDegeneratedFlag\n";
- break;
- case BRepCheck_FreeEdge:
- OS << "BRepCheck_FreeEdge\n";
- break;
- case BRepCheck_InvalidMultiConnexity:
- OS << "BRepCheck_InvalidMultiConnexity\n";
- break;
- case BRepCheck_InvalidRange:
- OS << "BRepCheck_InvalidRange\n";
- break;
- case BRepCheck_EmptyWire:
- OS << "BRepCheck_EmptyWire\n";
- break;
- case BRepCheck_RedundantEdge:
- OS << "BRepCheck_RedundantEdge\n";
- break;
- case BRepCheck_SelfIntersectingWire:
- OS << "BRepCheck_SelfIntersectingWire\n";
- break;
- case BRepCheck_NoSurface:
- OS << "BRepCheck_NoSurface\n";
- break;
- case BRepCheck_InvalidWire:
- OS << "BRepCheck_InvalidWire\n";
- break;
- case BRepCheck_RedundantWire:
- OS << "BRepCheck_RedundantWire\n";
- break;
- case BRepCheck_IntersectingWires:
- OS << "BRepCheck_IntersectingWires\n";
- break;
- case BRepCheck_InvalidImbricationOfWires:
- OS << "BRepCheck_InvalidImbricationOfWires\n";
- break;
- case BRepCheck_EmptyShell:
- OS << "BRepCheck_EmptyShell\n";
- break;
- case BRepCheck_RedundantFace:
- OS << "BRepCheck_RedundantFace\n";
- break;
- case BRepCheck_UnorientableShape:
- OS << "BRepCheck_UnorientableShape\n";
- break;
- case BRepCheck_NotClosed:
- OS << "BRepCheck_NotClosed\n";
- break;
- case BRepCheck_NotConnected:
- OS << "BRepCheck_NotConnected\n";
- break;
- case BRepCheck_SubshapeNotInShape:
- OS << "BRepCheck_SubshapeNotInShape\n";
- break;
- case BRepCheck_BadOrientation:
- OS << "BRepCheck_BadOrientation\n";
- break;
- case BRepCheck_BadOrientationOfSubshape:
- OS << "BRepCheck_BadOrientationOfSubshape\n";
- break;
- case BRepCheck_CheckFail:
- OS << "BRepCheck_CheckFail\n";
- break;
+ PRINT_CASE(BRepCheck_NoError);
+ PRINT_CASE(BRepCheck_InvalidPointOnCurve);
+ PRINT_CASE(BRepCheck_InvalidPointOnCurveOnSurface);
+ PRINT_CASE(BRepCheck_InvalidPointOnSurface);
+ PRINT_CASE(BRepCheck_No3DCurve);
+ PRINT_CASE(BRepCheck_Multiple3DCurve);
+ PRINT_CASE(BRepCheck_Invalid3DCurve);
+ PRINT_CASE(BRepCheck_NoCurveOnSurface);
+ PRINT_CASE(BRepCheck_InvalidCurveOnSurface);
+ PRINT_CASE(BRepCheck_InvalidCurveOnClosedSurface);
+ PRINT_CASE(BRepCheck_InvalidSameRangeFlag);
+ PRINT_CASE(BRepCheck_InvalidSameParameterFlag);
+ PRINT_CASE(BRepCheck_InvalidDegeneratedFlag);
+ PRINT_CASE(BRepCheck_FreeEdge);
+ PRINT_CASE(BRepCheck_InvalidMultiConnexity);
+ PRINT_CASE(BRepCheck_InvalidRange);
+ PRINT_CASE(BRepCheck_EmptyWire);
+ PRINT_CASE(BRepCheck_RedundantEdge);
+ PRINT_CASE(BRepCheck_SelfIntersectingWire);
+ PRINT_CASE(BRepCheck_NoSurface);
+ PRINT_CASE(BRepCheck_InvalidWire);
+ PRINT_CASE(BRepCheck_RedundantWire);
+ PRINT_CASE(BRepCheck_IntersectingWires);
+ PRINT_CASE(BRepCheck_InvalidImbricationOfWires);
+ PRINT_CASE(BRepCheck_EmptyShell);
+ PRINT_CASE(BRepCheck_RedundantFace);
+ PRINT_CASE(BRepCheck_UnorientableShape);
+ PRINT_CASE(BRepCheck_NotClosed);
+ PRINT_CASE(BRepCheck_NotConnected);
+ PRINT_CASE(BRepCheck_SubshapeNotInShape);
+ PRINT_CASE(BRepCheck_BadOrientation);
+ PRINT_CASE(BRepCheck_BadOrientationOfSubshape);
+ PRINT_CASE(BRepCheck_InvalidToleranceValue);
+ PRINT_CASE(BRepCheck_CheckFail);
default:
break;
}
}
-
-
#include <BRepCheck_Vertex.ixx>
+#include <BRepCheck.hxx>
#include <BRepCheck_ListOfStatus.hxx>
#include <BRep_TVertex.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS_Iterator.hxx>
-#include <BRepCheck.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
+#include <Precision.hxx>
//=======================================================================
//function : BRepCheck_Vertex
case TopAbs_EDGE:
{
// Try to find the vertex on the edge
-
const TopoDS_Edge& E = TopoDS::Edge(S);
TopoDS_Iterator itv(E.Oriented(TopAbs_FORWARD));
TopoDS_Vertex VFind;
// VFind is not null for sure
TopAbs_Orientation orv = VFind.Orientation();
- Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Vertex(myShape));
- Tol = Max(Tol,BRep_Tool::Tolerance(E)); // to check
- Tol *= Tol;
+ Standard_Real TolV = TV->Tolerance();
+ Standard_Real TolE = BRep_Tool::Tolerance(E);
+ if (TolE > TolV)
+ {
+ if (TolE - TolV > Precision::Confusion())
+ BRepCheck::Add(myMap(S),BRepCheck_InvalidToleranceValue);
+ TolV = TolE;
+ }
+ Standard_Real aTol2 = TolV * TolV;
Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*)&E.TShape());
BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
if (pr->IsPointOnCurve(C,L)) {
Controlp = C->Value(pr->Parameter());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
+ if (prep.SquareDistance(Controlp) > aTol2) {
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
}
}
if (orv == TopAbs_FORWARD || multiple) {
Controlp = C->Value(GC->First());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
+ if (prep.SquareDistance(Controlp) > aTol2) {
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
}
}
if (orv == TopAbs_REVERSED || multiple) {
Controlp = C->Value(GC->Last());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
+ if (prep.SquareDistance(Controlp) > aTol2) {
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnCurve);
}
}
gp_Pnt2d p2d = PC->Value(pr->Parameter());
Controlp = Su->Value(p2d.X(),p2d.Y());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
- BRepCheck::Add(myMap(S),
- BRepCheck_InvalidPointOnCurveOnSurface);
+ if (prep.SquareDistance(Controlp) > aTol2) {
+ BRepCheck::Add(myMap(S), BRepCheck_InvalidPointOnCurveOnSurface);
}
}
if (!PC2.IsNull() && pr->IsPointOnCurveOnSurface(PC2,Su,L)) {
gp_Pnt2d p2d = PC2->Value(pr->Parameter());
Controlp = Su->Value(p2d.X(),p2d.Y());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
- BRepCheck::Add(myMap(S),
- BRepCheck_InvalidPointOnCurveOnSurface);
+ if (prep.SquareDistance(Controlp) > aTol2) {
+ BRepCheck::Add(myMap(S), BRepCheck_InvalidPointOnCurveOnSurface);
}
}
itpr.Next();
const Handle(Geom_Surface)& Su = TF->Surface();
TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location());
- Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Vertex(myShape));
- Tol = Max(Tol,BRep_Tool::Tolerance(TopoDS::Face(S))); // to check
- Tol *= Tol;
+ Standard_Real TolV = TV->Tolerance();
+ Standard_Real TolF = TF->Tolerance();
+ if (TolF > TolV)
+ {
+ if (TolF - TolV > Precision::Confusion())
+ BRepCheck::Add(myMap(S),BRepCheck_InvalidToleranceValue);
+ TolV = TolF;
+ }
+ Standard_Real aTol2 = TolV * TolV;
BRep_ListIteratorOfListOfPointRepresentation itpr(TV->Points());
while (itpr.More()) {
if (pr->IsPointOnSurface(Su,L)) {
Controlp = Su->Value(pr->Parameter(),pr->Parameter2());
Controlp.Transform(L.Transformation());
- if (prep.SquareDistance(Controlp)> Tol) {
+ if (prep.SquareDistance(Controlp) > aTol2) {
BRepCheck::Add(myMap(S),BRepCheck_InvalidPointOnSurface);
}
}
#include <Standard_ErrorHandler.hxx>
#include <Standard_Failure.hxx>
+#include <NCollection_Array1.hxx>
//#ifdef WNT
#include <stdio.h>
//function : FindNamed
//=======================================================================
static Standard_Boolean FindNamed(const TopoDS_Shape& S,
- char*& Name)
+ const char*& Name)
{
for (Standard_Integer i = 1 ;i <= lfaulty.Length(); i++) {
Handle(DBRep_DrawableShape) DS =
Handle(DBRep_DrawableShape)::DownCast(lfaulty(i));
if (DS->Shape().IsSame(S)) {
- Name = (char*)DS->Name();
+ Name = DS->Name();
return Standard_True;
}
}
const TopAbs_ShapeEnum Subtype)
{
- char* Name;
BRepCheck_ListIteratorOfListOfStatus itl;
TopExp_Explorer exp;
for (exp.Init(S,Subtype); exp.More(); exp.Next()) {
theMap(sub).Append(S);
itl.Initialize(res->StatusOnShape());
if (itl.Value() != BRepCheck_NoError) {
- if (!FindNamed(sub,Name)) {
+ const char* pName;
+ if (!FindNamed(sub,pName)) {
nbfaulty++;
- Name = (char*)malloc(18*sizeof(char));
- Sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
- DBRep::Set(Name,sub);
- lfaulty.Append(Draw::Get((Standard_CString&)Name));
- }
- OS << "Shape " << Name << " ";
- if (!FindNamed(S,Name)) {
- nbfaulty++;
- Name = (char*)malloc(18*sizeof(char));
- Sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
- DBRep::Set(Name,S);
- lfaulty.Append(Draw::Get((Standard_CString&)Name));
- }
- OS << " on shape " << Name << " :\n";
- for (;itl.More(); itl.Next()) {
- BRepCheck::Print(itl.Value(),OS);
- }
+ char aName[256];
+ sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
+ DBRep::Set(aName,sub);
+ pName = aName;
+ lfaulty.Append(Draw::Get(pName));
+ OS << "Shape " << pName << " ";
+ if (!FindNamed(S,pName)) {
+ nbfaulty++;
+ sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
+ DBRep::Set(aName,S);
+ pName = aName;
+ lfaulty.Append(Draw::Get(pName));
+ }
+ OS << " on shape " << pName << " :\n";
+ for (;itl.More(); itl.Next()) {
+ BRepCheck::Print(itl.Value(),OS);
+ }
+ }
}
break;
}
Print(OS,Ana,iter.Value());
}
- char* Name;
TopAbs_ShapeEnum styp = S.ShapeType();
BRepCheck_ListIteratorOfListOfStatus itl;
if (!Ana.Result(S).IsNull() && !theMap.IsBound(S)) {
itl.Initialize(Ana.Result(S)->Status());
if (itl.Value() != BRepCheck_NoError) {
- if (!FindNamed(S,Name)) {
+ const char* pName;
+ char aName[256];
+ if (!FindNamed(S,pName)) {
nbfaulty++;
- Name = (char*)malloc(18*sizeof(char));
- Sprintf(Name,"%s%d",checkfaultyname,nbfaulty);
- DBRep::Set(Name,S);
- lfaulty.Append(Draw::Get((Standard_CString&)Name));
+ sprintf(aName,"%.80s%d",checkfaultyname,nbfaulty);
+ DBRep::Set(aName,S);
+ pName = aName;
+ lfaulty.Append(Draw::Get(pName));
}
- OS << "On Shape " << Name << " :\n";
+ OS << "On Shape " << pName << " :\n";
for (;itl.More(); itl.Next()) {
BRepCheck::Print(itl.Value(),OS);
nbfaulty = 0;
lfaulty.Clear();
- //Print(cout, theAna, theShape);
Standard_SStream aSStream;
Print(aSStream, theAna, theShape);
theCommands << aSStream;
- //cout<<"\n";
theCommands<<"\n";
theMap.Clear();
if (nbfaulty !=0)
theCommands<<"Faulty shapes in variables "<<checkfaultyname<<"1 to "<<checkfaultyname<<nbfaulty<<" \n";
- //cout<<"Faulty shapes in variables "<<checkfaultyname<<"1 to "<<checkfaultyname<<nbfaulty<<" \n";
-
- //cout<<endl;
theCommands<<"\n";
}
-//=======================================================================
-//function : FillProblems
-// purpose : auxilary for StructuralDump
-//=======================================================================
-static void FillProblems(const BRepCheck_Status stat,
- Handle(TColStd_HArray1OfInteger)& NbProblems)
-{
- switch (stat) {
- case BRepCheck_InvalidPointOnCurve:
- NbProblems->SetValue(1,NbProblems->Value(1)+1); break;
- case BRepCheck_InvalidPointOnCurveOnSurface:
- NbProblems->SetValue(2,NbProblems->Value(2)+1); break;
- case BRepCheck_InvalidPointOnSurface:
- NbProblems->SetValue(3,NbProblems->Value(3)+1); break;
- case BRepCheck_No3DCurve:
- NbProblems->SetValue(4,NbProblems->Value(4)+1); break;
- case BRepCheck_Multiple3DCurve:
- NbProblems->SetValue(5,NbProblems->Value(5)+1); break;
- case BRepCheck_Invalid3DCurve:
- NbProblems->SetValue(6,NbProblems->Value(6)+1); break;
- case BRepCheck_NoCurveOnSurface:
- NbProblems->SetValue(7,NbProblems->Value(7)+1); break;
- case BRepCheck_InvalidCurveOnSurface:
- NbProblems->SetValue(8,NbProblems->Value(8)+1); break;
- case BRepCheck_InvalidCurveOnClosedSurface:
- NbProblems->SetValue(9,NbProblems->Value(9)+1); break;
- case BRepCheck_InvalidSameRangeFlag:
- NbProblems->SetValue(10,NbProblems->Value(10)+1); break;
- case BRepCheck_InvalidSameParameterFlag:
- NbProblems->SetValue(11,NbProblems->Value(11)+1); break;
- case BRepCheck_InvalidDegeneratedFlag:
- NbProblems->SetValue(12,NbProblems->Value(12)+1); break;
- case BRepCheck_FreeEdge:
- NbProblems->SetValue(13,NbProblems->Value(13)+1); break;
- case BRepCheck_InvalidMultiConnexity:
- NbProblems->SetValue(14,NbProblems->Value(14)+1); break;
- case BRepCheck_InvalidRange:
- NbProblems->SetValue(15,NbProblems->Value(15)+1); break;
- case BRepCheck_EmptyWire:
- NbProblems->SetValue(16,NbProblems->Value(16)+1); break;
- case BRepCheck_RedundantEdge:
- NbProblems->SetValue(17,NbProblems->Value(17)+1); break;
- case BRepCheck_SelfIntersectingWire:
- NbProblems->SetValue(18,NbProblems->Value(18)+1); break;
- case BRepCheck_NoSurface:
- NbProblems->SetValue(19,NbProblems->Value(19)+1); break;
- case BRepCheck_InvalidWire:
- NbProblems->SetValue(20,NbProblems->Value(20)+1); break;
- case BRepCheck_RedundantWire:
- NbProblems->SetValue(21,NbProblems->Value(21)+1); break;
- case BRepCheck_IntersectingWires:
- NbProblems->SetValue(22,NbProblems->Value(22)+1); break;
- case BRepCheck_InvalidImbricationOfWires:
- NbProblems->SetValue(23,NbProblems->Value(23)+1); break;
- case BRepCheck_EmptyShell:
- NbProblems->SetValue(24,NbProblems->Value(24)+1); break;
- case BRepCheck_RedundantFace:
- NbProblems->SetValue(25,NbProblems->Value(25)+1); break;
- case BRepCheck_UnorientableShape:
- NbProblems->SetValue(26,NbProblems->Value(26)+1); break;
- case BRepCheck_NotClosed:
- NbProblems->SetValue(27,NbProblems->Value(27)+1); break;
- case BRepCheck_NotConnected:
- NbProblems->SetValue(28,NbProblems->Value(28)+1); break;
- case BRepCheck_SubshapeNotInShape:
- NbProblems->SetValue(29,NbProblems->Value(29)+1); break;
- case BRepCheck_BadOrientation:
- NbProblems->SetValue(30,NbProblems->Value(30)+1); break;
- case BRepCheck_BadOrientationOfSubshape:
- NbProblems->SetValue(31,NbProblems->Value(31)+1); break;
- case BRepCheck_CheckFail:
- NbProblems->SetValue(32,NbProblems->Value(32)+1); break;
- default:
- break;
- }
-}
//=======================================================================
if(ii>sl->Length()) {
sl->Append(sub);
- FillProblems(itl.Value(),NbProblems);
+ NbProblems->ChangeValue(itl.Value())++;
}
for(ii=1; ii<=sl->Length(); ii++)
if(sl->Value(ii).IsSame(Shape)) break;
if(ii>sl->Length()) {
sl->Append(Shape);
- FillProblems(itl.Value(),NbProblems);
+ NbProblems->ChangeValue(itl.Value())++;
}
}
break;
if (itl.Value() != BRepCheck_NoError) {
sl->Append(Shape);
- FillProblems(itl.Value(),NbProblems);
+ NbProblems->ChangeValue(itl.Value())++;
}
}
if (!theMap.IsBound(Shape)) {
default:
break;
}
-
}
//=======================================================================
const TopoDS_Shape &theShape)
{
Standard_Integer i;
- //cout << "StructuralDump" << endl;
- //cout << " -- The Shape " << ShName << " has problems :"<<endl;
- //cout<<" Check Count"<<endl;
- //cout<<" ------------------------------------------------"<<endl;
theCommands << " -- The Shape " << ShName << " has problems :"<<"\n";
theCommands<<" Check Count"<<"\n";
theCommands<<" ------------------------------------------------"<<"\n";
- Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,32);
- for(i=1; i<=32; i++) NbProblems->SetValue(i,0);
+ Handle(TColStd_HArray1OfInteger) NbProblems = new TColStd_HArray1OfInteger(1,33);
+ for (i=1; i<=33; i++) NbProblems->SetValue (i,0);
Handle(TopTools_HSequenceOfShape) sl,slv,sle,slw,slf,sls,slo;
sl = new TopTools_HSequenceOfShape();
theMap.Clear();
GetProblemShapes(theAna, theShape, sl, NbProblems);
theMap.Clear();
- if(NbProblems->Value(1)>0)
- theCommands<<" Invalid Point on Curve ................... "<<NbProblems->Value(1)<<"\n";
- //cout<<" Invalid Point on Curve ................... "<<NbProblems->Value(1)<<endl;
- if(NbProblems->Value(2)>0)
- theCommands<<" Invalid Point on CurveOnSurface .......... "<<NbProblems->Value(2)<<"\n";
- //cout<<" Invalid Point on CurveOnSurface .......... "<<NbProblems->Value(2)<<endl;
- if(NbProblems->Value(3)>0)
- theCommands<<" Invalid Point on Surface ................. "<<NbProblems->Value(3)<<"\n";
- //cout<<" Invalid Point on Surface ................. "<<NbProblems->Value(3)<<endl;
- if(NbProblems->Value(4)>0)
- theCommands<<" No 3D Curve .............................. "<<NbProblems->Value(4)<<"\n";
- //cout<<" No 3D Curve .............................. "<<NbProblems->Value(4)<<endl;
- if(NbProblems->Value(5)>0)
- theCommands<<" Multiple 3D Curve ........................ "<<NbProblems->Value(5)<<"\n";
- //cout<<" Multiple 3D Curve ........................ "<<NbProblems->Value(5)<<endl;
- if(NbProblems->Value(6)>0)
- theCommands<<" Invalid 3D Curve ......................... "<<NbProblems->Value(6)<<"\n";
- //cout<<" Invalid 3D Curve ......................... "<<NbProblems->Value(6)<<endl;
- if(NbProblems->Value(7)>0)
- theCommands<<" No Curve on Surface ...................... "<<NbProblems->Value(7)<<"\n";
- //cout<<" No Curve on Surface ...................... "<<NbProblems->Value(7)<<endl;
- if(NbProblems->Value(8)>0)
- theCommands<<" Invalid Curve on Surface ................. "<<NbProblems->Value(8)<<"\n";
- //cout<<" Invalid Curve on Surface ................. "<<NbProblems->Value(8)<<endl;
- if(NbProblems->Value(9)>0)
- theCommands<<" Invalid Curve on closed Surface .......... "<<NbProblems->Value(9)<<"\n";
- //cout<<" Invalid Curve on closed Surface .......... "<<NbProblems->Value(9)<<endl;
- if(NbProblems->Value(10)>0)
- theCommands<<" Invalid SameRange Flag ................... "<<NbProblems->Value(10)<<"\n";
- //cout<<" Invalid SameRange Flag ................... "<<NbProblems->Value(10)<<endl;
- if(NbProblems->Value(11)>0)
- theCommands<<" Invalid SameParameter Flag ............... "<<NbProblems->Value(11)<<"\n";
- //cout<<" Invalid SameParameter Flag ............... "<<NbProblems->Value(11)<<endl;
- if(NbProblems->Value(12)>0)
- theCommands<<" Invalid Degenerated Flag ................. "<<NbProblems->Value(12)<<"\n";
- //cout<<" Invalid Degenerated Flag ................. "<<NbProblems->Value(12)<<endl;
- if(NbProblems->Value(13)>0)
- theCommands<<" Free Edge ................................ "<<NbProblems->Value(13)<<"\n";
- //cout<<" Free Edge ................................ "<<NbProblems->Value(13)<<endl;
- if(NbProblems->Value(14)>0)
- theCommands<<" Invalid MultiConnexity ................... "<<NbProblems->Value(14)<<"\n";
- //cout<<" Invalid MultiConnexity ................... "<<NbProblems->Value(14)<<endl;
- if(NbProblems->Value(15)>0)
- theCommands<<" Invalid Range ............................ "<<NbProblems->Value(15)<<"\n";
- //cout<<" Invalid Range ............................ "<<NbProblems->Value(15)<<endl;
- if(NbProblems->Value(16)>0)
- theCommands<<" Empty Wire ............................... "<<NbProblems->Value(16)<<"\n";
- //cout<<" Empty Wire ............................... "<<NbProblems->Value(16)<<endl;
- if(NbProblems->Value(17)>0)
- theCommands<<" Redundant Edge ........................... "<<NbProblems->Value(17)<<"\n";
- //cout<<" Redundant Edge ........................... "<<NbProblems->Value(17)<<endl;
- if(NbProblems->Value(18)>0)
- theCommands<<" Self Intersecting Wire ................... "<<NbProblems->Value(18)<<"\n";
- //cout<<" Self Intersecting Wire ................... "<<NbProblems->Value(18)<<endl;
- if(NbProblems->Value(19)>0)
- theCommands<<" No Surface ............................... "<<NbProblems->Value(19)<<"\n";
- //cout<<" No Surface ............................... "<<NbProblems->Value(19)<<endl;
- if(NbProblems->Value(20)>0)
- theCommands<<" Invalid Wire ............................. "<<NbProblems->Value(20)<<"\n";
- //cout<<" Invalid Wire ............................. "<<NbProblems->Value(20)<<endl;
- if(NbProblems->Value(21)>0)
- theCommands<<" Redundant Wire ........................... "<<NbProblems->Value(21)<<"\n";
- //cout<<" Redundant Wire ........................... "<<NbProblems->Value(21)<<endl;
- if(NbProblems->Value(22)>0)
- theCommands<<" Intersecting Wires ....................... "<<NbProblems->Value(22)<<"\n";
- //cout<<" Intersecting Wires ....................... "<<NbProblems->Value(22)<<endl;
- if(NbProblems->Value(23)>0)
- theCommands<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(23)<<"\n";
- //cout<<" Invalid Imbrication of Wires ............. "<<NbProblems->Value(23)<<endl;
- if(NbProblems->Value(24)>0)
- theCommands<<" Empty Shell .............................. "<<NbProblems->Value(24)<<"\n";
- //cout<<" Empty Shell .............................. "<<NbProblems->Value(24)<<endl;
- if(NbProblems->Value(25)>0)
- theCommands<<" Redundant Face ........................... "<<NbProblems->Value(25)<<"\n";
- //cout<<" Redundant Face ........................... "<<NbProblems->Value(25)<<endl;
- if(NbProblems->Value(26)>0)
- theCommands<<" Unorientable Shape ....................... "<<NbProblems->Value(26)<<"\n";
- //cout<<" Unorientable Shape ....................... "<<NbProblems->Value(26)<<endl;
- if(NbProblems->Value(27)>0)
- theCommands<<" Not Closed ............................... "<<NbProblems->Value(27)<<"\n";
- //cout<<" Not Closed ............................... "<<NbProblems->Value(27)<<endl;
- if(NbProblems->Value(28)>0)
- theCommands<<" Not Connected ............................ "<<NbProblems->Value(28)<<"\n";
- //cout<<" Not Connected ............................ "<<NbProblems->Value(28)<<endl;
- if(NbProblems->Value(29)>0)
- theCommands<<" Subshape not in Shape .................... "<<NbProblems->Value(29)<<"\n";
- //cout<<" Subshape not in Shape .................... "<<NbProblems->Value(29)<<endl;
- if(NbProblems->Value(30)>0)
- theCommands<<" Bad Orientation .......................... "<<NbProblems->Value(30)<<"\n";
- //cout<<" Bad Orientation .......................... "<<NbProblems->Value(30)<<endl;
- if(NbProblems->Value(31)>0)
- theCommands<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(31)<<"\n";
- //cout<<" Bad Orientation of Subshape .............. "<<NbProblems->Value(31)<<endl;
- if(NbProblems->Value(32)>0)
- theCommands<<" checkshape failure......... .............. "<<NbProblems->Value(32)<<"\n";
- //cout<<" checkshape failure......... .............. "<<NbProblems->Value(32)<<endl;
-
- //cout<<" ------------------------------------------------"<<endl;
- //cout<<"*** Shapes with problems : "<<sl->Length()<<endl;
- //cout<<endl;
+ NCollection_Array1<const char*> aProblems (1,33);
+
+ aProblems.SetValue( BRepCheck_InvalidPointOnCurve, " Invalid Point on Curve ................... ");
+ aProblems.SetValue(BRepCheck_InvalidPointOnCurveOnSurface, " Invalid Point on CurveOnSurface .......... ");
+ aProblems.SetValue(BRepCheck_InvalidPointOnSurface, " Invalid Point on Surface ................. ");
+ aProblems.SetValue(BRepCheck_No3DCurve, " No 3D Curve .............................. ");
+ aProblems.SetValue(BRepCheck_Multiple3DCurve, " Multiple 3D Curve ........................ ");
+ aProblems.SetValue(BRepCheck_Invalid3DCurve, " Invalid 3D Curve ......................... ");
+ aProblems.SetValue(BRepCheck_NoCurveOnSurface, " No Curve on Surface ...................... ");
+ aProblems.SetValue(BRepCheck_InvalidCurveOnSurface, " Invalid Curve on Surface ................. ");
+ aProblems.SetValue(BRepCheck_InvalidCurveOnClosedSurface, " Invalid Curve on Closed Surface ................. ");
+ aProblems.SetValue(BRepCheck_InvalidSameRangeFlag, " Invalid SameRange Flag ................... ");
+ aProblems.SetValue(BRepCheck_InvalidSameParameterFlag, " Invalid SameParameter Flag ............... ");
+ aProblems.SetValue(BRepCheck_InvalidDegeneratedFlag, " Invalid Degenerated Flag ................. ");
+ aProblems.SetValue(BRepCheck_FreeEdge, " Free Edge ................................ ");
+ aProblems.SetValue(BRepCheck_InvalidMultiConnexity, " Invalid Multi Connexity ................... ");
+ aProblems.SetValue(BRepCheck_InvalidRange, " Invalid Range ................... ");
+ aProblems.SetValue(BRepCheck_EmptyWire, " Empty Wire ................... ");
+ aProblems.SetValue(BRepCheck_RedundantEdge, " BRepCheck_RedundantEdge ................... ");
+ aProblems.SetValue(BRepCheck_SelfIntersectingWire, " Self Intersecting Wire ................... ");
+ aProblems.SetValue(BRepCheck_NoSurface, " No Surface ................... ");
+ aProblems.SetValue(BRepCheck_InvalidWire, " Invalid Wire ................... ");
+ aProblems.SetValue(BRepCheck_RedundantWire, " Redundant Wire ................... ");
+ aProblems.SetValue(BRepCheck_IntersectingWires, " Intersecting Wires ................... ");
+ aProblems.SetValue(BRepCheck_InvalidImbricationOfWires, " Invalid Imbrication Of Wires .................. ");
+ aProblems.SetValue(BRepCheck_EmptyShell, " Empty Shell ................... ");
+ aProblems.SetValue(BRepCheck_RedundantFace, " Redundant Face ................... ");
+ aProblems.SetValue(BRepCheck_UnorientableShape, " Unorientable Shape ................... ");
+ aProblems.SetValue(BRepCheck_NotClosed, " Not Closed ................... ");
+ aProblems.SetValue(BRepCheck_NotConnected, " Not Connected ................... ");
+ aProblems.SetValue(BRepCheck_SubshapeNotInShape, " Subshape Not In Shape ................... ");
+ aProblems.SetValue(BRepCheck_BadOrientation, " Bad Orientation ................... ");
+ aProblems.SetValue(BRepCheck_BadOrientationOfSubshape, " Bad Orientation of Subshape .............. ");
+ aProblems.SetValue(BRepCheck_InvalidToleranceValue, " Invalid tolerance value................... ");
+ aProblems.SetValue(BRepCheck_CheckFail, " Checkshape failure....................... ");
+
+ for (Standard_Integer i = (Standard_Integer)BRepCheck_InvalidPointOnCurve; i <= (Standard_Integer)BRepCheck_CheckFail; ++i)
+ {
+ if (NbProblems->Value (i) > 0)
+ theCommands << i << aProblems.Value (i) << "\n";
+ }
+
theCommands<<" ------------------------------------------------"<<"\n";
theCommands<<"*** Shapes with problems : "<<sl->Length()<<"\n";