# CADInterface

> Class

Inheritance

* [object](https://learn.microsoft.com/dotnet/api/system.object)
* [Interface](./api_interface)
* CADInterface

***

Inherited Members

* [Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\))

* [Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\))

* [GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)

* [GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype)

* [MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)

* [ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)

* [ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

***

Namespace: UnityEngine.Pixyz.CAD

```csharp
public class CADInterface : Interface
```

## Methods

### GetLastError

```csharp
public static string GetLastError()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### ConfigureFunctionLogger

```csharp
[HandleProcessCorruptedStateExceptions]
public void ConfigureFunctionLogger(string functionName, bool enableFunction, bool enableParameters, bool enableExecutionTime)
```

Parameters

| Type                                                           | Name                | Description |
| -------------------------------------------------------------- | ------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | functionName        |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableFunction      |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableParameters    |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableExecutionTime |             |

### GetPrecision

Get the CAD precision.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetPrecision()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### GetUnitLength

Get the CAD unity length property.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetUnitLength()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### SetUnitLength

Set the CAD unity length property.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetUnitLength(double precision)
```

Parameters

| Type                                                           | Name      | Description  |
| -------------------------------------------------------------- | --------- | ------------ |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Unit length. |

### SolidIntersection

Perform boolean operation intersection on two bodies (A ^ B).

```csharp
[HandleProcessCorruptedStateExceptions]
public BodyList SolidIntersection(uint A, uint B)
```

Parameters

| Type                                                         | Name | Description      |
| ------------------------------------------------------------ | ---- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | A    | The first body.  |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | B    | The second body. |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [BodyList](./cad_bodylist) |             |

### SolidSubtraction

Perform boolean operation subtraction on two bodies (A - B).

```csharp
[HandleProcessCorruptedStateExceptions]
public BodyList SolidSubtraction(uint A, uint B)
```

Parameters

| Type                                                         | Name | Description      |
| ------------------------------------------------------------ | ---- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | A    | The first body.  |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | B    | The second body. |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [BodyList](./cad_bodylist) |             |

### SolidUnion

Perform boolean operation union on two bodies (A + B).

```csharp
[HandleProcessCorruptedStateExceptions]
public BodyList SolidUnion(uint A, uint B)
```

Parameters

| Type                                                         | Name | Description      |
| ------------------------------------------------------------ | ---- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | A    | The first body.  |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | B    | The second body. |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [BodyList](./cad_bodylist) |             |

### CreateBezierCurve

Create a Bezier curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBezierCurve(Point3List poles)
```

Parameters

| Type                            | Name  | Description |
| ------------------------------- | ----- | ----------- |
| [Point3List](./geom_point3list) | poles | Poles list. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCircleCurve

Create a new circle.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCircleCurve(double radius, Matrix4 matrix)
```

Parameters

| Type                                                           | Name   | Description            |
| -------------------------------------------------------------- | ------ | ---------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Circle radius.         |
| [Matrix4](./geom_matrix4)                                      | matrix | Transformation matrix. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCompositeCurve

Create a composite curve from a list of limited curves.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCompositeCurve(CurveList CurveList)
```

Parameters

| Type                         | Name      | Description             |
| ---------------------------- | --------- | ----------------------- |
| [CurveList](./cad_curvelist) | CurveList | List of limited curves. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCosinusCurve

Create a cosinus curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCosinusCurve(double Amplitude, double Offset, double Period, Matrix4 matrix)
```

Parameters

| Type                                                           | Name      | Description            |
| -------------------------------------------------------------- | --------- | ---------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | Amplitude | Cosinus amplitude.     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | Offset    | Cosinus offset.        |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | Period    | Cosinus period.        |
| [Matrix4](./geom_matrix4)                                      | matrix    | Transformation matrix. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateEllipseCurve

Create an ellipse curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEllipseCurve(double URadius, double VRadius, Matrix4 matrix)
```

Parameters

| Type                                                           | Name    | Description                    |
| -------------------------------------------------------------- | ------- | ------------------------------ |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | URadius | Ellipse radius in u direction. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | VRadius | Ellipse radius in v direction. |
| [Matrix4](./geom_matrix4)                                      | matrix  | Transformation matrix.         |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateHelixCurve

Create an helix curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateHelixCurve(double radius, double pitch, Matrix4 matrix, bool trigonometrixOrientation = true)
```

Parameters

| Type                                                           | Name                     | Description                  |
| -------------------------------------------------------------- | ------------------------ | ---------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius                   | Radius of the helix.         |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | pitch                    | Height of one revolution.    |
| [Matrix4](./geom_matrix4)                                      | matrix                   | Transformation matrix.       |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | trigonometrixOrientation | Orientation of the rotation. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateHermiteCurve

Create a Hermite Curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateHermiteCurve(Point3 FirstPoint, Point3 FirstTangent, Point3 SecondPoint, Point3 SecondTangent)
```

Parameters

| Type                    | Name          | Description                    |
| ----------------------- | ------------- | ------------------------------ |
| [Point3](./geom_point3) | FirstPoint    | Starting point of the curve.   |
| [Point3](./geom_point3) | FirstTangent  | Tangent of the starting point. |
| [Point3](./geom_point3) | SecondPoint   | Ending point of the curve.     |
| [Point3](./geom_point3) | SecondTangent | Tangent of the ending point.   |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateHyperbolaCurve

Create an hyperBola curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateHyperbolaCurve(double URadius, double VRadius, Matrix4 matrix)
```

Parameters

| Type                                                           | Name    | Description                      |
| -------------------------------------------------------------- | ------- | -------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | URadius | Hyperbola radius in u direction. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | VRadius | Hyperbola radius in v direction. |
| [Matrix4](./geom_matrix4)                                      | matrix  | Transformation matrix.           |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateIntersectionCurve

Create a Intersection Curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateIntersectionCurve(uint firstSurface, uint secondSurface, uint chart, double minBounds, double maxBounds)
```

Parameters

| Type                                                           | Name          | Description                                            |
| -------------------------------------------------------------- | ------------- | ------------------------------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | firstSurface  | First surface of the intersection curve.               |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | secondSurface | Second surface of the intersection curve.              |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | chart         | Direction curve of the intersection curve.             |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | minBounds     | Minimum value of the bounds of the intersection curve. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | maxBounds     | Maximum value of the bounds of the intersection curve. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateLineCurve

Create a Line Curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateLineCurve(Point3 OriginPt, Point3 DirectionPt)
```

Parameters

| Type                    | Name        | Description                         |
| ----------------------- | ----------- | ----------------------------------- |
| [Point3](./geom_point3) | OriginPt    | Orinin point of the line curve.     |
| [Point3](./geom_point3) | DirectionPt | Direction vector of the line curve. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateNURBSCurve

Create a NURBS curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateNURBSCurve(int degree, DoubleList knots, Point3List poles, DoubleList weights = null)
```

Parameters

| Type                                                       | Name    | Description          |
| ---------------------------------------------------------- | ------- | -------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | degree  | Degree of the curve. |
| [DoubleList](./core_doublelist)                            | knots   | Knots of the curve.  |
| [Point3List](./geom_point3list)                            | poles   | Poles list.          |
| [DoubleList](./core_doublelist)                            | weights | Weight list.         |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateParabolaCurve

Create an parabola curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateParabolaCurve(double focalLength, Matrix4 matrix)
```

Parameters

| Type                                                           | Name        | Description                    |
| -------------------------------------------------------------- | ----------- | ------------------------------ |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | focalLength | Focal lecngth of the parabola. |
| [Matrix4](./geom_matrix4)                                      | matrix      | Transformation matrix.         |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreatePolylineCurve

Create a Polyline curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreatePolylineCurve(Point3List points, DoubleList parameters = null)
```

Parameters

| Type                            | Name       | Description               |
| ------------------------------- | ---------- | ------------------------- |
| [Point3List](./geom_point3list) | points     | Points of polyline curve. |
| [DoubleList](./core_doublelist) | parameters | Params of polyline curve. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateSegmentCurve

Create a segment curve from two given points.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateSegmentCurve(Point3 firstPoint, Point3 secondPoint)
```

Parameters

| Type                    | Name        | Description   |
| ----------------------- | ----------- | ------------- |
| [Point3](./geom_point3) | firstPoint  | First point.  |
| [Point3](./geom_point3) | secondPoint | Second point. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateSurfacicCurve

Create a curve from a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateSurfacicCurve(uint surface, uint curve2D)
```

Parameters

| Type                                                         | Name    | Description       |
| ------------------------------------------------------------ | ------- | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | Surface to bound. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve2D | Curve to project. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateTransformedCurve

Create a curve from a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateTransformedCurve(uint curve, Matrix4 matrix)
```

Parameters

| Type                                                         | Name   | Description                   |
| ------------------------------------------------------------ | ------ | ----------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve  | Curve to transform.           |
| [Matrix4](./geom_matrix4)                                    | matrix | Matrix of the transformation. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### InvertCurve

Invert a curve parametricaly.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint InvertCurve(uint curve, double precision)
```

Parameters

| Type                                                           | Name      | Description                             |
| -------------------------------------------------------------- | --------- | --------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | curve     | The curve to invert.                    |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | The precision used to invert the curve. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBoundedLinearExtrusion

Create a linear extrusion body.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBoundedLinearExtrusion(Point3 direction, Point3 planeOrigin, Point3 planeNormal, ProfileBase profileBase, Point3 startingNormal, ExtrusionBoundaryType boundaryType = ExtrusionBoundaryType.Full, ProfileBase profileEnd = null)
```

Parameters

| Type                                                 | Name           | Description                                                   |
| ---------------------------------------------------- | -------------- | ------------------------------------------------------------- |
| [Point3](./geom_point3)                              | direction      | The profile curves will be extruded in this direction.        |
| [Point3](./geom_point3)                              | planeOrigin    | The origin of the plane that bound the extrusion.             |
| [Point3](./geom_point3)                              | planeNormal    | The normal of the plane that bound the extrusion.             |
| [ProfileBase](./cad_profilebase)                     | profileBase    | Profile loops to extrude.                                     |
| [Point3](./geom_point3)                              | startingNormal | The normal of the plane in which all starting profile lie on. |
| [ExtrusionBoundaryType](./cad_extrusionboundarytype) | boundaryType   | If the profile curves define an area or not.                  |
| [ProfileBase](./cad_profilebase)                     | profileEnd     | The end profile of the extrusion.                             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCurveExtrusion

Create a curve extrusion body.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCurveExtrusion(uint curve, ProfileBase profileBase, Point3 startingNormal, ExtrusionBoundaryType boundaryType = ExtrusionBoundaryType.Full, ProfileBase profileEnd = null)
```

Parameters

| Type                                                         | Name           | Description                                                    |
| ------------------------------------------------------------ | -------------- | -------------------------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve          | The profile curves will be extruded along this curve.          |
| [ProfileBase](./cad_profilebase)                             | profileBase    | Profile loops to extrude.                                      |
| [Point3](./geom_point3)                                      | startingNormal | The normal of the plane in which all starting profile lie one. |
| [ExtrusionBoundaryType](./cad_extrusionboundarytype)         | boundaryType   | If the profile curves define an area or not.                   |
| [ProfileBase](./cad_profilebase)                             | profileEnd     | The end profile of the extrusion.                              |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateLinearExtrusion

Create a linear extrusion body.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateLinearExtrusion(Point3 direction, double depth, ProfileBase profileBase, Point3 startingNormal, ExtrusionBoundaryType boundaryType = ExtrusionBoundaryType.Full, ProfileBase profileEnd = null)
```

Parameters

| Type                                                           | Name           | Description                                                   |
| -------------------------------------------------------------- | -------------- | ------------------------------------------------------------- |
| [Point3](./geom_point3)                                        | direction      | The profile curves will be extruded in this direction.        |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | depth          | The extrusion will stop at the defined depth.                 |
| [ProfileBase](./cad_profilebase)                               | profileBase    | Profile loops to extrude.                                     |
| [Point3](./geom_point3)                                        | startingNormal | The normal of the plane in which all starting profile lie on. |
| [ExtrusionBoundaryType](./cad_extrusionboundarytype)           | boundaryType   | If the profile curves define an area or not.                  |
| [ProfileBase](./cad_profilebase)                               | profileEnd     | The end profile of the extrusion.                             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateMultiExtrusion

Create a linear extrusion body.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateMultiExtrusion(ProfileBaseList profileBaseList, CurveListList profileExtrusionList, ExtrusionBoundaryType boundaryType = ExtrusionBoundaryType.Full)
```

Parameters

| Type                                                 | Name                 | Description                                  |
| ---------------------------------------------------- | -------------------- | -------------------------------------------- |
| [ProfileBaseList](./cad_profilebaselist)             | profileBaseList      | Profile loops to be extruded.                |
| [CurveListList](./cad_curvelistlist)                 | profileExtrusionList | Extrusion profiles.                          |
| [ExtrusionBoundaryType](./cad_extrusionboundarytype) | boundaryType         | If the profile curves define an area or not. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateRevolveExtrusion

Create a revolved extrusion body.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateRevolveExtrusion(Point3 center, Point3 axis, double angle, ProfileBase profileBase, Point3 startingNormal, ExtrusionBoundaryType boundaryType = ExtrusionBoundaryType.Full, ProfileBase profileEnd = null)
```

Parameters

| Type                                                           | Name           | Description                                                   |
| -------------------------------------------------------------- | -------------- | ------------------------------------------------------------- |
| [Point3](./geom_point3)                                        | center         | The center of revolution.                                     |
| [Point3](./geom_point3)                                        | axis           | The profile curves will be revolved around this axis.         |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | angle          | The revolution will stop at the defined angle.                |
| [ProfileBase](./cad_profilebase)                               | profileBase    | Profile loops to revolve.                                     |
| [Point3](./geom_point3)                                        | startingNormal | The normal of the plane in which all starting profile lie on. |
| [ExtrusionBoundaryType](./cad_extrusionboundarytype)           | boundaryType   | If the profile curves define an area or not.                  |
| [ProfileBase](./cad_profilebase)                               | profileEnd     | The end profile of the extrusion.                             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### GetFaceMaterial

Get the material on a face.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint GetFaceMaterial(uint face)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | face | The face.   |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### SetFaceMaterial

Set the material on a face.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetFaceMaterial(uint face, uint material)
```

Parameters

| Type                                                         | Name     | Description   |
| ------------------------------------------------------------ | -------- | ------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | face     | The face.     |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | material | The material. |

### AddBodyToModel

Add a body to the model.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddBodyToModel(uint body, uint model)
```

Parameters

| Type                                                         | Name  | Description              |
| ------------------------------------------------------------ | ----- | ------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | body  | Body added to the model. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.                   |

### AddEdgeToModel

Add an edge to the model.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddEdgeToModel(uint edge, uint model)
```

Parameters

| Type                                                         | Name  | Description              |
| ------------------------------------------------------------ | ----- | ------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge  | Edge added to the model. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.                   |

### AddOpenShellToModel

Add an open shell to the model.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddOpenShellToModel(uint shell, uint model)
```

Parameters

| Type                                                         | Name  | Description                    |
| ------------------------------------------------------------ | ----- | ------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | shell | Open shell added to the model. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.                         |

### AddVertexToModel

Add a vertex to the model.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddVertexToModel(uint vtx, uint model)
```

Parameters

| Type                                                         | Name  | Description                |
| ------------------------------------------------------------ | ----- | -------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | vtx   | Vertex added to the model. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.                     |

### BuildFaces

Build faces from a surface and a set of loop.

```csharp
[HandleProcessCorruptedStateExceptions]
public BuildFacesReturn BuildFaces(uint surface, LoopList loopList)
```

Parameters

| Type                                                         | Name     | Description                            |
| ------------------------------------------------------------ | -------- | -------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface  | Surface used to build the faces.       |
| [LoopList](./cad_looplist)                                   | loopList | List of Loops used to build the faces. |

Returns

| Type                                       | Description |
| ------------------------------------------ | ----------- |
| [BuildFacesReturn](./cad_buildfacesreturn) |             |

### CreateModel

Create a new model.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateModel(double precision = -1)
```

Parameters

| Type                                                           | Name      | Description                   |
| -------------------------------------------------------------- | --------- | ----------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | CAD precision for this model. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### EndThreadBrepSession

Create a new BrepSession on current thread.

```csharp
[HandleProcessCorruptedStateExceptions]
public void EndThreadBrepSession()
```

### GetAllModelFaces

Get all the face of a model recursively.

```csharp
[HandleProcessCorruptedStateExceptions]
public FaceList GetAllModelFaces(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [FaceList](./cad_facelist) |             |

### GetModelBodies

Get the list of bodies contained in a model.

```csharp
[HandleProcessCorruptedStateExceptions]
public BodyList GetModelBodies(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [BodyList](./cad_bodylist) |             |

### GetModelBoundaries

Get boundary edges of a model grouped by cycles.

```csharp
[HandleProcessCorruptedStateExceptions]
public EdgeListList GetModelBoundaries(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                               | Description |
| ---------------------------------- | ----------- |
| [EdgeListList](./cad_edgelistlist) |             |

### GetModelEdges

Get the list of free edges contained in a model.

```csharp
[HandleProcessCorruptedStateExceptions]
public EdgeList GetModelEdges(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [EdgeList](./cad_edgelist) |             |

### GetModelOpenShells

Get the list of open shells contained in a model.

```csharp
[HandleProcessCorruptedStateExceptions]
public OpenShellList GetModelOpenShells(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                                 | Description |
| ------------------------------------ | ----------- |
| [OpenShellList](./cad_openshelllist) |             |

### GetModelPrecision

Get the precision used in a model.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetModelPrecision(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### GetModelVertices

Get the list of free vertices contained in a model.

```csharp
[HandleProcessCorruptedStateExceptions]
public VertexList GetModelVertices(uint model)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | model | Model.      |

Returns

| Type                           | Description |
| ------------------------------ | ----------- |
| [VertexList](./cad_vertexlist) |             |

### GetReferencers

Returns the entities referencing a given CAD entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public EntityList GetReferencers(uint entity)
```

Parameters

| Type                                                         | Name   | Description                        |
| ------------------------------------------------------------ | ------ | ---------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | CAD entity to get the referencers. |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [EntityList](./core_entitylist) |             |

### StartThreadBrepSession

Create a new BrepSession on current thread.

```csharp
[HandleProcessCorruptedStateExceptions]
public void StartThreadBrepSession(double precision)
```

Parameters

| Type                                                           | Name      | Description                   |
| -------------------------------------------------------------- | --------- | ----------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | CAD precision for this model. |

### CreateBRepCone

Creates a BRep Cone whose axis is the Z axis centered on O.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepCone(double radius, double height, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                      |
| -------------------------------------------------------------- | ------ | -------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Cone radius.                     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | height | Cone height.                     |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the Cone. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBRepCube

Creates a BRep Cube.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepCube(double size, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                      |
| -------------------------------------------------------------- | ------ | -------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | size   | Side length.                     |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the Cube. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBRepCylinder

Creates a BRep Cylinder aligned on the Z axis centered on O.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepCylinder(double radius, double length, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                          |
| -------------------------------------------------------------- | ------ | ------------------------------------ |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Cylinder radius.                     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | length | Cylinder length.                     |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the Cylinder. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBRepPlane

Creates a BRep Plane whose normal is the Z axis centered on O.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepPlane(double length, double width, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                       |
| -------------------------------------------------------------- | ------ | --------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | length | Plane length (X axis).            |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | width  | Plane width (Y axis).             |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the Plane. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBRepSphere

Creates a BRep Sphere centered on O and whose singularities are on the Z axis.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepSphere(double radius, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                        |
| -------------------------------------------------------------- | ------ | ---------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Sphere radius.                     |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the Sphere. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateBRepTorus

Creates a BRep Torus whose axis is the Z axis centered on O.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBRepTorus(double majorRadius, double minorRadius, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name        | Description                       |
| -------------------------------------------------------------- | ----------- | --------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | majorRadius | Major radius.                     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | minorRadius | Minor radius.                     |
| [Matrix4](./geom_matrix4)                                      | matrix      | Positionning matrix of the Torus. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### AreCurvesEquals

Check if two curve are equals by comparing each attribute, one by one. The two curves need to be of the same type; otherwise, it returns false by default.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool AreCurvesEquals(uint curve1, uint curve2)
```

Parameters

| Type                                                         | Name   | Description            |
| ------------------------------------------------------------ | ------ | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve1 | A curve to be compare. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve2 | A curve to be compare. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### EvalCurvatureOnCurve

Evaluate curvature on a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public double EvalCurvatureOnCurve(uint curve, double parameter)
```

Parameters

| Type                                                           | Name      | Description            |
| -------------------------------------------------------------- | --------- | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | curve     | The curve.             |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | parameter | Parameter to evaluate. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### EvalCurvatureOnSurface

Evaluate main curvatures on a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public Curvatures EvalCurvatureOnSurface(uint surface, Point2 parameter)
```

Parameters

| Type                                                         | Name      | Description            |
| ------------------------------------------------------------ | --------- | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface   | The surface.           |
| [Point2](./geom_point2)                                      | parameter | Parameter to evaluate. |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [Curvatures](./geom_curvatures) |             |

### EvalOnCurve

Evaluate a point and derivatives on a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public EvalOnCurveReturn EvalOnCurve(uint curve, double parameter, int derivation = 0)
```

Parameters

| Type                                                           | Name       | Description               |
| -------------------------------------------------------------- | ---------- | ------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | curve      | The curve.                |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | parameter  | Parameter to evaluate.    |
| [int](https://learn.microsoft.com/dotnet/api/system.int32)     | derivation | Derivation level (0,1,2). |

Returns

| Type                                         | Description |
| -------------------------------------------- | ----------- |
| [EvalOnCurveReturn](./cad_evaloncurvereturn) |             |

### EvalOnSurface

Evaluate a point and derivatives on a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public EvalOnSurfaceReturn EvalOnSurface(uint surface, Point2 parameter, int derivation = 0)
```

Parameters

| Type                                                         | Name       | Description               |
| ------------------------------------------------------------ | ---------- | ------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface    | The surface.              |
| [Point2](./geom_point2)                                      | parameter  | Parameter to evaluate.    |
| [int](https://learn.microsoft.com/dotnet/api/system.int32)   | derivation | Derivation level (0,1,2). |

Returns

| Type                                             | Description |
| ------------------------------------------------ | ----------- |
| [EvalOnSurfaceReturn](./cad_evalonsurfacereturn) |             |

### GetBodyClosedShells

Get all closedShells contain in the body.

```csharp
[HandleProcessCorruptedStateExceptions]
public ClosedShellList GetBodyClosedShells(uint body)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | body | The body.   |

Returns

| Type                                     | Description |
| ---------------------------------------- | ----------- |
| [ClosedShellList](./cad_closedshelllist) |             |

### GetCircleCurveDefinition

Get all parameters contained in the circleCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetCircleCurveDefinitionReturn GetCircleCurveDefinition(uint circleCurve)
```

Parameters

| Type                                                         | Name        | Description      |
| ------------------------------------------------------------ | ----------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | circleCurve | The circleCurve. |

Returns

| Type                                                                   | Description |
| ---------------------------------------------------------------------- | ----------- |
| [GetCircleCurveDefinitionReturn](./cad_getcirclecurvedefinitionreturn) |             |

### GetClosedShellOrientedFaces

Get all orienteFaces contain in the closedShell.

```csharp
[HandleProcessCorruptedStateExceptions]
public OrientedFaceList GetClosedShellOrientedFaces(uint closedShell)
```

Parameters

| Type                                                         | Name        | Description      |
| ------------------------------------------------------------ | ----------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | closedShell | The closedShell. |

Returns

| Type                                       | Description |
| ------------------------------------------ | ----------- |
| [OrientedFaceList](./cad_orientedfacelist) |             |

### GetCoEdgeDefinition

Get all parameters contained in the coEdge.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetCoEdgeDefinitionReturn GetCoEdgeDefinition(uint coEdge)
```

Parameters

| Type                                                         | Name   | Description |
| ------------------------------------------------------------ | ------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | coEdge | The coEdge. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [GetCoEdgeDefinitionReturn](./cad_getcoedgedefinitionreturn) |             |

### GetCompositeCurveDefinition

Get all parameters contained in the compositeCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetCompositeCurveDefinitionReturn GetCompositeCurveDefinition(uint compositeCurve)
```

Parameters

| Type                                                         | Name           | Description         |
| ------------------------------------------------------------ | -------------- | ------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | compositeCurve | The compositeCurve. |

Returns

| Type                                                                         | Description |
| ---------------------------------------------------------------------------- | ----------- |
| [GetCompositeCurveDefinitionReturn](./cad_getcompositecurvedefinitionreturn) |             |

### GetConeSurfaceDefinition

Get all parameters contained in the coneSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetConeSurfaceDefinitionReturn GetConeSurfaceDefinition(uint coneSurface)
```

Parameters

| Type                                                         | Name        | Description      |
| ------------------------------------------------------------ | ----------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | coneSurface | The coneSurface. |

Returns

| Type                                                                   | Description |
| ---------------------------------------------------------------------- | ----------- |
| [GetConeSurfaceDefinitionReturn](./cad_getconesurfacedefinitionreturn) |             |

### GetCurveExtrusionSurfaceDefinition

Get all parameters contained in the curveExtrusionSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetCurveExtrusionSurfaceDefinitionReturn GetCurveExtrusionSurfaceDefinition(uint curveExtrusionSurface)
```

Parameters

| Type                                                         | Name                  | Description                |
| ------------------------------------------------------------ | --------------------- | -------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curveExtrusionSurface | The curveExtrusionSurface. |

Returns

| Type                                                                                       | Description |
| ------------------------------------------------------------------------------------------ | ----------- |
| [GetCurveExtrusionSurfaceDefinitionReturn](./cad_getcurveextrusionsurfacedefinitionreturn) |             |

### GetCurveLength

Returns the length of the curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetCurveLength(uint curve)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve.  |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### GetCurveLimits

Get the parametric space limits of a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public Bounds1D GetCurveLimits(uint curve)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve.  |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [Bounds1D](./cad_bounds1d) |             |

### GetCylinderSurfaceDefinition

Get all parameters contained in the cylinderSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetCylinderSurfaceDefinitionReturn GetCylinderSurfaceDefinition(uint cylinderSurface)
```

Parameters

| Type                                                         | Name            | Description          |
| ------------------------------------------------------------ | --------------- | -------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | cylinderSurface | The cylinderSurface. |

Returns

| Type                                                                           | Description |
| ------------------------------------------------------------------------------ | ----------- |
| [GetCylinderSurfaceDefinitionReturn](./cad_getcylindersurfacedefinitionreturn) |             |

### GetEdgeConnectivity

Get the number of faces connected to this edge.

```csharp
[HandleProcessCorruptedStateExceptions]
public int GetEdgeConnectivity(uint edge)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge |             |

Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

### GetEdgeDefinition

Get all parameters contained in the edge.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetEdgeDefinitionReturn GetEdgeDefinition(uint edge)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge | The edge.   |

Returns

| Type                                                     | Description |
| -------------------------------------------------------- | ----------- |
| [GetEdgeDefinitionReturn](./cad_getedgedefinitionreturn) |             |

### GetEdgeLength

Returns the length of the edge.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetEdgeLength(uint edge)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge | The edge.   |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### GetEdgeMaterial

Get the material of the edge, if any.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint GetEdgeMaterial(uint edge)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### GetEllipseCurveDefinition

Get all parameters contained in the ellipseCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetEllipseCurveDefinitionReturn GetEllipseCurveDefinition(uint ellipseCurve)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | ellipseCurve | The ellipseCurve. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetEllipseCurveDefinitionReturn](./cad_getellipsecurvedefinitionreturn) |             |

### GetEllipticConeSurfaceDefinition

Get all parameters contained in the ellipticConeSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetEllipticConeSurfaceDefinitionReturn GetEllipticConeSurfaceDefinition(uint ellipticConeSurface)
```

Parameters

| Type                                                         | Name                | Description              |
| ------------------------------------------------------------ | ------------------- | ------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | ellipticConeSurface | The EllipticConeSurface. |

Returns

| Type                                                                                   | Description |
| -------------------------------------------------------------------------------------- | ----------- |
| [GetEllipticConeSurfaceDefinitionReturn](./cad_getellipticconesurfacedefinitionreturn) |             |

### GetFaceDefinition

Get all parameters contain in the face.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetFaceDefinitionReturn GetFaceDefinition(uint face)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | face | The face.   |

Returns

| Type                                                     | Description |
| -------------------------------------------------------- | ----------- |
| [GetFaceDefinitionReturn](./cad_getfacedefinitionreturn) |             |

### GetFaceParametricBoundaries

Get parametric definition of each face loop.

```csharp
[HandleProcessCorruptedStateExceptions]
public Point2ListList GetFaceParametricBoundaries(uint face)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | face | The face.   |

Returns

| Type                                    | Description |
| --------------------------------------- | ----------- |
| [Point2ListList](./geom_point2listlist) |             |

### GetHelixCurveDefinition

Get all parameters contained in the helixCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetHelixCurveDefinitionReturn GetHelixCurveDefinition(uint helixCurve)
```

Parameters

| Type                                                         | Name       | Description     |
| ------------------------------------------------------------ | ---------- | --------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | helixCurve | The helixCurve. |

Returns

| Type                                                                 | Description |
| -------------------------------------------------------------------- | ----------- |
| [GetHelixCurveDefinitionReturn](./cad_gethelixcurvedefinitionreturn) |             |

### GetHermiteCurveDefinition

Get all parameters contained in the hermiteCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetHermiteCurveDefinitionReturn GetHermiteCurveDefinition(uint hermiteCurve)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | hermiteCurve | The HermiteCurve. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetHermiteCurveDefinitionReturn](./cad_gethermitecurvedefinitionreturn) |             |

### GetHyperbolaCurveDefinition

Get all parameters contained in the hyperbolaCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetHyperbolaCurveDefinitionReturn GetHyperbolaCurveDefinition(uint hyperbolaCurve)
```

Parameters

| Type                                                         | Name           | Description         |
| ------------------------------------------------------------ | -------------- | ------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | hyperbolaCurve | The hyperbolaCurve. |

Returns

| Type                                                                         | Description |
| ---------------------------------------------------------------------------- | ----------- |
| [GetHyperbolaCurveDefinitionReturn](./cad_gethyperbolacurvedefinitionreturn) |             |

### GetIntersectionCurveDefinition

Get all parameters contained in the intersectionCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetIntersectionCurveDefinitionReturn GetIntersectionCurveDefinition(uint intersectionCurve)
```

Parameters

| Type                                                         | Name              | Description            |
| ------------------------------------------------------------ | ----------------- | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | intersectionCurve | The intersectionCurve. |

Returns

| Type                                                                               | Description |
| ---------------------------------------------------------------------------------- | ----------- |
| [GetIntersectionCurveDefinitionReturn](./cad_getintersectioncurvedefinitionreturn) |             |

### GetLineCurveDefinition

Get all parameters contain in the lineCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetLineCurveDefinitionReturn GetLineCurveDefinition(uint lineCurve)
```

Parameters

| Type                                                         | Name      | Description    |
| ------------------------------------------------------------ | --------- | -------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | lineCurve | The lineCurve. |

Returns

| Type                                                               | Description |
| ------------------------------------------------------------------ | ----------- |
| [GetLineCurveDefinitionReturn](./cad_getlinecurvedefinitionreturn) |             |

### GetLoopCoEdges

Get all coEdges contain in the loop.

```csharp
[HandleProcessCorruptedStateExceptions]
public CoEdgeList GetLoopCoEdges(uint loop)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | loop | The loop.   |

Returns

| Type                           | Description |
| ------------------------------ | ----------- |
| [CoEdgeList](./cad_coedgelist) |             |

### GetNURBSCurveDefinition

Get all parameters contained in the nurbsCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetNURBSCurveDefinitionReturn GetNURBSCurveDefinition(uint nurbsCurve)
```

Parameters

| Type                                                         | Name       | Description     |
| ------------------------------------------------------------ | ---------- | --------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | nurbsCurve | The nurbsCurve. |

Returns

| Type                                                                 | Description |
| -------------------------------------------------------------------- | ----------- |
| [GetNURBSCurveDefinitionReturn](./cad_getnurbscurvedefinitionreturn) |             |

### GetNURBSSurfaceDefinition

Get all parameters contained in the nurbsSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetNURBSSurfaceDefinitionReturn GetNURBSSurfaceDefinition(uint nurbsSurface)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | nurbsSurface | The nurbsSurface. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetNURBSSurfaceDefinitionReturn](./cad_getnurbssurfacedefinitionreturn) |             |

### GetOffsetCurveDefinition

Get all parameters contained in the offsetCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetOffsetCurveDefinitionReturn GetOffsetCurveDefinition(uint offsetCurve)
```

Parameters

| Type                                                         | Name        | Description      |
| ------------------------------------------------------------ | ----------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | offsetCurve | The offsetCurve. |

Returns

| Type                                                                   | Description |
| ---------------------------------------------------------------------- | ----------- |
| [GetOffsetCurveDefinitionReturn](./cad_getoffsetcurvedefinitionreturn) |             |

### GetOffsetSurfaceDefinition

Get all parameters contained in the offsetSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetOffsetSurfaceDefinitionReturn GetOffsetSurfaceDefinition(uint offsetSurface)
```

Parameters

| Type                                                         | Name          | Description        |
| ------------------------------------------------------------ | ------------- | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | offsetSurface | The offsetSurface. |

Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [GetOffsetSurfaceDefinitionReturn](./cad_getoffsetsurfacedefinitionreturn) |             |

### GetOpenShellOrientedFaces

Get all orienteFaces contain in the openShell.

```csharp
[HandleProcessCorruptedStateExceptions]
public OrientedFaceList GetOpenShellOrientedFaces(uint openShell)
```

Parameters

| Type                                                         | Name      | Description    |
| ------------------------------------------------------------ | --------- | -------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | openShell | The openShell. |

Returns

| Type                                       | Description |
| ------------------------------------------ | ----------- |
| [OrientedFaceList](./cad_orientedfacelist) |             |

### GetParabolaCurveDefinition

Get all parameters contained in the parabolaCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetParabolaCurveDefinitionReturn GetParabolaCurveDefinition(uint parabolaCurve)
```

Parameters

| Type                                                         | Name          | Description        |
| ------------------------------------------------------------ | ------------- | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | parabolaCurve | The parabolaCurve. |

Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [GetParabolaCurveDefinitionReturn](./cad_getparabolacurvedefinitionreturn) |             |

### GetParametricPrecisionOnSurface

Returns the parametric precision of a surface from the input precision.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetParametricPrecisionOnSurface(uint surface, double precision)
```

Parameters

| Type                                                           | Name      | Description      |
| -------------------------------------------------------------- | --------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | surface   | The surface.     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Input precision. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### GetPlaneSurfaceDefinition

Get all parameters contained in the planeSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public Matrix4 GetPlaneSurfaceDefinition(uint planeSurface)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | planeSurface | The planeSurface. |

Returns

| Type                      | Description |
| ------------------------- | ----------- |
| [Matrix4](./geom_matrix4) |             |

### GetPolylineCurveDefinition

Get all parameters contained in the polylinCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetPolylineCurveDefinitionReturn GetPolylineCurveDefinition(uint polylineCurve)
```

Parameters

| Type                                                         | Name          | Description        |
| ------------------------------------------------------------ | ------------- | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | polylineCurve | The polylineCurve. |

Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [GetPolylineCurveDefinitionReturn](./cad_getpolylinecurvedefinitionreturn) |             |

### GetRevolutionSurfaceDefinition

Get all parameters contained in the revolutionSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetRevolutionSurfaceDefinitionReturn GetRevolutionSurfaceDefinition(uint revolutionSurface)
```

Parameters

| Type                                                         | Name              | Description            |
| ------------------------------------------------------------ | ----------------- | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | revolutionSurface | The revolutionSurface. |

Returns

| Type                                                                               | Description |
| ---------------------------------------------------------------------------------- | ----------- |
| [GetRevolutionSurfaceDefinitionReturn](./cad_getrevolutionsurfacedefinitionreturn) |             |

### GetRuledSurfaceDefinition

Get all parameters contained in the ruledSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetRuledSurfaceDefinitionReturn GetRuledSurfaceDefinition(uint ruledSurface)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | ruledSurface | The ruledSurface. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetRuledSurfaceDefinitionReturn](./cad_getruledsurfacedefinitionreturn) |             |

### GetSegmentCurveDefinition

Get all parameters contained in the segmentCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetSegmentCurveDefinitionReturn GetSegmentCurveDefinition(uint segmentCurve)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | segmentCurve | The segmentCurve. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetSegmentCurveDefinitionReturn](./cad_getsegmentcurvedefinitionreturn) |             |

