diff options
author | Grey Christoforo | 2021-03-30 13:42:46 +0200 |
---|---|---|
committer | Grey Christoforo | 2021-03-30 13:42:46 +0200 |
commit | b90053f4454e2cc0c029873035548f07865e7a4f (patch) | |
tree | 05738cce5dedd15bf415b927e671976c8b844e09 | |
parent | 1c778ada25150592e74d799fc8489f61cab7aa8b (diff) | |
download | aur-b90053f4454e2cc0c029873035548f07865e7a4f.tar.gz |
hackfix for corrupted step output
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 12 | ||||
-rw-r--r-- | revert_small_edge_fix.patch | 181 |
3 files changed, 194 insertions, 3 deletions
@@ -11,7 +11,7 @@ pkgbase = opencascade-rc makedepends = ninja makedepends = rapidjson depends = tk - depends = vtk9-fix + depends = vtk depends = gl2ps depends = ffmpeg depends = freeimage @@ -21,8 +21,10 @@ pkgbase = opencascade-rc conflicts = opencascade-git source = opencascade-rc-7.5.1.tgz::https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_5_1;sf=tgz source = opencascade.sh + source = revert_small_edge_fix.patch sha256sums = 3a43d8b50df78ade72786fa63bc8808deac6380189333663e7b4ef8558ae7739 sha256sums = 9acb2439f1f7f066c111adef5d9f34dcb19c906cc928f87b71eb194317948dfb + sha256sums = c4d64cfd9004bdf80abf7ee567c2d736de550f5cf771a5a2bb28292ca00a1869 pkgname = opencascade-rc @@ -14,7 +14,7 @@ conflicts=(opencascade opencascade-git) depends=( tk -vtk9-fix +vtk gl2ps ffmpeg freeimage @@ -27,19 +27,27 @@ qt5-base ninja rapidjson ) + #checkdepends=() +#options=(!strip) + source=( "${pkgname}-${pkgver}.tgz::https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/${_pkgver};sf=tgz" opencascade.sh +revert_small_edge_fix.patch ) sha256sums=('3a43d8b50df78ade72786fa63bc8808deac6380189333663e7b4ef8558ae7739' - '9acb2439f1f7f066c111adef5d9f34dcb19c906cc928f87b71eb194317948dfb') + '9acb2439f1f7f066c111adef5d9f34dcb19c906cc928f87b71eb194317948dfb' + 'c4d64cfd9004bdf80abf7ee567c2d736de550f5cf771a5a2bb28292ca00a1869') prepare() { cd occt-${_pkgver} curl https://src.fedoraproject.org/rpms/opencascade/raw/rawhide/f/opencascade-cmake.patch | patch -p1 + + # https://tracker.dev.opencascade.org/view.php?id=32264 + patch -p1 < ../revert_small_edge_fix.patch # fix for None type build #sed '/OpenCASCADECompileDefinitionsAndFlags/d' -i CMakeLists.txt diff --git a/revert_small_edge_fix.patch b/revert_small_edge_fix.patch new file mode 100644 index 000000000000..fc68eae88806 --- /dev/null +++ b/revert_small_edge_fix.patch @@ -0,0 +1,181 @@ +diff --git a/src/GeomToStep/GeomToStep_MakeCurve.cxx b/src/GeomToStep/GeomToStep_MakeCurve.cxx +index 6dfee4c044..50275c4d09 100644 +--- a/src/GeomToStep/GeomToStep_MakeCurve.cxx ++++ b/src/GeomToStep/GeomToStep_MakeCurve.cxx +@@ -42,7 +42,6 @@ + #include <StepGeom_Conic.hxx> + #include <StepGeom_Curve.hxx> + #include <StepGeom_Line.hxx> +-#include <Geom2d_TrimmedCurve.hxx> + + //============================================================================= + // Creation d' une Curve de prostep a partir d' une Curve de Geom +@@ -163,10 +162,6 @@ GeomToStep_MakeCurve::GeomToStep_MakeCurve ( const Handle(Geom2d_Curve)& C) + GeomToStep_MakeBoundedCurve MkBoundedC(L); + theCurve = MkBoundedC.Value(); + } +- else if (C->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve))) { +- GeomToStep_MakeCurve aMaker = (Handle(Geom2d_TrimmedCurve)::DownCast(C)->BasisCurve()); +- theCurve = aMaker.Value(); +- } + else + done = Standard_False; + } +diff --git a/src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx b/src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx +index 922c95313c..ec8f075254 100644 +--- a/src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx ++++ b/src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx +@@ -53,8 +53,6 @@ + #include <Transfer_FinderProcess.hxx> + #include <TransferBRep.hxx> + #include <TransferBRep_ShapeMapper.hxx> +-#include <BRepTools.hxx> +-#include <ShapeAnalysis_Curve.hxx> + + // Processing of non-manifold topology (ssv; 11.11.2010) + // ---------------------------------------------------------------------------- +@@ -188,64 +186,6 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge, + Handle(Geom_Curve) C = CA.Curve().Curve(); + if (!C.IsNull()) { + C = Handle(Geom_Curve)::DownCast(C->Copy()); +- +- // Special treatment is needed for very short edges based on periodic curves. +- // Since edge in STEP does not store its parametric range, parameters are computed +- // on import by projecting vertices on a curve, and for periodic curve this may +- // lead to use of wrong part of the curve if end vertices are too close to each other +- // (often whole curve is taken instead of its very small fragment). +- if (C->IsPeriodic()) +- { +- Standard_Real dpar = CA.LastParameter() - CA.FirstParameter(); +- if (dpar <= 0) +- { +- dpar += (ceil(fabs(dpar) / C->Period()) * C->Period()); +- } +- +- // if range obtained from projection of vertices contradicts with range +- // of the edge tnen vertices are swapped to keep results correct after import +- // (see test de step_5 A1) +- gp_Pnt aP1 = BRep_Tool::Pnt(Vfirst); +- gp_Pnt aP2 = BRep_Tool::Pnt(Vlast); +- gp_Pnt pproj; +- ShapeAnalysis_Curve sac; +- sac.Project (C, aP1, Tolerance(), pproj, U1, Standard_False); +- sac.Project (C, aP2, Tolerance(), pproj, U2, Standard_False); +- Standard_Real dU = U2 - U1; +- if (dU <= 0) +- { +- dU += (ceil(fabs(dU) / C->Period()) * C->Period()); +- } +- if ((dU > Precision::PConfusion() && dU <= 0.1 * C->Period() && dpar > 0.5 * C->Period()) || +- (dpar > Precision::PConfusion() && dpar <= 0.1 * C->Period() && dU > 0.5 * C->Period())) +- { +- std::swap (V1, V2); +- } +- +- // If vertices overlap, we cut only needed part of the BSpline curve. +- // Note that this method cannot be used for canonic curves +- // (STEP does not support trimmed curves in AIC 514). +- if (C->IsKind(STANDARD_TYPE(Geom_BSplineCurve))) +- { +- Standard_Real aTolV1 = BRep_Tool::Tolerance(Vfirst); +- Standard_Real aTolV2 = BRep_Tool::Tolerance(Vlast); +- gp_Pnt aP11 = CA.Value(CA.FirstParameter()); +- gp_Pnt aP12 = CA.Value(CA.LastParameter()); +- gp_Pnt aPm = CA.Value((CA.FirstParameter() + CA.LastParameter()) * 0.5); +- Standard_Real aDist11 = aP11.Distance(aP12); +- Standard_Real aDist1m = aP11.Distance(aPm); +- Standard_Real aDist2m = aP12.Distance(aPm); +- Standard_Real aDistMax = Max(Max(aDist1m, aDist2m), aDist11); +- Standard_Boolean isSmallCurve = (aDistMax <= aTolV1 || aDistMax <= aTolV2); +- if (BRepTools::Compare(Vfirst, Vlast) && isSmallCurve && dpar > Precision::PConfusion() && dpar <= 0.1 * C->Period()) +- { +- Handle(Geom_BSplineCurve) aBspl1 = Handle(Geom_BSplineCurve)::DownCast(C->Copy()); +- aBspl1->Segment(CA.FirstParameter(), CA.LastParameter()); +- C = aBspl1; +- } +- } +- } +- + gp_Trsf Tr1 = CA.Trsf(); + C->Transform(Tr1); + GeomToStep_MakeCurve MkCurve(C); +diff --git a/tests/de/step_4/D9 b/tests/de/step_4/D9 +index ed1996d58c..8bc1f9c450 100644 +--- a/tests/de/step_4/D9 ++++ b/tests/de/step_4/D9 +@@ -6,11 +6,11 @@ set filename test-m020306-v1.stp + + set ref_data { + DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) +-TPSTAT : Faulties = 1 ( 0 ) Warnings = 153 ( 114 ) Summary = 154 ( 114 ) ++TPSTAT : Faulties = 0 ( 0 ) Warnings = 153 ( 114 ) Summary = 153 ( 114 ) + CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) + NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 742 ( 742 ) + STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 742 ( 742 ) FreeWire = 0 ( 0 ) +-TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.0001322682241 ( 0.0003097606769 ) ++TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.000132472064 ( 0.0003097606769 ) + LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 ) + PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) + NCOLORS : NColors = 0 ( 0 ) +diff --git a/tests/de/step_4/E1 b/tests/de/step_4/E1 +index edcdbdda54..fc7ab98fb3 100644 +--- a/tests/de/step_4/E1 ++++ b/tests/de/step_4/E1 +@@ -3,11 +3,11 @@ set filename test-m020306-v2.stp + + set ref_data { + DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) +-TPSTAT : Faulties = 1 ( 0 ) Warnings = 63 ( 157 ) Summary = 64 ( 157 ) ++TPSTAT : Faulties = 0 ( 0 ) Warnings = 61 ( 157 ) Summary = 61 ( 157 ) + CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) + NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 956 ( 956 ) + STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 956 ( 956 ) FreeWire = 0 ( 0 ) +-TOLERANCE : MaxTol = 0.008481946718 ( 0.01167623167 ) AvgTol = 0.000123986292 ( 0.0003770309367 ) ++TOLERANCE : MaxTol = 0.008481946718 ( 0.05394823207 ) AvgTol = 0.0001239210367 ( 0.0004089750747 ) + LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 ) + PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) + NCOLORS : NColors = 0 ( 0 ) +diff --git a/tests/de/step_4/H1 b/tests/de/step_4/H1 +index 1dcbea7f76..054ddf9b44 100644 +--- a/tests/de/step_4/H1 ++++ b/tests/de/step_4/H1 +@@ -1,16 +1,13 @@ + # !!!! This file is generated automatically, do not edit manually! See end script +-puts "TODO CR23096 ALL: TPSTAT : Faulty" +- +- + set filename Inventor_Engine.stp + + set ref_data { + DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) +-TPSTAT : Faulties = 1 ( 0 ) Warnings = 455 ( 560 ) Summary = 456 ( 560 ) ++TPSTAT : Faulties = 0 ( 0 ) Warnings = 456 ( 560 ) Summary = 456 ( 560 ) + CHECKSHAPE : Wires = 6 ( 6 ) Faces = 6 ( 6 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) + NBSHAPES : Solid = 47 ( 47 ) Shell = 47 ( 47 ) Face = 4454 ( 4454 ) + STATSHAPE : Solid = 80 ( 80 ) Shell = 80 ( 80 ) Face = 5356 ( 5356 ) FreeWire = 0 ( 0 ) +-TOLERANCE : MaxTol = 2.371238233 ( 2.449305641 ) AvgTol = 0.001672277308 ( 0.002589629313 ) ++TOLERANCE : MaxTol = 2.37122237 ( 2.449305641 ) AvgTol = 0.002570949956 ( 0.002589629313 ) + LABELS : N0Labels = 52 ( 52 ) N1Labels = 86 ( 86 ) N2Labels = 0 ( 0 ) TotalLabels = 138 ( 138 ) NameLabels = 136 ( 136 ) ColorLabels = 47 ( 47 ) LayerLabels = 0 ( 0 ) + PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) + NCOLORS : NColors = 11 ( 11 ) +diff --git a/tests/de/step_5/A1 b/tests/de/step_5/A1 +index 0b490cca6a..9074ec272d 100755 +--- a/tests/de/step_5/A1 ++++ b/tests/de/step_5/A1 +@@ -7,11 +7,11 @@ set filename Z8INV5.stp + + set ref_data { + DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) +-TPSTAT : Faulties = 0 ( 0 ) Warnings = 121 ( 620 ) Summary = 121 ( 620 ) +-CHECKSHAPE : Wires = 15 ( 16 ) Faces = 18 ( 18 ) Shells = 1 ( 1 ) Solids = 0 ( 0 ) +-NBSHAPES : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1521 ( 1519 ) +-STATSHAPE : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1521 ( 1519 ) FreeWire = 0 ( 0 ) +-TOLERANCE : MaxTol = 7.499684301 ( 7.499684301 ) AvgTol = 0.03357316863 ( 0.03544461059 ) ++TPSTAT : Faulties = 0 ( 0 ) Warnings = 120 ( 620 ) Summary = 120 ( 620 ) ++CHECKSHAPE : Wires = 15 ( 16 ) Faces = 17 ( 18 ) Shells = 1 ( 1 ) Solids = 0 ( 0 ) ++NBSHAPES : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1520 ( 1519 ) ++STATSHAPE : Solid = 22 ( 22 ) Shell = 25 ( 24 ) Face = 1520 ( 1519 ) FreeWire = 0 ( 0 ) ++TOLERANCE : MaxTol = 7.499684301 ( 7.499684301 ) AvgTol = 0.03452373473 ( 0.03544461059 ) + LABELS : N0Labels = 25 ( 25 ) N1Labels = 23 ( 23 ) N2Labels = 0 ( 0 ) TotalLabels = 48 ( 48 ) NameLabels = 48 ( 48 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 ) + PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) + NCOLORS : NColors = 0 ( 0 ) |