Hide menu
Loading...
Searching...
No Matches
cadex.Geom.SurfaceOfRevolution Class Reference

Defines a surface of revolution. More...

Inheritance diagram for cadex.Geom.SurfaceOfRevolution:
cadex.Geom.SweptSurface cadex.Geom.Surface cadex.Geom.Geometry cadex.BaseObject

Public Member Functions

 SurfaceOfRevolution (global::System.IntPtr cPtr, bool cMemoryOwn)
 
 SurfaceOfRevolution (cadex.Geom.Curve theBasisCurve, cadex.Geom.Point theLocation, cadex.Geom.Direction theDirection)
 Constructor.
 
cadex.Geom.Point Location ()
 Returns an origin point of a rotation axis.
 
- Public Member Functions inherited from cadex.Geom.SweptSurface
 SweptSurface (global::System.IntPtr cPtr, bool cMemoryOwn)
 
cadex.Geom.Curve BasisCurve ()
 
cadex.Geom.Direction Direction ()
 
- Public Member Functions inherited from cadex.Geom.Surface
 Surface (global::System.IntPtr cPtr, bool cMemoryOwn)
 
cadex.Geom.SurfaceType Type ()
 Returns a surface type.
 
cadex.Geom.Continuity Continuity ()
 Returns a continuity type of the surface.
 
cadex.Geom.Point Value (double theParameterU, double theParameterV)
 Evaluates a point on the surface.
 
cadex.Geom.Direction Normal (double theParameterU, double theParameterV)
 
bool IsUPeriodic ()
 Returns true if the surface is periodic in U direction.
 
bool IsVPeriodic ()
 Returns true if the surface is periodic in V direction.
 
double UMin ()
 Returns a minimum parameter of a definition domain in U direction.
 
double UMax ()
 Returns a maximum parameter of a definition domain in U direction.
 
double VMin ()
 Returns a minimum parameter of a definition domain in V direction.
 
double VMax ()
 Returns a maximum parameter of a definition domain in V direction.
 
void Domain (out double theUMin, out double theUMax, out double theVMin, out double theVMax)
 Returns a definition domain.
 
bool IsTrimmed ()
 Returns whether surface is trimmed or not.
 
void SetTrim (double theUFirst, double theULast, double theVFirst, double theVLast)
 Trims surface with [theUFirst, theULast] x [theVFirst, theVLast] section.
 
void Transform (cadex.Geom.Transformation theTransformation)
 Applies transformation matrix to this object.
 
cadex.Geom.Surface Transformed (cadex.Geom.Transformation theTransformation)
 Returns a copy this object after applying transformation.
 
void D0 (double theParameterU, double theParameterV, cadex.Geom.Point theValue)
 
void D1 (double theParameterU, double theParameterV, cadex.Geom.Point theValue, cadex.Geom.Vector theD1U, cadex.Geom.Vector theD1V)
 
void D2 (double theParameterU, double theParameterV, cadex.Geom.Point theValue, cadex.Geom.Vector theD1U, cadex.Geom.Vector theD1V, cadex.Geom.Vector theD2U, cadex.Geom.Vector theD2V, cadex.Geom.Vector theD2UV)
 
bool DN (double theParameterU, double theParameterV, uint theDerivativeOrder, cadex.Geom.Point theValue, cadex.Collections.VectorList theD)
 
void Curvature (double theParameterU, double theParameterV, cadex.Geom.Direction thePrincipalMaxDirection, cadex.Geom.Direction thePrincipalMinDirection)
 
void Curvature (double theParameterU, double theParameterV, cadex.Geom.Direction thePrincipalMaxDirection, cadex.Geom.Direction thePrincipalMinDirection, out double theMaxCurvature, out double theMinCurvature)
 
void Mirror (cadex.Geom.Point thePoint)
 
void Mirror (cadex.Geom.Axis1d theAxis)
 
void Mirror (cadex.Geom.Axis3d theAxis)
 
cadex.Geom.Surface Mirrored (cadex.Geom.Point theRef)
 
cadex.Geom.Surface Mirrored (cadex.Geom.Axis1d theAxis)
 
cadex.Geom.Surface Mirrored (cadex.Geom.Axis3d theAxis)
 
void Rotate (cadex.Geom.Axis1d theAxis, double theAngle)
 
cadex.Geom.Surface Rotated (cadex.Geom.Axis1d theAxis, double theAngle)
 
void Translate (cadex.Geom.Vector theVector)
 
cadex.Geom.Surface Translated (cadex.Geom.Vector theVector)
 