### GetSphereSurfaceDefinition

Get all parameters contained in the sphereSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetSphereSurfaceDefinitionReturn GetSphereSurfaceDefinition(uint sphereSurface)
```

Parameters

| Type                                                         | Name          | Description        |
| ------------------------------------------------------------ | ------------- | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | sphereSurface | The sphereSurface. |

Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [GetSphereSurfaceDefinitionReturn](./cad_getspheresurfacedefinitionreturn) |             |

### GetSurfaceLimits

Get the parametric space limits of a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public Bounds2D GetSurfaceLimits(uint surface)
```

Parameters

| Type                                                         | Name    | Description  |
| ------------------------------------------------------------ | ------- | ------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The surface. |

Returns

| Type                       | Description |
| -------------------------- | ----------- |
| [Bounds2D](./cad_bounds2d) |             |

### GetSurfaceType

Returns the surface type.

```csharp
[HandleProcessCorruptedStateExceptions]
public int GetSurfaceType(uint surface)
```

Parameters

| Type                                                         | Name    | Description  |
| ------------------------------------------------------------ | ------- | ------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The Surface. |

Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

### GetSurfacicCurveDefinition

Get all parameters contained in the surfacicCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetSurfacicCurveDefinitionReturn GetSurfacicCurveDefinition(uint surfacicCurve)
```

Parameters

| Type                                                         | Name          | Description        |
| ------------------------------------------------------------ | ------------- | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surfacicCurve | The surfacicCurve. |

Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [GetSurfacicCurveDefinitionReturn](./cad_getsurfaciccurvedefinitionreturn) |             |

### GetTabulatedCylinderSurfaceDefinition

Get all parameters contained in the TabulatedCylinderSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetTabulatedCylinderSurfaceDefinitionReturn GetTabulatedCylinderSurfaceDefinition(uint tabulatedCylinderSurface)
```

