1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

Compare commits

..

1 Commits

Author SHA1 Message Date
drochalo
8910dd9f80 0025811: Visualization - Incorrect texture mapping on faces with reversed orientation
Added section in StdPrs_ShadedShape to correct UV orientation on face triangulation whose orientation is reversed.
Expanded test cases.
2024-04-08 17:02:30 +01:00
109 changed files with 477 additions and 855 deletions

View File

@@ -162,7 +162,7 @@ void APIHeaderSection_MakeHeader::Apply
Handle(StepData_Protocol) stepro = Handle(StepData_Protocol)::DownCast Handle(StepData_Protocol) stepro = Handle(StepData_Protocol)::DownCast
( model->Protocol()); ( model->Protocol());
if (!stepro.IsNull()) sch = new TCollection_HAsciiString if (!stepro.IsNull()) sch = new TCollection_HAsciiString
(stepro->SchemaName(model)); (stepro->SchemaName());
if (!sch.IsNull()) schid->SetValue (1,sch); if (!sch.IsNull()) schid->SetValue (1,sch);
} }
header.AddItem(fs); header.AddItem(fs);

View File

@@ -50,27 +50,22 @@ static Standard_Boolean Controle(const TColgp_Array1OfPnt& Poles,
Standard_Real umin, umax, vmin, vmax; Standard_Real umin, umax, vmin, vmax;
S->Bounds(umin, umax, vmin, vmax); S->Bounds(umin, umax, vmin, vmax);
S->D1((umin + umax) / 2, (vmin + vmax) / 2, P, DU, DV); S->D1((umin + umax) / 2, (vmin + vmax) / 2, P, DU, DV);
// On prend DX le plus proche possible de DU
if (DU.SquareMagnitude() > gp::Resolution() && gp_Dir du(DU);
DV.SquareMagnitude() > gp::Resolution()) Standard_Real Angle1 = du.Angle(DX);
{ Standard_Real Angle2 = du.Angle(DY);
// On prend DX le plus proche possible de DU if (Angle1 > M_PI / 2) Angle1 = M_PI - Angle1;
gp_Dir du(DU); if (Angle2 > M_PI / 2) Angle2 = M_PI - Angle2;
Standard_Real Angle1 = du.Angle(DX); if (Angle2 < Angle1) {
Standard_Real Angle2 = du.Angle(DY); du = DY; DY = DX; DX = du;
if (Angle1 > M_PI / 2) Angle1 = M_PI - Angle1;
if (Angle2 > M_PI / 2) Angle2 = M_PI - Angle2;
if (Angle2 < Angle1) {
du = DY; DY = DX; DX = du;
}
if (DX.Angle(DU) > M_PI / 2) DX.Reverse();
if (DY.Angle(DV) > M_PI / 2) DY.Reverse();
gp_Ax3 axe(Bary, DX^DY, DX);
Plan.SetPosition(axe);
Plan.SetLocation(Bary);
IsPlan = Standard_True;
} }
if (DX.Angle(DU) > M_PI / 2) DX.Reverse();
if (DY.Angle(DV) > M_PI / 2) DY.Reverse();
gp_Ax3 axe(Bary, DX^DY, DX);
Plan.SetPosition(axe);
Plan.SetLocation(Bary);
IsPlan = Standard_True;
} }
return IsPlan; return IsPlan;
} }

View File