void Scale (cadex.Geom.Point thePoint, double theScale)
 
cadex.Geom.Surface Scaled (cadex.Geom.Point thePoint, double theScale)
 
- Public Member Functions inherited from cadex.Geom.Geometry
 Geometry (global::System.IntPtr cPtr, bool cMemoryOwn)
 
- Public Member Functions inherited from cadex.BaseObject
 BaseObject (global::System.IntPtr cPtr, bool cMemoryOwn)
 
void Dispose ()
 
bool IsNull ()
 
ulong Id ()
 Return unique identifier of public object.
 
bool IsEqual (cadex.BaseObject theObj)
 
override int GetHashCode ()
 
override bool Equals (System.Object o)
 

Static Public Member Functions

static new bool CompareType (cadex.BaseObject theObject)
 
static new cadex.Geom.SurfaceOfRevolution Cast (cadex.Geom.Surface theBase)
 
- Static Public Member Functions inherited from cadex.Geom.SweptSurface
static new bool CompareType (cadex.BaseObject theObject)
 
static cadex.Geom.SweptSurface Cast (cadex.Geom.Surface theBase)
 
- Static Public Member Functions inherited from cadex.Geom.Surface
static new bool CompareType (cadex.BaseObject theObject)
 
- Static Public Member Functions inherited from cadex.Geom.Geometry
static bool CompareType (cadex.BaseObject theObject)
 
static cadex.Geom.Geometry Cast (cadex.BaseObject theBase)
 

Protected Member Functions

override void Dispose (bool disposing)
 
- Protected Member Functions inherited from cadex.Geom.SweptSurface
override void Dispose (bool disposing)
 

Detailed Description

Defines a surface of revolution.

Surface of revolution is defined by a basis curve and a rotation axis. The following image depicts an example of a surface of revolution:

Surface of revolution

A surface of revolution is parametrized as follows: \(\mathbf{S}(u,v) = \mathbf{Z}(v) + \cos(u)(\mathbf{B}(v) - \mathbf{Z}(v)) + \mathbf{D}\times\sin(u)(\mathbf{B}(v) - \mathbf{Z}(v))\), where:

  • \(\mathbf{P}\) is an origin point specifying rotation axis,
  • \(\mathbf{D}\) is unit vector specifying rotation axis,
  • \(\mathbf{B}(v)\) is a basis curve,
  • \(\mathbf{Z}(v)\) is a projection of a point on the basis curve onto a rotation axis, \(\mathbf{Z}(v) = \mathbf{P} + ((\mathbf{B}(v) - \mathbf{P})\cdot\mathbf{D})\mathbf{D}\),
  • \(u\) belongs to \([0, 2\pi]\),
  • \(v\) belongs to a basis curve definition domain.

U-parameter is an angle of rotation around the axis counterclockwise, and V-parameter is s a parameter along the curve \(\mathbf{B}(v)\). Thus, U-isolines are correspond to curve \(\mathbf{B}(v)\) rotated around the rotation axis and V-isolines are circles perpendicular to rotation axis with radius equal to distance from the axis to a point on the basis curve at parameter V. U-isoline at \(u=0\) is the basis curve itself.

The curve \(\mathbf{B}(v)\) should be planar although this is not enforced. It should not cross the rotation axis, except possibly at the end points.

Surface or revolution is periodic along U with period \(2\pi\). It is V-periodic if the basis curve is periodic itself.

If a face lies on a full range of U its boundary wire will contain two seam-edges at parameters UMin() and UMax(). Likewise, if the surface is V-periodic the wire will contain two seam-edges at parameters VMin() and VMax(). If the basis curve has end point(s) lying on a rotation axis then the wire will contain degenerated edge(s) at respective point(s).

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.

Constructor & Destructor Documentation

◆ SurfaceOfRevolution()

cadex.Geom.SurfaceOfRevolution.SurfaceOfRevolution ( cadex.Geom.Curve theBasisCurve,
cadex.Geom.Point theLocation,
cadex.Geom.Direction theDirection )
inline

Constructor.

Creates a surface of revolution from a basis curve and a rotation axis.

Member Function Documentation

◆ Dispose()

override void cadex.Geom.SurfaceOfRevolution.Dispose ( bool disposing)
inlineprotectedvirtual

Reimplemented from cadex.Geom.Surface.

◆ Location()

cadex.Geom.Point cadex.Geom.SurfaceOfRevolution.Location ( )
inline

Returns an origin point of a rotation axis.

Returns the value specified in the constructor.

Examples
exploring/brep_geometry/Program.cs, and exploring/brep_geometry/main.cxx.