Parameters

| Type                                                         | Name                     | Description                   |
| ------------------------------------------------------------ | ------------------------ | ----------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | tabulatedCylinderSurface | The tabulatedCylinderSurface. |

Returns

| Type                                                                                             | Description |
| ------------------------------------------------------------------------------------------------ | ----------- |
| [GetTabulatedCylinderSurfaceDefinitionReturn](./cad_gettabulatedcylindersurfacedefinitionreturn) |             |

### GetTorusSurfaceDefinition

Get all parameters contained in the torusSurface.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetTorusSurfaceDefinitionReturn GetTorusSurfaceDefinition(uint torusSurface)
```

Parameters

| Type                                                         | Name         | Description       |
| ------------------------------------------------------------ | ------------ | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | torusSurface | The torusSurface. |

Returns

| Type                                                                     | Description |
| ------------------------------------------------------------------------ | ----------- |
| [GetTorusSurfaceDefinitionReturn](./cad_gettorussurfacedefinitionreturn) |             |

### GetTransformedCurveDefinition

Get all parameters contained in the transformedCurve.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetTransformedCurveDefinitionReturn GetTransformedCurveDefinition(uint transformedCurve)
```

Parameters

| Type                                                         | Name             | Description           |
| ------------------------------------------------------------ | ---------------- | --------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | transformedCurve | The transformedCurve. |