@@ -20,10 +20,10 @@
#include <Standard.hxx> #include <Standard.hxx>
#include <Standard_DefineAlloc.hxx> #include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <StepData_Factors.hxx>
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Axis1Placement; class StepGeom_Axis1Placement;
class gp_Ax1; class gp_Ax1;
class gp_Ax2d; class gp_Ax2d;
@@ -43,16 +43,16 @@ public:
Standard_EXPORT GeomToStep_MakeAxis1Placement(const gp_Ax1& A, Standard_EXPORT GeomToStep_MakeAxis1Placement(const gp_Ax1& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis1Placement(const gp_Ax2d& A, Standard_EXPORT GeomToStep_MakeAxis1Placement(const gp_Ax2d& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis1Placement(const Handle(Geom_Axis1Placement)& A, Standard_EXPORT GeomToStep_MakeAxis1Placement(const Handle(Geom_Axis1Placement)& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis1Placement(const Handle(Geom2d_AxisPlacement)& A, Standard_EXPORT GeomToStep_MakeAxis1Placement(const Handle(Geom2d_AxisPlacement)& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Axis1Placement)& Value() const; Standard_EXPORT const Handle(StepGeom_Axis1Placement)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Axis2Placement2d; class StepGeom_Axis2Placement2d;
class gp_Ax2; class gp_Ax2;
class gp_Ax22d; class gp_Ax22d;
@@ -40,10 +41,10 @@ public:
Standard_EXPORT GeomToStep_MakeAxis2Placement2d(const gp_Ax2& A, Standard_EXPORT GeomToStep_MakeAxis2Placement2d(const gp_Ax2& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis2Placement2d(const gp_Ax22d& A, Standard_EXPORT GeomToStep_MakeAxis2Placement2d(const gp_Ax22d& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Axis2Placement2d)& Value() const; Standard_EXPORT const Handle(StepGeom_Axis2Placement2d)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
#include <StepData_StepModel.hxx> #include <StepData_StepModel.hxx>
class StepData_Factors;
class StepGeom_Axis2Placement3d; class StepGeom_Axis2Placement3d;
class gp_Ax2; class gp_Ax2;
class gp_Ax3; class gp_Ax3;
@@ -41,19 +42,19 @@ public:
DEFINE_STANDARD_ALLOC DEFINE_STANDARD_ALLOC
Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const StepData_Factors& theLocalFactors = StepData_Factors()); Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Ax2& A, Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Ax2& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Ax3& A, Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Ax3& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Trsf& T, Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const gp_Trsf& T,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const Handle(Geom_Axis2Placement)& A, Standard_EXPORT GeomToStep_MakeAxis2Placement3d(const Handle(Geom_Axis2Placement)& A,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Axis2Placement3d)& Value() const; Standard_EXPORT const Handle(StepGeom_Axis2Placement3d)& Value() const;

View File

@@ -24,6 +24,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class Geom_BSplineCurve; class Geom_BSplineCurve;
class Geom2d_BSplineCurve; class Geom2d_BSplineCurve;
class StepData_Factors;
class StepGeom_BSplineCurveWithKnots; class StepGeom_BSplineCurveWithKnots;
@@ -40,10 +41,10 @@ public:
Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnots(const Handle(Geom_BSplineCurve)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnots(const Handle(Geom_BSplineCurve)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnots(const Handle(Geom2d_BSplineCurve)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnots(const Handle(Geom2d_BSplineCurve)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BSplineCurveWithKnots)& Value() const; Standard_EXPORT const Handle(StepGeom_BSplineCurveWithKnots)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve; class StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve;
class Geom_BSplineCurve; class Geom_BSplineCurve;
class Geom2d_BSplineCurve; class Geom2d_BSplineCurve;
@@ -41,10 +42,10 @@ public:
Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve(const Handle(Geom_BSplineCurve)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve(const Handle(Geom_BSplineCurve)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve(const Handle(Geom2d_BSplineCurve)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve(const Handle(Geom2d_BSplineCurve)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve)& Value() const; Standard_EXPORT const Handle(StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve)& Value() const;

View File

@@ -22,6 +22,7 @@
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_BSplineSurfaceWithKnots; class StepGeom_BSplineSurfaceWithKnots;
class Geom_BSplineSurface; class Geom_BSplineSurface;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeBSplineSurfaceWithKnots(const Handle(Geom_BSplineSurface)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineSurfaceWithKnots(const Handle(Geom_BSplineSurface)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BSplineSurfaceWithKnots)& Value() const; Standard_EXPORT const Handle(StepGeom_BSplineSurfaceWithKnots)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface; class StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface;
class Geom_BSplineSurface; class Geom_BSplineSurface;
@@ -40,7 +41,7 @@ public:
Standard_EXPORT GeomToStep_MakeBSplineSurfaceWithKnotsAndRationalBSplineSurface(const Handle(Geom_BSplineSurface)& Bsplin, Standard_EXPORT GeomToStep_MakeBSplineSurfaceWithKnotsAndRationalBSplineSurface(const Handle(Geom_BSplineSurface)& Bsplin,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_BoundedCurve; class StepGeom_BoundedCurve;
class Geom_BoundedCurve; class Geom_BoundedCurve;
class Geom2d_BoundedCurve; class Geom2d_BoundedCurve;
@@ -41,10 +42,10 @@ public:
Standard_EXPORT GeomToStep_MakeBoundedCurve(const Handle(Geom_BoundedCurve)& C, Standard_EXPORT GeomToStep_MakeBoundedCurve(const Handle(Geom_BoundedCurve)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeBoundedCurve(const Handle(Geom2d_BoundedCurve)& C, Standard_EXPORT GeomToStep_MakeBoundedCurve(const Handle(Geom2d_BoundedCurve)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BoundedCurve)& Value() const; Standard_EXPORT const Handle(StepGeom_BoundedCurve)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_BoundedSurface; class StepGeom_BoundedSurface;
class Geom_BoundedSurface; class Geom_BoundedSurface;
@@ -40,7 +41,7 @@ public:
Standard_EXPORT GeomToStep_MakeBoundedSurface(const Handle(Geom_BoundedSurface)& C, Standard_EXPORT GeomToStep_MakeBoundedSurface(const Handle(Geom_BoundedSurface)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_BoundedSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_BoundedSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Circle; class StepGeom_Circle;
class gp_Circ; class gp_Circ;
class Geom_Circle; class Geom_Circle;
@@ -41,13 +42,13 @@ public:
Standard_EXPORT GeomToStep_MakeCircle(const gp_Circ& C, Standard_EXPORT GeomToStep_MakeCircle(const gp_Circ& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeCircle(const Handle(Geom_Circle)& C, Standard_EXPORT GeomToStep_MakeCircle(const Handle(Geom_Circle)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeCircle(const Handle(Geom2d_Circle)& C, Standard_EXPORT GeomToStep_MakeCircle(const Handle(Geom2d_Circle)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Circle)& Value() const; Standard_EXPORT const Handle(StepGeom_Circle)& Value() const;

View File

@@ -25,6 +25,7 @@
class StepGeom_Conic; class StepGeom_Conic;
class Geom_Conic; class Geom_Conic;
class Geom2d_Conic; class Geom2d_Conic;
class StepData_Factors;
//! This class implements the mapping between classes //! This class implements the mapping between classes
@@ -39,10 +40,10 @@ public:
Standard_EXPORT GeomToStep_MakeConic(const Handle(Geom_Conic)& C, Standard_EXPORT GeomToStep_MakeConic(const Handle(Geom_Conic)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeConic(const Handle(Geom2d_Conic)& C, Standard_EXPORT GeomToStep_MakeConic(const Handle(Geom2d_Conic)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Conic)& Value() const; Standard_EXPORT const Handle(StepGeom_Conic)& Value() const;

View File

@@ -24,6 +24,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepGeom_ConicalSurface; class StepGeom_ConicalSurface;
class Geom_ConicalSurface; class Geom_ConicalSurface;
class StepData_Factors;
//! This class implements the mapping between class //! This class implements the mapping between class
@@ -38,7 +39,7 @@ public:
Standard_EXPORT GeomToStep_MakeConicalSurface(const Handle(Geom_ConicalSurface)& CSurf, Standard_EXPORT GeomToStep_MakeConicalSurface(const Handle(Geom_ConicalSurface)& CSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_ConicalSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_ConicalSurface)& Value() const;

View File

@@ -22,6 +22,7 @@
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Curve; class StepGeom_Curve;
class Geom_Curve; class Geom_Curve;
class Geom2d_Curve; class Geom2d_Curve;
@@ -39,10 +40,10 @@ public:
Standard_EXPORT GeomToStep_MakeCurve(const Handle(Geom_Curve)& C, Standard_EXPORT GeomToStep_MakeCurve(const Handle(Geom_Curve)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeCurve(const Handle(Geom2d_Curve)& C, Standard_EXPORT GeomToStep_MakeCurve(const Handle(Geom2d_Curve)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Curve)& Value() const; Standard_EXPORT const Handle(StepGeom_Curve)& Value() const;

View File

@@ -24,6 +24,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepGeom_CylindricalSurface; class StepGeom_CylindricalSurface;
class Geom_CylindricalSurface; class Geom_CylindricalSurface;
class StepData_Factors;
//! This class implements the mapping between class //! This class implements the mapping between class
@@ -38,7 +39,7 @@ public:
Standard_EXPORT GeomToStep_MakeCylindricalSurface(const Handle(Geom_CylindricalSurface)& CSurf, Standard_EXPORT GeomToStep_MakeCylindricalSurface(const Handle(Geom_CylindricalSurface)& CSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_CylindricalSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_CylindricalSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_ElementarySurface; class StepGeom_ElementarySurface;
class Geom_ElementarySurface; class Geom_ElementarySurface;
@@ -40,7 +41,7 @@ public:
Standard_EXPORT GeomToStep_MakeElementarySurface(const Handle(Geom_ElementarySurface)& S, Standard_EXPORT GeomToStep_MakeElementarySurface(const Handle(Geom_ElementarySurface)& S,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_ElementarySurface)& Value() const; Standard_EXPORT const Handle(StepGeom_ElementarySurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Ellipse; class StepGeom_Ellipse;
class gp_Elips; class gp_Elips;
class Geom_Ellipse; class Geom_Ellipse;
@@ -41,13 +42,13 @@ public:
Standard_EXPORT GeomToStep_MakeEllipse(const gp_Elips& C, Standard_EXPORT GeomToStep_MakeEllipse(const gp_Elips& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeEllipse(const Handle(Geom_Ellipse)& C, Standard_EXPORT GeomToStep_MakeEllipse(const Handle(Geom_Ellipse)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeEllipse(const Handle(Geom2d_Ellipse)& C, Standard_EXPORT GeomToStep_MakeEllipse(const Handle(Geom2d_Ellipse)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Ellipse)& Value() const; Standard_EXPORT const Handle(StepGeom_Ellipse)& Value() const;

View File

@@ -38,10 +38,10 @@ public:
Standard_EXPORT GeomToStep_MakeHyperbola(const Handle(Geom2d_Hyperbola)& C, Standard_EXPORT GeomToStep_MakeHyperbola(const Handle(Geom2d_Hyperbola)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeHyperbola(const Handle(Geom_Hyperbola)& C, Standard_EXPORT GeomToStep_MakeHyperbola(const Handle(Geom_Hyperbola)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Hyperbola)& Value() const; Standard_EXPORT const Handle(StepGeom_Hyperbola)& Value() const;

View File

@@ -22,6 +22,7 @@
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Line; class StepGeom_Line;
class gp_Lin; class gp_Lin;
class gp_Lin2d; class gp_Lin2d;
@@ -41,16 +42,16 @@ public:
Standard_EXPORT GeomToStep_MakeLine(const gp_Lin& L, Standard_EXPORT GeomToStep_MakeLine(const gp_Lin& L,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeLine(const gp_Lin2d& L, Standard_EXPORT GeomToStep_MakeLine(const gp_Lin2d& L,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeLine(const Handle(Geom_Line)& C, Standard_EXPORT GeomToStep_MakeLine(const Handle(Geom_Line)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeLine(const Handle(Geom2d_Line)& C, Standard_EXPORT GeomToStep_MakeLine(const Handle(Geom2d_Line)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Line)& Value() const; Standard_EXPORT const Handle(StepGeom_Line)& Value() const;

View File

@@ -25,6 +25,7 @@
class StepGeom_Parabola; class StepGeom_Parabola;
class Geom2d_Parabola; class Geom2d_Parabola;
class Geom_Parabola; class Geom_Parabola;
class StepData_Factors;
//! This class implements the mapping between the class //! This class implements the mapping between the class
@@ -38,10 +39,10 @@ public:
Standard_EXPORT GeomToStep_MakeParabola(const Handle(Geom2d_Parabola)& C, Standard_EXPORT GeomToStep_MakeParabola(const Handle(Geom2d_Parabola)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeParabola(const Handle(Geom_Parabola)& C, Standard_EXPORT GeomToStep_MakeParabola(const Handle(Geom_Parabola)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Parabola)& Value() const; Standard_EXPORT const Handle(StepGeom_Parabola)& Value() const;

View File

@@ -22,6 +22,7 @@
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Plane; class StepGeom_Plane;
class gp_Pln; class gp_Pln;
class Geom_Plane; class Geom_Plane;
@@ -39,10 +40,10 @@ public:
Standard_EXPORT GeomToStep_MakePlane(const gp_Pln& P, Standard_EXPORT GeomToStep_MakePlane(const gp_Pln& P,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakePlane(const Handle(Geom_Plane)& P, Standard_EXPORT GeomToStep_MakePlane(const Handle(Geom_Plane)& P,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Plane)& Value() const; Standard_EXPORT const Handle(StepGeom_Plane)& Value() const;

View File

@@ -25,6 +25,7 @@
#include <TColgp_Array1OfPnt.hxx> #include <TColgp_Array1OfPnt.hxx>
#include <TColgp_Array1OfPnt2d.hxx> #include <TColgp_Array1OfPnt2d.hxx>
class StepData_Factors;
class StepGeom_Polyline; class StepGeom_Polyline;
@@ -38,10 +39,10 @@ public:
Standard_EXPORT GeomToStep_MakePolyline(const TColgp_Array1OfPnt& P, Standard_EXPORT GeomToStep_MakePolyline(const TColgp_Array1OfPnt& P,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakePolyline(const TColgp_Array1OfPnt2d& P, Standard_EXPORT GeomToStep_MakePolyline(const TColgp_Array1OfPnt2d& P,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Polyline)& Value() const; Standard_EXPORT const Handle(StepGeom_Polyline)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_RectangularTrimmedSurface; class StepGeom_RectangularTrimmedSurface;
class Geom_RectangularTrimmedSurface; class Geom_RectangularTrimmedSurface;
@@ -40,7 +41,7 @@ public:
Standard_EXPORT GeomToStep_MakeRectangularTrimmedSurface(const Handle(Geom_RectangularTrimmedSurface)& RTSurf, Standard_EXPORT GeomToStep_MakeRectangularTrimmedSurface(const Handle(Geom_RectangularTrimmedSurface)& RTSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_RectangularTrimmedSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_RectangularTrimmedSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_SphericalSurface; class StepGeom_SphericalSurface;
class Geom_SphericalSurface; class Geom_SphericalSurface;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeSphericalSurface(const Handle(Geom_SphericalSurface)& CSurf, Standard_EXPORT GeomToStep_MakeSphericalSurface(const Handle(Geom_SphericalSurface)& CSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_SphericalSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_SphericalSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Surface; class StepGeom_Surface;
class Geom_Surface; class Geom_Surface;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeSurface(const Handle(Geom_Surface)& C, Standard_EXPORT GeomToStep_MakeSurface(const Handle(Geom_Surface)& C,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Surface)& Value() const; Standard_EXPORT const Handle(StepGeom_Surface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_SurfaceOfLinearExtrusion; class StepGeom_SurfaceOfLinearExtrusion;
class Geom_SurfaceOfLinearExtrusion; class Geom_SurfaceOfLinearExtrusion;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeSurfaceOfLinearExtrusion(const Handle(Geom_SurfaceOfLinearExtrusion)& CSurf, Standard_EXPORT GeomToStep_MakeSurfaceOfLinearExtrusion(const Handle(Geom_SurfaceOfLinearExtrusion)& CSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_SurfaceOfLinearExtrusion)& Value() const; Standard_EXPORT const Handle(StepGeom_SurfaceOfLinearExtrusion)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_SurfaceOfRevolution; class StepGeom_SurfaceOfRevolution;
class Geom_SurfaceOfRevolution; class Geom_SurfaceOfRevolution;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeSurfaceOfRevolution(const Handle(Geom_SurfaceOfRevolution)& RevSurf, Standard_EXPORT GeomToStep_MakeSurfaceOfRevolution(const Handle(Geom_SurfaceOfRevolution)& RevSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_SurfaceOfRevolution)& Value() const; Standard_EXPORT const Handle(StepGeom_SurfaceOfRevolution)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_SweptSurface; class StepGeom_SweptSurface;
class Geom_SweptSurface; class Geom_SweptSurface;
@@ -40,7 +41,7 @@ public:
Standard_EXPORT GeomToStep_MakeSweptSurface(const Handle(Geom_SweptSurface)& S, Standard_EXPORT GeomToStep_MakeSweptSurface(const Handle(Geom_SweptSurface)& S,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_SweptSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_SweptSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_ToroidalSurface; class StepGeom_ToroidalSurface;
class Geom_ToroidalSurface; class Geom_ToroidalSurface;
@@ -39,7 +40,7 @@ public:
Standard_EXPORT GeomToStep_MakeToroidalSurface(const Handle(Geom_ToroidalSurface)& TorSurf, Standard_EXPORT GeomToStep_MakeToroidalSurface(const Handle(Geom_ToroidalSurface)& TorSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_ToroidalSurface)& Value() const; Standard_EXPORT const Handle(StepGeom_ToroidalSurface)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <GeomToStep_Root.hxx> #include <GeomToStep_Root.hxx>
class StepData_Factors;
class StepGeom_Vector; class StepGeom_Vector;
class gp_Vec; class gp_Vec;
class gp_Vec2d; class gp_Vec2d;
@@ -42,16 +43,16 @@ public:
Standard_EXPORT GeomToStep_MakeVector(const gp_Vec& V, Standard_EXPORT GeomToStep_MakeVector(const gp_Vec& V,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeVector(const gp_Vec2d& V, Standard_EXPORT GeomToStep_MakeVector(const gp_Vec2d& V,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeVector(const Handle(Geom_Vector)& V, Standard_EXPORT GeomToStep_MakeVector(const Handle(Geom_Vector)& V,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT GeomToStep_MakeVector(const Handle(Geom2d_Vector)& V, Standard_EXPORT GeomToStep_MakeVector(const Handle(Geom2d_Vector)& V,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepGeom_Vector)& Value() const; Standard_EXPORT const Handle(StepGeom_Vector)& Value() const;

View File

@@ -20,7 +20,6 @@
#include <Standard.hxx> #include <Standard.hxx>
#include <Standard_DefineAlloc.hxx> #include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <StepData_Factors.hxx>
#include <Standard_Boolean.hxx> #include <Standard_Boolean.hxx>

View File

@@ -25,15 +25,8 @@ enum Graphic3d_TransModeFlags
Graphic3d_TMF_TriedronPers = 0x0020, //!< object behaves like trihedron - it is fixed at the corner of view and does not resizing (but rotating) Graphic3d_TMF_TriedronPers = 0x0020, //!< object behaves like trihedron - it is fixed at the corner of view and does not resizing (but rotating)
Graphic3d_TMF_2d = 0x0040, //!< object is defined in 2D screen coordinates (pixels) and does not resize, pan and rotate Graphic3d_TMF_2d = 0x0040, //!< object is defined in 2D screen coordinates (pixels) and does not resize, pan and rotate
Graphic3d_TMF_CameraPers = 0x0080, //!< object is in front of the camera Graphic3d_TMF_CameraPers = 0x0080, //!< object is in front of the camera
Graphic3d_TMF_OrthoPers = 0x0100, //!< object is forced to be rendered with orthographic projection.
Graphic3d_TMF_ZoomRotatePers = Graphic3d_TMF_ZoomPers Graphic3d_TMF_ZoomRotatePers = Graphic3d_TMF_ZoomPers
| Graphic3d_TMF_RotatePers //!< object doesn't resize and rotate | Graphic3d_TMF_RotatePers //!< object doesn't resize and rotate
}; };
//! Bitwise OR operator for transform persistence mode flags. Be aware that some flags combinations are not valid.
inline Graphic3d_TransModeFlags operator| (Graphic3d_TransModeFlags a, Graphic3d_TransModeFlags b)
{
return static_cast<Graphic3d_TransModeFlags> (static_cast<uint32_t> (a) | static_cast<uint32_t> (b));
}
#endif #endif

View File

@@ -58,12 +58,6 @@ public:
return (theMode & (Graphic3d_TMF_TriedronPers | Graphic3d_TMF_2d)) != 0; return (theMode & (Graphic3d_TMF_TriedronPers | Graphic3d_TMF_2d)) != 0;
} }
//! Return true if specified mode is orthographic projection transformation persistence.
static Standard_Boolean IsOrthoPers (Graphic3d_TransModeFlags theMode)
{
return (theMode & Graphic3d_TMF_OrthoPers) != 0;
}
public: public:
//! Set transformation persistence. //! Set transformation persistence.
@@ -116,9 +110,6 @@ public:
//! Return true for Graphic3d_TMF_TriedronPers and Graphic3d_TMF_2d modes. //! Return true for Graphic3d_TMF_TriedronPers and Graphic3d_TMF_2d modes.
Standard_Boolean IsTrihedronOr2d() const { return IsTrihedronOr2d (myMode); } Standard_Boolean IsTrihedronOr2d() const { return IsTrihedronOr2d (myMode); }
//! Return true for Graphic3d_TMF_OrthoPers mode.
Standard_Boolean IsOrthoPers () const { return IsOrthoPers (myMode); }
//! Transformation persistence mode flags. //! Transformation persistence mode flags.
Graphic3d_TransModeFlags Mode() const { return myMode; } Graphic3d_TransModeFlags Mode() const { return myMode; }
@@ -306,32 +297,28 @@ public:
//! @param theWorldView [in] the world view transformation matrix. //! @param theWorldView [in] the world view transformation matrix.
//! @param theViewportWidth [in] the width of viewport (for 2d persistence). //! @param theViewportWidth [in] the width of viewport (for 2d persistence).
//! @param theViewportHeight [in] the height of viewport (for 2d persistence). //! @param theViewportHeight [in] the height of viewport (for 2d persistence).
//! @param theToApplyProjPers [in] if should apply projection persistence to matrix (for orthographic persistence).
//! @return transformation matrix to be applied to model world transformation of an object. //! @return transformation matrix to be applied to model world transformation of an object.
template<class T> template<class T>
NCollection_Mat4<T> Compute (const Handle(Graphic3d_Camera)& theCamera, NCollection_Mat4<T> Compute (const Handle(Graphic3d_Camera)& theCamera,
const NCollection_Mat4<T>& theProjection, const NCollection_Mat4<T>& theProjection,
const NCollection_Mat4<T>& theWorldView, const NCollection_Mat4<T>& theWorldView,
const Standard_Integer theViewportWidth, const Standard_Integer theViewportWidth,
const Standard_Integer theViewportHeight, const Standard_Integer theViewportHeight) const;
const Standard_Boolean theToApplyProjPers = false) const;
//! Apply transformation persistence on specified matrices. //! Apply transformation persistence on specified matrices.
//! @param theCamera [in] camera definition //! @param theCamera camera definition
//! @param theProjection [in] projection matrix to modify //! @param theProjection projection matrix to modify
//! @param theWorldView [in/out] world-view matrix to modify //! @param theWorldView world-view matrix to modify
//! @param theViewportWidth [in] viewport width //! @param theViewportWidth viewport width
//! @param theViewportHeight [in] viewport height //! @param theViewportHeight viewport height
//! @param theAnchor [in] if not NULL, overrides anchor point //! @param theAnchor if not NULL, overrides anchor point
//! @param theToApplyProjPers [in] if should apply projection persistence to matrix (for orthographic persistence).
template<class T> template<class T>
void Apply (const Handle(Graphic3d_Camera)& theCamera, void Apply (const Handle(Graphic3d_Camera)& theCamera,
const NCollection_Mat4<T>& theProjection, const NCollection_Mat4<T>& theProjection,
NCollection_Mat4<T>& theWorldView, NCollection_Mat4<T>& theWorldView,
const Standard_Integer theViewportWidth, const Standard_Integer theViewportWidth,
const Standard_Integer theViewportHeight, const Standard_Integer theViewportHeight,
const gp_Pnt* theAnchor = NULL, const gp_Pnt* theAnchor = NULL) const;
const Standard_Boolean theToApplyProjPers = true) const;
//! Dumps the content of me into the stream //! Dumps the content of me into the stream
Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const;
@@ -381,50 +368,41 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
NCollection_Mat4<T>& theWorldView, NCollection_Mat4<T>& theWorldView,
const Standard_Integer theViewportWidth, const Standard_Integer theViewportWidth,
const Standard_Integer theViewportHeight, const Standard_Integer theViewportHeight,
const gp_Pnt* theAnchor, const gp_Pnt* theAnchor) const
const Standard_Boolean theToApplyProjPers) const
{ {
(void )theViewportWidth; (void )theViewportWidth;
(void )theProjection;
if (myMode == Graphic3d_TMF_None if (myMode == Graphic3d_TMF_None
|| theViewportHeight == 0) || theViewportHeight == 0)
{ {
return; return;
} }
Handle(Graphic3d_Camera) aCamera = theCamera;
if (IsOrthoPers() && !aCamera->IsOrthographic())
{
aCamera = new Graphic3d_Camera(*theCamera); // If OrthoPers, copy camera and set to orthographic projection
aCamera->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
}
NCollection_Mat4<Standard_Real> aWorldView = aCamera->OrientationMatrix();
// use total size when tiling is active // use total size when tiling is active
const Standard_Integer aVPSizeY = aCamera->Tile().IsValid() ? aCamera->Tile().TotalSize.y() : theViewportHeight; const Standard_Integer aVPSizeY = theCamera->Tile().IsValid() ? theCamera->Tile().TotalSize.y() : theViewportHeight;
// a small enough jitter compensation offset // a small enough jitter compensation offset
// to avoid image dragging within single pixel in corner cases // to avoid image dragging within single pixel in corner cases
const Standard_Real aJitterComp = 0.001; const Standard_Real aJitterComp = 0.001;
if ((myMode & Graphic3d_TMF_TriedronPers) != 0) if (myMode == Graphic3d_TMF_TriedronPers)
{ {
// reset Z focus for trihedron persistence // reset Z focus for trihedron persistence
const Standard_Real aFocus = aCamera->IsOrthographic() const Standard_Real aFocus = theCamera->IsOrthographic()
? aCamera->Distance() ? theCamera->Distance()
: (aCamera->ZFocusType() == Graphic3d_Camera::FocusType_Relative : (theCamera->ZFocusType() == Graphic3d_Camera::FocusType_Relative
? Standard_Real(aCamera->ZFocus() * aCamera->Distance()) ? Standard_Real(theCamera->ZFocus() * theCamera->Distance())
: Standard_Real(aCamera->ZFocus())); : Standard_Real(theCamera->ZFocus()));
// scale factor to pixels // scale factor to pixels
const gp_XYZ aViewDim = aCamera->ViewDimensions (aFocus); const gp_XYZ aViewDim = theCamera->ViewDimensions (aFocus);
const Standard_Real aScale = Abs(aViewDim.Y()) / Standard_Real(aVPSizeY); const Standard_Real aScale = Abs(aViewDim.Y()) / Standard_Real(aVPSizeY);
const gp_Dir aForward = aCamera->Direction(); const gp_Dir aForward = theCamera->Direction();
gp_XYZ aCenter = aCamera->Center().XYZ() + aForward.XYZ() * (aFocus - aCamera->Distance()); gp_XYZ aCenter = theCamera->Center().XYZ() + aForward.XYZ() * (aFocus - theCamera->Distance());
if ((myParams.Params2d.Corner & (Aspect_TOTP_LEFT | Aspect_TOTP_RIGHT)) != 0) if ((myParams.Params2d.Corner & (Aspect_TOTP_LEFT | Aspect_TOTP_RIGHT)) != 0)
{ {
const Standard_Real anOffsetX = (Standard_Real(myParams.Params2d.OffsetX) + aJitterComp) * aScale; const Standard_Real anOffsetX = (Standard_Real(myParams.Params2d.OffsetX) + aJitterComp) * aScale;
const gp_Dir aSide = aForward.Crossed (aCamera->Up()); const gp_Dir aSide = aForward.Crossed (theCamera->Up());
const gp_XYZ aDeltaX = aSide.XYZ() * (Abs(aViewDim.X()) * aCamera->NDC2dOffsetX() - anOffsetX); const gp_XYZ aDeltaX = aSide.XYZ() * (Abs(aViewDim.X()) * theCamera->NDC2dOffsetX() - anOffsetX);
if ((myParams.Params2d.Corner & Aspect_TOTP_RIGHT) != 0) if ((myParams.Params2d.Corner & Aspect_TOTP_RIGHT) != 0)
{ {
aCenter += aDeltaX; aCenter += aDeltaX;
@@ -437,7 +415,7 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
if ((myParams.Params2d.Corner & (Aspect_TOTP_TOP | Aspect_TOTP_BOTTOM)) != 0) if ((myParams.Params2d.Corner & (Aspect_TOTP_TOP | Aspect_TOTP_BOTTOM)) != 0)
{ {
const Standard_Real anOffsetY = (Standard_Real(myParams.Params2d.OffsetY) + aJitterComp) * aScale; const Standard_Real anOffsetY = (Standard_Real(myParams.Params2d.OffsetY) + aJitterComp) * aScale;
const gp_XYZ aDeltaY = aCamera->Up().XYZ() * (Abs(aViewDim.Y()) * aCamera->NDC2dOffsetY() - anOffsetY); const gp_XYZ aDeltaY = theCamera->Up().XYZ() * (Abs(aViewDim.Y()) * theCamera->NDC2dOffsetY() - anOffsetY);
if ((myParams.Params2d.Corner & Aspect_TOTP_TOP) != 0) if ((myParams.Params2d.Corner & Aspect_TOTP_TOP) != 0)
{ {
aCenter += aDeltaY; aCenter += aDeltaY;
@@ -448,24 +426,27 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
} }
} }
NCollection_Mat4<Standard_Real> aWorldView = theCamera->OrientationMatrix();
Graphic3d_TransformUtils::Translate (aWorldView, aCenter.X(), aCenter.Y(), aCenter.Z()); Graphic3d_TransformUtils::Translate (aWorldView, aCenter.X(), aCenter.Y(), aCenter.Z());
Graphic3d_TransformUtils::Scale (aWorldView, aScale, aScale, aScale); Graphic3d_TransformUtils::Scale (aWorldView, aScale, aScale, aScale);
theWorldView.ConvertFrom (aWorldView);
return;
} }
else if ((myMode & Graphic3d_TMF_2d) != 0) else if (myMode == Graphic3d_TMF_2d)
{ {
const Standard_Real aFocus = aCamera->IsOrthographic() const Standard_Real aFocus = theCamera->IsOrthographic()
? aCamera->Distance() ? theCamera->Distance()
: (aCamera->ZFocusType() == Graphic3d_Camera::FocusType_Relative : (theCamera->ZFocusType() == Graphic3d_Camera::FocusType_Relative
? Standard_Real(aCamera->ZFocus() * aCamera->Distance()) ? Standard_Real(theCamera->ZFocus() * theCamera->Distance())
: Standard_Real(aCamera->ZFocus())); : Standard_Real(theCamera->ZFocus()));
// scale factor to pixels // scale factor to pixels
const gp_XYZ aViewDim = aCamera->ViewDimensions (aFocus); const gp_XYZ aViewDim = theCamera->ViewDimensions (aFocus);
const Standard_Real aScale = Abs(aViewDim.Y()) / Standard_Real(aVPSizeY); const Standard_Real aScale = Abs(aViewDim.Y()) / Standard_Real(aVPSizeY);
gp_XYZ aCenter (0.0, 0.0, -aFocus); gp_XYZ aCenter (0.0, 0.0, -aFocus);
if ((myParams.Params2d.Corner & (Aspect_TOTP_LEFT | Aspect_TOTP_RIGHT)) != 0) if ((myParams.Params2d.Corner & (Aspect_TOTP_LEFT | Aspect_TOTP_RIGHT)) != 0)
{ {
aCenter.SetX (-aViewDim.X() * aCamera->NDC2dOffsetX() + (Standard_Real(myParams.Params2d.OffsetX) + aJitterComp) * aScale); aCenter.SetX (-aViewDim.X() * theCamera->NDC2dOffsetX() + (Standard_Real(myParams.Params2d.OffsetX) + aJitterComp) * aScale);
if ((myParams.Params2d.Corner & Aspect_TOTP_RIGHT) != 0) if ((myParams.Params2d.Corner & Aspect_TOTP_RIGHT) != 0)
{ {
aCenter.SetX (-aCenter.X()); aCenter.SetX (-aCenter.X());
@@ -473,24 +454,26 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
} }
if ((myParams.Params2d.Corner & (Aspect_TOTP_TOP | Aspect_TOTP_BOTTOM)) != 0) if ((myParams.Params2d.Corner & (Aspect_TOTP_TOP | Aspect_TOTP_BOTTOM)) != 0)
{ {
aCenter.SetY (-aViewDim.Y() * aCamera->NDC2dOffsetY() + (Standard_Real(myParams.Params2d.OffsetY) + aJitterComp) * aScale); aCenter.SetY (-aViewDim.Y() * theCamera->NDC2dOffsetY() + (Standard_Real(myParams.Params2d.OffsetY) + aJitterComp) * aScale);
if ((myParams.Params2d.Corner & Aspect_TOTP_TOP) != 0) if ((myParams.Params2d.Corner & Aspect_TOTP_TOP) != 0)
{ {
aCenter.SetY (-aCenter.Y()); aCenter.SetY (-aCenter.Y());
} }
} }
aWorldView.InitIdentity(); theWorldView.InitIdentity();
Graphic3d_TransformUtils::Translate (aWorldView, aCenter.X(), aCenter.Y(), aCenter.Z()); Graphic3d_TransformUtils::Translate (theWorldView, T(aCenter.X()), T(aCenter.Y()), T(aCenter.Z()));
Graphic3d_TransformUtils::Scale (aWorldView, aScale, aScale, aScale); Graphic3d_TransformUtils::Scale (theWorldView, T(aScale), T(aScale), T(aScale));
return;
} }
else if ((myMode & Graphic3d_TMF_CameraPers) != 0) else if ((myMode & Graphic3d_TMF_CameraPers) != 0)
{ {
aWorldView.InitIdentity(); theWorldView.InitIdentity();
} }
else else
{ {
// Compute reference point for transformation in untransformed projection space. // Compute reference point for transformation in untransformed projection space.
NCollection_Mat4<Standard_Real> aWorldView = theCamera->OrientationMatrix();
if (theAnchor != NULL) if (theAnchor != NULL)
{ {
Graphic3d_TransformUtils::Translate (aWorldView, theAnchor->X(), theAnchor->Y(), theAnchor->Z()); Graphic3d_TransformUtils::Translate (aWorldView, theAnchor->X(), theAnchor->Y(), theAnchor->Z());
@@ -520,19 +503,12 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
if ((myMode & Graphic3d_TMF_ZoomPers) != 0) if ((myMode & Graphic3d_TMF_ZoomPers) != 0)
{ {
// lock zooming // lock zooming
Standard_Real aScale = persistentScale (aCamera, theViewportWidth, theViewportHeight); Standard_Real aScale = persistentScale (theCamera, theViewportWidth, theViewportHeight);
Graphic3d_TransformUtils::Scale (aWorldView, aScale, aScale, aScale); Graphic3d_TransformUtils::Scale (aWorldView, aScale, aScale, aScale);
} }
theWorldView.ConvertFrom (aWorldView);
return;
} }
if (!theCamera->IsOrthographic() && IsOrthoPers() && theToApplyProjPers)
{
Graphic3d_Mat4d aProjInv;
aProjInv.ConvertFrom (theProjection.Inverted());
aWorldView = (aProjInv * aCamera->ProjectionMatrix()) * aWorldView;
}
theWorldView.ConvertFrom (aWorldView);
} }
// ======================================================================= // =======================================================================
@@ -579,7 +555,7 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera,
const Standard_Integer theViewportHeight, const Standard_Integer theViewportHeight,
BVH_Box<T, 3>& theBoundingBox) const BVH_Box<T, 3>& theBoundingBox) const
{ {
NCollection_Mat4<T> aTPers = Compute (theCamera, theProjection, theWorldView, theViewportWidth, theViewportHeight, false); NCollection_Mat4<T> aTPers = Compute (theCamera, theProjection, theWorldView, theViewportWidth, theViewportHeight);
if (aTPers.IsIdentity() if (aTPers.IsIdentity()
|| !theBoundingBox.IsValid()) || !theBoundingBox.IsValid())
{ {
@@ -618,8 +594,7 @@ NCollection_Mat4<T> Graphic3d_TransformPers::Compute (const Handle(Graphic3d_Cam
const NCollection_Mat4<T>& theProjection, const NCollection_Mat4<T>& theProjection,
const NCollection_Mat4<T>& theWorldView, const NCollection_Mat4<T>& theWorldView,
const Standard_Integer theViewportWidth, const Standard_Integer theViewportWidth,
const Standard_Integer theViewportHeight, const Standard_Integer theViewportHeight) const
const Standard_Boolean theToApplyProjPers) const
{ {
if (myMode == Graphic3d_TMF_None) if (myMode == Graphic3d_TMF_None)
{ {
@@ -635,7 +610,7 @@ NCollection_Mat4<T> Graphic3d_TransformPers::Compute (const Handle(Graphic3d_Cam
// compute only world-view matrix difference to avoid floating point instability // compute only world-view matrix difference to avoid floating point instability
// caused by projection matrix modifications outside of this algorithm (e.g. by Z-fit) // caused by projection matrix modifications outside of this algorithm (e.g. by Z-fit)
Apply (theCamera, theProjection, aWorldView, theViewportWidth, theViewportHeight, NULL, theToApplyProjPers); Apply (theCamera, theProjection, aWorldView, theViewportWidth, theViewportHeight);
return anUnviewMat * aWorldView; return anUnviewMat * aWorldView;
} }

View File

@@ -91,14 +91,7 @@ void RWStepBasic_RWProduct::WriteStep
// --- own field : description --- // --- own field : description ---
if (!ent->Description().IsNull()) SW.Send(ent->Description());
{
SW.Send(ent->Description());
}
else
{
SW.SendUndef();
}
// --- own field : frameOfReference --- // --- own field : frameOfReference ---

View File

@@ -78,14 +78,7 @@ void RWStepBasic_RWProductDefinition::WriteStep
// --- own field : description --- // --- own field : description ---
if (!ent->Description().IsNull()) SW.Send(ent->Description());
{
SW.Send(ent->Description());
}
else
{
SW.SendUndef();
}
// --- own field : formation --- // --- own field : formation ---

View File

@@ -71,14 +71,7 @@ void RWStepBasic_RWProductDefinitionFormation::WriteStep
// --- own field : description --- // --- own field : description ---
if (!ent->Description().IsNull()) SW.Send(ent->Description());
{
SW.Send(ent->Description());
}
else
{
SW.SendUndef();
}
// --- own field : ofProduct --- // --- own field : ofProduct ---

View File

@@ -151,8 +151,6 @@ bool STEPCAFControl_ConfigurationNode::Load(const Handle(DE_ConfigurationContext
theResource->BooleanVal("write.props", InternalParameters.WriteProps, aScope); theResource->BooleanVal("write.props", InternalParameters.WriteProps, aScope);
InternalParameters.WriteModelType = (STEPControl_StepModelType) InternalParameters.WriteModelType = (STEPControl_StepModelType)
theResource->IntegerVal("write.model.type", InternalParameters.WriteModelType, aScope); theResource->IntegerVal("write.model.type", InternalParameters.WriteModelType, aScope);
InternalParameters.WriteNonmanifold =
theResource->IntegerVal("write.nonmanifold", InternalParameters.WriteNonmanifold, aScope);
return true; return true;
} }

View File

@@ -74,12 +74,12 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
aReader.SetLayerMode(aNode->InternalParameters.ReadLayer); aReader.SetLayerMode(aNode->InternalParameters.ReadLayer);
aReader.SetPropsMode(aNode->InternalParameters.ReadProps); aReader.SetPropsMode(aNode->InternalParameters.ReadProps);
IFSelect_ReturnStatus aReadStat = IFSelect_RetVoid; IFSelect_ReturnStatus aReadStat = IFSelect_RetVoid;
aReadStat = aReader.ReadFile(thePath.ToCString(), aNode->InternalParameters); StepData_ConfParameters aParams;
aReadStat = aReader.ReadFile(thePath.ToCString(), aParams);
if (aReadStat != IFSelect_RetDone) if (aReadStat != IFSelect_RetDone)
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
thePath << "\t: abandon"; thePath << "\t: abandon";
aNode->InternalParameters.Reset();
return false; return false;
} }
@@ -87,10 +87,8 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
thePath << "\t: Cannot read any relevant data from the STEP file"; thePath << "\t: Cannot read any relevant data from the STEP file";
aNode->InternalParameters.Reset();
return false; return false;
} }
aNode->InternalParameters.Reset();
return true; return true;
} }
@@ -124,13 +122,13 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
aWriter.SetNameMode(aNode->InternalParameters.WriteName); aWriter.SetNameMode(aNode->InternalParameters.WriteName);
aWriter.SetLayerMode(aNode->InternalParameters.WriteLayer); aWriter.SetLayerMode(aNode->InternalParameters.WriteLayer);
aWriter.SetPropsMode(aNode->InternalParameters.WriteProps); aWriter.SetPropsMode(aNode->InternalParameters.WriteProps);
aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(aNode->InternalParameters.WriteUnit, UnitsMethods_LengthUnit_Millimeter));
TDF_Label aLabel; TDF_Label aLabel;
if (!aWriter.Transfer(theDocument, aNode->InternalParameters, aMode, 0, theProgress)) StepData_ConfParameters aParams;
if (!aWriter.Transfer(theDocument, aParams, aMode, 0, theProgress))
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
thePath << "\t: The document cannot be translated or gives no result"; thePath << "\t: The document cannot be translated or gives no result";
aNode->InternalParameters.Reset();
return false; return false;
} }
IFSelect_ReturnStatus aStatus = aWriter.Write(thePath.ToCString()); IFSelect_ReturnStatus aStatus = aWriter.Write(thePath.ToCString());
@@ -140,7 +138,6 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
thePath << "\t: No file written"; thePath << "\t: No file written";
aNode->InternalParameters.Reset();
return false;; return false;;
} }
case IFSelect_RetDone: case IFSelect_RetDone:
@@ -151,11 +148,9 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during writing the file " <<
thePath << "\t: Error on writing file"; thePath << "\t: Error on writing file";
aNode->InternalParameters.Reset();
return false; return false;
} }
} }
aNode->InternalParameters.Reset();
return true; return true;
} }
@@ -204,13 +199,13 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
STEPControl_Reader aReader; STEPControl_Reader aReader;
aReader.SetWS(theWS); aReader.SetWS(theWS);
IFSelect_ReturnStatus aReadstat = IFSelect_RetVoid; IFSelect_ReturnStatus aReadstat = IFSelect_RetVoid;
aReadstat = aReader.ReadFile(thePath.ToCString(), aNode->InternalParameters); StepData_ConfParameters aParams;
aReadstat = aReader.ReadFile(thePath.ToCString(), aParams);
Handle(StepData_StepModel) aModel = aReader.StepModel(); Handle(StepData_StepModel) aModel = aReader.StepModel();
if (aReadstat != IFSelect_RetDone) if (aReadstat != IFSelect_RetDone)
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
thePath << "\t: abandon, no model loaded"; thePath << "\t: abandon, no model loaded";
aNode->InternalParameters.Reset();
return false; return false;
} }
aModel->SetLocalLengthUnit(aNode->GlobalParameters.LengthUnit); aModel->SetLocalLengthUnit(aNode->GlobalParameters.LengthUnit);
@@ -218,11 +213,9 @@ bool STEPCAFControl_Provider::Read(const TCollection_AsciiString& thePath,
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
thePath << "\t:Cannot read any relevant data from the STEP file"; thePath << "\t:Cannot read any relevant data from the STEP file";
aNode->InternalParameters.Reset();
return false; return false;
} }
theShape = aReader.OneShape(); theShape = aReader.OneShape();
aNode->InternalParameters.Reset();
return true; return true;
} }
@@ -249,21 +242,19 @@ bool STEPCAFControl_Provider::Write(const TCollection_AsciiString& thePath,
IFSelect_ReturnStatus aWritestat = IFSelect_RetVoid; IFSelect_ReturnStatus aWritestat = IFSelect_RetVoid;
Handle(StepData_StepModel) aModel = aWriter.Model(); Handle(StepData_StepModel) aModel = aWriter.Model();
aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(aNode->InternalParameters.WriteUnit, UnitsMethods_LengthUnit_Millimeter)); aModel->SetWriteLengthUnit(UnitsMethods::GetLengthUnitScale(aNode->InternalParameters.WriteUnit, UnitsMethods_LengthUnit_Millimeter));
aWritestat = aWriter.Transfer(theShape, aNode->InternalParameters.WriteModelType, aNode->InternalParameters, true, theProgress); StepData_ConfParameters aParams;
aWritestat = aWriter.Transfer(theShape, aNode->InternalParameters.WriteModelType, aParams, true, theProgress);
if (aWritestat != IFSelect_RetDone) if (aWritestat != IFSelect_RetDone)
{ {
Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " << Message::SendFail() << "Error in the STEPCAFControl_Provider during reading the file " <<
thePath << "\t: abandon, no model loaded"; thePath << "\t: abandon, no model loaded";
aNode->InternalParameters.Reset();
return false; return false;
} }
if (aWriter.Write(thePath.ToCString()) != IFSelect_RetDone) if (aWriter.Write(thePath.ToCString()) != IFSelect_RetDone)
{ {
Message::SendFail() << "STEPCAFControl_Provider: Error on writing file"; Message::SendFail() << "STEPCAFControl_Provider: Error on writing file";
aNode->InternalParameters.Reset();
return false; return false;
} }
aNode->InternalParameters.Reset();
return true; return true;
} }

View File

@@ -573,7 +573,6 @@ Standard_Boolean STEPCAFControl_Reader::Transfer (STEPControl_Reader &reader,
{ {
reader.ClearShapes(); reader.ClearShapes();
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(reader.Model()); Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(reader.Model());
myReader.WS()->TransferReader()->SetEncodeRegAngle(aModel->InternalParameters.EncodeRegAngle);
StepData_Factors aLocalFactors; StepData_Factors aLocalFactors;
prepareUnits(aModel, doc, aLocalFactors); prepareUnits(aModel, doc, aLocalFactors);
Standard_Integer i; Standard_Integer i;
@@ -2554,36 +2553,11 @@ static Standard_Boolean ReadDatums(const Handle(XCAFDoc_ShapeTool) &STool,
const Handle(StepDimTol_GeometricToleranceWithDatumReference)& GTWDR) const Handle(StepDimTol_GeometricToleranceWithDatumReference)& GTWDR)
{ {
if (GTWDR.IsNull()) return Standard_False; if (GTWDR.IsNull()) return Standard_False;
Handle(StepDimTol_HArray1OfDatumSystemOrReference) aHADSOR = GTWDR->DatumSystemAP242(); Handle(StepDimTol_HArray1OfDatumReference) HADR = GTWDR->DatumSystem();
if (aHADSOR.IsNull()) if (HADR.IsNull()) return Standard_False;
{ for (Standard_Integer idr = 1; idr <= HADR->Length(); idr++) {
return Standard_False; Handle(StepDimTol_DatumReference) DR = HADR->Value(idr);
} Handle(StepDimTol_Datum) aDatum = DR->ReferencedDatum();
NCollection_List<Handle(StepDimTol_Datum)> aDatumList;
for (Standard_Integer idr = 1; idr <= aHADSOR->Length(); idr++)
{
const StepDimTol_DatumSystemOrReference aDSOR = aHADSOR->Value(idr);
if (aDSOR.IsNull()) continue;
Handle(StepDimTol_DatumSystem) aDS = aDSOR.DatumSystem();
Handle(StepDimTol_DatumReference) aDR = aDSOR.DatumReference();
Handle(StepDimTol_Datum) aDatum;
if (!aDS.IsNull())
{
auto aDatumConList = aDS->Constituents();
for (Standard_Integer anInd = 1; anInd <= aDatumConList->Length(); anInd++)
{
Handle(StepDimTol_DatumReferenceCompartment) aDatRefC = aDatumConList->Value(anInd);
aDatumList.Append(aDatRefC->Base().Datum());
}
}
else if (!aDR.IsNull())
{
aDatumList.Append(aDR->ReferencedDatum());
}
}
for(NCollection_List<Handle(StepDimTol_Datum)>::Iterator anIt(aDatumList); anIt.More(); anIt.Next())
{
Handle(StepDimTol_Datum) aDatum = anIt.Value();
if (aDatum.IsNull()) continue; if (aDatum.IsNull()) continue;
Interface_EntityIterator subs4 = graph.Sharings(aDatum); Interface_EntityIterator subs4 = graph.Sharings(aDatum);
for (subs4.Start(); subs4.More(); subs4.Next()) { for (subs4.Start(); subs4.More(); subs4.Next()) {

View File

@@ -17,7 +17,6 @@
#define _STEPCAFControl_Reader_HeaderFile #define _STEPCAFControl_Reader_HeaderFile
#include <STEPControl_Reader.hxx> #include <STEPControl_Reader.hxx>
#include <StepData_Factors.hxx>
#include <IFSelect_ReturnStatus.hxx> #include <IFSelect_ReturnStatus.hxx>
#include <TDF_LabelSequence.hxx> #include <TDF_LabelSequence.hxx>
#include <TopTools_MapOfShape.hxx> #include <TopTools_MapOfShape.hxx>
@@ -39,6 +38,8 @@ class StepShape_ConnectedFaceSet;
class StepRepr_NextAssemblyUsageOccurrence; class StepRepr_NextAssemblyUsageOccurrence;
class STEPConstruct_Tool; class STEPConstruct_Tool;
class StepDimTol_Datum; class StepDimTol_Datum;
class StepData_Factors;
//! Provides a tool to read STEP file and put it into //! Provides a tool to read STEP file and put it into
//! DECAF document. Besides transfer of shapes (including //! DECAF document. Besides transfer of shapes (including
@@ -233,7 +234,7 @@ protected:
Standard_EXPORT Standard_Boolean ReadColors Standard_EXPORT Standard_Boolean ReadColors
(const Handle(XSControl_WorkSession)& WS, (const Handle(XSControl_WorkSession)& WS,
const Handle(TDocStd_Document)& doc, const Handle(TDocStd_Document)& doc,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Reads names of parts defined in the STEP model and //! Reads names of parts defined in the STEP model and
//! assigns them to corresponding labels in the DECAF document //! assigns them to corresponding labels in the DECAF document
@@ -245,7 +246,7 @@ protected:
Standard_EXPORT Standard_Boolean ReadValProps (const Handle(XSControl_WorkSession)& WS, Standard_EXPORT Standard_Boolean ReadValProps (const Handle(XSControl_WorkSession)& WS,
const Handle(TDocStd_Document)& doc, const Handle(TDocStd_Document)& doc,
const STEPCAFControl_DataMapOfPDExternFile& PDFileMap, const STEPCAFControl_DataMapOfPDExternFile& PDFileMap,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Reads layers of parts defined in the STEP model and //! Reads layers of parts defined in the STEP model and
//! set reference between shape and layers in the DECAF document //! set reference between shape and layers in the DECAF document
@@ -259,19 +260,19 @@ protected:
//! set reference between shape instances from different assemblyes //! set reference between shape instances from different assemblyes
Standard_EXPORT Standard_Boolean ReadGDTs (const Handle(XSControl_WorkSession)& WS, Standard_EXPORT Standard_Boolean ReadGDTs (const Handle(XSControl_WorkSession)& WS,
const Handle(TDocStd_Document)& doc, const Handle(TDocStd_Document)& doc,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Reads materials for instances defined in the STEP model and //! Reads materials for instances defined in the STEP model and
//! set reference between shape instances from different assemblyes //! set reference between shape instances from different assemblyes
Standard_EXPORT Standard_Boolean ReadMaterials (const Handle(XSControl_WorkSession)& WS, Standard_EXPORT Standard_Boolean ReadMaterials (const Handle(XSControl_WorkSession)& WS,
const Handle(TDocStd_Document)& doc, const Handle(TDocStd_Document)& doc,
const Handle(TColStd_HSequenceOfTransient)& SeqPDS, const Handle(TColStd_HSequenceOfTransient)& SeqPDS,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Reads Views for instances defined in the STEP model //! Reads Views for instances defined in the STEP model
Standard_EXPORT Standard_Boolean ReadViews(const Handle(XSControl_WorkSession)& theWS, Standard_EXPORT Standard_Boolean ReadViews(const Handle(XSControl_WorkSession)& theWS,
const Handle(TDocStd_Document)& theDoc, const Handle(TDocStd_Document)& theDoc,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Populates the sub-Label of the passed TDF Label with shape //! Populates the sub-Label of the passed TDF Label with shape
//! data associated with the given STEP Representation Item, //! data associated with the given STEP Representation Item,
@@ -313,20 +314,20 @@ private:
const Standard_Real theModifValue, const Standard_Real theModifValue,
const Handle(TDocStd_Document)& theDoc, const Handle(TDocStd_Document)& theDoc,
const Handle(XSControl_WorkSession)& theWS, const Handle(XSControl_WorkSession)& theWS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Internal method. Read Datums, connected to GeomTolerance theGDTL. //! Internal method. Read Datums, connected to GeomTolerance theGDTL.
Standard_Boolean readDatumsAP242(const Handle(Standard_Transient)& theEnt, Standard_Boolean readDatumsAP242(const Handle(Standard_Transient)& theEnt,
const TDF_Label theGDTL, const TDF_Label theGDTL,
const Handle(TDocStd_Document)& theDoc, const Handle(TDocStd_Document)& theDoc,
const Handle(XSControl_WorkSession)& theWS, const Handle(XSControl_WorkSession)& theWS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Internal method. Read Dimension or GeomTolerance. //! Internal method. Read Dimension or GeomTolerance.
TDF_Label createGDTObjectInXCAF(const Handle(Standard_Transient)& theEnt, TDF_Label createGDTObjectInXCAF(const Handle(Standard_Transient)& theEnt,
const Handle(TDocStd_Document)& theDoc, const Handle(TDocStd_Document)& theDoc,
const Handle(XSControl_WorkSession)& theWS, const Handle(XSControl_WorkSession)& theWS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Prepares units for transfer //! Prepares units for transfer
void prepareUnits(const Handle(StepData_StepModel)& theModel, void prepareUnits(const Handle(StepData_StepModel)& theModel,

View File

@@ -25,7 +25,6 @@
#include <STEPControl_Writer.hxx> #include <STEPControl_Writer.hxx>
#include <StepAP242_GeometricItemSpecificUsage.hxx> #include <StepAP242_GeometricItemSpecificUsage.hxx>
#include <StepData_ConfParameters.hxx> #include <StepData_ConfParameters.hxx>
#include <StepData_Factors.hxx>
#include <StepDimTol_Datum.hxx> #include <StepDimTol_Datum.hxx>
#include <StepDimTol_GeometricTolerance.hxx> #include <StepDimTol_GeometricTolerance.hxx>
#include <StepDimTol_HArray1OfDatumSystemOrReference.hxx> #include <StepDimTol_HArray1OfDatumSystemOrReference.hxx>
@@ -40,6 +39,7 @@ class XSControl_WorkSession;
class TDocStd_Document; class TDocStd_Document;
class STEPCAFControl_ExternFile; class STEPCAFControl_ExternFile;
class TopoDS_Shape; class TopoDS_Shape;
class StepData_Factors;
//! Provides a tool to write DECAF document to the //! Provides a tool to write DECAF document to the
//! STEP file. Besides transfer of shapes (including //! STEP file. Besides transfer of shapes (including
@@ -233,7 +233,7 @@ protected:
TopoDS_Shape transferExternFiles(const TDF_Label& theLabel, TopoDS_Shape transferExternFiles(const TDF_Label& theLabel,
const STEPControl_StepModelType theMode, const STEPControl_StepModelType theMode,
TDF_LabelSequence& theLabelSeq, TDF_LabelSequence& theLabelSeq,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Standard_CString thePrefix = "", const Standard_CString thePrefix = "",
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -256,7 +256,7 @@ protected:
//! Write D&GTs assigned to specified labels, to STEP model, according AP242 //! Write D&GTs assigned to specified labels, to STEP model, according AP242
Standard_Boolean writeDGTsAP242(const Handle(XSControl_WorkSession)& theWS, Standard_Boolean writeDGTsAP242(const Handle(XSControl_WorkSession)& theWS,
const TDF_LabelSequence& theLabels, const TDF_LabelSequence& theLabels,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Write materials assigned to specified labels, to STEP model //! Write materials assigned to specified labels, to STEP model
Standard_Boolean writeMaterials(const Handle(XSControl_WorkSession)& theWS, Standard_Boolean writeMaterials(const Handle(XSControl_WorkSession)& theWS,
@@ -297,14 +297,14 @@ protected:
const gp_Ax2& theAnnotationPlane, const gp_Ax2& theAnnotationPlane,
const gp_Pnt& theTextPosition, const gp_Pnt& theTextPosition,
const Handle(Standard_Transient)& theDimension, const Handle(Standard_Transient)& theDimension,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Handle(StepDimTol_Datum) writeDatumAP242(const Handle(XSControl_WorkSession)& theWS, Handle(StepDimTol_Datum) writeDatumAP242(const Handle(XSControl_WorkSession)& theWS,
const TDF_LabelSequence& theShapeL, const TDF_LabelSequence& theShapeL,
const TDF_Label& theDatumL, const TDF_Label& theDatumL,
const Standard_Boolean isFirstDTarget, const Standard_Boolean isFirstDTarget,
const Handle(StepDimTol_Datum)& theWrittenDatum, const Handle(StepDimTol_Datum)& theWrittenDatum,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
void writeToleranceZone(const Handle(XSControl_WorkSession)& theWS, void writeToleranceZone(const Handle(XSControl_WorkSession)& theWS,
const Handle(XCAFDimTolObjects_GeomToleranceObject)& theObject, const Handle(XCAFDimTolObjects_GeomToleranceObject)& theObject,
@@ -316,7 +316,7 @@ protected:
const TDF_Label& theGeomTolL, const TDF_Label& theGeomTolL,
const Handle(StepDimTol_HArray1OfDatumSystemOrReference)& theDatumSystem, const Handle(StepDimTol_HArray1OfDatumSystemOrReference)& theDatumSystem,
const Handle(StepRepr_RepresentationContext)& theRC, const Handle(StepRepr_RepresentationContext)& theRC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
private: private:

View File

@@ -23,8 +23,8 @@
#include <Standard_Integer.hxx> #include <Standard_Integer.hxx>
#include <Standard_CString.hxx> #include <Standard_CString.hxx>
#include <StepData_Factors.hxx>
#include <StepBasic_SiPrefix.hxx> #include <StepBasic_SiPrefix.hxx>
class StepData_Factors;
class StepData_StepModel; class StepData_StepModel;
class StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx; class StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx;
class StepRepr_GlobalUnitAssignedContext; class StepRepr_GlobalUnitAssignedContext;
@@ -49,7 +49,7 @@ public:
//! uncertainty equal to Tol3d) //! uncertainty equal to Tol3d)
Standard_EXPORT void Init (const Standard_Real Tol3d, Standard_EXPORT void Init (const Standard_Real Tol3d,
const Handle(StepData_StepModel)& theModel, const Handle(StepData_StepModel)& theModel,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Returns True if Init was called successfully //! Returns True if Init was called successfully
Standard_EXPORT Standard_Boolean IsDone() const; Standard_EXPORT Standard_Boolean IsDone() const;
@@ -60,10 +60,10 @@ public:
//! Computes the length, plane angle and solid angle conversion //! Computes the length, plane angle and solid angle conversion
//! factor . Returns a status, 0 if OK //! factor . Returns a status, 0 if OK
Standard_EXPORT Standard_Integer ComputeFactors (const Handle(StepRepr_GlobalUnitAssignedContext)& aContext, Standard_EXPORT Standard_Integer ComputeFactors (const Handle(StepRepr_GlobalUnitAssignedContext)& aContext,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT Standard_Integer ComputeFactors (const Handle(StepBasic_NamedUnit)& aUnit, Standard_EXPORT Standard_Integer ComputeFactors (const Handle(StepBasic_NamedUnit)& aUnit,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Computes the uncertainty value (for length) //! Computes the uncertainty value (for length)
Standard_EXPORT Standard_Integer ComputeTolerance (const Handle(StepRepr_GlobalUncertaintyAssignedContext)& aContext); Standard_EXPORT Standard_Integer ComputeTolerance (const Handle(StepRepr_GlobalUncertaintyAssignedContext)& aContext);

View File

@@ -26,6 +26,7 @@
#include <Standard_CString.hxx> #include <Standard_CString.hxx>
#include <TColStd_SequenceOfTransient.hxx> #include <TColStd_SequenceOfTransient.hxx>
class StepBasic_ProductDefinition; class StepBasic_ProductDefinition;
class StepData_Factors;
class XSControl_WorkSession; class XSControl_WorkSession;
class TopoDS_Shape; class TopoDS_Shape;
class StepRepr_RepresentationItem; class StepRepr_RepresentationItem;
@@ -114,13 +115,13 @@ public:
Standard_EXPORT Standard_Boolean GetPropReal (const Handle(StepRepr_RepresentationItem)& item, Standard_EXPORT Standard_Boolean GetPropReal (const Handle(StepRepr_RepresentationItem)& item,
Standard_Real& Val, Standard_Real& Val,
Standard_Boolean& isArea, Standard_Boolean& isArea,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Returns value of Centriod property (or False if it is not) //! Returns value of Centriod property (or False if it is not)
Standard_EXPORT Standard_Boolean GetPropPnt (const Handle(StepRepr_RepresentationItem)& item, Standard_EXPORT Standard_Boolean GetPropPnt (const Handle(StepRepr_RepresentationItem)& item,
const Handle(StepRepr_RepresentationContext)& Context, const Handle(StepRepr_RepresentationContext)& Context,
gp_Pnt& Pnt, gp_Pnt& Pnt,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Sets current assembly shape SDR (for FindCDSR calls) //! Sets current assembly shape SDR (for FindCDSR calls)
Standard_EXPORT void SetAssemblyShape (const TopoDS_Shape& shape); Standard_EXPORT void SetAssemblyShape (const TopoDS_Shape& shape);

View File

@@ -1500,7 +1500,7 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity
} }
else if (start->IsKind(STANDARD_TYPE(StepVisual_TessellatedSurfaceSet))) else if (start->IsKind(STANDARD_TYPE(StepVisual_TessellatedSurfaceSet)))
{ {
myShapeBuilder.Init(GetCasted(StepVisual_TessellatedSurfaceSet, start), TP, aHasGeom, aLocalFactors); myShapeBuilder.Init(GetCasted(StepVisual_TessellatedSurfaceSet, start), TP, aLocalFactors, aHasGeom);
found = Standard_True; found = Standard_True;
} }
} }

View File

@@ -20,7 +20,6 @@
#include <Standard.hxx> #include <Standard.hxx>
#include <Standard_Type.hxx> #include <Standard_Type.hxx>
#include <StepData_Factors.hxx>
#include <StepToTopoDS_NMTool.hxx> #include <StepToTopoDS_NMTool.hxx>
#include <Transfer_ActorOfTransientProcess.hxx> #include <Transfer_ActorOfTransientProcess.hxx>
#include <Standard_Integer.hxx> #include <Standard_Integer.hxx>
@@ -48,6 +47,7 @@ class StepShape_FaceSurface;
class TopoDS_Shell; class TopoDS_Shell;
class TopoDS_Compound; class TopoDS_Compound;
class StepRepr_ConstructiveGeometryRepresentationRelationship; class StepRepr_ConstructiveGeometryRepresentationRelationship;
class StepData_Factors;
class StepData_StepModel; class StepData_StepModel;
@@ -77,7 +77,7 @@ public:
Standard_EXPORT Handle(Transfer_Binder) TransferShape ( Standard_EXPORT Handle(Transfer_Binder) TransferShape (
const Handle(Standard_Transient)& start, const Handle(Standard_Transient)& start,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Standard_Boolean isManifold = Standard_True, const Standard_Boolean isManifold = Standard_True,
const Standard_Boolean theUseTrsf = Standard_False, const Standard_Boolean theUseTrsf = Standard_False,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -105,14 +105,14 @@ public:
const Handle(StepRepr_Representation)& TargContext, const Handle(StepRepr_Representation)& TargContext,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
gp_Trsf& Trsf, gp_Trsf& Trsf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Computes transformation defined by given //! Computes transformation defined by given
//! REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION //! REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION
Standard_EXPORT Standard_Boolean ComputeSRRWT (const Handle(StepRepr_RepresentationRelationship)& SRR, Standard_EXPORT Standard_Boolean ComputeSRRWT (const Handle(StepRepr_RepresentationRelationship)& SRR,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
gp_Trsf& Trsf, gp_Trsf& Trsf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
@@ -127,7 +127,7 @@ protected:
Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity ( Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity (
const Handle(StepBasic_ProductDefinition)& PD, const Handle(StepBasic_ProductDefinition)& PD,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Standard_Boolean theUseTrsf = Standard_False, const Standard_Boolean theUseTrsf = Standard_False,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -135,7 +135,7 @@ protected:
Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity
(const Handle(StepRepr_NextAssemblyUsageOccurrence)& NAUO, (const Handle(StepRepr_NextAssemblyUsageOccurrence)& NAUO,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
//! Transfers shape representation entity //! Transfers shape representation entity
@@ -152,7 +152,7 @@ protected:
Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity Standard_EXPORT Handle(TransferBRep_ShapeBinder) TransferEntity
(const Handle(StepShape_ContextDependentShapeRepresentation)& CDSR, (const Handle(StepShape_ContextDependentShapeRepresentation)& CDSR,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
//! Transfers shape representation relationship entity //! Transfers shape representation relationship entity
@@ -189,7 +189,7 @@ protected:
Handle(TransferBRep_ShapeBinder) TransferEntity( const Handle(StepRepr_ConstructiveGeometryRepresentationRelationship)& theCGRR, Handle(TransferBRep_ShapeBinder) TransferEntity( const Handle(StepRepr_ConstructiveGeometryRepresentationRelationship)& theCGRR,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Translates file by old way when CDSR are roots . Acts only if "read.step.product_mode" is equal Off. //! Translates file by old way when CDSR are roots . Acts only if "read.step.product_mode" is equal Off.
Standard_EXPORT Handle(TransferBRep_ShapeBinder) OldWay Standard_EXPORT Handle(TransferBRep_ShapeBinder) OldWay

View File

@@ -28,6 +28,7 @@
class Transfer_Finder; class Transfer_Finder;
class Transfer_Binder; class Transfer_Binder;
class Transfer_FinderProcess; class Transfer_FinderProcess;
class StepData_Factors;
class StepShape_ShapeDefinitionRepresentation; class StepShape_ShapeDefinitionRepresentation;
class StepGeom_Axis2Placement3d; class StepGeom_Axis2Placement3d;
class TopoDS_Shape; class TopoDS_Shape;
@@ -59,7 +60,7 @@ public:
const Handle(StepShape_ShapeDefinitionRepresentation)& SDR, const Handle(StepShape_ShapeDefinitionRepresentation)& SDR,
Handle(StepGeom_Axis2Placement3d)& AX1, Handle(StepGeom_Axis2Placement3d)& AX1,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Handle(TopTools_HSequenceOfShape)& shapeGroup = NULL, const Handle(TopTools_HSequenceOfShape)& shapeGroup = NULL,
const Standard_Boolean isManifold = Standard_True, const Standard_Boolean isManifold = Standard_True,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -68,7 +69,7 @@ public:
(const Handle(Transfer_Finder)& start, (const Handle(Transfer_Finder)& start,
const Handle(StepShape_ShapeDefinitionRepresentation)& SDR, const Handle(StepShape_ShapeDefinitionRepresentation)& SDR,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Handle(TopTools_HSequenceOfShape)& shapeGroup = NULL, const Handle(TopTools_HSequenceOfShape)& shapeGroup = NULL,
const Standard_Boolean isManifold = Standard_True, const Standard_Boolean isManifold = Standard_True,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -77,7 +78,7 @@ public:
(const Handle(Transfer_Finder)& start, (const Handle(Transfer_Finder)& start,
const Handle(StepShape_ShapeDefinitionRepresentation)& SDR, const Handle(StepShape_ShapeDefinitionRepresentation)& SDR,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void SetMode (const STEPControl_StepModelType M); Standard_EXPORT void SetMode (const STEPControl_StepModelType M);

View File

@@ -13,7 +13,6 @@
#include <STEPControl_Writer.hxx> #include <STEPControl_Writer.hxx>
#include <APIHeaderSection_MakeHeader.hxx>
#include <Interface_InterfaceModel.hxx> #include <Interface_InterfaceModel.hxx>
#include <Interface_Macros.hxx> #include <Interface_Macros.hxx>
#include <STEPControl_ActorWrite.hxx> #include <STEPControl_ActorWrite.hxx>
@@ -163,12 +162,7 @@ IFSelect_ReturnStatus STEPControl_Writer::Transfer
} }
if (!thesession->Model().IsNull()) if (!thesession->Model().IsNull())
{ {
Handle(StepData_StepModel) aStepModel = Handle(StepData_StepModel)::DownCast(thesession->Model()); Handle(StepData_StepModel)::DownCast(thesession->Model())->InternalParameters = theParams;
aStepModel->InternalParameters = theParams;
thesession->TransferWriter()->SetNonmanifoldMode(aStepModel->InternalParameters.WriteNonmanifold);
aStepModel->ClearHeader();
APIHeaderSection_MakeHeader aHeaderApi;
aHeaderApi.Apply(aStepModel);
} }
Handle(STEPControl_ActorWrite) ActWrite = Handle(STEPControl_ActorWrite) ActWrite =
Handle(STEPControl_ActorWrite)::DownCast(WS()->NormAdaptor()->ActorWrite()); Handle(STEPControl_ActorWrite)::DownCast(WS()->NormAdaptor()->ActorWrite());

View File

@@ -93,24 +93,6 @@ Handle(SelectMgr_BaseIntersector) SelectMgr_AxisIntersector::ScaleAndTransform (
return aRes; return aRes;
} }
//=======================================================================
// function : CopyWithBuilder
// purpose : Returns a copy of the frustum using the given frustum builder configuration.
// Returned frustum should be re-constructed before being used.
//=======================================================================
Handle(SelectMgr_BaseIntersector) SelectMgr_AxisIntersector::CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const
{
(void )theBuilder;
Standard_ASSERT_RAISE(mySelectionType == SelectMgr_SelectionType_Point,
"Error! SelectMgr_AxisIntersector::CopyWithBuilder() should be called after selection axis initialization");
Handle(SelectMgr_AxisIntersector) aRes = new SelectMgr_AxisIntersector();
aRes->myAxis = myAxis;
aRes->mySelectionType = mySelectionType;
return aRes;
}
// ======================================================================= // =======================================================================
// function : hasIntersection // function : hasIntersection
// purpose : // purpose :

View File

@@ -52,11 +52,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
//! Returns a copy of the intersector transformed using the builder configuration given.
//! Builder is an argument that represents corresponding settings for re-constructing transformed frustum from scratch.
//! In this class, builder is not used and theBuilder parameter is ignored.
Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
public: public:
//! Intersection test between defined axis and given axis-aligned box //! Intersection test between defined axis and given axis-aligned box

View File

@@ -71,11 +71,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const = 0; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const = 0;
//! @param theBuilder [in] argument that represents corresponding settings for re-constructing transformed frustum from scratch;
//! should NOT be NULL.
//! @return a copy of the frustum with the input builder assigned
virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const = 0;
public: public:
//! Return camera definition. //! Return camera definition.

View File

@@ -449,28 +449,6 @@ Handle(SelectMgr_BaseIntersector) SelectMgr_RectangularFrustum::ScaleAndTransfor
return aRes; return aRes;
} }
// =======================================================================
// function : CopyWithBuilder
// purpose : Returns a copy of the frustum using the given frustum builder configuration.
// Returned frustum should be re-constructed before being used.
// =======================================================================
Handle(SelectMgr_BaseIntersector) SelectMgr_RectangularFrustum::CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const
{
Standard_ASSERT_RAISE (mySelectionType == SelectMgr_SelectionType_Point || mySelectionType == SelectMgr_SelectionType_Box,
"Error! SelectMgr_RectangularFrustum::CopyWithBuilder() should be called after selection frustum initialization");
Standard_ASSERT_RAISE (!theBuilder.IsNull(),
"Error! SelectMgr_RectangularFrustum::CopyWithBuilder() should be called with valid builder");
Handle(SelectMgr_RectangularFrustum) aRes = new SelectMgr_RectangularFrustum();
aRes->mySelectionType = mySelectionType;
aRes->mySelRectangle = mySelRectangle;
aRes->myPixelTolerance = myPixelTolerance;
aRes->SetBuilder (theBuilder);
return aRes;
}
// ======================================================================= // =======================================================================
// function : IsScalable // function : IsScalable
// purpose : // purpose :

View File

@@ -99,13 +99,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
//! Returns a copy of the frustum using the given frustum builder configuration.
//! Returned frustum should be re-constructed before being used.
//! @param theBuilder [in] argument that represents corresponding settings for re-constructing transformed frustum from scratch;
//! should NOT be NULL.
//! @return a copy of the frustum with the input builder assigned
Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
// SAT Tests for different objects // SAT Tests for different objects
//! SAT intersection test between defined volume and given axis-aligned box //! SAT intersection test between defined volume and given axis-aligned box

View File

@@ -241,23 +241,17 @@ namespace
//============================================================================= //=============================================================================
SelectMgr_SelectableObjectSet::SelectMgr_SelectableObjectSet() SelectMgr_SelectableObjectSet::SelectMgr_SelectableObjectSet()
{ {
myBVH[BVHSubset_ortho2dPersistent] = new BVH_Tree<Standard_Real, 3>(); myBVH[BVHSubset_2dPersistent] = new BVH_Tree<Standard_Real, 3>();
myBVH[BVHSubset_ortho3dPersistent] = new BVH_Tree<Standard_Real, 3>(); myBVH[BVHSubset_3dPersistent] = new BVH_Tree<Standard_Real, 3>();
myBVH[BVHSubset_2dPersistent] = new BVH_Tree<Standard_Real, 3>(); myBVH[BVHSubset_3d] = new BVH_Tree<Standard_Real, 3>();
myBVH[BVHSubset_3dPersistent] = new BVH_Tree<Standard_Real, 3>();
myBVH[BVHSubset_3d] = new BVH_Tree<Standard_Real, 3>();
myBuilder[BVHSubset_ortho2dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth); myBuilder[BVHSubset_2dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth);
myBuilder[BVHSubset_ortho3dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth); myBuilder[BVHSubset_3dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth);
myBuilder[BVHSubset_2dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth); myBuilder[BVHSubset_3d] = new BVH_BinnedBuilder<Standard_Real, 3, 4> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth, Standard_True);
myBuilder[BVHSubset_3dPersistent] = new BVH_LinearBuilder<Standard_Real, 3> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth);
myBuilder[BVHSubset_3d] = new BVH_BinnedBuilder<Standard_Real, 3, 4> (BVH_Constants_LeafNodeSizeSingle, BVH_Constants_MaxTreeDepth, Standard_True);
myIsDirty[BVHSubset_ortho2dPersistent] = Standard_False; myIsDirty[BVHSubset_2dPersistent] = Standard_False;
myIsDirty[BVHSubset_ortho3dPersistent] = Standard_False; myIsDirty[BVHSubset_3dPersistent] = Standard_False;
myIsDirty[BVHSubset_2dPersistent] = Standard_False; myIsDirty[BVHSubset_3d] = Standard_False;
myIsDirty[BVHSubset_3dPersistent] = Standard_False;
myIsDirty[BVHSubset_3d] = Standard_False;
} }
//============================================================================= //=============================================================================
@@ -268,9 +262,10 @@ Standard_Boolean SelectMgr_SelectableObjectSet::Append (const Handle(SelectMgr_S
{ {
// get an appropriate BVH subset to insert the object into it // get an appropriate BVH subset to insert the object into it
const Standard_Integer aSubsetIdx = appropriateSubset (theObject); const Standard_Integer aSubsetIdx = appropriateSubset (theObject);
// check that the object is excluded from other subsets // check that the object is excluded from other subsets
if (currentSubset (theObject) != -1) if (myObjects[(aSubsetIdx + 1) % BVHSubsetNb].Contains (theObject)
|| myObjects[(aSubsetIdx + 2) % BVHSubsetNb].Contains (theObject))
{ {
return Standard_False; return Standard_False;
} }
@@ -406,51 +401,9 @@ void SelectMgr_SelectableObjectSet::UpdateBVH (const Handle(Graphic3d_Camera)& t
myBuilder[BVHSubset_2dPersistent]->Build (&anAdaptor, myBVH[BVHSubset_2dPersistent].get(), anAdaptor.Box()); myBuilder[BVHSubset_2dPersistent]->Build (&anAdaptor, myBVH[BVHSubset_2dPersistent].get(), anAdaptor.Box());
} }
// -------------------------------------------------------------------
// check and update 3D orthographic persistence BVH tree if necessary
// -------------------------------------------------------------------
if (!IsEmpty (BVHSubset_ortho3dPersistent)
&& (myIsDirty[BVHSubset_ortho3dPersistent]
|| myLastViewState.IsChanged (aViewState)
|| isWinSizeChanged))
{
Handle(Graphic3d_Camera) aNewOrthoCam = new Graphic3d_Camera (*theCam); // If OrthoPers, copy camera and set to orthographic projection
aNewOrthoCam->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
// construct adaptor over private fields to provide direct access for the BVH builder
BVHBuilderAdaptorPersistent anAdaptor (myObjects[BVHSubset_ortho3dPersistent],
aNewOrthoCam, aNewOrthoCam->ProjectionMatrix(),
aNewOrthoCam->OrientationMatrix(), theWinSize);
// update corresponding BVH tree data structure
myBuilder[BVHSubset_ortho3dPersistent]->Build (&anAdaptor, myBVH[BVHSubset_ortho3dPersistent].get(), anAdaptor.Box());
}
// -------------------------------------------------------------------
// check and update 2D orthographic persistence BVH tree if necessary
// -------------------------------------------------------------------
if (!IsEmpty (BVHSubset_ortho2dPersistent)
&& (myIsDirty[BVHSubset_ortho2dPersistent]
|| myLastViewState.IsProjectionChanged (aViewState)
|| isWinSizeChanged))
{
Handle(Graphic3d_Camera) aNewOrthoCam = new Graphic3d_Camera (*theCam); // If OrthoPers, copy camera and set to orthographic projection
aNewOrthoCam->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
// construct adaptor over private fields to provide direct access for the BVH builder
BVHBuilderAdaptorPersistent anAdaptor (myObjects[BVHSubset_ortho2dPersistent],
aNewOrthoCam, aNewOrthoCam->ProjectionMatrix(),
SelectMgr_SelectableObjectSet_THE_IDENTITY_MAT, theWinSize);
// update corresponding BVH tree data structure
myBuilder[BVHSubset_ortho2dPersistent]->Build (&anAdaptor, myBVH[BVHSubset_ortho2dPersistent].get(), anAdaptor.Box());
}
// release dirty state for every subset // release dirty state for every subset
myIsDirty[BVHSubset_3dPersistent] = Standard_False; myIsDirty[BVHSubset_3dPersistent] = Standard_False;
myIsDirty[BVHSubset_2dPersistent] = Standard_False; myIsDirty[BVHSubset_2dPersistent] = Standard_False;
myIsDirty[BVHSubset_ortho3dPersistent] = Standard_False;
myIsDirty[BVHSubset_ortho2dPersistent] = Standard_False;
// keep last view state // keep last view state
myLastViewState = aViewState; myLastViewState = aViewState;
@@ -466,11 +419,9 @@ void SelectMgr_SelectableObjectSet::UpdateBVH (const Handle(Graphic3d_Camera)& t
//============================================================================= //=============================================================================
void SelectMgr_SelectableObjectSet::MarkDirty() void SelectMgr_SelectableObjectSet::MarkDirty()
{ {
myIsDirty[BVHSubset_3d] = Standard_True; myIsDirty[BVHSubset_3d] = Standard_True;
myIsDirty[BVHSubset_3dPersistent] = Standard_True; myIsDirty[BVHSubset_3dPersistent] = Standard_True;
myIsDirty[BVHSubset_2dPersistent] = Standard_True; myIsDirty[BVHSubset_2dPersistent] = Standard_True;
myIsDirty[BVHSubset_ortho3dPersistent] = Standard_True;
myIsDirty[BVHSubset_ortho2dPersistent] = Standard_True;
} }
//======================================================================= //=======================================================================
//function : DumpJson //function : DumpJson

View File

@@ -42,22 +42,11 @@ public:
//! needs to be updated only when camera's projection changes. Bounding volumes for this object subclass //! needs to be updated only when camera's projection changes. Bounding volumes for this object subclass
//! is represented directly in eye space coordinates. //! is represented directly in eye space coordinates.
//! This subset uses linear BVH builder with 32 levels of depth and 1 element per leaf. //! This subset uses linear BVH builder with 32 levels of depth and 1 element per leaf.
//! - BVHSubset_ortho3dPersistent refers to the subset of 3D persistent selectable objects (rotate, pan, zoom persistence)
//! that contains `Graphic3d_TMF_OrthoPers` persistence mode.
//! Associated BVH tree needs to be updated when either the camera's projection and position change.
//! This subset uses linear BVH builder with 32 levels of depth and 1 element per leaf.
//! - BVHSubset_ortho2dPersistent refers to the subset of 2D persistent selectable objects
//! that contains `Graphic3d_TMF_OrthoPers` persistence mode. Associated BVH tree
//! needs to be updated only when camera's projection changes. Bounding volumes for this object subclass
//! is represented directly in eye space coordinates.
//! This subset uses linear BVH builder with 32 levels of depth and 1 element per leaf.
enum BVHSubset enum BVHSubset
{ {
BVHSubset_3d, BVHSubset_3d,
BVHSubset_3dPersistent, BVHSubset_3dPersistent,
BVHSubset_2dPersistent, BVHSubset_2dPersistent,
BVHSubset_ortho3dPersistent,
BVHSubset_ortho2dPersistent,
BVHSubsetNb BVHSubsetNb
}; };
@@ -151,9 +140,7 @@ public:
{ {
return myObjects[BVHSubset_3d].Contains (theObject) return myObjects[BVHSubset_3d].Contains (theObject)
|| myObjects[BVHSubset_3dPersistent].Contains (theObject) || myObjects[BVHSubset_3dPersistent].Contains (theObject)
|| myObjects[BVHSubset_2dPersistent].Contains (theObject) || myObjects[BVHSubset_2dPersistent].Contains (theObject);
|| myObjects[BVHSubset_ortho3dPersistent].Contains (theObject)
|| myObjects[BVHSubset_ortho2dPersistent].Contains (theObject);
} }
//! Returns true if the object set does not contain any selectable objects. //! Returns true if the object set does not contain any selectable objects.
@@ -161,9 +148,7 @@ public:
{ {
return myObjects[BVHSubset_3d].IsEmpty() return myObjects[BVHSubset_3d].IsEmpty()
&& myObjects[BVHSubset_3dPersistent].IsEmpty() && myObjects[BVHSubset_3dPersistent].IsEmpty()
&& myObjects[BVHSubset_2dPersistent].IsEmpty() && myObjects[BVHSubset_2dPersistent].IsEmpty();
&& myObjects[BVHSubset_ortho3dPersistent].IsEmpty()
&& myObjects[BVHSubset_ortho2dPersistent].IsEmpty();
} }
//! Returns true if the specified object subset is empty. //! Returns true if the specified object subset is empty.
@@ -207,18 +192,10 @@ private:
} }
return SelectMgr_SelectableObjectSet::BVHSubset_3d; return SelectMgr_SelectableObjectSet::BVHSubset_3d;
} }
else if ((theObject->TransformPersistence()->Mode() & Graphic3d_TMF_2d) != 0) else if (theObject->TransformPersistence()->Mode() == Graphic3d_TMF_2d)
{ {
if (theObject->TransformPersistence()->IsOrthoPers())
{
return SelectMgr_SelectableObjectSet::BVHSubset_ortho2dPersistent;
}
return SelectMgr_SelectableObjectSet::BVHSubset_2dPersistent; return SelectMgr_SelectableObjectSet::BVHSubset_2dPersistent;
} }
else if (theObject->TransformPersistence()->IsOrthoPers())
{
return SelectMgr_SelectableObjectSet::BVHSubset_ortho3dPersistent;
}
else else
{ {
return SelectMgr_SelectableObjectSet::BVHSubset_3dPersistent; return SelectMgr_SelectableObjectSet::BVHSubset_3dPersistent;

View File

@@ -67,28 +67,6 @@ SelectMgr_SelectingVolumeManager SelectMgr_SelectingVolumeManager::ScaleAndTrans
return aMgr; return aMgr;
} }
//=======================================================================
// function : CopyWithBuilder
// purpose : Returns a copy of the selecting volume manager and its active frustum re-constructed using the passed builder.
// Builder is an argument that represents corresponding settings for re-constructing transformed
// frustum from scratch.
//=======================================================================
SelectMgr_SelectingVolumeManager SelectMgr_SelectingVolumeManager::CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const
{
SelectMgr_SelectingVolumeManager aMgr;
aMgr.myToAllowOverlap = myToAllowOverlap;
aMgr.myViewClipPlanes = myViewClipPlanes;
aMgr.myObjectClipPlanes = myObjectClipPlanes;
aMgr.myViewClipRange = myViewClipRange;
if (!myActiveSelectingVolume.IsNull())
{
aMgr.myActiveSelectingVolume = myActiveSelectingVolume->CopyWithBuilder (theBuilder);
aMgr.BuildSelectingVolume();
}
return aMgr;
}
//======================================================================= //=======================================================================
// function : GetActiveSelectionType // function : GetActiveSelectionType
// purpose : // purpose :

View File

@@ -81,11 +81,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const;
//! Returns a copy of the selecting volume manager and its active frustum re-constructed using the passed builder.
//! Builder is an argument that represents corresponding settings for re-constructing transformed
//! frustum from scratch.
Standard_EXPORT virtual SelectMgr_SelectingVolumeManager CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const;
public: public:
//! Returns current camera definition. //! Returns current camera definition.

View File

@@ -28,7 +28,7 @@ IMPLEMENT_STANDARD_RTTIEXT(SelectMgr_SensitiveEntitySet, BVH_PrimitiveSet3d)
SelectMgr_SensitiveEntitySet::SelectMgr_SensitiveEntitySet (const Handle(Select3D_BVHBuilder3d)& theBuilder) SelectMgr_SensitiveEntitySet::SelectMgr_SensitiveEntitySet (const Handle(Select3D_BVHBuilder3d)& theBuilder)
: BVH_PrimitiveSet3d (theBuilder) : BVH_PrimitiveSet3d (theBuilder)
{ {
myNbEntityWithPersistence = 0; //
} }
//======================================================================= //=======================================================================
@@ -42,6 +42,7 @@ void SelectMgr_SensitiveEntitySet::Append (const Handle(SelectMgr_SensitiveEntit
theEntity->ResetSelectionActiveStatus(); theEntity->ResetSelectionActiveStatus();
return; return;
} }
const Standard_Integer anExtent = mySensitives.Extent(); const Standard_Integer anExtent = mySensitives.Extent();
if (mySensitives.Add (theEntity) > anExtent) if (mySensitives.Add (theEntity) > anExtent)
{ {
@@ -49,7 +50,7 @@ void SelectMgr_SensitiveEntitySet::Append (const Handle(SelectMgr_SensitiveEntit
} }
if (!theEntity->BaseSensitive()->TransformPersistence().IsNull()) if (!theEntity->BaseSensitive()->TransformPersistence().IsNull())
{ {
++myNbEntityWithPersistence; myHasEntityWithPersistence = Standard_True;
} }
MarkDirty(); MarkDirty();
} }
@@ -77,7 +78,7 @@ void SelectMgr_SensitiveEntitySet::Append (const Handle(SelectMgr_Selection)& th
} }
if (!aSensEnt->BaseSensitive()->TransformPersistence().IsNull()) if (!aSensEnt->BaseSensitive()->TransformPersistence().IsNull())
{ {
++myNbEntityWithPersistence; myHasEntityWithPersistence = Standard_True;
} }
} }
MarkDirty(); MarkDirty();
@@ -92,8 +93,7 @@ void SelectMgr_SensitiveEntitySet::Remove (const Handle(SelectMgr_Selection)& th
{ {
for (NCollection_Vector<Handle(SelectMgr_SensitiveEntity)>::Iterator aSelEntIter (theSelection->Entities()); aSelEntIter.More(); aSelEntIter.Next()) for (NCollection_Vector<Handle(SelectMgr_SensitiveEntity)>::Iterator aSelEntIter (theSelection->Entities()); aSelEntIter.More(); aSelEntIter.Next())
{ {
const Handle(SelectMgr_SensitiveEntity)& aSensEnt = aSelEntIter.Value(); const Standard_Integer anEntIdx = mySensitives.FindIndex (aSelEntIter.Value());
const Standard_Integer anEntIdx = mySensitives.FindIndex (aSensEnt);
if (anEntIdx == 0) if (anEntIdx == 0)
{ {
continue; continue;
@@ -103,13 +103,9 @@ void SelectMgr_SensitiveEntitySet::Remove (const Handle(SelectMgr_Selection)& th
{ {
Swap (anEntIdx - 1, mySensitives.Size() - 1); Swap (anEntIdx - 1, mySensitives.Size() - 1);
} }
if (!aSensEnt->BaseSensitive()->TransformPersistence().IsNull())
{
--myNbEntityWithPersistence;
}
mySensitives.RemoveLast(); mySensitives.RemoveLast();
removeOwner (aSensEnt->BaseSensitive()->OwnerId()); removeOwner (aSelEntIter.Value()->BaseSensitive()->OwnerId());
} }
MarkDirty(); MarkDirty();

View File

@@ -77,7 +77,7 @@ public:
const SelectMgr_MapOfOwners& Owners() const { return myOwnersMap; } const SelectMgr_MapOfOwners& Owners() const { return myOwnersMap; }
//! Returns map of entities. //! Returns map of entities.
Standard_Boolean HasEntityWithPersistence() const { return myNbEntityWithPersistence > 0; } Standard_Boolean HasEntityWithPersistence() const { return myHasEntityWithPersistence; }
protected: protected:
@@ -89,9 +89,9 @@ protected:
private: private:
SelectMgr_IndexedMapOfHSensitive mySensitives; //!< Map of entities and its corresponding index in BVH SelectMgr_IndexedMapOfHSensitive mySensitives; //!< Map of entities and its corresponding index in BVH
SelectMgr_MapOfOwners myOwnersMap; //!< Map of entity owners and its corresponding number of sensitives SelectMgr_MapOfOwners myOwnersMap; //!< Map of entity owners and its corresponding number of sensitives
Standard_Integer myNbEntityWithPersistence; //!< number of sensitive entities that have own transform persistence Standard_Boolean myHasEntityWithPersistence; //!< flag if some of sensitive entity has own transform persistence
}; };
#endif // _SelectMgr_SensitiveEntitySet_HeaderFile #endif // _SelectMgr_SensitiveEntitySet_HeaderFile

View File

@@ -189,20 +189,6 @@ Handle(SelectMgr_BaseIntersector) SelectMgr_TriangularFrustum::ScaleAndTransform
return aRes; return aRes;
} }
//=======================================================================
// function : CopyWithBuilder
// purpose : Returns a copy of the frustum using the given frustum builder configuration.
// Returned frustum should be re-constructed before being used.
//=======================================================================
Handle(SelectMgr_BaseIntersector) SelectMgr_TriangularFrustum::CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const
{
Handle(SelectMgr_TriangularFrustum) aRes = new SelectMgr_TriangularFrustum();
aRes->mySelTriangle = mySelTriangle;
aRes->SetBuilder (theBuilder);
return aRes;
}
//======================================================================= //=======================================================================
// function : OverlapsBox // function : OverlapsBox
// purpose : SAT intersection test between defined volume and // purpose : SAT intersection test between defined volume and

View File

@@ -55,13 +55,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
//! Returns a copy of the frustum using the given frustum builder configuration.
//! Returned frustum should be re-constructed before being used.
//! @param theBuilder [in] argument that represents corresponding settings for re-constructing transformed frustum from scratch;
//! should NOT be NULL.
//! @return a copy of the frustum with the input builder assigned
Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
public: //! @name SAT Tests for different objects public: //! @name SAT Tests for different objects
//! SAT intersection test between defined volume and given axis-aligned box //! SAT intersection test between defined volume and given axis-aligned box

View File

@@ -186,32 +186,6 @@ Handle(SelectMgr_BaseIntersector) SelectMgr_TriangularFrustumSet::ScaleAndTransf
return aRes; return aRes;
} }
//=======================================================================
// function : CopyWithBuilder
// purpose : Returns a copy of the frustum using the given frustum builder configuration.
// Returned frustum should be re-constructed before being used.
//=======================================================================
Handle(SelectMgr_BaseIntersector) SelectMgr_TriangularFrustumSet::CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const
{
Standard_ASSERT_RAISE (mySelectionType == SelectMgr_SelectionType_Polyline,
"Error! SelectMgr_TriangularFrustumSet::CopyWithBuilder() should be called after selection frustum initialization");
Standard_ASSERT_RAISE (!theBuilder.IsNull(),
"Error! SelectMgr_TriangularFrustumSet::CopyWithBuilder() should be called with valid builder");
Handle(SelectMgr_TriangularFrustumSet) aRes = new SelectMgr_TriangularFrustumSet();
aRes->SetCamera (myCamera);
for (SelectMgr_TriangFrustums::Iterator anIter (myFrustums); anIter.More(); anIter.Next())
{
aRes->myFrustums.Append (Handle(SelectMgr_TriangularFrustum)::DownCast (anIter.Value()->CopyWithBuilder (theBuilder)));
}
aRes->mySelectionType = mySelectionType;
aRes->mySelPolyline = mySelPolyline;
aRes->myToAllowOverlap = myToAllowOverlap;
aRes->SetBuilder (theBuilder);
return aRes;
}
// ======================================================================= // =======================================================================
// function : OverlapsBox // function : OverlapsBox
// purpose : // purpose :

View File

@@ -62,13 +62,6 @@ public:
const gp_GTrsf& theTrsf, const gp_GTrsf& theTrsf,
const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE; const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
//! Returns a copy of the frustum using the given frustum builder configuration.
//! Returned frustum should be re-constructed before being used.
//! @param theBuilder [in] argument that represents corresponding settings for re-constructing transformed frustum from scratch;
//! should NOT be NULL.
//! @return a copy of the frustum with the input builder assigned
Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder (const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
public: public:
Standard_EXPORT virtual Standard_Boolean OverlapsBox (const SelectMgr_Vec3& theMinPnt, Standard_EXPORT virtual Standard_Boolean OverlapsBox (const SelectMgr_Vec3& theMinPnt,

View File

@@ -138,12 +138,12 @@ void SelectMgr_ViewerSelector::updatePoint3d (SelectMgr_SortCriterion& theCriter
case SelectMgr_TypeOfDepthTolerance_UniformPixels: case SelectMgr_TypeOfDepthTolerance_UniformPixels:
case SelectMgr_TypeOfDepthTolerance_SensitivityFactor: case SelectMgr_TypeOfDepthTolerance_SensitivityFactor:
{ {
if (theMgr.Camera().IsNull()) if (mySelectingVolumeMgr.Camera().IsNull())
{ {
// fallback for an arbitrary projection matrix // fallback for an arbitrary projection matrix
theCriterion.Tolerance = aSensFactor / 33.0; theCriterion.Tolerance = aSensFactor / 33.0;
} }
else if (theMgr.Camera()->IsOrthographic()) else if (mySelectingVolumeMgr.Camera()->IsOrthographic())
{ {
theCriterion.Tolerance = myCameraScale * aSensFactor; theCriterion.Tolerance = myCameraScale * aSensFactor;
} }
@@ -634,9 +634,6 @@ void SelectMgr_ViewerSelector::TraverseSensitives (const Standard_Integer theVie
Graphic3d_Vec2i aWinSize; Graphic3d_Vec2i aWinSize;
mySelectingVolumeMgr.WindowSize (aWinSize.x(), aWinSize.y()); mySelectingVolumeMgr.WindowSize (aWinSize.x(), aWinSize.y());
const double aPixelSize = aWinSize.x() > 0 && aWinSize.y() > 0
? Max (1.0 / aWinSize.x(), 1.0 / aWinSize.y())
: 1.0;
const Handle(Graphic3d_Camera)& aCamera = mySelectingVolumeMgr.Camera(); const Handle(Graphic3d_Camera)& aCamera = mySelectingVolumeMgr.Camera();
Graphic3d_Mat4d aProjectionMat, aWorldViewMat; Graphic3d_Mat4d aProjectionMat, aWorldViewMat;
@@ -649,6 +646,11 @@ void SelectMgr_ViewerSelector::TraverseSensitives (const Standard_Integer theVie
myCameraEye = aCamera->Eye().XYZ(); myCameraEye = aCamera->Eye().XYZ();
myCameraDir = aCamera->Direction().XYZ(); myCameraDir = aCamera->Direction().XYZ();
myCameraScale = aCamera->IsOrthographic()
? aCamera->Scale()
: 2.0 * Tan (aCamera->FOVy() * M_PI / 360.0);
const double aPixelSize = Max (1.0 / aWinSize.x(), 1.0 / aWinSize.y());
myCameraScale *= aPixelSize;
} }
mySelectableObjects.UpdateBVH (aCamera, aWinSize); mySelectableObjects.UpdateBVH (aCamera, aWinSize);
@@ -670,8 +672,7 @@ void SelectMgr_ViewerSelector::TraverseSensitives (const Standard_Integer theVie
// for 2D space selection transform selecting volumes to perform overlap testing // for 2D space selection transform selecting volumes to perform overlap testing
// directly in camera's eye space omitting the camera position, which is not // directly in camera's eye space omitting the camera position, which is not
// needed there at all // needed there at all
if (aBVHSubset == SelectMgr_SelectableObjectSet::BVHSubset_2dPersistent if (aBVHSubset == SelectMgr_SelectableObjectSet::BVHSubset_2dPersistent)
|| aBVHSubset == SelectMgr_SelectableObjectSet::BVHSubset_ortho2dPersistent)
{ {
gp_GTrsf aTFrustum; gp_GTrsf aTFrustum;
aTFrustum.SetValue (1, 1, aWorldViewMat.GetValue (0, 0)); aTFrustum.SetValue (1, 1, aWorldViewMat.GetValue (0, 0));
@@ -687,46 +688,22 @@ void SelectMgr_ViewerSelector::TraverseSensitives (const Standard_Integer theVie
aWorldViewMat.GetValue (1, 3), aWorldViewMat.GetValue (1, 3),
aWorldViewMat.GetValue (2, 3))); aWorldViewMat.GetValue (2, 3)));
// define corresponding frustum builder parameters for 2d persistence. // define corresponding frustum builder parameters
Handle(SelectMgr_FrustumBuilder) aBuilder = new SelectMgr_FrustumBuilder(); Handle(SelectMgr_FrustumBuilder) aBuilder = new SelectMgr_FrustumBuilder();
Handle(Graphic3d_Camera) aNewCamera = new Graphic3d_Camera(); Handle(Graphic3d_Camera) aNewCamera = new Graphic3d_Camera();
aNewCamera->CopyMappingData (aCamera); aNewCamera->CopyMappingData (aCamera);
aNewCamera->SetIdentityOrientation(); aNewCamera->SetIdentityOrientation();
if (aBVHSubset == SelectMgr_SelectableObjectSet::BVHSubset_ortho2dPersistent)
{
aNewCamera->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
}
aWorldViewMat = aNewCamera->OrientationMatrix(); // should be identity matrix aWorldViewMat = aNewCamera->OrientationMatrix(); // should be identity matrix
aProjectionMat = aNewCamera->ProjectionMatrix(); // should be the same to aProjectionMat aProjectionMat = aNewCamera->ProjectionMatrix(); // should be the same to aProjectionMat
aBuilder->SetCamera (aNewCamera); aBuilder->SetCamera (aNewCamera);
aBuilder->SetWindowSize (aWinSize.x(), aWinSize.y()); aBuilder->SetWindowSize (aWinSize.x(), aWinSize.y());
aMgr = mySelectingVolumeMgr.ScaleAndTransform (1, aTFrustum, aBuilder); aMgr = mySelectingVolumeMgr.ScaleAndTransform (1, aTFrustum, aBuilder);
} }
else if (aBVHSubset == SelectMgr_SelectableObjectSet::BVHSubset_ortho3dPersistent)
{
// define corresponding frustum builder parameters for 3d orthographic persistence.
Handle(SelectMgr_FrustumBuilder) aBuilder = new SelectMgr_FrustumBuilder();
Handle(Graphic3d_Camera) aNewCamera = new Graphic3d_Camera (*aCamera);
aNewCamera->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
aWorldViewMat = aNewCamera->OrientationMatrix(); // should be the same to aWorldViewMat
aProjectionMat = aNewCamera->ProjectionMatrix(); // should be orthographic projection
aBuilder->SetCamera (aNewCamera);
aBuilder->SetWindowSize (aWinSize.x(), aWinSize.y());
aMgr = mySelectingVolumeMgr.CopyWithBuilder (aBuilder);
}
else else
{ {
aMgr = mySelectingVolumeMgr; aMgr = mySelectingVolumeMgr;
} }
if (!aMgr.Camera().IsNull())
{
myCameraScale = aMgr.Camera()->IsOrthographic()
? aMgr.Camera()->Scale()
: 2.0 * Tan (aMgr.Camera()->FOVy() * M_PI / 360.0);
myCameraScale *= aPixelSize;
}
const opencascade::handle<BVH_Tree<Standard_Real, 3> >& aBVHTree = mySelectableObjects.BVH (aBVHSubset); const opencascade::handle<BVH_Tree<Standard_Real, 3> >& aBVHTree = mySelectableObjects.BVH (aBVHSubset);
Standard_Integer aNode = 0; Standard_Integer aNode = 0;

View File

@@ -328,7 +328,7 @@ protected:
//! @param theObject [in] the selectable object for traversal. //! @param theObject [in] the selectable object for traversal.
//! @param theMgr [in] the (un)transformed copy of the selecting volume manager representing active selection frustum. //! @param theMgr [in] the (un)transformed copy of the selecting volume manager representing active selection frustum.
//! @param theCamera, theProjectionMat, theWorldViewMat [in] the source camera and matrices for theMgr given. //! @param theCamera, theProjectionMat, theWorldViewMat [in] the source camera and matrices for theMgr given.
//! @param theWinSize [in] viewport (window) dimensions for evaluating //! @param theViewportWidth, theViewportHeight [in] viewport (window) dimensions for evaluating
//! object's transformation persistence. //! object's transformation persistence.
Standard_EXPORT void traverseObject (const Handle(SelectMgr_SelectableObject)& theObject, Standard_EXPORT void traverseObject (const Handle(SelectMgr_SelectableObject)& theObject,
const SelectMgr_SelectingVolumeManager& theMgr, const SelectMgr_SelectingVolumeManager& theMgr,

View File

@@ -35,19 +35,19 @@
// Primary definitions // Primary definitions
#define OCC_VERSION_MAJOR 7 #define OCC_VERSION_MAJOR 7
#define OCC_VERSION_MINOR 8 #define OCC_VERSION_MINOR 8
#define OCC_VERSION_MAINTENANCE 1 #define OCC_VERSION_MAINTENANCE 0
//! This macro must be commented in official release, and set to non-empty //! This macro must be commented in official release, and set to non-empty
//! string in other situations, to identify specifics of the version, e.g.: //! string in other situations, to identify specifics of the version, e.g.:
//! - "dev" for development version between releases //! - "dev" for development version between releases
//! - "beta..." or "rc..." for beta releases or release candidates //! - "beta..." or "rc..." for beta releases or release candidates
//! - "project..." for version containing project-specific fixes //! - "project..." for version containing project-specific fixes
#define OCC_VERSION_DEVELOPMENT "dev" //#define OCC_VERSION_DEVELOPMENT "dev"
// Derived (manually): version as real and string (major.minor) // Derived (manually): version as real and string (major.minor)
#define OCC_VERSION 7.8 #define OCC_VERSION 7.8
#define OCC_VERSION_STRING "7.8" #define OCC_VERSION_STRING "7.8"
#define OCC_VERSION_COMPLETE "7.8.1" #define OCC_VERSION_COMPLETE "7.8.0"
//! Derived: extended version as string ("major.minor.maintenance.dev") //! Derived: extended version as string ("major.minor.maintenance.dev")
#ifdef OCC_VERSION_DEVELOPMENT #ifdef OCC_VERSION_DEVELOPMENT

View File

@@ -192,6 +192,7 @@ namespace
} }
const Standard_Integer aDecal = anArray->VertexNumber(); const Standard_Integer aDecal = anArray->VertexNumber();
Standard_Real aMaxX = -FLT_MAX, aMinX = FLT_MAX;
for (Standard_Integer aNodeIter = 1; aNodeIter <= aT->NbNodes(); ++aNodeIter) for (Standard_Integer aNodeIter = 1; aNodeIter <= aT->NbNodes(); ++aNodeIter)
{ {
aPoint = aT->Node (aNodeIter); aPoint = aT->Node (aNodeIter);
@@ -199,13 +200,19 @@ namespace
if ((aFace.Orientation() == TopAbs_REVERSED) ^ isMirrored) if ((aFace.Orientation() == TopAbs_REVERSED) ^ isMirrored)
{ {
aNorm.Reverse(); aNorm.Reverse();
if (aT->HasUVNodes())
{
gp_Pnt2d aTmpPnt = aT->UVNode(aNodeIter);
if (aMaxX < aTmpPnt.X()) { aMaxX = aTmpPnt.X(); }
if (aMinX > aTmpPnt.X()) { aMinX = aTmpPnt.X(); }
}
} }
if (!aLoc.IsIdentity()) if (!aLoc.IsIdentity())
{ {
aPoint.Transform (aTrsf); aPoint.Transform (aTrsf);
aNorm .Transform (aTrsf); aNorm .Transform (aTrsf);
} }
if (theHasTexels && aT->HasUVNodes()) if (theHasTexels && aT->HasUVNodes())
{ {
const gp_Pnt2d aNode2d = aT->UVNode (aNodeIter); const gp_Pnt2d aNode2d = aT->UVNode (aNodeIter);
@@ -221,6 +228,18 @@ namespace
} }
} }
// changes uvs for reversed faces depending on number of vertex
// by flipping the uv coordinates according to face normal
if (((aFace.Orientation() == TopAbs_REVERSED) ^ isMirrored) && aT->HasUVNodes())
{
for (Standard_Integer anIndex = 1; anIndex <= aT->NbNodes(); anIndex++)
{
gp_Pnt2d aTmpPnt = aT->UVNode (anIndex);
aTmpPnt.SetX (aMaxX + aMinX - aTmpPnt.X());
aT->SetUVNode (anIndex, aTmpPnt);
}
}
// Fill array with vertex and edge visibility info // Fill array with vertex and edge visibility info
Standard_Integer anIndex[3]; Standard_Integer anIndex[3];
for (Standard_Integer aTriIter = 1; aTriIter <= aT->NbTriangles(); ++aTriIter) for (Standard_Integer aTriIter = 1; aTriIter <= aT->NbTriangles(); ++aTriIter)

View File

@@ -27,7 +27,6 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
#include <HeaderSection_Protocol.hxx> #include <HeaderSection_Protocol.hxx>
#include <StepData_StepModel.hxx>
#include <StepShape_AdvancedBrepShapeRepresentation.hxx> #include <StepShape_AdvancedBrepShapeRepresentation.hxx>
#include <StepShape_AdvancedFace.hxx> #include <StepShape_AdvancedFace.hxx>
// Removed from CC1-Rev2 to Rev4 : <StepVisual_AnnotationCurveOccurrence.hxx> // Removed from CC1-Rev2 to Rev4 : <StepVisual_AnnotationCurveOccurrence.hxx>
@@ -1578,38 +1577,6 @@ Handle(Standard_Type)& atype) const
} }
//=======================================================================
//function : SchemaName
//purpose :
//=======================================================================
Standard_CString StepAP214_Protocol::SchemaName(const Handle(Interface_InterfaceModel)& theModel) const
{
Handle(StepData_StepModel) aModel = Handle(StepData_StepModel)::DownCast(theModel);
if (aModel.IsNull())
{
return "";
}
switch (aModel->InternalParameters.WriteSchema)
{
case StepData_ConfParameters::WriteMode_StepSchema_AP214CD:
return schemaAP214CD;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP214DIS:
return schemaAP214DIS;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP203:
return schemaAP203;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP214IS:
return schemaAP214IS;
break;
case StepData_ConfParameters::WriteMode_StepSchema_AP242DIS:
return schemaAP242DIS;
break;
}
return "";
}
//======================================================================= //=======================================================================
//function : SchemaName //function : SchemaName
//purpose : //purpose :

View File

@@ -42,8 +42,6 @@ public:
//! Returns a Case Number for each of the StepAP214 Entities //! Returns a Case Number for each of the StepAP214 Entities
Standard_EXPORT virtual Standard_Integer TypeNumber (const Handle(Standard_Type)& atype) const Standard_OVERRIDE; Standard_EXPORT virtual Standard_Integer TypeNumber (const Handle(Standard_Type)& atype) const Standard_OVERRIDE;
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const Standard_OVERRIDE;
Standard_EXPORT virtual Standard_CString SchemaName() const Standard_OVERRIDE; Standard_EXPORT virtual Standard_CString SchemaName() const Standard_OVERRIDE;
//! Returns count of Protocol used as Resources (level one) //! Returns count of Protocol used as Resources (level one)

View File

@@ -67,14 +67,9 @@ Standard_Integer StepData_Protocol::TypeNumber
return 0; return 0;
} }
Standard_CString StepData_Protocol::SchemaName() const
{
return thename;
}
Standard_CString StepData_Protocol::SchemaName (const Handle(Interface_InterfaceModel)& theModel) const Standard_CString StepData_Protocol::SchemaName () const
{ {
(void)theModel;
return thename; return thename;
} }

View File

@@ -67,8 +67,6 @@ public:
//! To be redefined by each sub-class //! To be redefined by each sub-class
//! Here, SchemaName returns "(DEFAULT)" //! Here, SchemaName returns "(DEFAULT)"
//! was C++ : return const //! was C++ : return const
Standard_EXPORT virtual Standard_CString SchemaName(const Handle(Interface_InterfaceModel)& theModel) const;
Standard_EXPORT virtual Standard_CString SchemaName() const; Standard_EXPORT virtual Standard_CString SchemaName() const;
//! Creates an empty Model for Step Norm //! Creates an empty Model for Step Norm

View File

@@ -20,7 +20,6 @@
#include <Standard.hxx> #include <Standard.hxx>
#include <Standard_DefineAlloc.hxx> #include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx> #include <Standard_Handle.hxx>
#include <StepData_Factors.hxx>
class Geom_Axis1Placement; class Geom_Axis1Placement;
class Geom_Axis2Placement; class Geom_Axis2Placement;
@@ -68,6 +67,7 @@ class Geom2d_VectorWithMagnitude;
class gp_Trsf; class gp_Trsf;
class gp_Trsf2d; class gp_Trsf2d;
class StepData_Factors;
class StepGeom_Axis1Placement; class StepGeom_Axis1Placement;
class StepGeom_Axis2Placement2d; class StepGeom_Axis2Placement2d;
class StepGeom_Axis2Placement3d; class StepGeom_Axis2Placement3d;
@@ -115,94 +115,94 @@ class StepToGeom
public: public:
Standard_EXPORT static Handle(Geom_Axis1Placement) MakeAxis1Placement (const Handle(StepGeom_Axis1Placement)& SA, Standard_EXPORT static Handle(Geom_Axis1Placement) MakeAxis1Placement (const Handle(StepGeom_Axis1Placement)& SA,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Axis2Placement) MakeAxis2Placement (const Handle(StepGeom_Axis2Placement3d)& SA, Standard_EXPORT static Handle(Geom_Axis2Placement) MakeAxis2Placement (const Handle(StepGeom_Axis2Placement3d)& SA,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Axis2Placement) MakeAxis2Placement (const Handle(StepGeom_SuParameters)& SP); Standard_EXPORT static Handle(Geom_Axis2Placement) MakeAxis2Placement (const Handle(StepGeom_SuParameters)& SP);
Standard_EXPORT static Handle(Geom2d_AxisPlacement) MakeAxisPlacement (const Handle(StepGeom_Axis2Placement2d)& SA, Standard_EXPORT static Handle(Geom2d_AxisPlacement) MakeAxisPlacement (const Handle(StepGeom_Axis2Placement2d)& SA,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_BoundedCurve) MakeBoundedCurve (const Handle(StepGeom_BoundedCurve)& SC, Standard_EXPORT static Handle(Geom_BoundedCurve) MakeBoundedCurve (const Handle(StepGeom_BoundedCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_BoundedCurve) MakeBoundedCurve2d (const Handle(StepGeom_BoundedCurve)& SC, Standard_EXPORT static Handle(Geom2d_BoundedCurve) MakeBoundedCurve2d (const Handle(StepGeom_BoundedCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_BoundedSurface) MakeBoundedSurface (const Handle(StepGeom_BoundedSurface)& SS, Standard_EXPORT static Handle(Geom_BoundedSurface) MakeBoundedSurface (const Handle(StepGeom_BoundedSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_BSplineCurve) MakeBSplineCurve (const Handle(StepGeom_BSplineCurve)& SC, Standard_EXPORT static Handle(Geom_BSplineCurve) MakeBSplineCurve (const Handle(StepGeom_BSplineCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeBSplineCurve2d (const Handle(StepGeom_BSplineCurve)& SC, Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeBSplineCurve2d (const Handle(StepGeom_BSplineCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_BSplineSurface) MakeBSplineSurface (const Handle(StepGeom_BSplineSurface)& SS, Standard_EXPORT static Handle(Geom_BSplineSurface) MakeBSplineSurface (const Handle(StepGeom_BSplineSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_CartesianPoint) MakeCartesianPoint (const Handle(StepGeom_CartesianPoint)& SP, Standard_EXPORT static Handle(Geom_CartesianPoint) MakeCartesianPoint (const Handle(StepGeom_CartesianPoint)& SP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_CartesianPoint) MakeCartesianPoint2d (const Handle(StepGeom_CartesianPoint)& SP, Standard_EXPORT static Handle(Geom2d_CartesianPoint) MakeCartesianPoint2d (const Handle(StepGeom_CartesianPoint)& SP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Circle) MakeCircle (const Handle(StepGeom_Circle)& SC, Standard_EXPORT static Handle(Geom_Circle) MakeCircle (const Handle(StepGeom_Circle)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Circle) MakeCircle2d (const Handle(StepGeom_Circle)& SC, Standard_EXPORT static Handle(Geom2d_Circle) MakeCircle2d (const Handle(StepGeom_Circle)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Conic) MakeConic (const Handle(StepGeom_Conic)& SC, Standard_EXPORT static Handle(Geom_Conic) MakeConic (const Handle(StepGeom_Conic)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Conic) MakeConic2d (const Handle(StepGeom_Conic)& SC, Standard_EXPORT static Handle(Geom2d_Conic) MakeConic2d (const Handle(StepGeom_Conic)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_ConicalSurface) MakeConicalSurface (const Handle(StepGeom_ConicalSurface)& SS, Standard_EXPORT static Handle(Geom_ConicalSurface) MakeConicalSurface (const Handle(StepGeom_ConicalSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Curve) MakeCurve (const Handle(StepGeom_Curve)& SC, Standard_EXPORT static Handle(Geom_Curve) MakeCurve (const Handle(StepGeom_Curve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Curve) MakeCurve2d (const Handle(StepGeom_Curve)& SC, Standard_EXPORT static Handle(Geom2d_Curve) MakeCurve2d (const Handle(StepGeom_Curve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_CylindricalSurface) MakeCylindricalSurface (const Handle(StepGeom_CylindricalSurface)& SS, Standard_EXPORT static Handle(Geom_CylindricalSurface) MakeCylindricalSurface (const Handle(StepGeom_CylindricalSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Direction) MakeDirection (const Handle(StepGeom_Direction)& SD); Standard_EXPORT static Handle(Geom_Direction) MakeDirection (const Handle(StepGeom_Direction)& SD);
Standard_EXPORT static Handle(Geom2d_Direction) MakeDirection2d (const Handle(StepGeom_Direction)& SD); Standard_EXPORT static Handle(Geom2d_Direction) MakeDirection2d (const Handle(StepGeom_Direction)& SD);
Standard_EXPORT static Handle(Geom_ElementarySurface) MakeElementarySurface (const Handle(StepGeom_ElementarySurface)& SS, Standard_EXPORT static Handle(Geom_ElementarySurface) MakeElementarySurface (const Handle(StepGeom_ElementarySurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Ellipse) MakeEllipse (const Handle(StepGeom_Ellipse)& SC, Standard_EXPORT static Handle(Geom_Ellipse) MakeEllipse (const Handle(StepGeom_Ellipse)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Ellipse) MakeEllipse2d (const Handle(StepGeom_Ellipse)& SC, Standard_EXPORT static Handle(Geom2d_Ellipse) MakeEllipse2d (const Handle(StepGeom_Ellipse)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Hyperbola) MakeHyperbola (const Handle(StepGeom_Hyperbola)& SC, Standard_EXPORT static Handle(Geom_Hyperbola) MakeHyperbola (const Handle(StepGeom_Hyperbola)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Hyperbola) MakeHyperbola2d (const Handle(StepGeom_Hyperbola)& SC, Standard_EXPORT static Handle(Geom2d_Hyperbola) MakeHyperbola2d (const Handle(StepGeom_Hyperbola)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Line) MakeLine (const Handle(StepGeom_Line)& SC, Standard_EXPORT static Handle(Geom_Line) MakeLine (const Handle(StepGeom_Line)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Line) MakeLine2d (const Handle(StepGeom_Line)& SC, Standard_EXPORT static Handle(Geom2d_Line) MakeLine2d (const Handle(StepGeom_Line)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Parabola) MakeParabola (const Handle(StepGeom_Parabola)& SC, Standard_EXPORT static Handle(Geom_Parabola) MakeParabola (const Handle(StepGeom_Parabola)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_Parabola) MakeParabola2d (const Handle(StepGeom_Parabola)& SC, Standard_EXPORT static Handle(Geom2d_Parabola) MakeParabola2d (const Handle(StepGeom_Parabola)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Plane) MakePlane (const Handle(StepGeom_Plane)& SP, Standard_EXPORT static Handle(Geom_Plane) MakePlane (const Handle(StepGeom_Plane)& SP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_BSplineCurve) MakePolyline (const Handle(StepGeom_Polyline)& SPL, Standard_EXPORT static Handle(Geom_BSplineCurve) MakePolyline (const Handle(StepGeom_Polyline)& SPL,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakePolyline2d (const Handle(StepGeom_Polyline)& SPL, Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakePolyline2d (const Handle(StepGeom_Polyline)& SPL,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_RectangularTrimmedSurface) MakeRectangularTrimmedSurface (const Handle(StepGeom_RectangularTrimmedSurface)& SS, Standard_EXPORT static Handle(Geom_RectangularTrimmedSurface) MakeRectangularTrimmedSurface (const Handle(StepGeom_RectangularTrimmedSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_SphericalSurface) MakeSphericalSurface (const Handle(StepGeom_SphericalSurface)& SS, Standard_EXPORT static Handle(Geom_SphericalSurface) MakeSphericalSurface (const Handle(StepGeom_SphericalSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_Surface) MakeSurface (const Handle(StepGeom_Surface)& SS, Standard_EXPORT static Handle(Geom_Surface) MakeSurface (const Handle(StepGeom_Surface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_SurfaceOfLinearExtrusion) MakeSurfaceOfLinearExtrusion (const Handle(StepGeom_SurfaceOfLinearExtrusion)& SS, Standard_EXPORT static Handle(Geom_SurfaceOfLinearExtrusion) MakeSurfaceOfLinearExtrusion (const Handle(StepGeom_SurfaceOfLinearExtrusion)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_SurfaceOfRevolution) MakeSurfaceOfRevolution (const Handle(StepGeom_SurfaceOfRevolution)& SS, Standard_EXPORT static Handle(Geom_SurfaceOfRevolution) MakeSurfaceOfRevolution (const Handle(StepGeom_SurfaceOfRevolution)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_SweptSurface) MakeSweptSurface (const Handle(StepGeom_SweptSurface)& SS, Standard_EXPORT static Handle(Geom_SweptSurface) MakeSweptSurface (const Handle(StepGeom_SweptSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_ToroidalSurface) MakeToroidalSurface (const Handle(StepGeom_ToroidalSurface)& SS, Standard_EXPORT static Handle(Geom_ToroidalSurface) MakeToroidalSurface (const Handle(StepGeom_ToroidalSurface)& SS,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Standard_Boolean MakeTransformation2d (const Handle(StepGeom_CartesianTransformationOperator2d)& SCTO, gp_Trsf2d& CT, Standard_EXPORT static Standard_Boolean MakeTransformation2d (const Handle(StepGeom_CartesianTransformationOperator2d)& SCTO, gp_Trsf2d& CT,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Standard_Boolean MakeTransformation3d (const Handle(StepGeom_CartesianTransformationOperator3d)& SCTO, gp_Trsf& CT, Standard_EXPORT static Standard_Boolean MakeTransformation3d (const Handle(StepGeom_CartesianTransformationOperator3d)& SCTO, gp_Trsf& CT,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_TrimmedCurve) MakeTrimmedCurve (const Handle(StepGeom_TrimmedCurve)& SC, Standard_EXPORT static Handle(Geom_TrimmedCurve) MakeTrimmedCurve (const Handle(StepGeom_TrimmedCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeTrimmedCurve2d (const Handle(StepGeom_TrimmedCurve)& SC, Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeTrimmedCurve2d (const Handle(StepGeom_TrimmedCurve)& SC,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom_VectorWithMagnitude) MakeVectorWithMagnitude (const Handle(StepGeom_Vector)& SV, Standard_EXPORT static Handle(Geom_VectorWithMagnitude) MakeVectorWithMagnitude (const Handle(StepGeom_Vector)& SV,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT static Handle(Geom2d_VectorWithMagnitude) MakeVectorWithMagnitude2d (const Handle(StepGeom_Vector)& SV); Standard_EXPORT static Handle(Geom2d_VectorWithMagnitude) MakeVectorWithMagnitude2d (const Handle(StepGeom_Vector)& SV);
Standard_EXPORT static Handle(TColStd_HArray1OfReal) MakeYprRotation(const StepKinematics_SpatialRotation& SR, const Handle(StepRepr_GlobalUnitAssignedContext)& theCntxt); Standard_EXPORT static Handle(TColStd_HArray1OfReal) MakeYprRotation(const StepKinematics_SpatialRotation& SR, const Handle(StepRepr_GlobalUnitAssignedContext)& theCntxt);
}; };

View File

@@ -897,8 +897,8 @@ void StepToTopoDS_Builder::Init(const Handle(StepVisual_TessellatedFace)& theTF,
// ============================================================================ // ============================================================================
void StepToTopoDS_Builder::Init(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS, void StepToTopoDS_Builder::Init(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
Standard_Boolean& theHasGeom, const StepData_Factors& theLocalFactors,
const StepData_Factors& theLocalFactors) Standard_Boolean& theHasGeom)
{ {
StepToTopoDS_TranslateFace aTranFace; StepToTopoDS_TranslateFace aTranFace;
aTranFace.SetPrecision(Precision()); aTranFace.SetPrecision(Precision());

View File

@@ -55,41 +55,41 @@ public:
Standard_EXPORT void Init (const Handle(StepShape_ManifoldSolidBrep)& theManifoldSolid, Standard_EXPORT void Init (const Handle(StepShape_ManifoldSolidBrep)& theManifoldSolid,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepShape_BrepWithVoids)& theBRepWithVoids, Standard_EXPORT void Init (const Handle(StepShape_BrepWithVoids)& theBRepWithVoids,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepShape_FacetedBrep)& theFB, Standard_EXPORT void Init (const Handle(StepShape_FacetedBrep)& theFB,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepShape_FacetedBrepAndBrepWithVoids)& theFBABWV, Standard_EXPORT void Init (const Handle(StepShape_FacetedBrepAndBrepWithVoids)& theFBABWV,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepShape_ShellBasedSurfaceModel)& S, Standard_EXPORT void Init (const Handle(StepShape_ShellBasedSurfaceModel)& S,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepShape_EdgeBasedWireframeModel)& S, Standard_EXPORT void Init (const Handle(StepShape_EdgeBasedWireframeModel)& S,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_FaceBasedSurfaceModel)& S, Standard_EXPORT void Init (const Handle(StepShape_FaceBasedSurfaceModel)& S,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_GeometricSet)& S, Standard_EXPORT void Init (const Handle(StepShape_GeometricSet)& S,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Handle(Transfer_ActorOfTransientProcess)& RA = NULL, const Handle(Transfer_ActorOfTransientProcess)& RA = NULL,
const Standard_Boolean isManifold = Standard_False, const Standard_Boolean isManifold = Standard_False,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
@@ -98,26 +98,26 @@ public:
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepVisual_TessellatedShell)& theTSh, Standard_EXPORT void Init (const Handle(StepVisual_TessellatedShell)& theTSh,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepVisual_TessellatedFace)& theTF, Standard_EXPORT void Init (const Handle(StepVisual_TessellatedFace)& theTF,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepVisual_TessellatedSurfaceSet)& theTSS, Standard_EXPORT void Init (const Handle(StepVisual_TessellatedSurfaceSet)& theTSS,
const Handle(Transfer_TransientProcess)& theTP, const Handle(Transfer_TransientProcess)& theTP,
Standard_Boolean& theHasGeom, const StepData_Factors& theLocalFactors,
const StepData_Factors& theLocalFactors = StepData_Factors()); Standard_Boolean& theHasGeom);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -25,6 +25,7 @@
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
#include <Message_ProgressRange.hxx> #include <Message_ProgressRange.hxx>
class StepData_Factors;
class StepGeom_Axis2Placement3d; class StepGeom_Axis2Placement3d;
class StepGeom_CartesianTransformationOperator3d; class StepGeom_CartesianTransformationOperator3d;
class TopoDS_Shape; class TopoDS_Shape;
@@ -46,11 +47,11 @@ public:
//! If not done, the transformation will by Identity //! If not done, the transformation will by Identity
Standard_EXPORT Standard_Boolean Compute (const Handle(StepGeom_Axis2Placement3d)& Origin, Standard_EXPORT Standard_Boolean Compute (const Handle(StepGeom_Axis2Placement3d)& Origin,
const Handle(StepGeom_Axis2Placement3d)& Target, const Handle(StepGeom_Axis2Placement3d)& Target,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Computes a transformation defined by an operator 3D //! Computes a transformation defined by an operator 3D
Standard_EXPORT Standard_Boolean Compute (const Handle(StepGeom_CartesianTransformationOperator3d)& Operator, Standard_EXPORT Standard_Boolean Compute (const Handle(StepGeom_CartesianTransformationOperator3d)& Operator,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Returns the computed transformation (Identity if not yet or //! Returns the computed transformation (Identity if not yet or
//! if failed) //! if failed)
@@ -72,7 +73,7 @@ public:
//! transformed as an instance of this Shape //! transformed as an instance of this Shape
Standard_EXPORT TopoDS_Shape TranslateMappedItem (const Handle(StepRepr_MappedItem)& mapit, Standard_EXPORT TopoDS_Shape TranslateMappedItem (const Handle(StepRepr_MappedItem)& mapit,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());

View File

@@ -49,26 +49,26 @@ public:
//! Translates standalone composite_curve //! Translates standalone composite_curve
Standard_EXPORT StepToTopoDS_TranslateCompositeCurve(const Handle(StepGeom_CompositeCurve)& CC, Standard_EXPORT StepToTopoDS_TranslateCompositeCurve(const Handle(StepGeom_CompositeCurve)& CC,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Translates composite_curve lying on surface //! Translates composite_curve lying on surface
Standard_EXPORT StepToTopoDS_TranslateCompositeCurve(const Handle(StepGeom_CompositeCurve)& CC, Standard_EXPORT StepToTopoDS_TranslateCompositeCurve(const Handle(StepGeom_CompositeCurve)& CC,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const Handle(StepGeom_Surface)& S, const Handle(StepGeom_Surface)& S,
const Handle(Geom_Surface)& Surf, const Handle(Geom_Surface)& Surf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Translates standalone composite_curve //! Translates standalone composite_curve
Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CompositeCurve)& CC, Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CompositeCurve)& CC,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Translates composite_curve lying on surface //! Translates composite_curve lying on surface
Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CompositeCurve)& CC, Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CompositeCurve)& CC,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const Handle(StepGeom_Surface)& S, const Handle(StepGeom_Surface)& S,
const Handle(Geom_Surface)& Surf, const Handle(Geom_Surface)& Surf,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Returns result of last translation or null wire if failed. //! Returns result of last translation or null wire if failed.
Standard_EXPORT const TopoDS_Wire& Value() const; Standard_EXPORT const TopoDS_Wire& Value() const;

View File

@@ -41,12 +41,12 @@ public:
//! Translate surface //! Translate surface
Standard_EXPORT StepToTopoDS_TranslateCurveBoundedSurface(const Handle(StepGeom_CurveBoundedSurface)& CBS, Standard_EXPORT StepToTopoDS_TranslateCurveBoundedSurface(const Handle(StepGeom_CurveBoundedSurface)& CBS,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Translate surface //! Translate surface
Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CurveBoundedSurface)& CBS, Standard_EXPORT Standard_Boolean Init (const Handle(StepGeom_CurveBoundedSurface)& CBS,
const Handle(Transfer_TransientProcess)& TP, const Handle(Transfer_TransientProcess)& TP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Returns result of last translation or null wire if failed. //! Returns result of last translation or null wire if failed.
Standard_EXPORT const TopoDS_Face& Value() const; Standard_EXPORT const TopoDS_Face& Value() const;

View File

@@ -24,6 +24,7 @@
#include <StepToTopoDS_TranslateEdgeError.hxx> #include <StepToTopoDS_TranslateEdgeError.hxx>
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
class StepData_Factors;
class StepShape_Edge; class StepShape_Edge;
class StepToTopoDS_Tool; class StepToTopoDS_Tool;
class StepToTopoDS_NMTool; class StepToTopoDS_NMTool;
@@ -50,12 +51,12 @@ public:
Standard_EXPORT StepToTopoDS_TranslateEdge(const Handle(StepShape_Edge)& E, Standard_EXPORT StepToTopoDS_TranslateEdge(const Handle(StepShape_Edge)& E,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_Edge)& E, Standard_EXPORT void Init (const Handle(StepShape_Edge)& E,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
//! Warning! C3D is assumed to be a Curve 3D ... //! Warning! C3D is assumed to be a Curve 3D ...
//! other cases to checked before calling this //! other cases to checked before calling this
@@ -67,11 +68,11 @@ public:
TopoDS_Vertex& V1, TopoDS_Vertex& V1,
TopoDS_Vertex& V2, TopoDS_Vertex& V2,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT Handle(Geom2d_Curve) MakePCurve (const Handle(StepGeom_Pcurve)& PCU, Standard_EXPORT Handle(Geom2d_Curve) MakePCurve (const Handle(StepGeom_Pcurve)& PCU,
const Handle(Geom_Surface)& ConvSurf, const Handle(Geom_Surface)& ConvSurf,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -49,7 +49,7 @@ public:
const Standard_Boolean ss, const Standard_Boolean ss,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_FaceBound)& FB, Standard_EXPORT void Init (const Handle(StepShape_FaceBound)& FB,
const TopoDS_Face& F, const TopoDS_Face& F,
@@ -58,7 +58,7 @@ public:
const Standard_Boolean ss, const Standard_Boolean ss,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -545,10 +545,7 @@ void StepToTopoDS_TranslateFace::Init(const Handle(StepShape_FaceSurface)& FS,
#endif #endif
FaceBound = FS->BoundsValue(i); FaceBound = FS->BoundsValue(i);
Loop = FaceBound->Bound(); Loop = FaceBound->Bound();
if (Loop.IsNull())
{
continue;
}
// ------------------------ // ------------------------
// The Loop is a VertexLoop // The Loop is a VertexLoop
// ------------------------ // ------------------------

View File

@@ -25,6 +25,7 @@
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
class Poly_Triangulation; class Poly_Triangulation;
class StepData_Factors;
class StepShape_FaceSurface; class StepShape_FaceSurface;
class StepToTopoDS_Tool; class StepToTopoDS_Tool;
class StepToTopoDS_NMTool; class StepToTopoDS_NMTool;
@@ -46,36 +47,36 @@ public:
Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepShape_FaceSurface)& FS, Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepShape_FaceSurface)& FS,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepVisual_TessellatedFace)& theTF, Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepVisual_TessellatedFace)& theTF,
StepToTopoDS_Tool& theTool, StepToTopoDS_Tool& theTool,
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS, Standard_EXPORT StepToTopoDS_TranslateFace(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS,
StepToTopoDS_Tool& theTool, StepToTopoDS_Tool& theTool,
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_FaceSurface)& FS, Standard_EXPORT void Init (const Handle(StepShape_FaceSurface)& FS,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepVisual_TessellatedFace)& theTF, Standard_EXPORT void Init (const Handle(StepVisual_TessellatedFace)& theTF,
StepToTopoDS_Tool& theTool, StepToTopoDS_Tool& theTool,
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS, Standard_EXPORT void Init(const Handle(StepVisual_TessellatedSurfaceSet)& theTSS,
StepToTopoDS_Tool& theTool, StepToTopoDS_Tool& theTool,
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;
@@ -84,7 +85,7 @@ public:
private: private:
Handle(Poly_Triangulation) createMesh(const Handle(StepVisual_TessellatedItem)& theTI, Handle(Poly_Triangulation) createMesh(const Handle(StepVisual_TessellatedItem)& theTI,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
StepToTopoDS_TranslateFaceError myError; StepToTopoDS_TranslateFaceError myError;
TopoDS_Shape myResult; TopoDS_Shape myResult;

View File

@@ -24,6 +24,7 @@
#include <StepToTopoDS_TranslatePolyLoopError.hxx> #include <StepToTopoDS_TranslatePolyLoopError.hxx>
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
class StepData_Factors;
class StepShape_PolyLoop; class StepShape_PolyLoop;
class StepToTopoDS_Tool; class StepToTopoDS_Tool;
class Geom_Surface; class Geom_Surface;
@@ -44,13 +45,13 @@ public:
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
const Handle(Geom_Surface)& S, const Handle(Geom_Surface)& S,
const TopoDS_Face& F, const TopoDS_Face& F,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_PolyLoop)& PL, Standard_EXPORT void Init (const Handle(StepShape_PolyLoop)& PL,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
const Handle(Geom_Surface)& S, const Handle(Geom_Surface)& S,
const TopoDS_Face& F, const TopoDS_Face& F,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -44,7 +44,7 @@ public:
Standard_EXPORT void Init (const Handle(StepShape_ConnectedFaceSet)& CFS, Standard_EXPORT void Init (const Handle(StepShape_ConnectedFaceSet)& CFS,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const Handle(StepVisual_TessellatedShell)& theTSh, Standard_EXPORT void Init (const Handle(StepVisual_TessellatedShell)& theTSh,
@@ -52,7 +52,7 @@ public:
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -44,7 +44,7 @@ public:
StepToTopoDS_NMTool& theNMTool, StepToTopoDS_NMTool& theNMTool,
const Standard_Boolean theReadTessellatedWhenNoBRepOnly, const Standard_Boolean theReadTessellatedWhenNoBRepOnly,
Standard_Boolean& theHasGeom, Standard_Boolean& theHasGeom,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -24,6 +24,7 @@
#include <StepToTopoDS_TranslateVertexError.hxx> #include <StepToTopoDS_TranslateVertexError.hxx>
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
class StepData_Factors;
class StepShape_Vertex; class StepShape_Vertex;
class StepToTopoDS_Tool; class StepToTopoDS_Tool;
class StepToTopoDS_NMTool; class StepToTopoDS_NMTool;
@@ -42,12 +43,12 @@ public:
Standard_EXPORT StepToTopoDS_TranslateVertex(const Handle(StepShape_Vertex)& V, Standard_EXPORT StepToTopoDS_TranslateVertex(const Handle(StepShape_Vertex)& V,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_Vertex)& V, Standard_EXPORT void Init (const Handle(StepShape_Vertex)& V,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -24,6 +24,7 @@
#include <StepToTopoDS_TranslateVertexLoopError.hxx> #include <StepToTopoDS_TranslateVertexLoopError.hxx>
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <StepToTopoDS_Root.hxx> #include <StepToTopoDS_Root.hxx>
class StepData_Factors;
class StepShape_VertexLoop; class StepShape_VertexLoop;
class StepToTopoDS_Tool; class StepToTopoDS_Tool;
class StepToTopoDS_NMTool; class StepToTopoDS_NMTool;
@@ -42,12 +43,12 @@ public:
Standard_EXPORT StepToTopoDS_TranslateVertexLoop(const Handle(StepShape_VertexLoop)& VL, Standard_EXPORT StepToTopoDS_TranslateVertexLoop(const Handle(StepShape_VertexLoop)& VL,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const Handle(StepShape_VertexLoop)& VL, Standard_EXPORT void Init (const Handle(StepShape_VertexLoop)& VL,
StepToTopoDS_Tool& T, StepToTopoDS_Tool& T,
StepToTopoDS_NMTool& NMTool, StepToTopoDS_NMTool& NMTool,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const TopoDS_Shape& Value() const; Standard_EXPORT const TopoDS_Shape& Value() const;

View File

@@ -25,6 +25,7 @@
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
#include <Message_ProgressRange.hxx> #include <Message_ProgressRange.hxx>
class StepData_Factors;
class StepShape_TopologicalRepresentationItem; class StepShape_TopologicalRepresentationItem;
class StepVisual_TessellatedItem; class StepVisual_TessellatedItem;
class TopoDS_Shape; class TopoDS_Shape;
@@ -47,14 +48,14 @@ public:
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const Standard_Integer theTessellatedGeomParam, const Standard_Integer theTessellatedGeomParam,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT void Init (const TopoDS_Shape& S, Standard_EXPORT void Init (const TopoDS_Shape& S,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const Standard_Integer theTessellatedGeomParam, const Standard_Integer theTessellatedGeomParam,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT TopoDSToStep_BuilderError Error() const; Standard_EXPORT TopoDSToStep_BuilderError Error() const;

View File

@@ -44,7 +44,7 @@ public:
Standard_EXPORT TopoDSToStep_MakeBrepWithVoids(const TopoDS_Solid& S, Standard_EXPORT TopoDSToStep_MakeBrepWithVoids(const TopoDS_Solid& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const Handle(StepShape_BrepWithVoids)& Value() const; Standard_EXPORT const Handle(StepShape_BrepWithVoids)& Value() const;

View File

@@ -24,6 +24,7 @@
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
#include <Message_ProgressRange.hxx> #include <Message_ProgressRange.hxx>
class StepData_Factors;
class StepShape_FacetedBrep; class StepShape_FacetedBrep;
class StepVisual_TessellatedItem; class StepVisual_TessellatedItem;
class TopoDS_Shell; class TopoDS_Shell;
@@ -45,12 +46,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeFacetedBrep(const TopoDS_Shell& S, Standard_EXPORT TopoDSToStep_MakeFacetedBrep(const TopoDS_Shell& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT TopoDSToStep_MakeFacetedBrep(const TopoDS_Solid& S, Standard_EXPORT TopoDSToStep_MakeFacetedBrep(const TopoDS_Solid& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const Handle(StepShape_FacetedBrep)& Value() const; Standard_EXPORT const Handle(StepShape_FacetedBrep)& Value() const;

View File

@@ -43,7 +43,7 @@ public:
Standard_EXPORT TopoDSToStep_MakeFacetedBrepAndBrepWithVoids(const TopoDS_Solid& S, Standard_EXPORT TopoDSToStep_MakeFacetedBrepAndBrepWithVoids(const TopoDS_Solid& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const Handle(StepShape_FacetedBrepAndBrepWithVoids)& Value() const; Standard_EXPORT const Handle(StepShape_FacetedBrepAndBrepWithVoids)& Value() const;

View File

@@ -39,7 +39,7 @@ public:
Standard_EXPORT TopoDSToStep_MakeGeometricCurveSet(const TopoDS_Shape& SH, Standard_EXPORT TopoDSToStep_MakeGeometricCurveSet(const TopoDS_Shape& SH,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepShape_GeometricCurveSet)& Value() const; Standard_EXPORT const Handle(StepShape_GeometricCurveSet)& Value() const;

View File

@@ -24,6 +24,7 @@
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
#include <Message_ProgressRange.hxx> #include <Message_ProgressRange.hxx>
class StepData_Factors;
class StepShape_ManifoldSolidBrep; class StepShape_ManifoldSolidBrep;
class StepVisual_TessellatedItem; class StepVisual_TessellatedItem;
class TopoDS_Shell; class TopoDS_Shell;
@@ -44,12 +45,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeManifoldSolidBrep(const TopoDS_Shell& S, Standard_EXPORT TopoDSToStep_MakeManifoldSolidBrep(const TopoDS_Shell& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT TopoDSToStep_MakeManifoldSolidBrep(const TopoDS_Solid& S, Standard_EXPORT TopoDSToStep_MakeManifoldSolidBrep(const TopoDS_Solid& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const Handle(StepShape_ManifoldSolidBrep)& Value() const; Standard_EXPORT const Handle(StepShape_ManifoldSolidBrep)& Value() const;

View File

@@ -45,17 +45,17 @@ public:
Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Face& F, Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Face& F,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Shell& S, Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Shell& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Solid& S, Standard_EXPORT TopoDSToStep_MakeShellBasedSurfaceModel(const TopoDS_Solid& S,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors(), const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress = Message_ProgressRange()); const Message_ProgressRange& theProgress = Message_ProgressRange());
Standard_EXPORT const Handle(StepShape_ShellBasedSurfaceModel)& Value() const; Standard_EXPORT const Handle(StepShape_ShellBasedSurfaceModel)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <TopoDSToStep_MakeEdgeError.hxx> #include <TopoDSToStep_MakeEdgeError.hxx>
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
class StepData_Factors;
class StepShape_TopologicalRepresentationItem; class StepShape_TopologicalRepresentationItem;
class TopoDS_Edge; class TopoDS_Edge;
class TopoDSToStep_Tool; class TopoDSToStep_Tool;
@@ -44,12 +45,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeStepEdge(const TopoDS_Edge& E, Standard_EXPORT TopoDSToStep_MakeStepEdge(const TopoDS_Edge& E,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const TopoDS_Edge& E, Standard_EXPORT void Init (const TopoDS_Edge& E,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const; Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const;

View File

@@ -23,6 +23,7 @@
#include <TopoDSToStep_MakeFaceError.hxx> #include <TopoDSToStep_MakeFaceError.hxx>
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
class StepData_Factors;
class StepShape_TopologicalRepresentationItem; class StepShape_TopologicalRepresentationItem;
class TopoDS_Face; class TopoDS_Face;
class TopoDSToStep_Tool; class TopoDSToStep_Tool;
@@ -44,12 +45,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeStepFace(const TopoDS_Face& F, Standard_EXPORT TopoDSToStep_MakeStepFace(const TopoDS_Face& F,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const TopoDS_Face& F, Standard_EXPORT void Init (const TopoDS_Face& F,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const; Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const;

View File

@@ -44,12 +44,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeStepVertex(const TopoDS_Vertex& V, Standard_EXPORT TopoDSToStep_MakeStepVertex(const TopoDS_Vertex& V,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const TopoDS_Vertex& V, Standard_EXPORT void Init (const TopoDS_Vertex& V,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const; Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const;

View File

@@ -44,12 +44,12 @@ public:
Standard_EXPORT TopoDSToStep_MakeStepWire(const TopoDS_Wire& W, Standard_EXPORT TopoDSToStep_MakeStepWire(const TopoDS_Wire& W,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const TopoDS_Wire& W, Standard_EXPORT void Init (const TopoDS_Wire& W,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const Handle(Transfer_FinderProcess)& FP, const Handle(Transfer_FinderProcess)& FP,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const; Standard_EXPORT const Handle(StepShape_TopologicalRepresentationItem)& Value() const;

View File

@@ -25,6 +25,7 @@
#include <TopoDSToStep_BuilderError.hxx> #include <TopoDSToStep_BuilderError.hxx>
#include <TopoDSToStep_Root.hxx> #include <TopoDSToStep_Root.hxx>
#include <MoniTool_DataMapOfShapeTransient.hxx> #include <MoniTool_DataMapOfShapeTransient.hxx>
class StepData_Factors;
class TopoDS_Shape; class TopoDS_Shape;
class TopoDSToStep_Tool; class TopoDSToStep_Tool;
class Transfer_FinderProcess; class Transfer_FinderProcess;
@@ -45,11 +46,11 @@ public:
Standard_EXPORT TopoDSToStep_WireframeBuilder(const TopoDS_Shape& S, Standard_EXPORT TopoDSToStep_WireframeBuilder(const TopoDS_Shape& S,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT void Init (const TopoDS_Shape& S, Standard_EXPORT void Init (const TopoDS_Shape& S,
TopoDSToStep_Tool& T, TopoDSToStep_Tool& T,
const StepData_Factors& theLocalFactors = StepData_Factors()); const StepData_Factors& theLocalFactors);
Standard_EXPORT TopoDSToStep_BuilderError Error() const; Standard_EXPORT TopoDSToStep_BuilderError Error() const;
@@ -61,21 +62,21 @@ public:
const TopoDS_Face& F, const TopoDS_Face& F,
MoniTool_DataMapOfShapeTransient& M, MoniTool_DataMapOfShapeTransient& M,
Handle(TColStd_HSequenceOfTransient)& L, Handle(TColStd_HSequenceOfTransient)& L,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Extraction of Trimmed Curves from TopoDS_Face for the //! Extraction of Trimmed Curves from TopoDS_Face for the
//! Creation of a GeometricallyBoundedWireframeRepresentation //! Creation of a GeometricallyBoundedWireframeRepresentation
Standard_EXPORT Standard_Boolean GetTrimmedCurveFromFace (const TopoDS_Face& F, Standard_EXPORT Standard_Boolean GetTrimmedCurveFromFace (const TopoDS_Face& F,
MoniTool_DataMapOfShapeTransient& M, MoniTool_DataMapOfShapeTransient& M,
Handle(TColStd_HSequenceOfTransient)& L, Handle(TColStd_HSequenceOfTransient)& L,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;
//! Extraction of Trimmed Curves from any TopoDS_Shape for the //! Extraction of Trimmed Curves from any TopoDS_Shape for the
//! Creation of a GeometricallyBoundedWireframeRepresentation //! Creation of a GeometricallyBoundedWireframeRepresentation
Standard_EXPORT Standard_Boolean GetTrimmedCurveFromShape (const TopoDS_Shape& S, Standard_EXPORT Standard_Boolean GetTrimmedCurveFromShape (const TopoDS_Shape& S,
MoniTool_DataMapOfShapeTransient& M, MoniTool_DataMapOfShapeTransient& M,
Handle(TColStd_HSequenceOfTransient)& L, Handle(TColStd_HSequenceOfTransient)& L,
const StepData_Factors& theLocalFactors = StepData_Factors()) const; const StepData_Factors& theLocalFactors) const;

View File

@@ -5100,24 +5100,6 @@ static int VDisplay2 (Draw_Interpretor& theDI,
aTrsfPers = new Graphic3d_TransformPers (aTrsfPers->Mode(), Aspect_TypeOfTriedronPosition (aCorner), Graphic3d_Vec2i (aZ.IntegerValue())); aTrsfPers = new Graphic3d_TransformPers (aTrsfPers->Mode(), Aspect_TypeOfTriedronPosition (aCorner), Graphic3d_Vec2i (aZ.IntegerValue()));
} }
} }
else if (aNameCase == "-trsfPersOrtho")
{
if (aTrsfPers.IsNull())
{
Message::SendFail() << "Error: wrong syntax at " << aName << ".";
return 1;
}
toSetTrsfPers = Standard_True;
if (aTrsfPers->IsZoomOrRotate())
{
aTrsfPers = new Graphic3d_TransformPers (aTrsfPers->Mode() | Graphic3d_TMF_OrthoPers, aTrsfPers->AnchorPoint());
}
else if (aTrsfPers->IsTrihedronOr2d())
{
aTrsfPers = new Graphic3d_TransformPers (aTrsfPers->Mode() | Graphic3d_TMF_OrthoPers, aTrsfPers->Corner2d(), aTrsfPers->Offset2d());
}
}
else if (aNameCase == "-layer" else if (aNameCase == "-layer"
|| aNameCase == "-zlayer") || aNameCase == "-zlayer")
{ {
@@ -6648,45 +6630,42 @@ If last 3 optional parameters are not set prints numbers of U-, V- isolines and
addCmd ("vdisplay", VDisplay2, /* [vdisplay] */ R"( addCmd ("vdisplay", VDisplay2, /* [vdisplay] */ R"(
vdisplay [-noupdate|-update] [-mutable] [-neutral] vdisplay [-noupdate|-update] [-mutable] [-neutral]
[-trsfPers {zoom|rotate|zoomRotate|trihedron|none}=none] [-trsfPers {zoom|rotate|zoomRotate|none}=none]
[-trsfPersPos X Y [Z]] [-3d] [-trsfPersPos X Y [Z]] [-3d]
[-2d|-trihedron [{top|bottom|left|right|topLeft [-2d|-trihedron [{top|bottom|left|right|topLeft
|topRight|bottomLeft|bottomRight} |topRight|bottomLeft|bottomRight}
[offsetX offsetY]]] [offsetX offsetY]]]
[-trsfPersOrtho]
[-dispMode mode] [-highMode mode] [-dispMode mode] [-highMode mode]
[-layer index] [-top|-topmost|-overlay|-underlay] [-layer index] [-top|-topmost|-overlay|-underlay]
[-redisplay] [-erased] [-redisplay] [-erased]
[-noecho] [-autoTriangulation {0|1}] [-noecho] [-autoTriangulation {0|1}]
name1 [name2] ... [name n] name1 [name2] ... [name n]
Displays named objects. Displays named objects.
-noupdate Suppresses viewer redraw call. -noupdate Suppresses viewer redraw call.
-mutable Enables optimizations for mutable objects. -mutable Enables optimizations for mutable objects.
-neutral Draws objects in main viewer. -neutral Draws objects in main viewer.
-erased Loads the object into context, but does not display it. -erased Loads the object into context, but does not display it.
-layer Sets z-layer for objects. -layer Sets z-layer for objects.
Alternatively -overlay|-underlay|-top|-topmost Alternatively -overlay|-underlay|-top|-topmost
options can be used for the default z-layers. options can be used for the default z-layers.
-top Draws object on top of main presentations -top Draws object on top of main presentations
but below topmost. but below topmost.
-topmost Draws in overlay for 3D presentations. -topmost Draws in overlay for 3D presentations.
with independent Depth. with independent Depth.
-overlay Draws objects in overlay for 2D presentations. -overlay Draws objects in overlay for 2D presentations.
(On-Screen-Display) (On-Screen-Display)
-underlay Draws objects in underlay for 2D presentations. -underlay Draws objects in underlay for 2D presentations.
(On-Screen-Display) (On-Screen-Display)
-selectable|-noselect Controls selection of objects. -selectable|-noselect Controls selection of objects.
-trsfPers Sets a transform persistence flags. -trsfPers Sets a transform persistence flags.
-trsfPersPos Sets an anchor point for transform persistence. -trsfPersPos Sets an anchor point for transform persistence.
-2d Displays object in screen coordinates. -2d Displays object in screen coordinates.
(DY looks up) (DY looks up)
-trsfPersOrtho Set orthographic transform persistence. -dispmode Sets display mode for objects.
(Objects shown with orthographic projection) -highmode Sets hilight mode for objects.
-dispmode Sets display mode for objects. -redisplay Recomputes presentation of objects.
-highmode Sets hilight mode for objects. -noecho Avoid printing of command results.
-redisplay Recomputes presentation of objects. -autoTriang Enable/disable auto-triangulation for displayed shape.
-noecho Avoid printing of command results.
-autoTriang Enable/disable auto-triangulation for displayed shape.
)" /* [vdisplay] */); )" /* [vdisplay] */);
addCmd ("vnbdisplayed", VNbDisplayed, /* [vnbdisplayed] */ R"( addCmd ("vnbdisplayed", VNbDisplayed, /* [vnbdisplayed] */ R"(

View File

@@ -176,12 +176,11 @@ namespace
GetDisplayConnection() = theDisplayConnection; GetDisplayConnection() = theDisplayConnection;
} }
static ViewerTest_ViewerCommandsViewMap ViewerTest_myViews;
static ViewerTest_ViewerCommandsInteractiveContextMap ViewerTest_myContexts; static ViewerTest_ViewerCommandsInteractiveContextMap ViewerTest_myContexts;
static ViewerTest_ViewerCommandsGraphicDriverMap ViewerTest_myDrivers; static ViewerTest_ViewerCommandsGraphicDriverMap ViewerTest_myDrivers;
} }
ViewerTest_ViewerCommandsViewMap ViewerTest_myViews;
static struct static struct
{ {
Quantity_Color FlatColor; Quantity_Color FlatColor;
@@ -13686,12 +13685,6 @@ static int VViewCube (Draw_Interpretor& ,
{ {
aViewCube->SetAxesSphereRadius (Draw::Atof (theArgVec[++anArgIter])); aViewCube->SetAxesSphereRadius (Draw::Atof (theArgVec[++anArgIter]));
} }
else if (anArg == "-orthopers")
{
const Handle(Graphic3d_TransformPers)& aTrsfPers = aViewCube->TransformPersistence();
Handle(Graphic3d_TransformPers) anOrthoPers = new Graphic3d_TransformPers (Graphic3d_TMF_TriedronPers | Graphic3d_TMF_OrthoPers, aTrsfPers->Corner2d(), aTrsfPers->Offset2d());
aViewCube->SetTransformPersistence (anOrthoPers);
}
else else
{ {
Message::SendFail() << "Syntax error: unknown argument '" << anArg << "'"; Message::SendFail() << "Syntax error: unknown argument '" << anArg << "'";
@@ -14989,7 +14982,6 @@ Displays interactive view manipulation object. Options:
-axesSphereRadius Value radius of the sphere (central point) of trihedron -axesSphereRadius Value radius of the sphere (central point) of trihedron
-fixedAnimation {0|1} uninterruptible animation loop -fixedAnimation {0|1} uninterruptible animation loop
-duration Seconds animation duration in seconds -duration Seconds animation duration in seconds
-orthoPers force orthographic projection persistence.
)" /* [vviewcube] */); )" /* [vviewcube] */);
addCmd ("vcolorconvert", VColorConvert, /* [vcolorconvert] */ R"( addCmd ("vcolorconvert", VColorConvert, /* [vcolorconvert] */ R"(

Some files were not shown because too many files have changed in this diff Show More