}
Standard_Boolean Ok;
- TopoDS_Shape S = DBRep::Get(a[1],TopAbs_FACE);
+ TopoDS_Shape S = DBRep::Get(a[1]);
if (S.IsNull()) return 1;
if (n==2) { Ok = BRepLib::BuildCurves3d(S); }
static Standard_Integer nbPoints(const Handle(Geom2d_Curve)& theCurve)
{
- Standard_Integer nbs = 10;
+ Standard_Integer nbs = 20;
if(theCurve->IsKind(STANDARD_TYPE( Geom2d_Line)) )
nbs = 2;
//! Create a domain from a curve
Standard_EXPORT IntRes2d_Domain ComputeDomain (const Adaptor2d_Curve2d& C1, const Standard_Real TolDomain) const;
-
+ //! Set / get minimum number of points in polygon intersection.
+ Standard_EXPORT void SetMinNbSamples (const Standard_Integer theMinNbSamples);
+ Standard_EXPORT Standard_Integer GetMinNbSamples () const;
protected:
//============================================================
Standard_Integer Geom2dInt_Geom2dCurveTool::NbSamples (const Adaptor2d_Curve2d& C,
- const Standard_Real U0,
- const Standard_Real U1)
+ const Standard_Real U0,
+ const Standard_Real U1)
{
GeomAbs_CurveType typC = C.GetType();
Standard_Integer nbs = C.NbSamples();
- if(typC == GeomAbs_BSplineCurve) {
- Standard_Real t=C.LastParameter()-C.FirstParameter();
- Standard_Real t1=U1-U0;
- if(t1<0.0) t1=-t1;
+ if(typC == GeomAbs_BSplineCurve)
+ {
+ Standard_Real t = C.LastParameter() - C.FirstParameter();
+ Standard_Real t1 = U1 - U0;
+ if(t1 < 0.0) t1 = -t1;
nbs = C.NbKnots();
nbs*= C.Degree();
- Standard_Real anb = t1/t * nbs;
+ Standard_Real anb = t1 / t * nbs;
nbs = (Standard_Integer)anb;
- if(nbs < 4) nbs=4;
+
+ Standard_Integer aMinPntNb = Max(C.Degree() + 1, 4);
+ if(nbs < aMinPntNb)
+ nbs = aMinPntNb;
}
else if (typC == GeomAbs_Circle)
{
DEFINE_STANDARD_ALLOC
-
Standard_EXPORT Geom2dInt_TheIntPCurvePCurveOfGInter();
-
+
Standard_EXPORT void Perform (const Adaptor2d_Curve2d& Curve1, const IntRes2d_Domain& Domain1, const Adaptor2d_Curve2d& Curve2, const IntRes2d_Domain& Domain2, const Standard_Real TolConf, const Standard_Real Tol);
Standard_EXPORT void Perform (const Adaptor2d_Curve2d& Curve1, const IntRes2d_Domain& Domain1, const Standard_Real TolConf, const Standard_Real Tol);
-
+ //! Set / get minimum number of points in polygon for intersection.
+ Standard_EXPORT void SetMinNbSamples (const Standard_Integer theMinNbSamples);
+ Standard_EXPORT Standard_Integer GetMinNbSamples () const;
protected:
Standard_EXPORT void Perform (const Adaptor2d_Curve2d& Curve1, const IntRes2d_Domain& Domain1, const Standard_Real TolConf, const Standard_Real Tol, const Standard_Integer NbIter, const Standard_Real DeltaU, const Standard_Real DeltaV);
-
-
-
private:
//! : during prelimanary search for line (case of bad paramerization of Bspline for example).
Standard_EXPORT Standard_Boolean findIntersect (const Adaptor2d_Curve2d& Curve1, const IntRes2d_Domain& Domain1, const Adaptor2d_Curve2d& Curve2, const IntRes2d_Domain& Domain2, const Standard_Real TolConf, const Standard_Real Tol, const Standard_Integer NbIter, const Standard_Real DeltaU, const Standard_Real DeltaV, const Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter& thePoly1, const Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter& thePoly2, const Standard_Boolean isFullRepresentation);
-
IntRes2d_Domain DomainOnCurve1;
IntRes2d_Domain DomainOnCurve2;
+ //! Minimal number of sample points
+ Standard_Integer myMinPntNb;
};
//=======================================================================
TopoDS_Shape HLRAppli_ReflectLines::GetCompoundOf3dEdges(const HLRBRep_TypeOfResultingEdge type,
- const Standard_Boolean visible)
+ const Standard_Boolean visible,
+ const Standard_Boolean In3d)
{
HLRBRep_HLRToShape aHLRToShape( myHLRAlgo );
- TopoDS_Shape theCompound = aHLRToShape.CompoundOfEdges(type, visible, Standard_True);
+ TopoDS_Shape theCompound = aHLRToShape.CompoundOfEdges(type, visible, In3d);
BRepLib::SameParameter(theCompound,Precision::PConfusion(),Standard_False);
TopoDS_Shape HLRAppli_ReflectLines::GetResult()
{
- return GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True);
+ return GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True, Standard_True);
}
//! returns resulting compound of lines
//! of specified type and visibility
- //! represented by edges in 3d
+ //! represented by edges in 3d or 2d
Standard_EXPORT TopoDS_Shape GetCompoundOf3dEdges(const HLRBRep_TypeOfResultingEdge type,
- const Standard_Boolean visible);
+ const Standard_Boolean visible,
+ const Standard_Boolean In3d);
//! Create a domain from a curve
Standard_EXPORT IntRes2d_Domain ComputeDomain (const Standard_Address& C1, const Standard_Real TolDomain) const;
-
+ //! Set / get minimum number of points in polygon intersection.
+ Standard_EXPORT void SetMinNbSamples (const Standard_Integer theMinNbSamples);
+ Standard_EXPORT Standard_Integer GetMinNbSamples () const;
protected:
if (myFEOri == TopAbs_FORWARD ||
myFEOri == TopAbs_REVERSED) {
// Edge from the boundary
- if (!((HLRBRep_EdgeData*)myFEData)->Vertical() && !myFEDouble) {
+ if (!((HLRBRep_EdgeData*)myFEData)->Vertical() && !(myFEDouble && !myFEOutLine)) {
// not a vertical edge and not a double Edge
Standard_Address MinMaxFEdg = ((HLRBRep_EdgeData*)myFEData)->MinMax();
//-- -----------------------------------------------------------------------
#include <HLRBRep_EdgeInterferenceTool.hxx>
#include <HLRBRep_Hider.hxx>
#include <HLRBRep_VertexList.hxx>
+#include <TColStd_SequenceOfReal.hxx>
#include <Standard_ErrorHandler.hxx>
//=======================================================================
Standard_Integer level = 0;
if (!myDS->SimpleHidingFace()) // Level at Start
level = myDS->HidingStartLevel(E,ed,ILHidden); // **************
- HLRAlgo_ListIteratorOfInterferenceList It(ILHidden);
-
+
+ HLRAlgo_ListIteratorOfInterferenceList It(ILHidden);
+ if (myDS->SimpleHidingFace()) //remove excess interferences
+ {
+ TColStd_SequenceOfReal ToRemove;
+ TopAbs_Orientation PrevTrans = TopAbs_EXTERNAL;
+ Standard_Real PrevParam = 0.;
+ for (; It.More(); It.Next())
+ {
+ const HLRAlgo_Interference& Int = It.Value();
+ TopAbs_Orientation aTrans = Int.Transition();
+ if (aTrans == PrevTrans)
+ {
+ if (aTrans == TopAbs_FORWARD)
+ {
+ ToRemove.Append(Int.Intersection().Parameter());
+#ifdef OCCT_DEBUG
+ cout<<"Two adjacent interferences with transition FORWARD"<<endl;
+#endif
+ }
+ else if (aTrans == TopAbs_REVERSED)
+ {
+ ToRemove.Append(PrevParam);
+#ifdef OCCT_DEBUG
+ cout<<"Two adjacent interferences with transition REVERSED"<<endl;
+#endif
+ }
+ }
+ PrevTrans = aTrans;
+ PrevParam = Int.Intersection().Parameter();
+ }
+ It.Initialize(ILHidden);
+ while (It.More())
+ {
+ Standard_Real aParam = It.Value().Intersection().Parameter();
+ Standard_Boolean found = Standard_False;
+ for (Standard_Integer i = 1; i <= ToRemove.Length(); i++)
+ if (aParam == ToRemove(i))
+ {
+ found = Standard_True;
+ ILHidden.Remove(It);
+ ToRemove.Remove(i);
+ break;
+ }
+ if (!found)
+ It.Next();
+ }
+ } //remove excess interferences
+
+ It.Initialize(ILHidden);
while(It.More()) { // suppress multi-inside Intersections
// ***********************************
case TopAbs_FORWARD :
{
Standard_Integer decal = Int.Intersection().Level();
- if (level > 0) ILHidden.Remove(It);
- else It.Next();
+ if (level > 0)
+ ILHidden.Remove(It);
+ else
+ It.Next();
level = level + decal;
}
break;
case TopAbs_REVERSED :
{
level = level - Int.Intersection().Level();
- if (level > 0) ILHidden.Remove(It);
- else It.Next();
+ if (level > 0)
+ ILHidden.Remove(It);
+ else
+ It.Next();
}
break;
case TopAbs_EXTERNAL :
=NbInters=NbIntersVides=NbInters1Segment=NbInters1Point=NbIntersNPoints
= NbIntersNSegments=NbIntersPointEtSegment=NbIntersCSVides=0;
#endif
+
+ // Set minimal number of samples in case of HLR polygonal intersector.
+ const Standard_Integer aMinNbHLRSamples = 4;
+ myIntersector.SetMinNbSamples(aMinNbHLRSamples);
}
//=======================================================================
Standard_EXPORT void Perform (const Standard_Address& Curve1, const IntRes2d_Domain& Domain1, const Standard_Real TolConf, const Standard_Real Tol);
-
-
+ //! Set / get minimum number of points in polygon for intersection.
+ Standard_EXPORT void SetMinNbSamples (const Standard_Integer theMinNbSamples);
+ Standard_EXPORT Standard_Integer GetMinNbSamples () const;
protected:
IntRes2d_Domain DomainOnCurve1;
IntRes2d_Domain DomainOnCurve2;
-
+ //! Minimal number of sample points
+ Standard_Integer myMinPntNb;
};
BRep_Builder BB;
BB.MakeCompound(Result);
- TopoDS_Shape SharpEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Sharp, Standard_True);
+ TopoDS_Shape SharpEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Sharp, Standard_True, Standard_True);
BB.Add(Result, SharpEdges);
- TopoDS_Shape OutLines = Reflector.GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True);
+ TopoDS_Shape OutLines = Reflector.GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True, Standard_True);
BB.Add(Result, OutLines);
- TopoDS_Shape SmoothEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Rg1Line, Standard_True);
+ TopoDS_Shape SmoothEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Rg1Line, Standard_True, Standard_True);
BB.Add(Result, SmoothEdges);
DBRep::Set(a[1], Result);
}
}
-
-
-
-
-
-
-
-
-
-
-
+//=======================================================================
+//function : SetMinNbSamples
+//purpose :
+//=======================================================================
+void IntCurve_IntCurveCurveGen::SetMinNbSamples(const Standard_Integer theMinNbSamples)
+{
+ intcurvcurv.SetMinNbSamples(theMinNbSamples);
+}
-//----------------------------------------------------------------------
-//-- InterComposite ( C1 , Num1 , C2 , Num2 , Recursion_sur_C2 )
-//--
-//-- Boolean Arret = False
-//--
-//-- Si C2.Type() == Composite Max2 = C2.GetIntervals() Sinon Max2=2
-//--
-//-- Si C1.Type() == Composite Max1 = C1.GetIntervals() Sinon Max1=2
-//--
-//-- Si Num2 > Max2 RETURN;
-//--
-//-- Sinon
-//--
-//-- Si Recursion_sur_C2 == True
-//--
-//-- for i = Num1 --> Max1
-//--
-//-- Num1 = i
-//--
-//-- InterComposite(C2,Num2,C1,Num1,False);
-//--
-//-- Si Num2 < Max2
-//--
-//-- Num2++
-//--
-//-- Num1 = 1
-//--
-//-- InterComposite(C1,Num1,C2,Num2,True);
-//--
-//-- Sinon
-//--
-//-- *** INTERSECTION ENTRE C2[num2] et C1[Num1] ***
-//--
-//-- Fin
-//--
-//--
-//-- (( Appel avec C1 , 1 , C2 , 1 , True))
-//--
-//-- Exemple : C1 = ABCD C2= 12
-//--
-//-- donne : A,1 B,1 C,1 D,1 A,2 B,2 C,2 D,2
-//----------------------------------------------------------------------
+//=======================================================================
+//function : GetMinNbSamples
+//purpose :
+//=======================================================================
+Standard_Integer IntCurve_IntCurveCurveGen::GetMinNbSamples() const
+{
+ return intcurvcurv.GetMinNbSamples();
+}
//======================================================================
-// Modified by skv - Tue Mar 1 14:22:09 2005 OCC8169 Begin
-// #define NBITER_MAX_POLYGON 3
#define NBITER_MAX_POLYGON 10
-// Modified by skv - Tue Mar 1 14:22:09 2005 OCC8169 End
#define TOL_CONF_MINI 0.0000000001
#define TOL_MINI 0.0000000001
//======================================================================
-IntCurve_IntPolyPolyGen::IntCurve_IntPolyPolyGen(void) {
+IntCurve_IntPolyPolyGen::IntCurve_IntPolyPolyGen()
+{
+ const Standard_Integer aMinPntNb = 20; // Minimum number of samples.
+ myMinPntNb = aMinPntNb;
done = Standard_False;
}
//======================================================================
return(Standard_False);
}
-
-//======================================================================
-void IntCurve_IntPolyPolyGen::Perform( const TheCurve& C1
- ,const IntRes2d_Domain& D1
- ,const TheCurve& C2
- ,const IntRes2d_Domain& D2
- ,const Standard_Real TolConf
- ,const Standard_Real Tol
- ,const Standard_Integer NbIter
- ,const Standard_Real DeltaU
- ,const Standard_Real DeltaV) {
-
+//=======================================================================
+//function : Perform
+//purpose : Base method to perform polyline / polyline intersection for
+// pair of curves.
+//=======================================================================
+void IntCurve_IntPolyPolyGen::Perform(const TheCurve& C1,
+ const IntRes2d_Domain& D1,
+ const TheCurve& C2,
+ const IntRes2d_Domain& D2,
+ const Standard_Real TolConf,
+ const Standard_Real Tol,
+ const Standard_Integer NbIter,
+ const Standard_Real DeltaU,
+ const Standard_Real DeltaV)
+{
Standard_Integer nbsamplesOnC1,nbsamplesOnC2;
done = Standard_False;
if(NbIter>NBITER_MAX_POLYGON) return;
- nbsamplesOnC1 = TheCurveTool::NbSamples(C1,D1.FirstParameter(),D1.LastParameter());
-
- if (NbIter == 0) // first time
- {
- if (nbsamplesOnC1 < 20)
- nbsamplesOnC1 = 20;
- }
- else // NbIter > 0
- {
- nbsamplesOnC1=(5*(nbsamplesOnC1*NbIter))/4;
- }
- /////////////////////////////////////////////
-
+ // Number of samples tunning.
+ nbsamplesOnC1 = TheCurveTool::NbSamples(C1,D1.FirstParameter(),D1.LastParameter());
nbsamplesOnC2 = TheCurveTool::NbSamples(C2,D2.FirstParameter(),D2.LastParameter());
-
- if (NbIter == 0) // first time
+
+ if (NbIter == 0)
{
- if (nbsamplesOnC2 < 20)
- nbsamplesOnC2 = 20;
+ // Minimal number of points.
+ nbsamplesOnC1 = Max(nbsamplesOnC1, myMinPntNb);
+ nbsamplesOnC2 = Max(nbsamplesOnC2, myMinPntNb);
}
- else // NbIter > 0
+ else
{
- nbsamplesOnC2=(5*(nbsamplesOnC2*NbIter))/4;
+ // Increase number of samples in second and next iterations.
+ nbsamplesOnC1=(5 * (nbsamplesOnC1 * NbIter)) / 4;
+ nbsamplesOnC2=(5 * (nbsamplesOnC2 * NbIter)) / 4;
}
- /////////////////////////////////////////////
-
NCollection_Handle<IntCurve_ThePolygon2d>
aPoly1 = new IntCurve_ThePolygon2d(C1,nbsamplesOnC1,D1,Tol),
aPoly2 = new IntCurve_ThePolygon2d(C2,nbsamplesOnC2,D2,Tol);
}
}
+
+//=======================================================================
+//function : GetMinNbPoints
+//purpose :
+//=======================================================================
+Standard_Integer IntCurve_IntPolyPolyGen::GetMinNbSamples() const
+{
+ return myMinPntNb;
+}
+
+//=======================================================================
+//function : SetMinNbPoints
+//purpose :
+//=======================================================================
+void IntCurve_IntPolyPolyGen::SetMinNbSamples(const Standard_Integer theMinNbSamples)
+{
+ myMinPntNb = theMinNbSamples;
+}
#include <XCAFDoc_DocumentTool.hxx>
#include <XCAFDoc_GeomTolerance.hxx>
#include <XCAFDoc_ShapeTool.hxx>
+
+#include <HLRAppli_ReflectLines.hxx>
+
//=======================================================================
//function : SurfaceGenOCC26675_1
//purpose : Generates a surface for intersect (in corresponding
return 0;
}
+//=======================================================================
+//function : OCC27341
+//purpose : check exact HLR algorighm's work
+//=======================================================================
+static Standard_Integer OCC27341 (Draw_Interpretor& , Standard_Integer n, const char** a)
+{
+ if (n != 4)
+ {
+ cout << "Use: OCC27341 res shape axo/top/bottom/front/back/left/right" << endl;
+ return 1;
+ }
+
+ TopoDS_Shape aShape = DBRep::Get(a[2]);
+ if (aShape.IsNull())
+ return 1;
+
+ gp_Pnt anOrigin(0.,0.,0.);
+ gp_Dir aNormal(0.57735026918962573, -0.57735026918962573, 0.57735026918962573);
+ gp_Ax2 anAxes(anOrigin, aNormal);
+ gp_Dir aDX = anAxes.XDirection();
+
+ HLRAppli_ReflectLines Reflector(aShape);
+
+ if (strcmp(a[3],"axo") == 0)
+ {
+ aNormal.SetCoord(0.57735026918962573, -0.57735026918962573, 0.57735026918962573);
+ aDX.SetCoord(-0.40824829046386307, 0.40824829046386307, 0.81649658092772615);
+ }
+ else if (strcmp(a[3],"top") == 0)
+ {
+ aNormal.SetCoord(0,0,1);
+ aDX.SetCoord(0,1,0);
+ }
+ else if (strcmp(a[3],"bottom") == 0)
+ {
+ aNormal.SetCoord(0,0,-1);
+ aDX.SetCoord(0,-1,0);
+ }
+ else if (strcmp(a[3],"front") == 0)
+ {
+ aNormal.SetCoord(0,-1,0);
+ aDX.SetCoord(0,0,1);
+ }
+ else if (strcmp(a[3],"back") == 0)
+ {
+ aNormal.SetCoord(0,1,0);
+ aDX.SetCoord(0,0,1);
+ }
+ else if (strcmp(a[3],"left") == 0)
+ {
+ aNormal.SetCoord(-1,0,0);
+ aDX.SetCoord(0,0,1);
+ }
+ else if (strcmp(a[3],"right") == 0)
+ {
+ aNormal.SetCoord(1,0,0);
+ aDX.SetCoord(0,0,1);
+ }
+
+ Reflector.SetAxes(aNormal.X(), aNormal.Y(), aNormal.Z(),
+ anOrigin.X(), anOrigin.Y(), anOrigin.Z(),
+ aDX.X(), aDX.Y(), aDX.Z());
+
+ Reflector.Perform();
+
+ TopoDS_Compound Result;
+ BRep_Builder BB;
+ BB.MakeCompound(Result);
+
+ TopoDS_Shape SharpEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Sharp, Standard_True, Standard_False);
+ if (!SharpEdges.IsNull())
+ BB.Add(Result, SharpEdges);
+ TopoDS_Shape OutLines = Reflector.GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True, Standard_False);
+ if (!OutLines.IsNull())
+ BB.Add(Result, OutLines);
+ TopoDS_Shape SmoothEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Rg1Line, Standard_True, Standard_False);
+ if (!SmoothEdges.IsNull())
+ BB.Add(Result, SmoothEdges);
+
+ DBRep::Set(a[1], Result);
+
+ return 0;
+}
+
//=======================================================================
//function : OCC27466
//purpose :
theCommands.Add("OCC27235", "OCC27235", __FILE__, OCC27235, group);
theCommands.Add("OCC26930", "OCC26930", __FILE__, OCC26930, group);
theCommands.Add("OCC27466", "OCC27466", __FILE__, OCC27466, group);
+ theCommands.Add("OCC27341",
+ "OCC27341 res shape axo/top/bottom/front/back/left/right",
+ __FILE__, OCC27341, group);
return;
}
# Wrong result obtained by General Fuse operator.
###############################################
puts "TODO #OCC26816 ALL: Error : Result done by General Fuse operator is WRONG because number of"
-puts "TODO #OCC26816 ALL: Faulty shapes in variables faulty_1 to faulty_"
restore [locate_data_file bug25715_p02c3s1.brep] b1
restore [locate_data_file bug25838_p02c3s2.brep] b2
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "axo"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 319.505
+checknbshapes result -vertex 16 -edge 8
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "top"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 291.117
+checknbshapes result -vertex 18 -edge 9
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "bottom"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 334.113
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checknbshapes result -vertex 24 -edge 12
+} else {
+ checknbshapes result -vertex 26 -edge 13
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "front"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 361.806
+checknbshapes result -vertex 12 -edge 6
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "back"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 430.307
+checknbshapes result -vertex 20 -edge 10
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "left"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 278.784
+checknbshapes result -vertex 14 -edge 7
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_save.brep] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 337.535
+checknbshapes result -vertex 20 -edge 10
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "axo"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 6.34998
+checknbshapes result -vertex 73 -edge 37
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "top"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 8.05281
+checknbshapes result -vertex 126 -edge 63
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "bottom"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 8.40409
+checknbshapes result -vertex 90 -edge 45
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "front"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 7.39488
+checknbshapes result -vertex 46 -edge 23
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "back"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 9.47163
+checknbshapes result -vertex 94 -edge 47
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "left"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 7.42565
+checknbshapes result -vertex 64 -edge 32
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload QAcommands
+
+restore [locate_data_file bug27341_hlrsave.brep] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 8.92009
+checknbshapes result -vertex 74 -edge 37
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_15.3020_16B1_B3=90.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1188.11
+checknbshapes result -vertex 324 -edge 163
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_211808_PCLNL12K8-15x32.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 425.969
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checknbshapes result -vertex 198 -edge 99
+} else {
+ checknbshapes result -vertex 200 -edge 100
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_570-DWLNL-40-08-L_131LANG_16VERSATZ_DIN.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 3299.23
+checknbshapes result -vertex 648 -edge 324
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_82-01_Solid_End_Mill_Radius_with_Shrink_Fit_and_extension_HeavyModel.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 3016.59
+checknbshapes result -vertex 1388 -edge 696
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_ABS_Adapter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1760.66
+checknbshapes result -vertex 508 -edge 254
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_ABS_Grundhalter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 2893.98
+checknbshapes result -vertex 725 -edge 363
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_AIF_Grundhalter_GR1_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checkprops result -l 2377.14
+ checknbshapes result -vertex 1008 -edge 507
+} else {
+ checkprops result -l 2345.73
+ checknbshapes result -vertex 1007 -edge 506
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_AWN_Adapter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1260.37
+checknbshapes result -vertex 527 -edge 264
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Adapter_MKG_SWS_CGS_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 2040.68
+checknbshapes result -vertex 344 -edge 172
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Adapter_VDI_MKG_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 808.299
+checknbshapes result -vertex 578 -edge 289
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Adapter_VLS_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1124.09
+checknbshapes result -vertex 354 -edge 177
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Adapter_Zylinder_2_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 520.703
+checknbshapes result -vertex 310 -edge 155
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Assembly_ABS_1_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 9662.5
+checknbshapes result -vertex 4531 -edge 2272
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Assembly_BILZ_WFL2_1_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 5910.01
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checknbshapes result -vertex 1461 -edge 731
+} else {
+ checknbshapes result -vertex 1460 -edge 730
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Assembly_GMS_Kurz_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 5343.53
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checknbshapes result -vertex 1813 -edge 909
+} else {
+ checknbshapes result -vertex 1812 -edge 908
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_CCS_Adapter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1764.64
+checknbshapes result -vertex 353 -edge 177
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_CCT_PMK_32_L_o_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 2647.04
+checknbshapes result -vertex 614 -edge 307
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_CDI_Grundhalter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 2429.7
+checknbshapes result -vertex 387 -edge 194
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_CKB_Adapter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 792.344
+checknbshapes result -vertex 410 -edge 205
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Drehkopf_HSK_Gewinde_R_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1751.95
+checknbshapes result -vertex 867 -edge 434
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Einsatz_BILZ_SEK_BFA_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 949.574
+checknbshapes result -vertex 220 -edge 110
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_HEE_Grundhalter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 6584.94
+
+# 0027526: Excess micro-edge in HLR visualization of a torus
+if { [regexp {Windows} [dversion]] } {
+ checknbshapes result -vertex 819 -edge 410
+} else {
+ checknbshapes result -vertex 818 -edge 409
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_KMM_Adapter_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 838.306
+checknbshapes result -vertex 478 -edge 239
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_MZX_01_1_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 220.507
+checknbshapes result -vertex 110 -edge 55
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_Rundrohrverteiler.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 6115.27
+checknbshapes result -vertex 206 -edge 103
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_SKJ_07_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 565.837
+checknbshapes result -vertex 324 -edge 162
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_conboom.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 23600.7
+checknbshapes result -vertex 174 -edge 87
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_rhombisch_Form_V_IC_476_L_CAD.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 47.1886
+checknbshapes result -vertex 70 -edge 35
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "TODO OCC27532 ALL: Error on Record"
+
+puts "============"
+puts "OCC27341"
+puts "============"
+puts ""
+######################################################
+# Incorrect exact HLR results
+######################################################
+
+pload XDE
+pload QAcommands
+
+testreadstep [locate_data_file bug27341_stp_ML_MN5260-18-K.stp] a
+
+set viewname "right"
+
+smallview
+top
+clear
+
+OCC27341 result a ${viewname}
+build3d result
+
+fit
+
+checkprops result -l 1147.49
+checknbshapes result -vertex 298 -edge 149
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
set ref_data {
DATA : Faulties = 0 ( 2 ) Warnings = 0 ( 0 ) Summary = 0 ( 2 )
TPSTAT : Faulties = 3 ( 59 ) Warnings = 2203 ( 4655 ) Summary = 2206 ( 4714 )
-CHECKSHAPE : Wires = 7 ( 18 ) Faces = 7 ( 13 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
-NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3350 ( 2837 ) Summary = 45925 ( 39210 )
-STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3350 ( 3349 ) FreeWire = 6 ( 6 ) FreeEdge = 67 ( 67 ) SharedEdge = 19603 ( 16778 )
+CHECKSHAPE : Wires = 8 ( 18 ) Faces = 7 ( 13 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
+NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3350 ( 2837 ) Summary = 45945 ( 39211 )
+STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3350 ( 3349 ) FreeWire = 6 ( 6 ) FreeEdge = 67 ( 67 ) SharedEdge = 19616 ( 16778 )
TOLERANCE : MaxTol = 4.854604894 ( 5.769095076 ) AvgTol = 0.01628658326 ( 0.01747356296 )
-LABELS : N0Labels = 11 ( 11 ) N1Labels = 2891 ( 6329 ) N2Labels = 0 ( 0 ) TotalLabels = 2902 ( 6340 ) NameLabels = 2900 ( 5879 ) ColorLabels = 2891 ( 6329 ) LayerLabels = 2411 ( 5259 )
+LABELS : N0Labels = 11 ( 11 ) N1Labels = 2891 ( 6329 ) N2Labels = 0 ( 0 ) TotalLabels = 2902 ( 6340 ) NameLabels = 2900 ( 5879 ) ColorLabels = 2891 ( 6329 ) LayerLabels = 2411 ( 5260 )
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
NCOLORS : NColors = 4 ( 4 )
COLORS : Colors = BLACK BLUE1 RED YELLOW ( BLACK BLUE1 RED YELLOW )