Returns

| Type                                                                             | Description |
| -------------------------------------------------------------------------------- | ----------- |
| [GetTransformedCurveDefinitionReturn](./cad_gettransformedcurvedefinitionreturn) |             |

### GetVertexPosition

Get the position of the vertex.

```csharp
[HandleProcessCorruptedStateExceptions]
public Point3 GetVertexPosition(uint vertex)
```

Parameters

| Type                                                         | Name   | Description |
| ------------------------------------------------------------ | ------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | vertex | The vertex. |

Returns

| Type                    | Description |
| ----------------------- | ----------- |
| [Point3](./geom_point3) |             |

### InvertOnCurve

Invert a point to a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public double InvertOnCurve(uint curve, Point3 point, double precision = -1)
```

Parameters

| Type                                                           | Name      | Description          |
| -------------------------------------------------------------- | --------- | -------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | curve     | The curve.           |
| [Point3](./geom_point3)                                        | point     | The point to invert. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Inversion precision. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### InvertOnSurface

Invert a point to a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public Point2 InvertOnSurface(uint surface, Point3 point, double precision = -1)
```

Parameters

| Type                                                           | Name      | Description          |
| -------------------------------------------------------------- | --------- | -------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | surface   | The surface.         |
| [Point3](./geom_point3)                                        | point     | The point to invert. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Inversion precision. |

