Foundation Classes, gp - Mark geometry APIs noexcept/constexpr (#798)

- Add noexcept to many small mutating and non-throwing methods (Mirror, Mirrored, SetMirror, SetTranslationPart, etc.) across gp classes.
- Annotate trivial getters, translators and small computations as constexpr where applicable (SetLocation/SetPosition, Area/Length/Radius/Volume, Axis/Location/Position accessors, Translate helpers).
- Update headers and source files to improve noexcept/constexpr conformance for gp geometry and math types, enabling better optimization and stronger exception-safety guarantees.
This commit is contained in:
Pasukhin Dmitry
2025-11-03 10:19:05 +00:00
committed by GitHub
parent ddffad0a65
commit d98f74d893
36 changed files with 336 additions and 315 deletions
+6 -6
View File
@@ -43,39 +43,39 @@ Standard_Boolean gp_Ax1::IsCoaxial(const gp_Ax1& Other,
&& D2 <= LinearTolerance);
}
void gp_Ax1::Mirror(const gp_Pnt& P)
void gp_Ax1::Mirror(const gp_Pnt& P) noexcept
{
loc.Mirror(P);
vdir.Reverse();
}
gp_Ax1 gp_Ax1::Mirrored(const gp_Pnt& P) const
gp_Ax1 gp_Ax1::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Ax1 A1 = *this;
A1.Mirror(P);
return A1;
}
void gp_Ax1::Mirror(const gp_Ax1& A1)
void gp_Ax1::Mirror(const gp_Ax1& A1) noexcept
{
loc.Mirror(A1);
vdir.Mirror(A1.vdir);
}
gp_Ax1 gp_Ax1::Mirrored(const gp_Ax1& A1) const
gp_Ax1 gp_Ax1::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Ax1 A = *this;
A.Mirror(A1);
return A;
}
void gp_Ax1::Mirror(const gp_Ax2& A2)
void gp_Ax1::Mirror(const gp_Ax2& A2) noexcept
{
loc.Mirror(A2);
vdir.Mirror(A2);
}
gp_Ax1 gp_Ax1::Mirrored(const gp_Ax2& A2) const
gp_Ax1 gp_Ax1::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Ax1 A1 = *this;
A1.Mirror(A2);
+6 -6
View File
@@ -118,34 +118,34 @@ public:
//! Performs the symmetrical transformation of an axis
//! placement with respect to the point P which is the
//! center of the symmetry and assigns the result to this axis.
Standard_EXPORT void Mirror(const gp_Pnt& P);
Standard_EXPORT void Mirror(const gp_Pnt& P) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to the point P which is the
//! center of the symmetry and creates a new axis.
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Pnt& P) const;
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Pnt& P) const noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to an axis placement which
//! is the axis of the symmetry and assigns the result to this axis.
Standard_EXPORT void Mirror(const gp_Ax1& A1);
Standard_EXPORT void Mirror(const gp_Ax1& A1) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to an axis placement which
//! is the axis of the symmetry and creates a new axis.
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Ax1& A1) const;
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Ax1& A1) const noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to a plane. The axis placement
//! <A2> locates the plane of the symmetry :
//! (Location, XDirection, YDirection) and assigns the result to this axis.
Standard_EXPORT void Mirror(const gp_Ax2& A2);
Standard_EXPORT void Mirror(const gp_Ax2& A2) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to a plane. The axis placement
//! <A2> locates the plane of the symmetry :
//! (Location, XDirection, YDirection) and creates a new axis.
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Ax2& A2) const;
Standard_NODISCARD Standard_EXPORT gp_Ax1 Mirrored(const gp_Ax2& A2) const noexcept;
//! Rotates this axis at an angle theAngRad (in radians) about the axis theA1
//! and assigns the result to this axis.
+2 -2
View File
@@ -74,7 +74,7 @@ gp_Ax2::gp_Ax2(const gp_Pnt& P, const gp_Dir& V)
SetXDirection(D);
}
void gp_Ax2::Mirror(const gp_Pnt& P)
void gp_Ax2::Mirror(const gp_Pnt& P) noexcept
{
gp_Pnt Temp = axis.Location();
Temp.Mirror(P);
@@ -83,7 +83,7 @@ void gp_Ax2::Mirror(const gp_Pnt& P)
vydir.Reverse();
}
gp_Ax2 gp_Ax2::Mirrored(const gp_Pnt& P) const
gp_Ax2 gp_Ax2::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Ax2 Temp = *this;
Temp.Mirror(P);
+2 -2
View File
@@ -181,7 +181,7 @@ public:
//! product "X Direction" ^ "Y Direction".
//! This maintains the right-handed property of the
//! coordinate system.
Standard_EXPORT void Mirror(const gp_Pnt& P);
Standard_EXPORT void Mirror(const gp_Pnt& P) noexcept;
//! Performs a symmetrical transformation of this coordinate
//! system with respect to:
@@ -198,7 +198,7 @@ public:
//! product "X Direction" ^ "Y Direction".
//! This maintains the right-handed property of the
//! coordinate system.
Standard_NODISCARD Standard_EXPORT gp_Ax2 Mirrored(const gp_Pnt& P) const;
Standard_NODISCARD Standard_EXPORT gp_Ax2 Mirrored(const gp_Pnt& P) const noexcept;
//! Performs a symmetrical transformation of this coordinate
//! system with respect to:
+6 -6
View File
@@ -73,42 +73,42 @@ gp_Ax3::gp_Ax3(const gp_Pnt& P, const gp_Dir& V)
vydir = V.Crossed(vxdir);
}
void gp_Ax3::Mirror(const gp_Pnt& P)
void gp_Ax3::Mirror(const gp_Pnt& P) noexcept
{
axis.Mirror(P);
vxdir.Reverse();
vydir.Reverse();
}
gp_Ax3 gp_Ax3::Mirrored(const gp_Pnt& P) const
gp_Ax3 gp_Ax3::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Ax3 Temp = *this;
Temp.Mirror(P);
return Temp;
}
void gp_Ax3::Mirror(const gp_Ax1& A1)
void gp_Ax3::Mirror(const gp_Ax1& A1) noexcept
{
vydir.Mirror(A1);
vxdir.Mirror(A1);
axis.Mirror(A1);
}
gp_Ax3 gp_Ax3::Mirrored(const gp_Ax1& A1) const
gp_Ax3 gp_Ax3::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Ax3 Temp = *this;
Temp.Mirror(A1);
return Temp;
}
void gp_Ax3::Mirror(const gp_Ax2& A2)
void gp_Ax3::Mirror(const gp_Ax2& A2) noexcept
{
vydir.Mirror(A2);
vxdir.Mirror(A2);
axis.Mirror(A2);
}
gp_Ax3 gp_Ax3::Mirrored(const gp_Ax2& A2) const
gp_Ax3 gp_Ax3::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Ax3 Temp = *this;
Temp.Mirror(A2);
+6 -6
View File
@@ -200,7 +200,7 @@ public:
const Standard_Real theLinearTolerance,
const Standard_Real theAngularTolerance) const;
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to the point theP which is the
@@ -209,9 +209,9 @@ public:
//! The main direction of the axis placement is not changed.
//! The "XDirection" and the "YDirection" are reversed.
//! So the axis placement stay right handed.
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to an axis placement which
@@ -220,9 +220,9 @@ public:
//! point, on the "XDirection" and "YDirection".
//! The resulting main "Direction" is the cross product between
//! the "XDirection" and the "YDirection" after transformation.
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of an axis
//! placement with respect to a plane.
@@ -232,7 +232,7 @@ public:
//! point, on the "XDirection" and "YDirection".
//! The resulting main "Direction" is the cross product between
//! the "XDirection" and the "YDirection" after transformation.
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Ax3 Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng)
{
+2 -2
View File
@@ -18,12 +18,12 @@
#include <gp_Ax2.hxx>
#include <gp_Pnt.hxx>
void gp_Circ::Mirror(const gp_Pnt& P)
void gp_Circ::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Circ gp_Circ::Mirrored(const gp_Pnt& P) const
gp_Circ gp_Circ::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Circ C = *this;
C.pos.Mirror(P);
+23 -19
View File
@@ -78,10 +78,10 @@ public:
void SetAxis(const gp_Ax1& theA1) { pos.SetAxis(theA1); }
//! Changes the "Location" point (center) of the circle.
void SetLocation(const gp_Pnt& theP) { pos.SetLocation(theP); }
constexpr void SetLocation(const gp_Pnt& theP) noexcept { pos.SetLocation(theP); }
//! Changes the position of the circle.
void SetPosition(const gp_Ax2& theA2) { pos = theA2; }
constexpr void SetPosition(const gp_Ax2& theA2) noexcept { pos = theA2; }
//! Modifies the radius of this circle.
//! Warning. This class does not prevent the creation of a circle where theRadius is null.
@@ -95,44 +95,44 @@ public:
}
//! Computes the area of the circle.
Standard_Real Area() const { return M_PI * radius * radius; }
constexpr Standard_Real Area() const noexcept { return M_PI * radius * radius; }
//! Returns the main axis of the circle.
//! It is the axis perpendicular to the plane of the circle,
//! passing through the "Location" point (center) of the circle.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the circumference of the circle.
Standard_Real Length() const { return 2. * M_PI * radius; }
constexpr Standard_Real Length() const noexcept { return 2. * M_PI * radius; }
//! Returns the center of the circle. It is the
//! "Location" point of the local coordinate system
//! of the circle
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the position of the circle.
//! It is the local coordinate system of the circle.
const gp_Ax2& Position() const { return pos; }
constexpr const gp_Ax2& Position() const noexcept { return pos; }
//! Returns the radius of this circle.
Standard_Real Radius() const { return radius; }
constexpr Standard_Real Radius() const noexcept { return radius; }
//! Returns the "XAxis" of the circle.
//! This axis is perpendicular to the axis of the conic.
//! This axis and the "Yaxis" define the plane of the conic.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the "YAxis" of the circle.
//! This axis and the "Xaxis" define the plane of the conic.
//! The "YAxis" is perpendicular to the "Xaxis".
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
//! Computes the minimum of distance between the point theP and
//! any point on the circumference of the circle.
Standard_Real Distance(const gp_Pnt& theP) const { return sqrt(SquareDistance(theP)); }
Standard_Real Distance(const gp_Pnt& theP) const noexcept { return sqrt(SquareDistance(theP)); }
//! Computes the square distance between <me> and the point theP.
Standard_Real SquareDistance(const gp_Pnt& theP) const
Standard_Real SquareDistance(const gp_Pnt& theP) const noexcept
{
gp_Vec aV(Location(), theP);
Standard_Real aX = aV.Dot(pos.XDirection());
@@ -145,17 +145,18 @@ public:
//! Returns True if the point theP is on the circumference.
//! The distance between <me> and <theP> must be lower or
//! equal to theLinearTolerance.
Standard_Boolean Contains(const gp_Pnt& theP, const Standard_Real theLinearTolerance) const
Standard_Boolean Contains(const gp_Pnt& theP,
const Standard_Real theLinearTolerance) const noexcept
{
return Distance(theP) <= theLinearTolerance;
}
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a circle
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Circ Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Circ Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
@@ -196,21 +197,24 @@ public:
//! Transforms a circle with the transformation theT from class Trsf.
Standard_NODISCARD gp_Circ Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a circle in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Circ Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Circ Translated(const gp_Vec& theV) const noexcept
{
gp_Circ aC = *this;
aC.pos.Translate(theV);
return aC;
}
void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) { pos.Translate(theP1, theP2); }
constexpr void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept
{
pos.Translate(theP1, theP2);
}
//! Translates a circle from the point theP1 to the point theP2.
Standard_NODISCARD gp_Circ Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const
Standard_NODISCARD gp_Circ Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const noexcept
{
gp_Circ aC = *this;
aC.pos.Translate(theP1, theP2);
+6 -6
View File
@@ -63,36 +63,36 @@ void gp_Cone::Coefficients(Standard_Real& A1,
D = T14 * T14 + T24 * T24 - radius * radius - T34 * T34 - 2.0 * radius * T34;
}
void gp_Cone::Mirror(const gp_Pnt& P)
void gp_Cone::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Cone gp_Cone::Mirrored(const gp_Pnt& P) const
gp_Cone gp_Cone::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Cone C = *this;
C.pos.Mirror(P);
return C;
}
void gp_Cone::Mirror(const gp_Ax1& A1)
void gp_Cone::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Cone gp_Cone::Mirrored(const gp_Ax1& A1) const
gp_Cone gp_Cone::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Cone C = *this;
C.pos.Mirror(A1);
return C;
}
void gp_Cone::Mirror(const gp_Ax2& A2)
void gp_Cone::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Cone gp_Cone::Mirrored(const gp_Ax2& A2) const
gp_Cone gp_Cone::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Cone C = *this;
C.pos.Mirror(A2);
+19 -19
View File
@@ -77,11 +77,11 @@ public:
void SetAxis(const gp_Ax1& theA1) { pos.SetAxis(theA1); }
//! Changes the location of the cone.
void SetLocation(const gp_Pnt& theLoc) { pos.SetLocation(theLoc); }
constexpr void SetLocation(const gp_Pnt& theLoc) noexcept { pos.SetLocation(theLoc); }
//! Changes the local coordinate system of the cone.
//! This coordinate system defines the reference plane of the cone.
void SetPosition(const gp_Ax3& theA3) { pos = theA3; }
constexpr void SetPosition(const gp_Ax3& theA3) noexcept { pos = theA3; }
//! Changes the radius of the cone in the reference plane of
//! the cone.
@@ -112,10 +112,10 @@ public:
//! Reverses the U parametrization of the cone
//! reversing the YAxis.
void UReverse() { pos.YReverse(); }
constexpr void UReverse() noexcept { pos.YReverse(); }
//! Reverses the V parametrization of the cone reversing the ZAxis.
void VReverse()
constexpr void VReverse() noexcept
{
pos.ZReverse();
semiAngle = -semiAngle;
@@ -125,7 +125,7 @@ public:
Standard_Boolean Direct() const { return pos.Direct(); }
//! returns the symmetry axis of the cone.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the coefficients of the implicit equation of the quadric
//! in the absolute cartesian coordinates system :
@@ -143,44 +143,44 @@ public:
Standard_Real& theD) const;
//! returns the "Location" point of the cone.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the local coordinates system of the cone.
const gp_Ax3& Position() const { return pos; }
constexpr const gp_Ax3& Position() const noexcept { return pos; }
//! Returns the radius of the cone in the reference plane.
Standard_Real RefRadius() const { return radius; }
constexpr Standard_Real RefRadius() const noexcept { return radius; }
//! Returns the half-angle at the apex of this cone.
//! Attention! Semi-angle can be negative.
Standard_Real SemiAngle() const { return semiAngle; }
constexpr Standard_Real SemiAngle() const noexcept { return semiAngle; }
//! Returns the XAxis of the reference plane.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the YAxis of the reference plane.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a cone
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a cone with
//! respect to an axis placement which is the axis of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a cone with respect
//! to a plane. The axis placement theA2 locates the plane of the
//! of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Cone Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -204,11 +204,11 @@ public:
//! Transforms a cone with the transformation theT from class Trsf.
Standard_NODISCARD gp_Cone Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a cone in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Cone Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Cone Translated(const gp_Vec& theV) const noexcept
{
gp_Cone aCone = *this;
aCone.pos.Translate(theV);
@@ -60,36 +60,36 @@ void gp_Cylinder::Coefficients(Standard_Real& A1,
D = T14 * T14 + T24 * T24 - radius * radius;
}
void gp_Cylinder::Mirror(const gp_Pnt& P)
void gp_Cylinder::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Cylinder gp_Cylinder::Mirrored(const gp_Pnt& P) const
gp_Cylinder gp_Cylinder::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Cylinder C = *this;
C.pos.Mirror(P);
return C;
}
void gp_Cylinder::Mirror(const gp_Ax1& A1)
void gp_Cylinder::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Cylinder gp_Cylinder::Mirrored(const gp_Ax1& A1) const
gp_Cylinder gp_Cylinder::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Cylinder C = *this;
C.pos.Mirror(A1);
return C;
}
void gp_Cylinder::Mirror(const gp_Ax2& A2)
void gp_Cylinder::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Cylinder gp_Cylinder::Mirrored(const gp_Ax2& A2) const
gp_Cylinder gp_Cylinder::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Cylinder C = *this;
C.pos.Mirror(A2);
+18 -18
View File
@@ -62,10 +62,10 @@ public:
void SetAxis(const gp_Ax1& theA1) { pos.SetAxis(theA1); }
//! Changes the location of the surface.
void SetLocation(const gp_Pnt& theLoc) { pos.SetLocation(theLoc); }
constexpr void SetLocation(const gp_Pnt& theLoc) noexcept { pos.SetLocation(theLoc); }
//! Change the local coordinate system of the surface.
void SetPosition(const gp_Ax3& theA3) { pos = theA3; }
constexpr void SetPosition(const gp_Ax3& theA3) noexcept { pos = theA3; }
//! Modifies the radius of this cylinder.
//! Exceptions
@@ -80,17 +80,17 @@ public:
//! Reverses the U parametrization of the cylinder
//! reversing the YAxis.
void UReverse() { pos.YReverse(); }
constexpr void UReverse() noexcept { pos.YReverse(); }
//! Reverses the V parametrization of the plane
//! reversing the Axis.
void VReverse() { pos.ZReverse(); }
constexpr void VReverse() noexcept { pos.ZReverse(); }
//! Returns true if the local coordinate system of this cylinder is right-handed.
Standard_Boolean Direct() const { return pos.Direct(); }
//! Returns the symmetry axis of the cylinder.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the coefficients of the implicit equation of the quadric
//! in the absolute cartesian coordinate system :
@@ -108,40 +108,40 @@ public:
Standard_Real& theD) const;
//! Returns the "Location" point of the cylinder.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the local coordinate system of the cylinder.
const gp_Ax3& Position() const { return pos; }
constexpr const gp_Ax3& Position() const noexcept { return pos; }
//! Returns the radius of the cylinder.
Standard_Real Radius() const { return radius; }
constexpr Standard_Real Radius() const noexcept { return radius; }
//! Returns the axis X of the cylinder.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the axis Y of the cylinder.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a cylinder
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a cylinder with
//! respect to an axis placement which is the axis of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a cylinder with respect
//! to a plane. The axis placement theA2 locates the plane of the
//! of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Cylinder Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -165,11 +165,11 @@ public:
//! Transforms a cylinder with the transformation theT from class Trsf.
Standard_NODISCARD gp_Cylinder Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a cylinder in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Cylinder Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Cylinder Translated(const gp_Vec& theV) const noexcept
{
gp_Cylinder aCyl = *this;
aCyl.pos.Translate(theV);
+6 -6
View File
@@ -67,7 +67,7 @@ Standard_Real gp_Dir::AngleWithRef(const gp_Dir& Other, const gp_Dir& Vref) cons
return -Ang;
}
void gp_Dir::Mirror(const gp_Dir& V)
void gp_Dir::Mirror(const gp_Dir& V) noexcept
{
const gp_XYZ& XYZ = V.coord;
Standard_Real A = XYZ.X();
@@ -85,7 +85,7 @@ void gp_Dir::Mirror(const gp_Dir& V)
coord.SetCoord(XX, YY, ZZ);
}
void gp_Dir::Mirror(const gp_Ax1& A1)
void gp_Dir::Mirror(const gp_Ax1& A1) noexcept
{
const gp_XYZ& XYZ = A1.Direction().coord;
Standard_Real A = XYZ.X();
@@ -103,7 +103,7 @@ void gp_Dir::Mirror(const gp_Ax1& A1)
coord.SetCoord(XX, YY, ZZ);
}
void gp_Dir::Mirror(const gp_Ax2& A2)
void gp_Dir::Mirror(const gp_Ax2& A2) noexcept
{
const gp_Dir& Vz = A2.Direction();
Mirror(Vz);
@@ -138,21 +138,21 @@ void gp_Dir::Transform(const gp_Trsf& T)
}
}
gp_Dir gp_Dir::Mirrored(const gp_Dir& V) const
gp_Dir gp_Dir::Mirrored(const gp_Dir& V) const noexcept
{
gp_Dir Vres = *this;
Vres.Mirror(V);
return Vres;
}
gp_Dir gp_Dir::Mirrored(const gp_Ax1& A1) const
gp_Dir gp_Dir::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Dir V = *this;
V.Mirror(A1);
return V;
}
gp_Dir gp_Dir::Mirrored(const gp_Ax2& A2) const
gp_Dir gp_Dir::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Dir V = *this;
V.Mirror(A2);
+6 -6
View File
@@ -235,26 +235,26 @@ public:
Standard_NODISCARD constexpr gp_Dir operator-() const noexcept { return Reversed(); }
Standard_EXPORT void Mirror(const gp_Dir& theV);
Standard_EXPORT void Mirror(const gp_Dir& theV) noexcept;
//! Performs the symmetrical transformation of a direction
//! with respect to the direction theV which is the center
//! of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Dir& theV) const;
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Dir& theV) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a direction
//! with respect to an axis placement which is the axis
//! of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a direction
//! with respect to a plane. The axis placement theA2 locates
//! the plane of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Dir Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng);
+2 -2
View File
@@ -20,12 +20,12 @@
#include <gp_Ax2.hxx>
#include <gp_Pnt.hxx>
void gp_Elips::Mirror(const gp_Pnt& P)
void gp_Elips::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Elips gp_Elips::Mirrored(const gp_Pnt& P) const
gp_Elips gp_Elips::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Elips E = *this;
E.pos.Mirror(P);
+19 -16
View File
@@ -90,7 +90,7 @@ public:
//! Modifies this ellipse, by redefining its local coordinate
//! so that its origin becomes theP.
void SetLocation(const gp_Pnt& theP) { pos.SetLocation(theP); }
constexpr void SetLocation(const gp_Pnt& theP) noexcept { pos.SetLocation(theP); }
//! The major radius of the ellipse is on the "XAxis" (major axis)
//! of the ellipse.
@@ -116,13 +116,13 @@ public:
//! Modifies this ellipse, by redefining its local coordinate
//! so that it becomes theA2.
void SetPosition(const gp_Ax2& theA2) { pos = theA2; }
constexpr void SetPosition(const gp_Ax2& theA2) noexcept { pos = theA2; }
//! Computes the area of the Ellipse.
Standard_Real Area() const { return M_PI * majorRadius * minorRadius; }
constexpr Standard_Real Area() const noexcept { return M_PI * majorRadius * minorRadius; }
//! Computes the axis normal to the plane of the ellipse.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the first or second directrix of this ellipse.
//! These are the lines, in the plane of the ellipse, normal to
@@ -170,13 +170,13 @@ public:
//! Returns the center of the ellipse. It is the "Location"
//! point of the coordinate system of the ellipse.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the major radius of the ellipse.
Standard_Real MajorRadius() const { return majorRadius; }
constexpr Standard_Real MajorRadius() const noexcept { return majorRadius; }
//! Returns the minor radius of the ellipse.
Standard_Real MinorRadius() const { return minorRadius; }
constexpr Standard_Real MinorRadius() const noexcept { return minorRadius; }
//! Returns p = (1 - e * e) * MajorRadius where e is the eccentricity
//! of the ellipse.
@@ -184,23 +184,23 @@ public:
Standard_Real Parameter() const;
//! Returns the coordinate system of the ellipse.
const gp_Ax2& Position() const { return pos; }
constexpr const gp_Ax2& Position() const noexcept { return pos; }
//! Returns the "XAxis" of the ellipse whose origin
//! is the center of this ellipse. It is the major axis of the
//! ellipse.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the "YAxis" of the ellipse whose unit vector is the "X Direction" or the "Y Direction"
//! of the local coordinate system of this ellipse.
//! This is the minor axis of the ellipse.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of an ellipse with
//! respect to the point theP which is the center of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Elips Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Elips Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
@@ -236,21 +236,24 @@ public:
//! Transforms an ellipse with the transformation theT from class Trsf.
Standard_NODISCARD gp_Elips Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates an ellipse in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Elips Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Elips Translated(const gp_Vec& theV) const noexcept
{
gp_Elips anE = *this;
anE.pos.Translate(theV);
return anE;
}
void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) { pos.Translate(theP1, theP2); }
constexpr void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept
{
pos.Translate(theP1, theP2);
}
//! Translates an ellipse from the point theP1 to the point theP2.
Standard_NODISCARD gp_Elips Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const
Standard_NODISCARD gp_Elips Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const noexcept
{
gp_Elips anE = *this;
anE.pos.Translate(theP1, theP2);
+2 -2
View File
@@ -20,12 +20,12 @@
#include <gp_Ax2.hxx>
#include <gp_Pnt.hxx>
void gp_Hypr::Mirror(const gp_Pnt& P)
void gp_Hypr::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Hypr gp_Hypr::Mirrored(const gp_Pnt& P) const
gp_Hypr gp_Hypr::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Hypr H = *this;
H.pos.Mirror(P);
+18 -15
View File
@@ -146,7 +146,7 @@ public:
//! Modifies this hyperbola, by redefining its local coordinate
//! system so that it becomes A2.
void SetPosition(const gp_Ax2& theA2) { pos = theA2; }
constexpr void SetPosition(const gp_Ax2& theA2) noexcept { pos = theA2; }
//! In the local coordinate system of the hyperbola the equation of
//! the hyperbola is (X*X)/(A*A) - (Y*Y)/(B*B) = 1.0 and the
@@ -164,7 +164,7 @@ public:
//! Returns the axis passing through the center,
//! and normal to the plane of this hyperbola.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the branch of hyperbola which is on the positive side of the
//! "YAxis" of <me>.
@@ -211,7 +211,7 @@ public:
//! Computes the focal distance. It is the distance between the
//! the two focus of the hyperbola.
Standard_Real Focal() const
Standard_Real Focal() const noexcept
{
return 2.0 * sqrt(majorRadius * majorRadius + minorRadius * minorRadius);
}
@@ -226,15 +226,15 @@ public:
//! Returns the location point of the hyperbola. It is the
//! intersection point between the "XAxis" and the "YAxis".
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the major radius of the hyperbola. It is the radius
//! on the "XAxis" of the hyperbola.
Standard_Real MajorRadius() const { return majorRadius; }
constexpr Standard_Real MajorRadius() const noexcept { return majorRadius; }
//! Returns the minor radius of the hyperbola. It is the radius
//! on the "YAxis" of the hyperbola.
Standard_Real MinorRadius() const { return minorRadius; }
constexpr Standard_Real MinorRadius() const noexcept { return minorRadius; }
//! Returns the branch of hyperbola obtained by doing the
//! symmetrical transformation of <me> with respect to the
@@ -257,7 +257,7 @@ public:
}
//! Returns the coordinate system of the hyperbola.
const gp_Ax2& Position() const { return pos; }
constexpr const gp_Ax2& Position() const noexcept { return pos; }
//! Computes an axis, whose
//! - the origin is the center of this hyperbola, and
@@ -265,20 +265,20 @@ public:
//! of the local coordinate system of this hyperbola.
//! These axes are, the major axis (the "X
//! Axis") and of this hyperboReturns the "XAxis" of the hyperbola.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Computes an axis, whose
//! - the origin is the center of this hyperbola, and
//! - the unit vector is the "Y Direction"
//! of the local coordinate system of this hyperbola.
//! These axes are the minor axis (the "Y Axis") of this hyperbola
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of an hyperbola with
//! respect to the point theP which is the center of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Hypr Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Hypr Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
@@ -315,21 +315,24 @@ public:
//! class Trsf.
Standard_NODISCARD gp_Hypr Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates an hyperbola in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Hypr Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Hypr Translated(const gp_Vec& theV) const noexcept
{
gp_Hypr aH = *this;
aH.pos.Translate(theV);
return aH;
}
void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) { pos.Translate(theP1, theP2); }
constexpr void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept
{
pos.Translate(theP1, theP2);
}
//! Translates an hyperbola from the point theP1 to the point theP2.
Standard_NODISCARD gp_Hypr Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const
Standard_NODISCARD gp_Hypr Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const noexcept
{
gp_Hypr aH = *this;
aH.pos.Translate(theP1, theP2);
+6 -6
View File
@@ -41,36 +41,36 @@ Standard_Real gp_Lin::Distance(const gp_Lin& Other) const
}
}
void gp_Lin::Mirror(const gp_Pnt& P)
void gp_Lin::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Lin gp_Lin::Mirrored(const gp_Pnt& P) const
gp_Lin gp_Lin::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Lin L = *this;
L.pos.Mirror(P);
return L;
}
void gp_Lin::Mirror(const gp_Ax1& A1)
void gp_Lin::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Lin gp_Lin::Mirrored(const gp_Ax1& A1) const
gp_Lin gp_Lin::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Lin L = *this;
L.pos.Mirror(A1);
return L;
}
void gp_Lin::Mirror(const gp_Ax2& A2)
void gp_Lin::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Lin gp_Lin::Mirrored(const gp_Ax2& A2) const
gp_Lin gp_Lin::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Lin L = *this;
L.pos.Mirror(A2);
+22 -21
View File
@@ -73,28 +73,28 @@ public:
}
//! Changes the direction of the line.
void SetDirection(const gp_Dir& theV) { pos.SetDirection(theV); }
constexpr void SetDirection(const gp_Dir& theV) noexcept { pos.SetDirection(theV); }
//! Changes the location point (origin) of the line.
void SetLocation(const gp_Pnt& theP) { pos.SetLocation(theP); }
constexpr void SetLocation(const gp_Pnt& theP) noexcept { pos.SetLocation(theP); }
//! Complete redefinition of the line.
//! The "Location" point of <theA1> is the origin of the line.
//! The "Direction" of <theA1> is the direction of the line.
void SetPosition(const gp_Ax1& theA1) { pos = theA1; }
constexpr void SetPosition(const gp_Ax1& theA1) noexcept { pos = theA1; }
//! Returns the direction of the line.
const gp_Dir& Direction() const { return pos.Direction(); }
constexpr const gp_Dir& Direction() const noexcept { return pos.Direction(); }
//! Returns the location point (origin) of the line.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the axis placement one axis with the same
//! location and direction as <me>.
const gp_Ax1& Position() const { return pos; }
constexpr const gp_Ax1& Position() const noexcept { return pos; }
//! Computes the angle between two lines in radians.
Standard_Real Angle(const gp_Lin& theOther) const
Standard_Real Angle(const gp_Lin& theOther) const noexcept
{
return pos.Direction().Angle(theOther.pos.Direction());
}
@@ -102,22 +102,23 @@ public:
//! Returns true if this line contains the point theP, that is, if the
//! distance between point theP and this line is less than or
//! equal to theLinearTolerance..
Standard_Boolean Contains(const gp_Pnt& theP, const Standard_Real theLinearTolerance) const
Standard_Boolean Contains(const gp_Pnt& theP,
const Standard_Real theLinearTolerance) const noexcept
{
return Distance(theP) <= theLinearTolerance;
}
//! Computes the distance between <me> and the point theP.
Standard_Real Distance(const gp_Pnt& theP) const;
Standard_Real Distance(const gp_Pnt& theP) const noexcept;
//! Computes the distance between two lines.
Standard_EXPORT Standard_Real Distance(const gp_Lin& theOther) const;
//! Computes the square distance between <me> and the point theP.
Standard_Real SquareDistance(const gp_Pnt& theP) const;
Standard_Real SquareDistance(const gp_Pnt& theP) const noexcept;
//! Computes the square distance between two lines.
Standard_Real SquareDistance(const gp_Lin& theOther) const
Standard_Real SquareDistance(const gp_Lin& theOther) const noexcept
{
Standard_Real aD = Distance(theOther);
return aD * aD;
@@ -130,27 +131,27 @@ public:
//! solutions in 3D space.
gp_Lin Normal(const gp_Pnt& theP) const;
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a line
//! with respect to the point theP which is the center of
//! the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a line
//! with respect to an axis placement which is the axis
//! of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a line
//! with respect to a plane. The axis placement <theA2>
//! locates the plane of the symmetry :
//! (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Lin Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -185,11 +186,11 @@ public:
return aL;
}
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a line in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Lin Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Lin Translated(const gp_Vec& theV) const noexcept
{
gp_Lin aL = *this;
aL.pos.Translate(theV);
@@ -212,7 +213,7 @@ private:
//=================================================================================================
inline Standard_Real gp_Lin::Distance(const gp_Pnt& theP) const
inline Standard_Real gp_Lin::Distance(const gp_Pnt& theP) const noexcept
{
gp_XYZ aCoord = theP.XYZ();
aCoord.Subtract((pos.Location()).XYZ());
@@ -222,7 +223,7 @@ inline Standard_Real gp_Lin::Distance(const gp_Pnt& theP) const
//=================================================================================================
inline Standard_Real gp_Lin::SquareDistance(const gp_Pnt& theP) const
inline Standard_Real gp_Lin::SquareDistance(const gp_Pnt& theP) const noexcept
{
const gp_Pnt& aLoc = pos.Location();
gp_Vec aV(theP.X() - aLoc.X(), theP.Y() - aLoc.Y(), theP.Z() - aLoc.Z());
+1 -1
View File
@@ -99,7 +99,7 @@ void gp_Mat::SetCross(const gp_XYZ& theRef)
//=================================================================================================
void gp_Mat::SetDot(const gp_XYZ& theRef)
void gp_Mat::SetDot(const gp_XYZ& theRef) noexcept
{
const Standard_Real X = theRef.X();
const Standard_Real Y = theRef.Y();
+1 -1
View File
@@ -89,7 +89,7 @@ public:
//! product of theRef and the number triple (X, Y, Z):
//! this * (X,Y,Z) = theRef.(X,Y,Z)
//! Note: this matrix is symmetric.
Standard_EXPORT void SetDot(const gp_XYZ& theRef);
Standard_EXPORT void SetDot(const gp_XYZ& theRef) noexcept;
//! Modifies this matrix so that it represents the Identity matrix.
constexpr void SetIdentity() noexcept
+2 -2
View File
@@ -20,12 +20,12 @@
#include <gp_Ax2.hxx>
#include <gp_Pnt.hxx>
void gp_Parab::Mirror(const gp_Pnt& P)
void gp_Parab::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Parab gp_Parab::Mirrored(const gp_Pnt& P) const
gp_Parab gp_Parab::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Parab Prb = *this;
Prb.pos.Mirror(P);
+18 -15
View File
@@ -102,15 +102,15 @@ public:
//! Changes the location of the parabola. It is the vertex of
//! the parabola.
void SetLocation(const gp_Pnt& theP) { pos.SetLocation(theP); }
constexpr void SetLocation(const gp_Pnt& theP) noexcept { pos.SetLocation(theP); }
//! Changes the local coordinate system of the parabola.
void SetPosition(const gp_Ax2& theA2) { pos = theA2; }
constexpr void SetPosition(const gp_Ax2& theA2) noexcept { pos = theA2; }
//! Returns the main axis of the parabola.
//! It is the axis normal to the plane of the parabola passing
//! through the vertex of the parabola.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the directrix of this parabola.
//! The directrix is:
@@ -125,37 +125,37 @@ public:
//! Returns the distance between the vertex and the focus
//! of the parabola.
Standard_Real Focal() const { return focalLength; }
constexpr Standard_Real Focal() const noexcept { return focalLength; }
//! - Computes the focus of the parabola.
gp_Pnt Focus() const;
//! Returns the vertex of the parabola. It is the "Location"
//! point of the coordinate system of the parabola.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Computes the parameter of the parabola.
//! It is the distance between the focus and the directrix of
//! the parabola. This distance is twice the focal length.
Standard_Real Parameter() const { return 2.0 * focalLength; }
constexpr Standard_Real Parameter() const noexcept { return 2.0 * focalLength; }
//! Returns the local coordinate system of the parabola.
const gp_Ax2& Position() const { return pos; }
constexpr const gp_Ax2& Position() const noexcept { return pos; }
//! Returns the symmetry axis of the parabola. The location point
//! of the axis is the vertex of the parabola.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! It is an axis parallel to the directrix of the parabola.
//! The location point of this axis is the vertex of the parabola.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a parabola
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Parab Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Parab Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
@@ -194,21 +194,24 @@ public:
//! Transforms a parabola with the transformation theT from class Trsf.
Standard_NODISCARD gp_Parab Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a parabola in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Parab Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Parab Translated(const gp_Vec& theV) const noexcept
{
gp_Parab aPrb = *this;
aPrb.pos.Translate(theV);
return aPrb;
}
void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) { pos.Translate(theP1, theP2); }
constexpr void Translate(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept
{
pos.Translate(theP1, theP2);
}
//! Translates a parabola from the point theP1 to the point theP2.
Standard_NODISCARD gp_Parab Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const
Standard_NODISCARD gp_Parab Translated(const gp_Pnt& theP1, const gp_Pnt& theP2) const noexcept
{
gp_Parab aPrb = *this;
aPrb.pos.Translate(theP1, theP2);
+6 -6
View File
@@ -110,36 +110,36 @@ gp_Pln::gp_Pln(const Standard_Real A,
}
}
void gp_Pln::Mirror(const gp_Pnt& P)
void gp_Pln::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Pln gp_Pln::Mirrored(const gp_Pnt& P) const
gp_Pln gp_Pln::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Pln Pl = *this;
Pl.pos.Mirror(P);
return Pl;
}
void gp_Pln::Mirror(const gp_Ax1& A1)
void gp_Pln::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Pln gp_Pln::Mirrored(const gp_Ax1& A1) const
gp_Pln gp_Pln::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Pln Pl = *this;
Pl.pos.Mirror(A1);
return Pl;
}
void gp_Pln::Mirror(const gp_Ax2& A2)
void gp_Pln::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Pln gp_Pln::Mirrored(const gp_Ax2& A2) const
gp_Pln gp_Pln::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Pln Pl = *this;
Pl.pos.Mirror(A2);
+31 -30
View File
@@ -84,7 +84,7 @@ public:
void Coefficients(Standard_Real& theA,
Standard_Real& theB,
Standard_Real& theC,
Standard_Real& theD) const;
Standard_Real& theD) const noexcept;
//! Modifies this plane, by redefining its local coordinate system so that
//! - its origin and "main Direction" become those of the
@@ -93,66 +93,66 @@ public:
void SetAxis(const gp_Ax1& theA1) { pos.SetAxis(theA1); }
//! Changes the origin of the plane.
void SetLocation(const gp_Pnt& theLoc) { pos.SetLocation(theLoc); }
constexpr void SetLocation(const gp_Pnt& theLoc) noexcept { pos.SetLocation(theLoc); }
//! Changes the local coordinate system of the plane.
void SetPosition(const gp_Ax3& theA3) { pos = theA3; }
constexpr void SetPosition(const gp_Ax3& theA3) noexcept { pos = theA3; }
//! Reverses the U parametrization of the plane
//! reversing the XAxis.
void UReverse() { pos.XReverse(); }
constexpr void UReverse() noexcept { pos.XReverse(); }
//! Reverses the V parametrization of the plane
//! reversing the YAxis.
void VReverse() { pos.YReverse(); }
constexpr void VReverse() noexcept { pos.YReverse(); }
//! Returns true if the Ax3 is right handed.
Standard_Boolean Direct() const { return pos.Direct(); }
//! Returns the plane's normal Axis.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Returns the plane's location (origin).
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the local coordinate system of the plane.
const gp_Ax3& Position() const { return pos; }
constexpr const gp_Ax3& Position() const noexcept { return pos; }
//! Computes the distance between <me> and the point <theP>.
Standard_Real Distance(const gp_Pnt& theP) const;
Standard_Real Distance(const gp_Pnt& theP) const noexcept;
//! Computes the distance between <me> and the line <theL>.
Standard_Real Distance(const gp_Lin& theL) const;
Standard_Real Distance(const gp_Lin& theL) const noexcept;
//! Computes the distance between two planes.
Standard_Real Distance(const gp_Pln& theOther) const;
Standard_Real Distance(const gp_Pln& theOther) const noexcept;
//! Computes the square distance between <me> and the point <theP>.
Standard_Real SquareDistance(const gp_Pnt& theP) const
Standard_Real SquareDistance(const gp_Pnt& theP) const noexcept
{
Standard_Real aD = Distance(theP);
return aD * aD;
}
//! Computes the square distance between <me> and the line <theL>.
Standard_Real SquareDistance(const gp_Lin& theL) const
Standard_Real SquareDistance(const gp_Lin& theL) const noexcept
{
Standard_Real aD = Distance(theL);
return aD * aD;
}
//! Computes the square distance between two planes.
Standard_Real SquareDistance(const gp_Pln& theOther) const
Standard_Real SquareDistance(const gp_Pln& theOther) const noexcept
{
Standard_Real aD = Distance(theOther);
return aD * aD;
}
//! Returns the X axis of the plane.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the Y axis of the plane.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
//! Returns true if this plane contains the point theP. This means that
//! - the distance between point theP and this plane is less
@@ -162,7 +162,8 @@ public:
//! AngularTolerance, and the distance between the origin
//! of line L and this plane is less than or equal to
//! theLinearTolerance.
Standard_Boolean Contains(const gp_Pnt& theP, const Standard_Real theLinearTolerance) const
Standard_Boolean Contains(const gp_Pnt& theP,
const Standard_Real theLinearTolerance) const noexcept
{
return Distance(theP) <= theLinearTolerance;
}
@@ -177,22 +178,22 @@ public:
//! theLinearTolerance.
Standard_Boolean Contains(const gp_Lin& theL,
const Standard_Real theLinearTolerance,
const Standard_Real theAngularTolerance) const
const Standard_Real theAngularTolerance) const noexcept
{
return Contains(theL.Location(), theLinearTolerance)
&& pos.Direction().IsNormal(theL.Direction(), theAngularTolerance);
}
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a plane with respect
//! to the point <theP> which is the center of the symmetry
//! Warnings :
//! The normal direction to the plane is not changed.
//! The "XAxis" and the "YAxis" are reversed.
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a plane with
//! respect to an axis placement which is the axis of the
@@ -201,9 +202,9 @@ public:
//! direction is the cross product between the "XDirection" and
//! the "YDirection" after transformation if the initial plane
//! was right handed, else it is the opposite.
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a plane with
//! respect to an axis placement. The axis placement <A2>
@@ -213,7 +214,7 @@ public:
//! between the "XDirection" and the "YDirection" after
//! transformation if the initial plane was right handed,
//! else it is the opposite.
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Pln Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -250,11 +251,11 @@ public:
return aPl;
}
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a plane in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Pln Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Pln Translated(const gp_Vec& theV) const noexcept
{
gp_Pln aPl = *this;
aPl.pos.Translate(theV);
@@ -283,7 +284,7 @@ private:
inline void gp_Pln::Coefficients(Standard_Real& theA,
Standard_Real& theB,
Standard_Real& theC,
Standard_Real& theD) const
Standard_Real& theD) const noexcept
{
const gp_Dir& aDir = pos.Direction();
if (pos.Direct())
@@ -304,7 +305,7 @@ inline void gp_Pln::Coefficients(Standard_Real& theA,
//=================================================================================================
inline Standard_Real gp_Pln::Distance(const gp_Pnt& theP) const
inline Standard_Real gp_Pln::Distance(const gp_Pnt& theP) const noexcept
{
const gp_Pnt& aLoc = pos.Location();
const gp_Dir& aDir = pos.Direction();
@@ -319,7 +320,7 @@ inline Standard_Real gp_Pln::Distance(const gp_Pnt& theP) const
//=================================================================================================
inline Standard_Real gp_Pln::Distance(const gp_Lin& theL) const
inline Standard_Real gp_Pln::Distance(const gp_Lin& theL) const noexcept
{
Standard_Real aD = 0.0;
if ((pos.Direction()).IsNormal(theL.Direction(), gp::Resolution()))
@@ -339,7 +340,7 @@ inline Standard_Real gp_Pln::Distance(const gp_Lin& theL) const
//=================================================================================================
inline Standard_Real gp_Pln::Distance(const gp_Pln& theOther) const
inline Standard_Real gp_Pln::Distance(const gp_Pln& theOther) const noexcept
{
Standard_Real aD = 0.0;
if ((pos.Direction()).IsParallel(theOther.pos.Direction(), gp::Resolution()))
+6 -6
View File
@@ -52,7 +52,7 @@ void gp_Pnt::Transform(const gp_Trsf& T)
}
}
void gp_Pnt::Mirror(const gp_Pnt& P)
void gp_Pnt::Mirror(const gp_Pnt& P) noexcept
{
coord.Reverse();
gp_XYZ XYZ = P.coord;
@@ -60,35 +60,35 @@ void gp_Pnt::Mirror(const gp_Pnt& P)
coord.Add(XYZ);
}
gp_Pnt gp_Pnt::Mirrored(const gp_Pnt& P) const
gp_Pnt gp_Pnt::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Pnt Pres = *this;
Pres.Mirror(P);
return Pres;
}
void gp_Pnt::Mirror(const gp_Ax1& A1)
void gp_Pnt::Mirror(const gp_Ax1& A1) noexcept
{
gp_Trsf T;
T.SetMirror(A1);
T.Transforms(coord);
}
gp_Pnt gp_Pnt::Mirrored(const gp_Ax1& A1) const
gp_Pnt gp_Pnt::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Pnt P = *this;
P.Mirror(A1);
return P;
}
void gp_Pnt::Mirror(const gp_Ax2& A2)
void gp_Pnt::Mirror(const gp_Ax2& A2) noexcept
{
gp_Trsf T;
T.SetMirror(A2);
T.Transforms(coord);
}
gp_Pnt gp_Pnt::Mirrored(const gp_Ax2& A2) const
gp_Pnt gp_Pnt::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Pnt P = *this;
P.Mirror(A2);
+6 -6
View File
@@ -145,25 +145,25 @@ public:
//! Performs the symmetrical transformation of a point
//! with respect to the point theP which is the center of
//! the symmetry.
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a point
//! with respect to an axis placement which is the axis
//! of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a point
//! with respect to a plane. The axis placement theA2 locates
//! the plane of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Rotates a point. theA1 is the axis of the rotation.
//! theAng is the angular value of the rotation in radians.
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Pnt Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng);
@@ -59,36 +59,36 @@ void gp_Sphere::Coefficients(Standard_Real& A1,
D = T14 * T14 + T24 * T24 + T34 * T34 - radius * radius;
}
void gp_Sphere::Mirror(const gp_Pnt& P)
void gp_Sphere::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Sphere gp_Sphere::Mirrored(const gp_Pnt& P) const
gp_Sphere gp_Sphere::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Sphere C = *this;
C.pos.Mirror(P);
return C;
}
void gp_Sphere::Mirror(const gp_Ax1& A1)
void gp_Sphere::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Sphere gp_Sphere::Mirrored(const gp_Ax1& A1) const
gp_Sphere gp_Sphere::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Sphere C = *this;
C.pos.Mirror(A1);
return C;
}
void gp_Sphere::Mirror(const gp_Ax2& A2)
void gp_Sphere::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Sphere gp_Sphere::Mirrored(const gp_Ax2& A2) const
gp_Sphere gp_Sphere::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Sphere C = *this;
C.pos.Mirror(A2);
+22 -19
View File
@@ -63,10 +63,10 @@ public:
}
//! Changes the center of the sphere.
void SetLocation(const gp_Pnt& theLoc) { pos.SetLocation(theLoc); }
constexpr void SetLocation(const gp_Pnt& theLoc) noexcept { pos.SetLocation(theLoc); }
//! Changes the local coordinate system of the sphere.
void SetPosition(const gp_Ax3& theA3) { pos = theA3; }
constexpr void SetPosition(const gp_Ax3& theA3) noexcept { pos = theA3; }
//! Assigns theR the radius of the Sphere.
//! Warnings :
@@ -80,7 +80,7 @@ public:
}
//! Computes the area of the sphere.
Standard_Real Area() const { return 4.0 * M_PI * radius * radius; }
constexpr Standard_Real Area() const noexcept { return 4.0 * M_PI * radius * radius; }
//! Computes the coefficients of the implicit equation of the quadric
//! in the absolute cartesian coordinates system :
@@ -101,11 +101,11 @@ public:
//! Reverses the U parametrization of the sphere
//! reversing the YAxis.
void UReverse() { pos.YReverse(); }
constexpr void UReverse() noexcept { pos.YReverse(); }
//! Reverses the V parametrization of the sphere
//! reversing the ZAxis.
void VReverse() { pos.ZReverse(); }
constexpr void VReverse() noexcept { pos.ZReverse(); }
//! Returns true if the local coordinate system of this sphere
//! is right-handed.
@@ -113,43 +113,46 @@ public:
//! --- Purpose ;
//! Returns the center of the sphere.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the local coordinates system of the sphere.
const gp_Ax3& Position() const { return pos; }
constexpr const gp_Ax3& Position() const noexcept { return pos; }
//! Returns the radius of the sphere.
Standard_Real Radius() const { return radius; }
constexpr Standard_Real Radius() const noexcept { return radius; }
//! Computes the volume of the sphere
Standard_Real Volume() const { return (4.0 * M_PI * radius * radius * radius) / 3.0; }
constexpr Standard_Real Volume() const noexcept
{
return (4.0 * M_PI * radius * radius * radius) / 3.0;
}
//! Returns the axis X of the sphere.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! Returns the axis Y of the sphere.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a sphere
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a sphere with
//! respect to an axis placement which is the axis of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a sphere with respect
//! to a plane. The axis placement theA2 locates the plane of the
//! of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Sphere Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -173,11 +176,11 @@ public:
//! Transforms a sphere with the transformation theT from class Trsf.
Standard_NODISCARD gp_Sphere Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a sphere in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Sphere Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Sphere Translated(const gp_Vec& theV) const noexcept
{
gp_Sphere aC = *this;
aC.pos.Translate(theV);
+6 -6
View File
@@ -151,36 +151,36 @@ void gp_Torus::Coefficients(TColStd_Array1OfReal& theCoef) const
+ aSubRadius * aSubRadius;
}
void gp_Torus::Mirror(const gp_Pnt& P)
void gp_Torus::Mirror(const gp_Pnt& P) noexcept
{
pos.Mirror(P);
}
gp_Torus gp_Torus::Mirrored(const gp_Pnt& P) const
gp_Torus gp_Torus::Mirrored(const gp_Pnt& P) const noexcept
{
gp_Torus C = *this;
C.pos.Mirror(P);
return C;
}
void gp_Torus::Mirror(const gp_Ax1& A1)
void gp_Torus::Mirror(const gp_Ax1& A1) noexcept
{
pos.Mirror(A1);
}
gp_Torus gp_Torus::Mirrored(const gp_Ax1& A1) const
gp_Torus gp_Torus::Mirrored(const gp_Ax1& A1) const noexcept
{
gp_Torus C = *this;
C.pos.Mirror(A1);
return C;
}
void gp_Torus::Mirror(const gp_Ax2& A2)
void gp_Torus::Mirror(const gp_Ax2& A2) noexcept
{
pos.Mirror(A2);
}
gp_Torus gp_Torus::Mirrored(const gp_Ax2& A2) const
gp_Torus gp_Torus::Mirrored(const gp_Ax2& A2) const noexcept
{
gp_Torus C = *this;
C.pos.Mirror(A2);
+24 -21
View File
@@ -92,7 +92,7 @@ public:
void SetAxis(const gp_Ax1& theA1) { pos.SetAxis(theA1); }
//! Changes the location of the torus.
void SetLocation(const gp_Pnt& theLoc) { pos.SetLocation(theLoc); }
constexpr void SetLocation(const gp_Pnt& theLoc) noexcept { pos.SetLocation(theLoc); }
//! Assigns value to the major radius of this torus.
//! Raises ConstructionError if theMajorRadius - MinorRadius <= Resolution()
@@ -115,24 +115,27 @@ public:
}
//! Changes the local coordinate system of the surface.
void SetPosition(const gp_Ax3& theA3) { pos = theA3; }
constexpr void SetPosition(const gp_Ax3& theA3) noexcept { pos = theA3; }
//! Computes the area of the torus.
Standard_Real Area() const { return 4.0 * M_PI * M_PI * minorRadius * majorRadius; }
constexpr Standard_Real Area() const noexcept
{
return 4.0 * M_PI * M_PI * minorRadius * majorRadius;
}
//! Reverses the U parametrization of the torus
//! reversing the YAxis.
void UReverse() { pos.YReverse(); }
constexpr void UReverse() noexcept { pos.YReverse(); }
//! Reverses the V parametrization of the torus
//! reversing the ZAxis.
void VReverse() { pos.ZReverse(); }
constexpr void VReverse() noexcept { pos.ZReverse(); }
//! returns true if the Ax3, the local coordinate system of this torus, is right handed.
Standard_Boolean Direct() const { return pos.Direct(); }
//! returns the symmetry axis of the torus.
const gp_Ax1& Axis() const { return pos.Axis(); }
constexpr const gp_Ax1& Axis() const noexcept { return pos.Axis(); }
//! Computes the coefficients of the implicit equation of the surface
//! in the absolute Cartesian coordinate system:
@@ -156,49 +159,49 @@ public:
Standard_EXPORT void Coefficients(TColStd_Array1OfReal& theCoef) const;
//! Returns the Torus's location.
const gp_Pnt& Location() const { return pos.Location(); }
constexpr const gp_Pnt& Location() const noexcept { return pos.Location(); }
//! Returns the local coordinates system of the torus.
const gp_Ax3& Position() const { return pos; }
constexpr const gp_Ax3& Position() const noexcept { return pos; }
//! returns the major radius of the torus.
Standard_Real MajorRadius() const { return majorRadius; }
constexpr Standard_Real MajorRadius() const noexcept { return majorRadius; }
//! returns the minor radius of the torus.
Standard_Real MinorRadius() const { return minorRadius; }
constexpr Standard_Real MinorRadius() const noexcept { return minorRadius; }
//! Computes the volume of the torus.
Standard_Real Volume() const
constexpr Standard_Real Volume() const noexcept
{
return (M_PI * minorRadius * minorRadius) * (2.0 * M_PI * majorRadius);
}
//! returns the axis X of the torus.
gp_Ax1 XAxis() const { return gp_Ax1(pos.Location(), pos.XDirection()); }
constexpr gp_Ax1 XAxis() const noexcept { return gp_Ax1(pos.Location(), pos.XDirection()); }
//! returns the axis Y of the torus.
gp_Ax1 YAxis() const { return gp_Ax1(pos.Location(), pos.YDirection()); }
constexpr gp_Ax1 YAxis() const noexcept { return gp_Ax1(pos.Location(), pos.YDirection()); }
Standard_EXPORT void Mirror(const gp_Pnt& theP);
Standard_EXPORT void Mirror(const gp_Pnt& theP) noexcept;
//! Performs the symmetrical transformation of a torus
//! with respect to the point theP which is the center of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Pnt& theP) const;
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Pnt& theP) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a torus with
//! respect to an axis placement which is the axis of the
//! symmetry.
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a torus with respect
//! to a plane. The axis placement theA2 locates the plane of the
//! of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Torus Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng) { pos.Rotate(theA1, theAng); }
@@ -222,11 +225,11 @@ public:
//! Transforms a torus with the transformation theT from class Trsf.
Standard_NODISCARD gp_Torus Transformed(const gp_Trsf& theT) const;
void Translate(const gp_Vec& theV) { pos.Translate(theV); }
constexpr void Translate(const gp_Vec& theV) noexcept { pos.Translate(theV); }
//! Translates a torus in the direction of the vector theV.
//! The magnitude of the translation is the vector's magnitude.
Standard_NODISCARD gp_Torus Translated(const gp_Vec& theV) const
Standard_NODISCARD gp_Torus Translated(const gp_Vec& theV) const noexcept
{
gp_Torus aC = *this;
aC.pos.Translate(theV);
+3 -3
View File
@@ -56,7 +56,7 @@ gp_Trsf::gp_Trsf(const gp_Trsf2d& T)
//=================================================================================================
void gp_Trsf::SetMirror(const gp_Ax1& A1)
void gp_Trsf::SetMirror(const gp_Ax1& A1) noexcept
{
shape = gp_Ax1Mirror;
scale = 1;
@@ -72,7 +72,7 @@ void gp_Trsf::SetMirror(const gp_Ax1& A1)
//=================================================================================================
void gp_Trsf::SetMirror(const gp_Ax2& A2)
void gp_Trsf::SetMirror(const gp_Ax2& A2) noexcept
{
shape = gp_Ax2Mirror;
scale = -1;
@@ -243,7 +243,7 @@ void gp_Trsf::SetDisplacement(const gp_Ax3& FromA1, const gp_Ax3& ToA2)
//=================================================================================================
void gp_Trsf::SetTranslationPart(const gp_Vec& V)
void gp_Trsf::SetTranslationPart(const gp_Vec& V) noexcept
{
loc = V.XYZ();
+9 -9
View File
@@ -83,17 +83,17 @@ public:
//! Makes the transformation into a symmetrical transformation.
//! theP is the center of the symmetry.
void SetMirror(const gp_Pnt& theP);
void SetMirror(const gp_Pnt& theP) noexcept;
//! Makes the transformation into a symmetrical transformation.
//! theA1 is the center of the axial symmetry.
Standard_EXPORT void SetMirror(const gp_Ax1& theA1);
Standard_EXPORT void SetMirror(const gp_Ax1& theA1) noexcept;
//! Makes the transformation into a symmetrical transformation.
//! theA2 is the center of the planar symmetry
//! and defines the plane of symmetry by its origin, "X
//! Direction" and "Y Direction".
Standard_EXPORT void SetMirror(const gp_Ax2& theA2);
Standard_EXPORT void SetMirror(const gp_Ax2& theA2) noexcept;
//! Changes the transformation into a rotation.
//! theA1 is the rotation axis and theAng is the angular value of the
@@ -174,14 +174,14 @@ public:
//! Changes the transformation into a translation.
//! theV is the vector of the translation.
void SetTranslation(const gp_Vec& theV);
constexpr void SetTranslation(const gp_Vec& theV) noexcept;
//! Makes the transformation into a translation where the translation vector
//! is the vector (theP1, theP2) defined from point theP1 to point theP2.
void SetTranslation(const gp_Pnt& theP1, const gp_Pnt& theP2);
constexpr void SetTranslation(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept;
//! Replaces the translation vector with the vector theV.
Standard_EXPORT void SetTranslationPart(const gp_Vec& theV);
Standard_EXPORT void SetTranslationPart(const gp_Vec& theV) noexcept;
//! Modifies the scale factor.
//! Raises ConstructionError If theS is null.
@@ -387,7 +387,7 @@ inline constexpr gp_Trsf::gp_Trsf() noexcept
//=================================================================================================
inline void gp_Trsf::SetMirror(const gp_Pnt& theP)
inline void gp_Trsf::SetMirror(const gp_Pnt& theP) noexcept
{
shape = gp_PntMirror;
scale = -1.0;
@@ -398,7 +398,7 @@ inline void gp_Trsf::SetMirror(const gp_Pnt& theP)
//=================================================================================================
inline void gp_Trsf::SetTranslation(const gp_Vec& theV)
inline constexpr void gp_Trsf::SetTranslation(const gp_Vec& theV) noexcept
{
shape = gp_Translation;
scale = 1.;
@@ -408,7 +408,7 @@ inline void gp_Trsf::SetTranslation(const gp_Vec& theV)
//=================================================================================================
inline void gp_Trsf::SetTranslation(const gp_Pnt& theP1, const gp_Pnt& theP2)
inline constexpr void gp_Trsf::SetTranslation(const gp_Pnt& theP1, const gp_Pnt& theP2) noexcept
{
shape = gp_Translation;
scale = 1.0;
+6 -6
View File
@@ -48,7 +48,7 @@ Standard_Boolean gp_Vec::IsEqual(const gp_Vec& theOther,
}
}
void gp_Vec::Mirror(const gp_Vec& theVec)
void gp_Vec::Mirror(const gp_Vec& theVec) noexcept
{
const Standard_Real aMagnitude = theVec.coord.Modulus();
if (aMagnitude > gp::Resolution())
@@ -77,7 +77,7 @@ void gp_Vec::Mirror(const gp_Vec& theVec)
}
}
void gp_Vec::Mirror(const gp_Ax1& theAxis)
void gp_Vec::Mirror(const gp_Ax1& theAxis) noexcept
{
const gp_XYZ& aDirectionXYZ = theAxis.Direction().XYZ();
const Standard_Real aOrigX = coord.X();
@@ -100,7 +100,7 @@ void gp_Vec::Mirror(const gp_Ax1& theAxis)
coord.SetZ(aCrossTermXZ * aOrigX + aCrossTermYZ * aOrigY + aZZTerm * aOrigZ);
}
void gp_Vec::Mirror(const gp_Ax2& theAxis)
void gp_Vec::Mirror(const gp_Ax2& theAxis) noexcept
{
const gp_XYZ& aZDir = theAxis.Direction().XYZ();
const gp_XYZ aMirXYZ = aZDir.Crossed(coord);
@@ -136,21 +136,21 @@ void gp_Vec::Transform(const gp_Trsf& theTransformation)
}
}
gp_Vec gp_Vec::Mirrored(const gp_Vec& theVec) const
gp_Vec gp_Vec::Mirrored(const gp_Vec& theVec) const noexcept
{
gp_Vec aResult = *this;
aResult.Mirror(theVec);
return aResult;
}
gp_Vec gp_Vec::Mirrored(const gp_Ax1& theAxis) const
gp_Vec gp_Vec::Mirrored(const gp_Ax1& theAxis) const noexcept
{
gp_Vec aResult = *this;
aResult.Mirror(theAxis);
return aResult;
}
gp_Vec gp_Vec::Mirrored(const gp_Ax2& theAxis) const
gp_Vec gp_Vec::Mirrored(const gp_Ax2& theAxis) const noexcept
{
gp_Vec aResult = *this;
aResult.Mirror(theAxis);
+6 -6
View File
@@ -406,26 +406,26 @@ public:
coord.SetLinearForm(theV1.coord, theV2.coord);
}
Standard_EXPORT void Mirror(const gp_Vec& theV);
Standard_EXPORT void Mirror(const gp_Vec& theV) noexcept;
//! Performs the symmetrical transformation of a vector
//! with respect to the vector theV which is the center of
//! the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Vec& theV) const;
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Vec& theV) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax1& theA1);
Standard_EXPORT void Mirror(const gp_Ax1& theA1) noexcept;
//! Performs the symmetrical transformation of a vector
//! with respect to an axis placement which is the axis
//! of the symmetry.
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Ax1& theA1) const;
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Ax1& theA1) const noexcept;
Standard_EXPORT void Mirror(const gp_Ax2& theA2);
Standard_EXPORT void Mirror(const gp_Ax2& theA2) noexcept;
//! Performs the symmetrical transformation of a vector
//! with respect to a plane. The axis placement theA2 locates
//! the plane of the symmetry : (Location, XDirection, YDirection).
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Ax2& theA2) const;
Standard_NODISCARD Standard_EXPORT gp_Vec Mirrored(const gp_Ax2& theA2) const noexcept;
void Rotate(const gp_Ax1& theA1, const Standard_Real theAng);