1. For the support of the new configurations of the input shapes for the 3D offset algorithm
(shapes containing the faces with holes, which are growing during offset operation and
sometimes (depending on the offset value) even kill the faces themselves) the new function
*FindFacesInsideHoleWires* has been implemented. This new function looks for the splits of
the offset face located inside the new hole wire built from offset edges of the edges of the
hole wires of the original face. All found splits are simply removed.
2. Test cases for the issue.
const TopAbs_ShapeEnum theSSType,
TopoDS_Shape& theResult);
-static
- Standard_Boolean CheckNormals(const TopoDS_Face& theFIm,
- const TopoDS_Face& theFOr);
-
static
void UpdateInitOffset(BRepAlgo_Image& myInitOffset,
BRepAlgo_Image& myImageOffset,
TopTools_ListIteratorOfListOfShape aItLF(aLFOr);
for (; aItLF.More(); aItLF.Next()) {
const TopoDS_Face& aFOr = TopoDS::Face(aItLF.Value());
- if (CheckNormals(aF, aFOr)) {
+ if (BRepOffset_Tool::CheckPlanesNormals(aF, aFOr)) {
aLF3.Append(aF);
break;
}
return Standard_True;
}
-//=======================================================================
-//function : CheckNormals
-//purpose : Comparing normal directions of the faces
-//=======================================================================
-Standard_Boolean CheckNormals(const TopoDS_Face& theFIm,
- const TopoDS_Face& theFOr)
-{
-
- Standard_Real aUMin, aUMax, aVMin, aVMax, aU, aV, anAngle;
- gp_Pnt aP;
- gp_Vec aVecU, aVecV, aVNIm, aVNOr;
- Standard_Boolean bIsCollinear;
- //
- BRepAdaptor_Surface aSFIm(theFIm), aSFOr(theFOr);
- //
- aUMin = aSFIm.FirstUParameter();
- aUMax = aSFIm.LastUParameter();
- aVMin = aSFIm.FirstVParameter();
- aVMax = aSFIm.LastVParameter();
- //
- aU = (aUMin + aUMax) * 0.5;
- if (Precision::IsInfinite(aUMin) &&
- Precision::IsInfinite(aUMax)) {
- aU = 0.;
- }
- else if (Precision::IsInfinite(aUMin) &&
- !Precision::IsInfinite(aUMax)) {
- aU = aUMax;
- }
- else if (!Precision::IsInfinite(aUMin) &&
- Precision::IsInfinite(aUMax)) {
- aU = aUMin;
- }
- //
- aV = (aVMin + aVMax) * 0.5;
- if (Precision::IsInfinite(aVMin) &&
- Precision::IsInfinite(aVMax)) {
- aV = 0.;
- }
- else if (Precision::IsInfinite(aVMin) &&
- !Precision::IsInfinite(aVMax)) {
- aV = aVMax;
- }
- else if (!Precision::IsInfinite(aVMin) &&
- Precision::IsInfinite(aVMax)) {
- aV = aVMin;
- }
- //
- aSFIm.D1(aU, aV, aP, aVecU, aVecV);
- aVNIm = aVecU.Crossed(aVecV);
- if (theFIm.Orientation() == TopAbs_REVERSED) {
- aVNIm.Reverse();
- }
- //
- aSFOr.D1(aU, aV, aP, aVecU, aVecV);
- aVNOr = aVecU.Crossed(aVecV);
- if (theFOr.Orientation() == TopAbs_REVERSED) {
- aVNOr.Reverse();
- }
- //
- anAngle = aVNIm.Angle(aVNOr);
- bIsCollinear = (anAngle < Precision::Confusion());
- return bIsCollinear;
-}
-
//=======================================================================
//function : IsPlanar
//purpose : Checks if all the faces of the shape are planes
TopTools_IndexedDataMapOfShapeListOfShape& theInvFaces,
TopTools_DataMapOfShapeShape& theArtInvFaces,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopoDS_Shape& theSolids,
TopTools_DataMapOfShapeListOfShape& theSSInterfs);
void BuildSplitsOfInvFaces(const TopTools_IndexedDataMapOfShapeListOfShape& theFToRebuild,
const TopTools_MapOfShape& theModifiedEdges,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopTools_DataMapOfShapeListOfShape& theEdgesOrigins,
TopTools_DataMapOfShapeShape& theFacesOrigins,
TopTools_DataMapOfShapeListOfShape& theOEImages,
TopTools_DataMapOfShapeListOfShape& theDMFLNE,
TopTools_DataMapOfShapeListOfShape& theDMFLIE,
TopTools_DataMapOfShapeListOfShape& theDMFLVIE,
+ TopTools_DataMapOfShapeListOfShape& theDMEOrLEIm,
TopTools_MapOfShape& theMEInverted,
TopTools_MapOfShape& theEdgesInvalidByVertex);
const TopTools_ListOfShape& theLEValInverted,
const TopTools_MapOfShape& theMEInverted,
const TopTools_MapOfShape& theEdgesInvalidByVertex,
+ const TopTools_MapOfShape& theMFHoles,
+ TopTools_IndexedMapOfShape& theMFInvInHole,
TopTools_ListOfShape& theInvFaces);
+static
+ void FindFacesInsideHoleWires(const TopoDS_Face& theFOrigin,
+ const TopoDS_Face& theFOffset,
+ const TopTools_ListOfShape& theLFImages,
+ const TopTools_MapOfShape& theInvertedEdges,
+ const TopTools_DataMapOfShapeListOfShape& theDMEOrLEIm,
+ TopTools_MapOfShape& theMFHoles,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
+ Handle(IntTools_Context)& theContext);
+
static
gp_Vec GetAverageTangent(const TopoDS_Shape& theS,
const Standard_Integer theNbP);
const TopTools_DataMapOfShapeShape& theArtInvFaces,
const TopTools_IndexedMapOfShape& theInvEdges,
const TopTools_IndexedMapOfShape& theMFToCheckInt,
+ const TopTools_IndexedMapOfShape& theMFInvInHole,
+ const TopoDS_Shape& theFHoles,
TopTools_DataMapOfShapeListOfShape& theSSInterfs,
TopTools_IndexedMapOfShape& theMERemoved,
TopTools_IndexedMapOfShape& theMEInside,
const TopoDS_Shape& theSolids,
const TopTools_DataMapOfShapeListOfShape& theSSInterfs,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopTools_DataMapOfShapeListOfShape& theEdgesOrigins,
TopTools_DataMapOfShapeShape& theFacesOrigins,
TopTools_DataMapOfShapeListOfShape& theOEImages,
// keep information of already invalid faces to avoid
// infinite rebuilding of the same invalid face
TopTools_DataMapOfShapeInteger anAlreadyInvFaces;
+ // images of the hole faces of the original faces
+ TopTools_DataMapOfShapeListOfShape aDMFNewHoles;
// solid build from the new splits
TopoDS_Shape aSolids;
// now we can split the faces
BuildSplitsOfFaces(theLF, aNewEdges, theEdgesOrigins, theAsDes, theFacesOrigins,
anOEImages, anOEOrigins, aLastInvEdges, anEdgesToAvoid, anInvEdges, aValidEdges,
- anInvertedEdges, anAlreadyInvFaces, anInvFaces, anArtInvFaces, aFImages, aSolids, aSSInterfs);
+ anInvertedEdges, anAlreadyInvFaces, anInvFaces, anArtInvFaces, aFImages,
+ aDMFNewHoles, aSolids, aSSInterfs);
//
// Find faces to rebuild
if (anInvFaces.Extent()) {
if (aFToRebuild.Extent()) {
// vertices to avoid
TopTools_MapOfShape aVAEmpty;
- RebuildFaces(aFToRebuild, aFSelfRebAvoid, aSolids, aSSInterfs, aFImages, theEdgesOrigins, theFacesOrigins,
- anOEImages, anOEOrigins, aLastInvEdges, anEdgesToAvoid, anInvEdges, aValidEdges, anInvertedEdges,
- anAlreadyInvFaces, anInvFaces, anArtInvFaces, aVAEmpty, theETrimEInf, theAsDes);
+ RebuildFaces(aFToRebuild, aFSelfRebAvoid, aSolids, aSSInterfs, aFImages, aDMFNewHoles,
+ theEdgesOrigins, theFacesOrigins, anOEImages, anOEOrigins, aLastInvEdges,
+ anEdgesToAvoid, anInvEdges, aValidEdges, anInvertedEdges, anAlreadyInvFaces,
+ anInvFaces, anArtInvFaces, aVAEmpty, theETrimEInf, theAsDes);
}
}
// Fill history for faces and edges
void BuildSplitsOfInvFaces(const TopTools_IndexedDataMapOfShapeListOfShape& theFToRebuild,
const TopTools_MapOfShape& theModifiedEdges,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopTools_DataMapOfShapeListOfShape& theEdgesOrigins,
TopTools_DataMapOfShapeShape& theFacesOrigins,
TopTools_DataMapOfShapeListOfShape& theOEImages,
//
BuildSplitsOfFaces(aLF, theModifiedEdges, theEdgesOrigins, theAsDes, theFacesOrigins,
theOEImages, theOEOrigins, theLastInvEdges, theEdgesToAvoid, anInvEdges, theValidEdges,
- anInvertedEdges, theAlreadyInvFaces, anInvFaces, anArtInvFaces, theFImages, aSolids, aSSInterfs);
+ anInvertedEdges, theAlreadyInvFaces, anInvFaces, anArtInvFaces, theFImages,
+ theDMFNewHoles, aSolids, aSSInterfs);
//
if (anInvFaces.Extent()) {
TopTools_IndexedDataMapOfShapeListOfShape aFToRebuild;
FindFacesToRebuild(theFImages, anInvEdges, anInvFaces, aSSInterfs, aFToRebuild, aFSelfRebAvoid);
//
if (aFToRebuild.Extent()) {
- RebuildFaces(aFToRebuild, aFSelfRebAvoid, aSolids, aSSInterfs, theFImages, theEdgesOrigins, theFacesOrigins,
- theOEImages, theOEOrigins, theLastInvEdges, theEdgesToAvoid, anInvEdges, theValidEdges, anInvertedEdges,
- theAlreadyInvFaces, anInvFaces, anArtInvFaces, theVertsToAvoid, theETrimEInf, theAsDes);
+ RebuildFaces(aFToRebuild, aFSelfRebAvoid, aSolids, aSSInterfs, theFImages, theDMFNewHoles,
+ theEdgesOrigins, theFacesOrigins, theOEImages, theOEOrigins, theLastInvEdges,
+ theEdgesToAvoid, anInvEdges, theValidEdges, anInvertedEdges, theAlreadyInvFaces,
+ anInvFaces, anArtInvFaces, theVertsToAvoid, theETrimEInf, theAsDes);
}
}
}
TopTools_IndexedDataMapOfShapeListOfShape& theInvFaces,
TopTools_DataMapOfShapeShape& theArtInvFaces,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopoDS_Shape& theSolids,
TopTools_DataMapOfShapeListOfShape& theSSInterfs)
{
TopTools_IndexedMapOfShape aMFToCheckInt;
// map of edges created from vertex and marked as invalid
TopTools_MapOfShape aMEdgeInvalidByVertex;
+ // connection map from old edges to new ones
+ TopTools_DataMapOfShapeListOfShape aDMEOrLEIm;
//
Handle(IntTools_Context) aCtx = new IntTools_Context;
// build splits of faces
// find invalid edges
FindInvalidEdges(aF, aLFImages, theEdgesOrigins, theFacesOrigins, theOEImages,
theOEOrigins, theInvEdges, theValidEdges, aDMFLVE, aDMFLNE, aDMFLIE,
- aDMFLVIE, theInvertedEdges, aMEdgeInvalidByVertex);
+ aDMFLVIE, aDMEOrLEIm, theInvertedEdges, aMEdgeInvalidByVertex);
//
// save the new splits
if (!pLFIm) {
#endif
//
TopTools_ListOfShape anEmptyList;
+ // invalid faces inside the holes
+ TopTools_IndexedMapOfShape aMFInvInHole;
+ // all hole faces
+ TopoDS_Compound aFHoles;
+ aBB.MakeCompound(aFHoles);
// find invalid faces
// considering faces containing only invalid edges as invalid
aItLF.Initialize(aLFDone);
for (; aItLF.More(); aItLF.Next()) {
- const TopoDS_Shape& aF = aItLF.Value();
+ const TopoDS_Face& aF = TopoDS::Face(aItLF.Value());
TopTools_ListOfShape& aLFImages = theFImages.ChangeFromKey(aF);
//
TopTools_ListOfShape aLFInv;
pLIVE = &anEmptyList;
}
//
+ // find faces inside holes wires
+ TopTools_MapOfShape aMFHoles;
+ const TopoDS_Face& aFOr = TopoDS::Face(theFacesOrigins.Find(aF));
+ FindFacesInsideHoleWires(aFOr, aF, aLFImages, theInvertedEdges,
+ aDMEOrLEIm, aMFHoles, theDMFNewHoles, aCtx);
+ //
+ TopTools_MapIteratorOfMapOfShape aItMH(aMFHoles);
+ for (; aItMH.More(); aItMH.Next()) {
+ aBB.Add(aFHoles, aItMH.Value());
+ }
+ //
+ // find invalid faces
FindInvalidFaces(aLFImages, theInvEdges, theValidEdges, aDMFLVE, aDMFLIE,
- *pLNE, *pLIVE, theInvertedEdges, aMEdgeInvalidByVertex, aLFInv);
+ *pLNE, *pLIVE, theInvertedEdges, aMEdgeInvalidByVertex,
+ aMFHoles, aMFInvInHole, aLFInv);
}
//
if (aLFInv.Extent()) {
// remove inside faces
TopTools_IndexedMapOfShape aMEInside;
RemoveInsideFaces(theFImages, theInvFaces, theArtInvFaces, theInvEdges,
- aMFToCheckInt, theSSInterfs, aMERemoved, aMEInside, theSolids);
+ aMFToCheckInt, aMFInvInHole, aFHoles, theSSInterfs,
+ aMERemoved, aMEInside, theSolids);
//
// make compound of valid splits
TopoDS_Compound aCFIm;
TopTools_DataMapOfShapeListOfShape& theDMFLNE,
TopTools_DataMapOfShapeListOfShape& theDMFLIE,
TopTools_DataMapOfShapeListOfShape& theDMFLVIE,
+ TopTools_DataMapOfShapeListOfShape& theDMEOrLEIm,
TopTools_MapOfShape& theMEInverted,
TopTools_MapOfShape& theEdgesInvalidByVertex)
{
// The edges created from vertices, i.e. as intersection between two faces connected only
// by VERTEX, will also be checked on validity. For these edges the correct orientation will
// be defined by the edges on the original face adjacent to the connection vertex
- //
+
+ // original face
const TopoDS_Face& aFOr = *(TopoDS_Face*)&theFacesOrigins.Find(theF);
// invalid edges
TopTools_IndexedMapOfShape aMEInv;
}
else {
FindShape(aSOr, aFOr, aEOrF);
+ //
+ TopTools_ListOfShape *pLEIm = theDMEOrLEIm.ChangeSeek(aSOr);
+ if (!pLEIm) {
+ pLEIm = theDMEOrLEIm.Bound(aSOr, TopTools_ListOfShape());
+ }
+ AppendToList(*pLEIm, aEIm);
}
//
if (aEOrF.IsNull()) {
const TopTools_ListOfShape& theLEValInverted,
const TopTools_MapOfShape& theMEInverted,
const TopTools_MapOfShape& theEdgesInvalidByVertex,
+ const TopTools_MapOfShape& theMFHoles,
+ TopTools_IndexedMapOfShape& theMFInvInHole,
TopTools_ListOfShape& theInvFaces)
{
// The face should be considered as invalid in the following cases:
!(bHasValid || bAllValid) &&
!(bAllInvNeutral && (aNbChecked == 1)))) {
theInvFaces.Append(aFIm);
+ if (theMFHoles.Contains(aFIm)) {
+ theMFInvInHole.Add(aFIm);
+ }
aItLF.Next();
continue;
}
//
+ if (theMFHoles.Contains(aFIm)) {
+ // remove edges from neutral
+ TopExp::MapShapes(aFIm, TopAbs_EDGE, aMENRem);
+ // remove face
+ theLFImages.Remove(aItLF);
+ continue;
+ }
+ //
if (!bAllInvNeutral) {
aLFPT.Append(aFIm);
}
}
}
+//=======================================================================
+//function : FindFacesInsideHoleWires
+//purpose : Find faces inside holes wires from the original face
+//=======================================================================
+void FindFacesInsideHoleWires(const TopoDS_Face& theFOrigin,
+ const TopoDS_Face& theFOffset,
+ const TopTools_ListOfShape& theLFImages,
+ const TopTools_MapOfShape& theInvertedEdges,
+ const TopTools_DataMapOfShapeListOfShape& theDMEOrLEIm,
+ TopTools_MapOfShape& theMFHoles,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
+ Handle(IntTools_Context)& theContext)
+{
+ if (theLFImages.IsEmpty()) {
+ return;
+ }
+ //
+ // find all hole wires in the original face
+ TopTools_ListOfShape aLHoleWires;
+ const TopoDS_Wire& anOuterWire = BRepTools::OuterWire(theFOrigin);
+ TopExp_Explorer aExpW(theFOrigin, TopAbs_WIRE);
+ for (; aExpW.More(); aExpW.Next()) {
+ const TopoDS_Wire& aHoleWire = TopoDS::Wire(aExpW.Current());
+ if (!aHoleWire.IsSame(anOuterWire) && aHoleWire.Orientation() != TopAbs_INTERNAL) {
+ aLHoleWires.Append(aHoleWire);
+ }
+ }
+ //
+ if (aLHoleWires.IsEmpty()) {
+ // no holes in the face
+ return;
+ }
+ //
+ TopTools_ListOfShape *pLFNewHoles = theDMFNewHoles.ChangeSeek(theFOrigin);
+ //
+ if (!pLFNewHoles) {
+ pLFNewHoles = theDMFNewHoles.Bound(theFOrigin, TopTools_ListOfShape());
+ }
+ if (pLFNewHoles->IsEmpty()) {
+ //
+ // find the faces representing holes in the images of the faces:
+ // 1. for each original hole wire try to build its image
+ // 2. build the new planar face from the images
+ //
+ // map vertices and edges of the splits
+ TopTools_IndexedMapOfShape aMESplits;
+ TopTools_ListIteratorOfListOfShape aItLF(theLFImages);
+ for (; aItLF.More(); aItLF.Next()) {
+ TopExp::MapShapes(aItLF.Value(), TopAbs_EDGE, aMESplits);
+ }
+ //
+ TopTools_ListIteratorOfListOfShape aItLW(aLHoleWires);
+ for (; aItLW.More(); aItLW.Next()) {
+ const TopoDS_Wire& aHoleWire = TopoDS::Wire(aItLW.Value());
+ // find images of all edges of the original wire
+ TopTools_IndexedMapOfShape aMEImWire;
+ TopoDS_Iterator aItE(aHoleWire);
+ for (; aItE.More(); aItE.Next()) {
+ const TopoDS_Shape& aEOr = aItE.Value();
+ const TopTools_ListOfShape *pLEIm = theDMEOrLEIm.Seek(aEOr);
+ if (!pLEIm || pLEIm->IsEmpty()) {
+ continue;
+ }
+ TopTools_ListIteratorOfListOfShape aItLEIm(*pLEIm);
+ for (; aItLEIm.More(); aItLEIm.Next()) {
+ const TopoDS_Shape& aEIm = aItLEIm.Value();
+ if (aMESplits.Contains(aEIm)) {
+ aMEImWire.Add(aEIm);
+ }
+ }
+ }
+ //
+ if (aMEImWire.IsEmpty()) {
+ continue;
+ }
+ //
+ // build new planar face using these edges
+ BOPCol_ListOfShape aLE;
+ Standard_Integer i, aNbE = aMEImWire.Extent();
+ for (i = 1; i <= aNbE; ++i) {
+ aLE.Append(aMEImWire(i).Oriented(TopAbs_FORWARD));
+ aLE.Append(aMEImWire(i).Oriented(TopAbs_REVERSED));
+ }
+ //
+ BOPAlgo_BuilderFace aBF;
+ aBF.SetFace(TopoDS::Face(theFOffset.Oriented(TopAbs_FORWARD)));
+ aBF.SetShapes(aLE);
+ aBF.Perform();
+ //
+ const BOPCol_ListOfShape& aLFNew = aBF.Areas();
+ if (aLFNew.IsEmpty()) {
+ continue;
+ }
+ //
+ // check if outer edges in the new faces are not inverted
+ // because the inverted edges mean that the hole has been
+ // filled during offset and there will be no faces to remove
+ TopTools_IndexedDataMapOfShapeListOfShape aDMEFNew;
+ TopTools_ListIteratorOfListOfShape aItLFNew(aLFNew);
+ for (; aItLFNew.More(); aItLFNew.Next()) {
+ TopExp::MapShapesAndAncestors(aItLFNew.Value(), TopAbs_EDGE, TopAbs_FACE, aDMEFNew);
+ }
+ //
+ aNbE = aDMEFNew.Extent();
+ for (i = 1; i <= aNbE; ++i) {
+ if (aDMEFNew(i).Extent() == 1) {
+ const TopoDS_Shape& aE = aDMEFNew.FindKey(i);
+ if (theInvertedEdges.Contains(aE)) {
+ break;
+ }
+ }
+ }
+ //
+ if (i <= aNbE) {
+ continue;
+ }
+ //
+ aItLFNew.Initialize(aLFNew);
+ for (; aItLFNew.More(); aItLFNew.Next()) {
+ pLFNewHoles->Append(aItLFNew.Value());
+ }
+ }
+ }
+ //
+ // among the splits of the offset face find those that are
+ // located inside the hole faces
+ //
+ TopTools_ListIteratorOfListOfShape aItLF(theLFImages);
+ for (; aItLF.More(); aItLF.Next()) {
+ const TopoDS_Face& aFIm = TopoDS::Face(aItLF.Value());
+ //
+ // get the point inside the face and classify it relatively hole faces
+ gp_Pnt aP3D;
+ gp_Pnt2d aP2D;
+ Standard_Integer iErr = BOPTools_AlgoTools3D::PointInFace(aFIm, aP3D, aP2D, theContext);
+ if (iErr) {
+ continue;
+ }
+ //
+ Standard_Real aTol = BRep_Tool::Tolerance(aFIm);
+ //
+ TopTools_ListIteratorOfListOfShape aItLFNew(*pLFNewHoles);
+ for (; aItLFNew.More(); aItLFNew.Next()) {
+ const TopoDS_Face& aFNew = TopoDS::Face(aItLFNew.Value());
+ if (theContext->IsValidPointForFace(aP3D, aFNew, aTol)) {
+ // the face is classified as IN
+ theMFHoles.Add(aFIm);
+ break;
+ }
+ }
+ }
+}
+
//=======================================================================
//function : GetAverageTangent
//purpose : Computes average tangent vector along the curve
const TopTools_DataMapOfShapeShape& theArtInvFaces,
const TopTools_IndexedMapOfShape& theInvEdges,
const TopTools_IndexedMapOfShape& theMFToCheckInt,
+ const TopTools_IndexedMapOfShape& theMFInvInHole,
+ const TopoDS_Shape& theFHoles,
TopTools_DataMapOfShapeListOfShape& theSSInterfs,
TopTools_IndexedMapOfShape& theMERemoved,
TopTools_IndexedMapOfShape& theMEInside,
// to check them on validity - the created solids should be complete,
// i.e. all faces should be included.
//
+ TopTools_MapOfShape aMFToRem;
// Check completeness
if (aMV.HasDeleted()) {
+ TopTools_IndexedMapOfShape aMEHoles;
+ TopExp::MapShapes(theFHoles, TopAbs_EDGE, aMEHoles);
+ //
// perform additional check on faces
aNb = theFImages.Extent();
for (i = 1; i <= aNb; ++i) {
continue;
}
//
+ Standard_Boolean bFaceKept = Standard_False;
aItLF.Initialize(aLFIm);
for (; aItLF.More(); aItLF.Next()) {
const TopoDS_Shape& aFIm = aItLF.Value();
if (!aMV.IsDeleted(aFIm)) {
- break;
+ bFaceKept = Standard_True;
+ continue;
+ }
+ //
+ TopExp_Explorer aExpE(aFIm, TopAbs_EDGE);
+ for (; aExpE.More(); aExpE.Next()) {
+ if (aMEHoles.Contains(aExpE.Current())) {
+ bFaceKept = Standard_True;
+ aMFToRem.Add(aFIm);
+ break;
+ }
}
}
//
- if (!aItLF.More()) {
+ if (!bFaceKept) {
return;
}
}
}
//
- TopTools_MapOfShape aMFToRem;
TopTools_IndexedMapOfShape aMEBoundary;
aNb = aDMFS.Extent();
for (i = 1; i <= aNb; ++i) {
}
}
//
+ // check if the invalid faces inside the holes are really invalid:
+ // check its normal direction - if it has changed relatively the
+ // original face the offset face is invalid and should be kept for rebuilding
+ Standard_Integer aNbFH = theMFInvInHole.Extent();
+ for (i = 1; i <= aNbFH; ++i) {
+ const TopoDS_Shape& aFInv = theMFInvInHole(i);
+ TopTools_ListOfShape aLFInvIm = aMV.Modified(aFInv);
+ if (aLFInvIm.IsEmpty()) {
+ aLFInvIm.Append(aFInv);
+ }
+ //
+ const TopoDS_Shape *pFOffset = aDMFImF.Seek(aFInv);
+ if (!pFOffset) {
+ continue;
+ }
+ TopTools_ListIteratorOfListOfShape aItLFInv(aLFInvIm);
+ for (; aItLFInv.More(); aItLFInv.Next()) {
+ const TopoDS_Shape& aFInvIm = aItLFInv.Value();
+ const TopTools_ListOfShape* pLSols = aDMFS.Seek(aFInvIm);
+ if (!pLSols || pLSols->Extent() != 1) {
+ continue;
+ }
+ //
+ const TopoDS_Shape& aFSol = pLSols->First();
+ //
+ TopoDS_Shape aFx;
+ if (!FindShape(aFInvIm, aFSol, aFx)) {
+ continue;
+ }
+ //
+ if (BRepOffset_Tool::CheckPlanesNormals(TopoDS::Face(aFx), TopoDS::Face(*pFOffset))) {
+ // the normal direction has not changed, thus the face can be removed
+ aMFToRem.Add(aFInvIm);
+ }
+ }
+ }
+ //
TopoDS_Compound aSolids;
BRep_Builder().MakeCompound(aSolids);
TopTools_MapOfShape aMFKeep;
const TopoDS_Shape& theSolids,
const TopTools_DataMapOfShapeListOfShape& theSSInterfs,
TopTools_IndexedDataMapOfShapeListOfShape& theFImages,
+ TopTools_DataMapOfShapeListOfShape& theDMFNewHoles,
TopTools_DataMapOfShapeListOfShape& theEdgesOrigins,
TopTools_DataMapOfShapeShape& theFacesOrigins,
TopTools_DataMapOfShapeListOfShape& theOEImages,
theInvFaces, theArtInvFaces, theVertsToAvoid, theETrimEInf, aModifiedEdges, theAsDes);
//
// 2. Repeat steps to build the correct faces
- BuildSplitsOfInvFaces(theFToRebuild, aModifiedEdges, theFImages, theEdgesOrigins,
+ BuildSplitsOfInvFaces(theFToRebuild, aModifiedEdges, theFImages, theDMFNewHoles, theEdgesOrigins,
theFacesOrigins, theOEImages, theOEOrigins, theLastInvEdges,
theEdgesToAvoid, theVertsToAvoid, theAlreadyInvFaces, theValidEdges,
theETrimEInf, theAsDes);
}
-
-
+//=======================================================================
+//function : CheckNormals
+//purpose :
+//=======================================================================
+Standard_Boolean BRepOffset_Tool::CheckPlanesNormals(const TopoDS_Face& theFace1,
+ const TopoDS_Face& theFace2,
+ const Standard_Real theTolAng)
+{
+ BRepAdaptor_Surface aBAS1(theFace1, Standard_False), aBAS2(theFace2, Standard_False);
+ if (aBAS1.GetType() != GeomAbs_Plane ||
+ aBAS2.GetType() != GeomAbs_Plane) {
+ return Standard_False;
+ }
+ //
+ gp_Dir aDN1 = aBAS1.Plane().Position().Direction();
+ if (theFace1.Orientation() == TopAbs_REVERSED) {
+ aDN1.Reverse();
+ }
+ //
+ gp_Dir aDN2 = aBAS2.Plane().Position().Direction();
+ if (theFace2.Orientation() == TopAbs_REVERSED) {
+ aDN2.Reverse();
+ }
+ //
+ Standard_Real anAngle = aDN1.Angle(aDN2);
+ return (anAngle < theTolAng);
+}
Standard_EXPORT static Standard_Real Gabarit (const Handle(Geom_Curve)& aCurve);
-
-
+ //! Compares the normal directions of the planar faces and returns
+ //! TRUE if the directions are the same with the given precision.<br>
+ Standard_EXPORT static Standard_Boolean CheckPlanesNormals(const TopoDS_Face& theFace1,
+ const TopoDS_Face& theFace2,
+ const Standard_Real theTolAng = 1.e-8);
protected:
-
-
-
-
private:
-
-
-
-
};
-
-
-
-
-
-
#endif // _BRepOffset_Tool_HeaderFile
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 100
+ }
+}
+offsetperform result
+
+checkprops result -v 1.41675e+007 -s 507751
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+OFFSETSHAPE 130 {} $calcul $type
+
+checkprops result -v 1.31751e+008 -s 1.66862e+006
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 11 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.5
+ }
+}
+offsetperform result
+
+checkprops result -v 406.625 -s 605.617
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+OFFSETSHAPE 1.5 {} $calcul $type
+
+checkprops result -v 1504.61 -s 1006.51
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.5
+ }
+}
+offsetperform result
+
+checkprops result -v 483.996 -s 587.42
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple6.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.5
+ }
+}
+offsetperform result
+
+checkprops result -v 484.958 -s 589.936
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 130
+ }
+}
+offsetperform result
+
+checkprops result -v 1.57185e+007 -s 547937
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 150
+ }
+}
+offsetperform result
+
+checkprops result -v 1.67576e+007 -s 563859
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 180
+ }
+}
+offsetperform result
+
+checkprops result -v 1.836e+007 -s 577200
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_input.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 210
+ }
+}
+offsetperform result
+
+checkprops result -v 1.998e+007 -s 618600
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.9
+ }
+}
+offsetperform result
+
+checkprops result -v 465.053 -s 629.882
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.3
+ }
+}
+offsetperform result
+
+checkprops result -v 524.605 -s 649.688
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.6
+ }
+}
+offsetperform result
+
+checkprops result -v 570.493 -s 664.008
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2
+ }
+}
+offsetperform result
+
+checkprops result -v 633.44 -s 682.386
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.5
+ }
+}
+offsetperform result
+
+checkprops result -v 716.909 -s 682.741
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 901.771 -s 692.252
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4
+ }
+}
+offsetperform result
+
+checkprops result -v 1000 -s 700
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.3
+ }
+}
+offsetperform result
+
+checkprops result -v 1060 -s 718
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.4
+ }
+}
+offsetperform result
+
+checkprops result -v 541.772 -s 665.099
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.8
+ }
+}
+offsetperform result
+
+checkprops result -v 604.464 -s 682.853
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2
+ }
+}
+offsetperform result
+
+checkprops result -v 636.296 -s 691.505
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 901.771 -s 692.252
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4
+ }
+}
+offsetperform result
+
+checkprops result -v 1000 -s 700
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple1.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1100 -s 730
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.1
+ }
+}
+offsetperform result
+
+checkprops result -v 576.314 -s 626.227
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.8
+ }
+}
+offsetperform result
+
+checkprops result -v 682.107 -s 668.86
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.3
+ }
+}
+offsetperform result
+
+checkprops result -v 757.26 -s 696.397
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 19 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.2
+ }
+}
+offsetperform result
+
+checkprops result -v 895.772 -s 734.031
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1061.61 -s 762.644
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.7
+ }
+}
+offsetperform result
+
+checkprops result -v 1150.96 -s 775.193
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple2.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1244.51 -s 790.347
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.2
+ }
+}
+offsetperform result
+
+checkprops result -v 437.086 -s 567.751
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.5
+ }
+}
+offsetperform result
+
+checkprops result -v 638.971 -s 643.477
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.5
+ }
+}
+offsetperform result
+
+checkprops result -v 796.631 -s 688.189
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.6
+ }
+}
+offsetperform result
+
+checkprops result -v 980.046 -s 732.882
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1084.24 -s 760.754
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 19 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "TODO OCC27414 ALL: Error: The command cannot be built"
+puts "TODO OCC27414 ALL: Tcl Exception"
+puts "TODO OCC27414 ALL: TEST INCOMPLETE"
+
+
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5
+ }
+}
+offsetperform result
+
+checkprops result -v 1226.52 -s 799.334
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 13 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "TODO OCC27414 ALL: Error: The command cannot be built"
+puts "TODO OCC27414 ALL: Tcl Exception"
+puts "TODO OCC27414 ALL: TEST INCOMPLETE"
+
+
+restore [locate_data_file bug28442_simple3.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 6
+ }
+}
+offsetperform result
+
+checkprops result -v 0 -s 0
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 13 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.8
+ }
+}
+offsetperform result
+
+checkprops result -v 508.318 -s 619.149
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.4
+ }
+}
+offsetperform result
+
+checkprops result -v 593.919 -s 655.117
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.7
+ }
+}
+offsetperform result
+
+checkprops result -v 636.586 -s 669.86
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.7
+ }
+}
+offsetperform result
+
+checkprops result -v 783.404 -s 711.46
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 914.348 -s 717.153
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple4.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1100.29 -s 736.424
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.9
+ }
+}
+offsetperform result
+
+checkprops result -v 522.676 -s 625.27
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.2
+ }
+}
+offsetperform result
+
+checkprops result -v 565.605 -s 642.455
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 19 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2
+ }
+}
+offsetperform result
+
+checkprops result -v 680.704 -s 684.886
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.7
+ }
+}
+offsetperform result
+
+checkprops result -v 784.337 -s 712.928
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3
+ }
+}
+offsetperform result
+
+checkprops result -v 831.255 -s 714.751
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 914.786 -s 720.359
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple5.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.7
+ }
+}
+offsetperform result
+
+checkprops result -v 1140 -s 742
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple6.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1
+ }
+}
+offsetperform result
+
+checkprops result -v 560.833 -s 623.318
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple6.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.5
+ }
+}
+offsetperform result
+
+checkprops result -v 635.5 -s 653.92
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 19 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple6.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3
+ }
+}
+offsetperform result
+
+checkprops result -v 858.491 -s 730.878
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 17 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple6.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 937.546 -s 742.895
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple7.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 0.9
+ }
+}
+offsetperform result
+
+checkprops result -v 532.498 -s 625.58
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple7.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.3
+ }
+}
+offsetperform result
+
+checkprops result -v 591.624 -s 647.796
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple7.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 1.7
+ }
+}
+offsetperform result
+
+checkprops result -v 650.813 -s 669.163
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple7.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3
+ }
+}
+offsetperform result
+
+checkprops result -v 849.197 -s 722.694
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple7.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4
+ }
+}
+offsetperform result
+
+checkprops result -v 1016.84 -s 750.316
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 18 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1446.71 -s 1074.67
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 25 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5
+ }
+}
+offsetperform result
+
+checkprops result -v 1837.67 -s 1118.82
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 24 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1973.21 -s 1128.39
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 24 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 6.2
+ }
+}
+offsetperform result
+
+checkprops result -v 2169.52 -s 1151.22
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 7.3
+ }
+}
+offsetperform result
+
+checkprops result -v 2490.91 -s 1189.42
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple8.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 8
+ }
+}
+offsetperform result
+
+checkprops result -v 2700 -s 1230
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple9.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.3
+ }
+}
+offsetperform result
+
+checkprops result -v 1173.38 -s 1002.15
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple9.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4
+ }
+}
+offsetperform result
+
+checkprops result -v 1596 -s 1099.91
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple9.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1977 -s 1167.43
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple9.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 7
+ }
+}
+offsetperform result
+
+checkprops result -v 2400 -s 1160
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple9.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 7.5
+ }
+}
+offsetperform result
+
+checkprops result -v 2550 -s 1195
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.3
+ }
+}
+offsetperform result
+
+checkprops result -v 1173.38 -s 1002.15
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.3
+ }
+}
+offsetperform result
+
+checkprops result -v 1420.77 -s 1055.6
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1649.74 -s 1092.64
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1914.35 -s 1128.32
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 15 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 6.5
+ }
+}
+offsetperform result
+
+checkprops result -v 2271.64 -s 1187.85
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 13 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 7.5
+ }
+}
+offsetperform result
+
+checkprops result -v 2555.91 -s 1227.21
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 12 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple10.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 9.3
+ }
+}
+offsetperform result
+
+checkprops result -v 3090 -s 1321
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1196.69 -s 1020.67
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 24 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1442.83 -s 1065.3
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 25 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1622.85 -s 1081.68
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 23 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5
+ }
+}
+offsetperform result
+
+checkprops result -v 1837.33 -s 1101.2
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1976.05 -s 1125.25
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 22 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 6.2
+ }
+}
+offsetperform result
+
+checkprops result -v 2172.83 -s 1149.47
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 7.3
+ }
+}
+offsetperform result
+
+checkprops result -v 2493.03 -s 1195.43
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 8
+ }
+}
+offsetperform result
+
+checkprops result -v 2700.83 -s 1235.47
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 10 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple11.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 9.2
+ }
+}
+offsetperform result
+
+checkprops result -v 3060 -s 1314
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 6 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple12.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 2.5
+ }
+}
+offsetperform result
+
+checkprops result -v 1163.57 -s 1020.66
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple12.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.2
+ }
+}
+offsetperform result
+
+checkprops result -v 1327.75 -s 1049.86
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 20 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple12.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 4.4
+ }
+}
+offsetperform result
+
+checkprops result -v 1640.18 -s 1049.39
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 16 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple12.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5
+ }
+}
+offsetperform result
+
+checkprops result -v 1810.17 -s 1052.79
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 10 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple12.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 6
+ }
+}
+offsetperform result
+
+checkprops result -v 2102.46 -s 1105.62
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 10 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple13.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 3.1
+ }
+}
+offsetperform result
+
+checkprops result -v 1316.75 -s 1063.5
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 21 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+restore [locate_data_file bug28442_simple13.brep] s
+
+offsetparameter 1e-7 c i r
+offsetload s 0
+
+foreach f [explode s f] {
+ mksurface surf $f
+ set found [regexp {Axis :([-0-9.+eE]*), ([-0-9.+eE]*), ([-0-9.+eE]*)} [dump surf] full x y z]
+ if {$found == 0} {
+ continue
+ }
+ # reverse normal direction for faces with orientation REVERSED
+ if {[regexp {REVERSED} [whatis $f]]} {
+ set z [expr -1*$z]
+ }
+ # set offset value for top faces only
+ if {abs($z - 1) < 1.e-7 } {
+ offsetonface $f 5
+ }
+}
+offsetperform result
+
+checkprops result -v 1811.61 -s 1059.5
+
+unifysamedom result_unif result
+checknbshapes result_unif -face 14 -shell 1
+
+checkview -display result_unif -2d -path ${imagedir}/${test_image}.png