Returns

| Type                    | Description |
| ----------------------- | ----------- |
| [Point2](./geom_point2) |             |

### IsCurveClosed

If the curve is closed, return true, return false otherwise.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool IsCurveClosed(uint curve)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve.  |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### IsCurveFinite

If the curve is finite return true, return false otherwise.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool IsCurveFinite(uint curve)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve.  |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### IsCurvePeriodic

If the curve is periodic return true, return false otherwise.

```csharp
[HandleProcessCorruptedStateExceptions]
public IsCurvePeriodicReturn IsCurvePeriodic(uint curve)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve.  |

Returns

| Type                                                 | Description |
| ---------------------------------------------------- | ----------- |
| [IsCurvePeriodicReturn](./cad_iscurveperiodicreturn) |             |

### IsSurfaceClosed

Return if the surface is closed on U or on V.

```csharp
[HandleProcessCorruptedStateExceptions]
public IsSurfaceClosedReturn IsSurfaceClosed(uint surface)
```

Parameters

| Type                                                         | Name    | Description  |
| ------------------------------------------------------------ | ------- | ------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The surface. |

Returns

| Type                                                 | Description |
| ---------------------------------------------------- | ----------- |
| [IsSurfaceClosedReturn](./cad_issurfaceclosedreturn) |             |

### IsSurfacePeriodic

Return if the surface is periodic on U or on V.

```csharp
[HandleProcessCorruptedStateExceptions]
public IsSurfacePeriodicReturn IsSurfacePeriodic(uint surface)
```

Parameters

| Type                                                         | Name    | Description  |
| ------------------------------------------------------------ | ------- | ------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The surface. |

Returns

| Type                                                     | Description |
| -------------------------------------------------------- | ----------- |
| [IsSurfacePeriodicReturn](./cad_issurfaceperiodicreturn) |             |

### NeedTorusShapeCheck

Returns true if the torus has a shape (lemon or apple) corresponding to the provided points.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool NeedTorusShapeCheck(uint surface, Point3List points)
```

