|
|
| 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) |
| |
|
| Geometry (global::System.IntPtr cPtr, bool cMemoryOwn) |
| |
|
| 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) |
| |
Base class for geometrical surfaces.
Surfaces in 3D space are used to represent boundaries of a body (e.g. solid or sheet body). Each face must refer to a surface.
Types
Refer to Surface Types for the list of supported surface types. Type() returns a surface type as enumeration value which can be used to downcast to a respective subclass type, for instance:
if (aSurface.
Type() == Geom::ShapeType::Cylinder) {
double aRadius = aCylSurf.
Radius();
...
}
Defines a cylindrical surface.
Definition CylindricalSurface.cs:40
double Radius()
Returns radius.
Definition CylindricalSurface.cs:89
Base class for geometrical surfaces.
Definition Surface.cs:96
cadex.Geom.SurfaceType Type()
Returns a surface type.
Definition Surface.cs:134
Parametric Definition
Surface is defined using parametric definition as \(\mathbf{S}(u,v)\) where \(\mathbf{S}\) is a 3D radius-vector \((x,y,z)\) and \((u, v)\) are parameters from a definition domain \([u_{min}, u_{max}]\times[v_{min}, v_{max}]\).
UMin(), UMax() and VMin(), VMax(), and Domain() return parametric definition range. Parametric range can be bounded (e.g. \([0, 1]\times[0, 1]\) for Bezier surface), unbounded (e.g. \((-\infty, +\infty)\times(-\infty, +\infty)\) for a plane), or semi-unbounded (e.g. \([0, 2\pi]\times(-\infty, +\infty)\) for cylindrical surface).
Evaluation
At any parameter u and v within a definition domain, the surface can be evaluated as follows:
- Value() and D0() return a 3D point;
- D1(), D2() and DN() return a derivative of a respective order;
- Curvature() returns a curvature;
- Normal() returns a normal to the surface (i.e. perpendicular to a tangential plane).
The following example demonstrates computation of a point on a sphere at parameters \(u=\frac{\pi}{4}\), \(v=\frac{\pi}{6}\):
Point aPoint = aSphere.Value (M_PI / 4, M_PI / 6);
Defines a 3D point.
Definition Point.cs:17
If the surface is periodic in U and/or V (IsUPeriodic() and/or IsVPeriodic() return true) then the surface can be evaluated at any parameter U and/or V, otherwise behavior is undefined (e.g. an exception can be thrown or a weird value can be returned).
Continuity
Continuity() returns continuity (C0, C1, C2, CN) of the surface, minimum of U- and V- continuities, where C0 indicates continuity of the surface only, C1 - of its first derivative and so on.
Transformation
The surface can be modified using the following operations:
- translation (Translate() and Translated());
- rotation (Rotate() and Rotated());
- mirroring (Mirror() and Mirrored());
- scaling (Scale() and Scaled());
- arbitrary transformation using 3x4 matrix (Transform() and Transformed()).
- Warning
- As the surface data is shared via internal pointer modification of the surface may affect other users of the surface (e.g. a face referring to it). So you might want to use method returning a modified copy of the surface (such as Transformed()).
- See also
- Surfaces, Curve, ModelData.Face.
- Examples
- exploring/brep_geometry/Program.cs, exploring/brep_geometry/main.cxx, exploring/brep_topology/Program.cs, and exploring/brep_topology/main.cxx.