Base class for 3D curves. More...
Public Member Functions | |
| Curve (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| cadex.Geom.CurveType | Type () |
| cadex.Geom.Continuity | Continuity () |
| Returns a continuity type of the curve. | |
| cadex.Geom.Point | Value (double theParameter) |
| Evaluates a point on the curve. | |
| cadex.Geom.Direction | Normal (double theParameter) |
| Returns the normal direction theNormal of parameter theParam. | |
| double | Curvature (double theParameter) |
| Returns the curvature value of parameter theParam. | |
| bool | IsPeriodic () |
| Returns true if the curve is periodic. | |
| double | UMin () |
| Returns a minimum parameter of a definition domain. | |
| double | UMax () |
| Returns a maximum parameter of a definition domain. | |
| void | Domain (out double theUMin, out double theUMax) |
| Returns a definition domain. | |
| bool | IsTrimmed () |
| Returns whether curve is trimmed or not. | |
| void | SetTrim (double theFirst, double theLast) |
| Trims curve with [theFirst, theLast] section. | |
| void | Transform (cadex.Geom.Transformation theTransformation) |
| Applies transformation matrix to this object. | |
| cadex.Geom.Curve | Transformed (cadex.Geom.Transformation theTransformation) |
| Returns a copy this object after applying transformation. | |
| void | D0 (double theParameter, cadex.Geom.Point theValue) |
| Returns the point theValue of parameter theParam. | |
| void | D1 (double theParameter, cadex.Geom.Point theValue, cadex.Geom.Vector theD1) |
| void | D2 (double theParameter, cadex.Geom.Point theValue, cadex.Geom.Vector theD1, cadex.Geom.Vector theD2) |
| Returns the point theValue of parameter theParam, the first theD1 and second theD2 derivatives. | |
| bool | DN (double theParameter, uint theDerivativeOrder, cadex.Geom.Point theValue, cadex.Collections.VectorList theD) |
| void | Mirror (cadex.Geom.Point thePoint) |
| void | Mirror (cadex.Geom.Axis1d theAxis) |
| void | Mirror (cadex.Geom.Axis3d theAxis) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Point theRef) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Axis1d theAxis) |
| cadex.Geom.Curve | Mirrored (cadex.Geom.Axis3d theAxis) |
| void | Rotate (cadex.Geom.Axis1d theAxis, double theAngle) |
| cadex.Geom.Curve | Rotated (cadex.Geom.Axis1d theAxis, double theAngle) |
| void | Translate (cadex.Geom.Vector theVector) |
| cadex.Geom.Curve | Translated (cadex.Geom.Vector theVector) |
| void | Scale (cadex.Geom.Point thePoint, double theScale) |
| cadex.Geom.Curve | 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 cadex.Geom.Curve | Cast (cadex.Geom.Geometry theBase) |
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.Geometry | |
| override void | Dispose (bool disposing) |
Base class for 3D curves.
3D curves are used to represent curves in 3D space. Each non-degenerated edge must refer to a 3D curve.
Refer to Curve Types for the list of supported curve types. Type() returns a curve type as enumeration value which can be used to downcast to a respective subclass type, for instance:
Curve is defined using parametric definition as \(\mathbf{C}(t)\) where \(\mathbf{C}\) is a 3D radius-vector \((x,y,z)^\top\) and \(t\) is a parameter from a definition range \([a, b]\).
UMin() and UMax(), and Domain() return parametric definition range. Parametric range can be bounded (e.g. \([0, 2\pi]\) for a circle) or unbounded (e.g. \((-\infty, +\infty)\) for a line).
At any parameter \(t\) within a definition range, the curve can be evaluated as follows:
The following example demonstrates computation of a point on a line at parameter t=2:
If the curve is periodic (IsPeriodic() returns true) then the curve can be evaluated at any parameter t, otherwise behavior is undefined (e.g. an exception can be thrown or a weird value can be returned).
Continuity() returns continuity ( \(C^0\), \(C^1\), \(C^2\), \(C^N\)) of the curve, where \(C^0\) that only the curve itself is continuous, \(C^1\) - that the curve is continuous together with its first derivative, and so on.
The curve can be modified using the following operations:
|
inline |
Returns the point theValue of parameter theParam.
Throws exception only for the OffsetCurve if it is not possible to compute the current point. For example when the first derivative on the basis curve and the offset direction are parallel.
|
inline |
Returns the point theValue of parameter theParam, the first theD1 and second theD2 derivatives.
Throws exception if the continuity of the curve is not \(C^2\).
|
inlineprotectedvirtual |
Reimplemented from cadex.BaseObject.
|
inline |
Returns true if calculation completed successfully. In this case theD contains values of the derivatives from 0 up to theDerivativeOrder. Otherwise returns false. May throw exception if the continuity of the curve is less than theDerivativeOrder.
Parameters:
|
inline |
|
inline |
Applies transformation matrix to this object.
Results depends on the actual curve type.
|
inline |
Returns a copy this object after applying transformation.
The contents of this object is not modified.
|
inline |
Returns a curve type.
|
inline |
Returns a maximum parameter of a definition domain.
|
inline |
Returns a minimum parameter of a definition domain.
|
inline |
Evaluates a point on the curve.
theParameter must be within Domain() if the curve is not periodic.