Parameters

| Type                                                         | Name    | Description                          |
| ------------------------------------------------------------ | ------- | ------------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The surface.                         |
| [Point3List](./geom_point3list)                              | points  | List of points to check the surface. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### ProjectOnCurve

Project a point to a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public double ProjectOnCurve(uint curve, Point3 point, double precision = -1)
```

Parameters

| Type                                                           | Name      | Description           |
| -------------------------------------------------------------- | --------- | --------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | curve     | The curve.            |
| [Point3](./geom_point3)                                        | point     | The point to project. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Projection precision. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### ProjectOnSurface

Project a point to a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public Point2 ProjectOnSurface(uint surface, Point3 point, double precision = -1)
```

Parameters

| Type                                                           | Name      | Description           |
| -------------------------------------------------------------- | --------- | --------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | surface   | The surface.          |
| [Point3](./geom_point3)                                        | point     | The point to project. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | precision | Projection precision. |

Returns

| Type                    | Description |
| ----------------------- | ----------- |
| [Point2](./geom_point2) |             |

### SetCoEdgeCurve2D

Set the curve 2D value of a coEdge.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetCoEdgeCurve2D(uint coEdge, uint curve2D)
```

Parameters

| Type                                                         | Name    | Description       |
| ------------------------------------------------------------ | ------- | ----------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | coEdge  | The coEdge.       |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve2D | The new curve 2D. |

### SetCoEdgeSurface

Set the surface value of a coEdge.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetCoEdgeSurface(uint coEdge, uint surface)
```

