summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrey Christoforo2021-03-30 13:42:46 +0200
committerGrey Christoforo2021-03-30 13:42:46 +0200
commitb90053f4454e2cc0c029873035548f07865e7a4f (patch)
tree05738cce5dedd15bf415b927e671976c8b844e09
parent1c778ada25150592e74d799fc8489f61cab7aa8b (diff)
downloadaur-b90053f4454e2cc0c029873035548f07865e7a4f.tar.gz
hackfix for corrupted step output
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD12
-rw-r--r--revert_small_edge_fix.patch181
3 files changed, 194 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d42df097d2b3..ab963779d7fd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index cf4feb5187a8..8a4c9ffb6f8d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 )