DG Kernel (ActiveX) Documentation


Skip Navigation Links.
Start page
Quick Start
Search Page
Installation
What is new
Upgrading Native Apps
Licensing
Collapse ModelsModels
Collapse DG Kernel ControlsDG Kernel Controls
Collapse API ReferenceAPI Reference
Interface List
Vector Space
Collapse General GeometryGeneral Geometry
Collapse ModelModel
Collapse ViewView
Collapse General ComputingGeneral Computing
Collapse Samples and TutorialsSamples and Tutorials
Collapse GraphicsGraphics
Collapse Math ObjectsMath Objects
Collapse DeprecatedDeprecated
Redistribution
Model Viewer
Open Source
Support
Skip Navigation Links Go to DGKC docs Search Documentation


IMeshAlgor(64) Interface

AddVertex
BuildMesh
GetDefaults

IMeshAlgor implements an algorithm of construction meshed surface from a point cloud

IMeshAlgor can be obtained from IMesh via query: kernelCAD > GetModel() > IModel > GetEntity() > ISection > IMesh > IMeshAlgor(64)


HRESULT AddVertex(double x, double y, double z, POSN* posnResult)

Parameters

x, y, z-- [in] Coordinates

posnResult - [out,retval] Position of the added vertex in vertex list of the mesh

Remarks:

Adds new vertex with the specified coordinates to the mesh which implements this interface


HRESULT BuildMesh(float Radius, float minDist, float creaseDegrees)

Parameters

Radius - [in] See remarks

minDist - [in] See remarks

creaseDegrees - [in] Crease angle in degrees.

Remarks:

Adds simplexes constructed on the vertices added with AddVertex(). If two points are closer than Radius they will be connected with a simplex. Set to 0 to use an automatically calculated value. This is the paramether the algorithm most sensitive to. It affects significantly geometry of the resulting mesh

If two points are closer than strong>i>mminDist they will be considered identical. It should be a very small number like 1e-3 which is a difference tolerance in the application. minDist less than 1e-10 are treated at zero. If there are no very close points this parameter does not make any difference

If an angle between two adjacent simplexes is greater than creaseDegrees it is assumed that the surface has a sharp edge along the shared edge of the simplexes. 45 degress is often acceptable. This parameter affects appearance of the resulting surface. Reducing the parameter while keeping it positive makes the surface more faceted. Increasing it makes the surface more smooth.

After adding points with AddVertex() it is recommended to obtain initial default parameters with a call to GetDefaults method below and tune them in by slowly changing around the default values.


HRESULT GetDefaults(float* Radius, float* minDist, float* creaseDegrees)

Parameters

Radius- [out] The returned default value for Radius . See BuildMesh method above

minDist- [out] The returned default value for minDist. See BuildMesh  method above

creaseDegrees- [out] The returned default value for creaseDegrees. See BuildMesh  method above

Remarks:

The method returns default values calculated internally when some of the parameters in a BuildMesh call are not provided (not valid). See the BuildMesh  method above. The returned values depend on the point data set added with AddVertex calls.