Parameters

| Type                                                         | Name    | Description      |
| ------------------------------------------------------------ | ------- | ---------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | coEdge  | The coEdge.      |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The new surface. |

### SetCurveLimits

Set the parametric space limits of a curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetCurveLimits(uint curve, Bounds1D limits)
```

Parameters

| Type                                                         | Name   | Description   |
| ------------------------------------------------------------ | ------ | ------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve  | The curve.    |
| [Bounds1D](./cad_bounds1d)                                   | limits | Curve limits. |

### SetEdgeMaterial

Define an edge's material.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetEdgeMaterial(uint edge, uint material)
```

Parameters

| Type                                                         | Name     | Description                    |
| ------------------------------------------------------------ | -------- | ------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | edge     | The edge to apply to style to. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | material | The material to apply.         |

### CreateBody

Create a body from a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBody(uint outerShell, ClosedShellList innerShells = null)
```

Parameters

| Type                                                         | Name        | Description                                  |
| ------------------------------------------------------------ | ----------- | -------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | outerShell  | ClosedShell used to create the body.         |
| [ClosedShellList](./cad_closedshelllist)                     | innerShells | List of closedShell used to create the body. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateClosedShell

Create a closedShell from a set of faces of a set of orientations.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateClosedShell(FaceList faces, OrientationList orientations)
```

Parameters

| Type                                      | Name         | Description                              |
| ----------------------------------------- | ------------ | ---------------------------------------- |
| [FaceList](./cad_facelist)                | faces        | List of faces composing the closedShell. |
| [OrientationList](./geom_orientationlist) | orientations | List of orientations for each face.      |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCoEdge

Create an coEdge with a edge and an orientation.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCoEdge(uint edge, bool orientation, uint surface = 0, uint curve2D = 0, bool computeGateway = false)
```

Parameters

| Type                                                          | Name           | Description                                                     |
| ------------------------------------------------------------- | -------------- | --------------------------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)  | edge           | Edge used to create the coEdge.                                 |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | orientation    | Orientation of the edge regarding the loop.                     |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)  | surface        | The surface trimmed by the edge.                                |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)  | curve2D        | Surfacic curve of the edge on the surface trimmed.              |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | computeGateway | Needed if 3d curve and 2d curve have different parametrization. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateEdge

Create an edge with a curve an extremity vertices.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEdge(uint curve, uint startVertex, uint endVertex)
```

Parameters

| Type                                                         | Name        | Description                    |
| ------------------------------------------------------------ | ----------- | ------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve       | Curve used to create the edge. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | startVertex | The start vertex.              |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | endVertex   | The end vertex.                |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateEdgeFromCurve

Create an edge from a limited curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEdgeFromCurve(uint curve)
```

Parameters

| Type                                                         | Name  | Description                            |
| ------------------------------------------------------------ | ----- | -------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | Limited curve used to create the edge. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateEdgeWithBounds

Create an edge with a curve an extremity vertices and a given boundary.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEdgeWithBounds(uint curve, uint startVertex, uint endVertex, Bounds1D bounds)
```

Parameters

| Type                                                         | Name        | Description                    |
| ------------------------------------------------------------ | ----------- | ------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve       | Curve used to create the edge. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | startVertex | The start vertex.              |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | endVertex   | The end vertex.                |
| [Bounds1D](./cad_bounds1d)                                   | bounds      | The parametrization boundary.  |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateFace

Create a face from a surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateFace(uint surface, LoopList loopList = null, bool useSurfaceOrientation = false)
```

Parameters

| Type                                                          | Name                  | Description                                                                                                            |
| ------------------------------------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)  | surface               | Surface used to create the face.                                                                                       |
| [LoopList](./cad_looplist)                                    | loopList              | List of Loops used to create the face.                                                                                 |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | useSurfaceOrientation | If True, the face will have the same orientation than the surface and loops will be inverted if they are inconsistent. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateLoop

Create a loop from a set of edges of a set of orientations.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateLoop(CoEdgeList coEdges, bool check = true, bool deleteIsolatedVertices = true)
```

Parameters

| Type                                                          | Name                   | Description                                                 |
| ------------------------------------------------------------- | ---------------------- | ----------------------------------------------------------- |
| [CoEdgeList](./cad_coedgelist)                                | coEdges                | List of coEdges composing the loop.                         |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | check                  | If true, the loop check if edges are well connected or not. |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | deleteIsolatedVertices | If true, this will merge isolated vertices in the loop.     |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateLoopFromCurve

Create a loop from a finite curve.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateLoopFromCurve(uint curve)
```

Parameters

| Type                                                         | Name  | Description                        |
| ------------------------------------------------------------ | ----- | ---------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | curve | The curve to create the loop with. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateOpenShell

Create a openShell from a set of faces of a set of orientations and set of loops.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateOpenShell(FaceList faces, OrientationList orientations)
```

Parameters

| Type                                      | Name         | Description                            |
| ----------------------------------------- | ------------ | -------------------------------------- |
| [FaceList](./cad_facelist)                | faces        | List of faces composing the openShell. |
| [OrientationList](./geom_orientationlist) | orientations | List of orientations for each face.    |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateVertex

Create a vertex from a position.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateVertex(Point3 position)
```

Parameters

| Type                    | Name     | Description      |
| ----------------------- | -------- | ---------------- |
| [Point3](./geom_point3) | position | Vertex position. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### InvertCoEdge

Invert a coedge.

```csharp
[HandleProcessCorruptedStateExceptions]
public void InvertCoEdge(uint coedge)
```

Parameters

| Type                                                         | Name   | Description           |
| ------------------------------------------------------------ | ------ | --------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | coedge | The coedge to invert. |

### InvertFaces

Invert faces.

```csharp
[HandleProcessCorruptedStateExceptions]
public void InvertFaces(FaceList faces, bool invertLoops = true)
```

Parameters

| Type                                                          | Name        | Description                        |
| ------------------------------------------------------------- | ----------- | ---------------------------------- |
| [FaceList](./cad_facelist)                                    | faces       | The faces to invert.               |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | invertLoops | If true, invert loops orientation. |

### InvertLoop

Invert a loop.

```csharp
[HandleProcessCorruptedStateExceptions]
public void InvertLoop(uint loop)
```

Parameters

| Type                                                         | Name | Description         |
| ------------------------------------------------------------ | ---- | ------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | loop | The loop to invert. |

### IsSurfaceFinite

Return if the surface is finite.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool IsSurfaceFinite(uint surface)
```

Parameters

| Type                                                         | Name    | Description  |
| ------------------------------------------------------------ | ------- | ------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | The surface. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### AddPrecisionArea

Define a working area on the 2D projection of the surface to define a parametric precision.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddPrecisionArea(uint surface, AABR aabr)
```

Parameters

| Type                                                         | Name    | Description                                      |
| ------------------------------------------------------------ | ------- | ------------------------------------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | Surface on which the precision area will be set. |
| [AABR](./geom_aabr)                                          | aabr    | 2D area defining the working area.               |

### CreateBezierSurface

Create a new bezier surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateBezierSurface(int degreeU, int degreeV, Point3List poles)
```

Parameters

| Type                                                       | Name    | Description |
| ---------------------------------------------------------- | ------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | degreeU | U degree.   |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | degreeV | V degree.   |
| [Point3List](./geom_point3list)                            | poles   | Poles list. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateConeSurface

Create a new cone surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateConeSurface(double radius, double semiAngle, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name      | Description                      |
| -------------------------------------------------------------- | --------- | -------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius    | Radius of the cone at origin.    |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | semiAngle | Semi-angle of the cone (in rad). |
| [Matrix4](./geom_matrix4)                                      | matrix    | Positionning matrix of the cone. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCurveExtrusionSurface

Create a new curveExtrusion surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCurveExtrusionSurface(uint generatrixCurve, uint directrixCurve, uint refSurface = 0)
```

Parameters

| Type                                                         | Name            | Description            |
| ------------------------------------------------------------ | --------------- | ---------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | generatrixCurve | The generatrix curve.  |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | directrixCurve  | The directrix curve.   |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | refSurface      | The reference surface. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateCylinderSurface

Create a new cylinder surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateCylinderSurface(double radius, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                          |
| -------------------------------------------------------------- | ------ | ------------------------------------ |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Radius of the cylinder.              |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the cylinder. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateEllipticConeSurface

Create a new elliptic cone surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEllipticConeSurface(double radius1, double radius2, double semiAngle, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name      | Description                                 |
| -------------------------------------------------------------- | --------- | ------------------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius1   | Radius of the cone at origin on the X axis. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius2   | Radius of the cone at origin on the Y axis. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | semiAngle | Semi-angle of the cone (in rad).            |
| [Matrix4](./geom_matrix4)                                      | matrix    | Positionning matrix of the cone.            |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateNURBSSurface

Create a new NURBS surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateNURBSSurface(int degreeU, int degreeV, DoubleList knotsU, DoubleList knotsV, Point3List poles, DoubleList weights = null)
```

Parameters

| Type                                                       | Name    | Description   |
| ---------------------------------------------------------- | ------- | ------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | degreeU | U degree.     |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | degreeV | V degree.     |
| [DoubleList](./core_doublelist)                            | knotsU  | Knots on U.   |
| [DoubleList](./core_doublelist)                            | knotsV  | Knots on V.   |
| [Point3List](./geom_point3list)                            | poles   | Poles list.   |
| [DoubleList](./core_doublelist)                            | weights | Weights list. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateOffsetSurface

Create a new offset surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateOffsetSurface(uint baseSurface, double distance)
```

Parameters

| Type                                                           | Name        | Description          |
| -------------------------------------------------------------- | ----------- | -------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | baseSurface | The base surface.    |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | distance    | The offset distance. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreatePlaneSurface

Create a new plane surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreatePlaneSurface(Matrix4 matrix = null)
```

Parameters

| Type                      | Name   | Description                       |
| ------------------------- | ------ | --------------------------------- |
| [Matrix4](./geom_matrix4) | matrix | Positionning matrix of the plane. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateRevolutionSurface

Create a new revolution surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateRevolutionSurface(uint generatrixCurve, Point3 axisOrigin, Point3 axisDirection, double startParam = 0, double endParam = 6.283185307179586)
```

Parameters

| Type                                                           | Name            | Description                                                |
| -------------------------------------------------------------- | --------------- | ---------------------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | generatrixCurve | Generatrix curve rotated to create the revolution surface. |
| [Point3](./geom_point3)                                        | axisOrigin      | Axis origin point.                                         |
| [Point3](./geom_point3)                                        | axisDirection   | Axis direction vector.                                     |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | startParam      | Start angle of the revolution surface (in rad).            |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | endParam        | End angle of the revolution surface (in rad).              |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateRuledSurface

Create a new ruled surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateRuledSurface(uint firstCurve, uint secondCurve)
```

Parameters

| Type                                                         | Name        | Description    |
| ------------------------------------------------------------ | ----------- | -------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | firstCurve  | First Curve.   |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | secondCurve | Seconde Curve. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateSphereSurface

Create a new sphere surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateSphereSurface(double radius, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name   | Description                        |
| -------------------------------------------------------------- | ------ | ---------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radius | Radius of the sphere.              |
| [Matrix4](./geom_matrix4)                                      | matrix | Positionning matrix of the sphere. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateTabulatedCylinderSurface

Create a new tabulated cylinder surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateTabulatedCylinderSurface(uint directrixCurve, Point3 GeneratixLine, double minRange, double maxRange)
```

Parameters

| Type                                                           | Name           | Description                   |
| -------------------------------------------------------------- | -------------- | ----------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | directrixCurve | Directrix Curve.              |
| [Point3](./geom_point3)                                        | GeneratixLine  | Generatrix Line.              |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | minRange       | Minimimum value of the range. |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | maxRange       | Maximum value of the range.   |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### CreateTorusSurface

Create a new torus surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateTorusSurface(double radiusMax, double radiusMin, Matrix4 matrix = null)
```

Parameters

| Type                                                           | Name      | Description                        |
| -------------------------------------------------------------- | --------- | ---------------------------------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radiusMax | Major radius.                      |
| [double](https://learn.microsoft.com/dotnet/api/system.double) | radiusMin | Minor radius.                      |
| [Matrix4](./geom_matrix4)                                      | matrix    | Positionning matrix of the sphere. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### NeedPrecisionArea

Tells if it needs a working area on the surface.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool NeedPrecisionArea(uint surface)
```

Parameters

| Type                                                         | Name    | Description                                  |
| ------------------------------------------------------------ | ------- | -------------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | surface | Surface to check if it needs precision area. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |
