MeshLink
Computational geometry access
MeshAssociativity_c.h
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * Copyright (c) 2019-2020 Pointwise, Inc.
4  * All rights reserved.
5  *
6  * This sample Pointwise source code is not supported by Pointwise, Inc.
7  * It is provided freely for demonstration purposes only.
8  * SEE THE WARRANTY DISCLAIMER AT THE BOTTOM OF THIS FILE.
9  *
10  ***************************************************************************/
11 
12 #ifndef MESH_ASSOCIATIVITY_C_API
13 #define MESH_ASSOCIATIVITY_C_API
14 
15 #include "Types.h"
16 #include <stdlib.h>
17 
18  ML_EXTERN ML_STORAGE_CLASS
29  size_t size_of_MLINT,
30  size_t size_of_MLINT32,
31  size_t size_of_MLFLOAT,
32  size_t size_of_MLREAL
33 );
34 
35  ML_EXTERN ML_STORAGE_CLASS
43  ML_EXTERN ML_STORAGE_CLASS
51 
52  ML_EXTERN ML_STORAGE_CLASS
62  MeshLinkParserObj parseObj,
63  const char *meshlinkFilename,
64  const char *schemaFilename);
65  ML_EXTERN ML_STORAGE_CLASS
75  MeshLinkParserObj parseObj,
76  const char *meshlinkFilename,
77  MeshAssociativityObj meshAssocObj);
78  ML_EXTERN ML_STORAGE_CLASS
92  MeshLinkParserObj parseObj,
93  char *xmlns, MLINT xmlnsBufLen,
94  char *xmlns_xsi, MLINT xmlns_xsiBufLen,
95  char *schemaLocation, MLINT schemaBufLen);
96  ML_EXTERN ML_STORAGE_CLASS
109  MeshLinkWriterObj writeObj,
110  MeshAssociativityObj meshAssocObj,
111  const char *meshlinkFilename,
112  const char *xmlns,
113  const char *xmlns_xsi,
114  const char *schemaLocation);
115  ML_EXTERN ML_STORAGE_CLASS
125  const char *modelname, MeshModelObj *meshModel);
126 
127  ML_EXTERN ML_STORAGE_CLASS
138  const char *sheetname,
139  MeshModelObj *meshModel, MeshSheetObj *meshSheet);
140  ML_EXTERN ML_STORAGE_CLASS
151  const char *stringname,
152  MeshModelObj *meshModel, MeshStringObj *meshString);
153 
154  ML_EXTERN ML_STORAGE_CLASS
163  ML_EXTERN ML_STORAGE_CLASS
172  ML_EXTERN ML_STORAGE_CLASS
180 MLSTATUS ML_setActiveGeometryKernelByName(MeshAssociativityObj meshAssocObj, const char *kernelname);
181  ML_EXTERN ML_STORAGE_CLASS
190  MeshAssociativityObj meshAssocObj,
191  GeometryKernelObj *geomKernelObj);
192 
193  ML_EXTERN ML_STORAGE_CLASS
201  ML_EXTERN ML_STORAGE_CLASS
211  MLINT index,
212  MeshLinkFileConstObj *fileObj);
213  ML_EXTERN ML_STORAGE_CLASS
222 MLSTATUS ML_getFilename( MeshLinkFileConstObj fileObj, char *filenameBuf, MLINT filenameBufLen );
223 
224  ML_EXTERN ML_STORAGE_CLASS
234  GeometryKernelObj geomKernelObj,
235  MLREAL modelSize);
236  ML_EXTERN ML_STORAGE_CLASS
246  GeometryKernelObj geomKernelObj,
247  MLREAL *modelSize);
248  ML_EXTERN ML_STORAGE_CLASS
257  GeometryKernelObj geomKernelObj,
258  const char *geomFilename);
259  ML_EXTERN ML_STORAGE_CLASS
271  MeshLinkFileConstObj fileObj,
272  MLINT attIDs[],
273  MLINT sizeAttIDs,
274  MLINT *numAttIDs );
275  ML_EXTERN ML_STORAGE_CLASS
288  MLINT attID,
289  char *attNameBuf, MLINT attNameBufLen,
290  char *attValueBuf, MLINT attValueBufLen
291  );
292 
293  ML_EXTERN ML_STORAGE_CLASS
301  ML_EXTERN ML_STORAGE_CLASS
312  MeshTopoObj *modelObjs,
313  MLINT sizeModelObj,
314  MLINT *numModelObjs
315  );
316  ML_EXTERN ML_STORAGE_CLASS
324  );
325  ML_EXTERN ML_STORAGE_CLASS
333  );
334  ML_EXTERN ML_STORAGE_CLASS
345  MeshSheetObj *sheetObjs,
346  MLINT sizeSheetObj,
347  MLINT *numSheetObjs
348  );
349  ML_EXTERN ML_STORAGE_CLASS
359  const char *sheetname,
360  MeshSheetObj *meshSheetObj);
361  ML_EXTERN ML_STORAGE_CLASS
371  const char *stringname,
372  MeshStringObj *meshStringObj);
373 
374  ML_EXTERN ML_STORAGE_CLASS
382 );
383  ML_EXTERN ML_STORAGE_CLASS
394  MeshTopoObj *faceObjs,
395  MLINT sizeFaceObj,
396  MLINT *numFaceObjs
397 );
398  ML_EXTERN ML_STORAGE_CLASS
406 );
407  ML_EXTERN ML_STORAGE_CLASS
418  MeshTopoObj *faceEdgeObjs,
419  MLINT sizeFaceEdgeObj,
420  MLINT *numFaceEdgeObjs
421 );
422 
423  ML_EXTERN ML_STORAGE_CLASS
431 );
432  ML_EXTERN ML_STORAGE_CLASS
443  MeshTopoObj stringObjs[],
444  MLINT sizeStringObj,
445  MLINT *numStringObjs
446 );
447 
448  ML_EXTERN ML_STORAGE_CLASS
456 );
457  ML_EXTERN ML_STORAGE_CLASS
468  MeshTopoObj edgeObjs[],
469  MLINT sizeEdgeObj,
470  MLINT *numEdgeObjs
471 );
472 
473 
474  ML_EXTERN ML_STORAGE_CLASS
485  MeshAssociativityObj meshAssocObj,
486  MeshElementLinkageObj *linkageObjs,
487  MLINT sizeLinkageObj,
488  MLINT *numLinkageObjs
489 );
490  ML_EXTERN ML_STORAGE_CLASS
498  MeshAssociativityObj meshAssocObj);
499 
500  ML_EXTERN ML_STORAGE_CLASS
510  MeshAssociativityObj meshAssocObj,
511  MeshElementLinkageObj linkageObj,
512  MeshLinkTransformConstObj *xformObj
513 );
514 
515  ML_EXTERN ML_STORAGE_CLASS
533  MeshAssociativityObj meshAssocObj,
534  MeshElementLinkageObj linkageObj,
535  char *nameBuf, MLINT nameBufLen,
536  char *sourceEntityRefBuf, MLINT sourceEntityRefBufLen,
537  char *targetEntityRefBuf, MLINT targetEntityRefBufLen,
538  MLINT attIDs[],
539  MLINT sizeAttIDs,
540  MLINT *numAttIDs);
541  ML_EXTERN ML_STORAGE_CLASS
555  MeshAssociativityObj meshAssocObj,
556  MeshLinkTransformConstObj xformObj,
557  char *nameBuf, MLINT nameBufLen,
558  MLINT attIDs[],
559  MLINT sizeAttIDs,
560  MLINT *numAttIDs);
561 
562  ML_EXTERN ML_STORAGE_CLASS
571  MeshLinkTransformConstObj xformObj,
572  MLREAL quat[4][4]
573 );
574 
575  ML_EXTERN ML_STORAGE_CLASS
586  MLINT pointIndex, MeshPointObj* meshPointObj);
587  ML_EXTERN ML_STORAGE_CLASS
598  MLINT pointIndex, MeshPointObj* meshPointObj);
599  ML_EXTERN ML_STORAGE_CLASS
610  MLINT pointIndex, MeshPointObj* meshPointObj);
611  ML_EXTERN ML_STORAGE_CLASS
622  MLINT pointIndex, MeshPointObj* meshPointObj);
623  ML_EXTERN ML_STORAGE_CLASS
633  MLINT inds[], /* array of size 4 */
634  MLINT *numInds
635 );
636  ML_EXTERN ML_STORAGE_CLASS
646  MLINT inds[], /* array of size 2 */
647  MLINT *numInds
648 );
649 
650  ML_EXTERN ML_STORAGE_CLASS
662  MLINT *indices, MLINT numIndices, /* python wrapper depends on these names */
663  MeshFaceObj *meshFaceObj);
664  ML_EXTERN ML_STORAGE_CLASS
676  MLINT *indices, MLINT numIndices, /* python wrapper depends on these names */
677  MeshEdgeObj *meshEdgeObj);
678  ML_EXTERN ML_STORAGE_CLASS
690  ParamVertexConstObj pvObjsArr[], /* array of ParamVertexConstObj */
691  MLINT pvObjsArrLen, /* length of array */
692  MLINT *num_pvObjs );
693  ML_EXTERN ML_STORAGE_CLASS
706  char *vrefBuf, MLINT vrefBufLen,
707  MLINT *gref,
708  MLINT *mid,
709  MLVector2D UV);
710 
711  ML_EXTERN ML_STORAGE_CLASS
721  MeshTopoObj meshTopoObj,
722  MLINT *gref);
723  ML_EXTERN ML_STORAGE_CLASS
742  MeshAssociativityObj meshAssocObj,
743  MeshTopoObj meshTopoObj,
744  char *refBuf,
745  MLINT refBufLen,
746  char *nameBuf,
747  MLINT nameBufLen,
748  MLINT *gref,
749  MLINT *mid,
750  MLINT attIDs[],
751  MLINT sizeAttIDs,
752  MLINT *numAttIDs );
753 
754  ML_EXTERN ML_STORAGE_CLASS
773  MeshAssociativityObj meshAssocObj,
774  MeshPointObj meshPointObj,
775  char *refBuf, MLINT refBufLen,
776  char *nameBuf, MLINT nameBufLen,
777  MLINT *gref,
778  MLINT *mid,
779  MLINT attIDs[],
780  MLINT sizeAttIDs,
781  MLINT *numAttIDs,
782  ParamVertexConstObj *pvObj);
783 
784  ML_EXTERN ML_STORAGE_CLASS
805  MeshAssociativityObj meshAssocObj,
806  MeshEdgeObj meshEdgeObj,
807  char *refBuf, MLINT refBufLen,
808  char *nameBuf, MLINT nameBufLen,
809  MLINT *gref,
810  MLINT *mid,
811  MLINT attIDs[],
812  MLINT sizeAttIDs,
813  MLINT *numAttIDs,
814  ParamVertexConstObj pvObjs[],
815  MLINT sizepvObjs,
816  MLINT *numpvObjs);
817 
818  ML_EXTERN ML_STORAGE_CLASS
839  MeshAssociativityObj meshAssocObj,
840  MeshEdgeObj meshFaceObj,
841  char *refBuf, MLINT refBufLen,
842  char *nameBuf, MLINT nameBufLen,
843  MLINT *gref,
844  MLINT *mid,
845  MLINT attIDs[],
846  MLINT sizeAttIDs,
847  MLINT *numAttIDs,
848  ParamVertexConstObj pvObjs[],
849  MLINT sizepvObjs,
850  MLINT *numpvObjs);
851 
852  ML_EXTERN ML_STORAGE_CLASS
860  MeshAssociativityObj meshAssocObj);
861  ML_EXTERN ML_STORAGE_CLASS
872  MeshAssociativityObj meshAssocObj,
873  MLINT IDs[],
874  MLINT sizeIDs,
875  MLINT *numIDs);
876 
877  ML_EXTERN ML_STORAGE_CLASS
887  MeshAssociativityObj meshAssocObj,
888  MLINT gid,
889  GeometryGroupObj *geomGroupObj
890  );
891  ML_EXTERN ML_STORAGE_CLASS
903  GeometryGroupObj geomGroupObj,
904  char *entityNamesBufArr, /* array of entity name buffers */
905  MLINT entityNamesArrLen, /* length of names array */
906  MLINT entityNameBufLen, /* buffer length of a each name */
907  MLINT *num_entityNames
908  );
909 
910  ML_EXTERN ML_STORAGE_CLASS
921  GeometryKernelObj geomKernelObj,
922  MLVector2D UV,
923  const char *entityName,
924  MLVector3D XYZ);
925  ML_EXTERN ML_STORAGE_CLASS
937  GeometryKernelObj geomKernelObj,
938  MLVector2D UV,
939  const char *entityName,
940  MLREAL *minRradOfCurvature,
941  MLREAL *maxRradOfCurvature);
942 
943  ML_EXTERN ML_STORAGE_CLASS
959  GeometryKernelObj geomKernelObj,
960  MLVector2D UV, /* Evaluation parametric location on curve */
961  const char *entityName, /* Evaluation entity name */
962  MLVector3D XYZ, /* Evaluated location on curve */
963  MLVector3D Tangent, /* tangent to curve */
964  MLVector3D PrincipalNormal, /* principal normal (pointing towards the center of curvature) */
965  MLVector3D Binormal, /* binormal (tangent x principal normal) */
966  /* curvature in radians per unit length
967  * ALWAYS non-negative and in the direction of the principal normal
968  * Radius of curvature = 1 / Curvature
969  */
970  MLREAL *Curvature,
971  MLINT *Linear /* If non-zero, the curve is linear and has no unique normal */
972 );
973  ML_EXTERN ML_STORAGE_CLASS
986  GeometryKernelObj geomKernelObj,
987  MLVector2D UV, /* Evaluation parametric location on curve */
988  const char *entityName, /* Evaluation entity name */
989  MLVector3D XYZ, /* Evaluated location on curve */
990  MLVector3D dXYZdU, /* First derivative */
991  MLVector3D d2XYZdU2 /* Second derivative */
992 );
993 
994 
995  ML_EXTERN ML_STORAGE_CLASS
1018  GeometryKernelObj geomKernelObj,
1019  MLVector2D UV, /* Evaluation parametric location on surface */
1020  const char *entityName, /* Evaluation entity name */
1021 
1022  MLVector3D XYZ, /* Evaluated location on surface */
1023  MLVector3D dXYZdU, /* First partial derivative */
1024  MLVector3D dXYZdV, /* First partial derivative */
1025  MLVector3D d2XYZdU2, /* Second partial derivative */
1026  MLVector3D d2XYZdUdV, /* Second partial derivative */
1027  MLVector3D d2XYZdV2, /* Second partial derivative */
1028  MLVector3D surfaceNormal, /* Surface normal - unit vector */
1029  /* Unit vector tangent to surface where curvature = min
1030  * surfaceNormal cross principalV yields the direction where curvature = max
1031  * if the surface is locally planar (min and max are 0.0) or if the
1032  * surface is locally spherical (min and max are equal),
1033  * this will be an arbitrary vector tangent to the surface
1034  */
1035  MLVector3D principalV,
1036  /* Minimum and maximum curvature, in radians per unit length
1037  * Defined so that positive values indicate the surface bends
1038  * in the direction of surfaceNormal, and negative values indicate
1039  * the surface bends away from surfaceNormal
1040  */
1041  MLREAL *minCurvature,
1042  MLREAL *maxCurvature,
1043  /* The average or mean curvature is defined as :
1044  * avg = (min + max) / 2
1045  * The Gaussian curvature is defined as :
1046  * gauss = min * max
1047  */
1048  MLREAL *avg, /* Average curvature */
1049  MLREAL *gauss, /* Gaussian curvature */
1050  MLORIENT *orientation /* Orientation of surface in model */
1051 );
1052 
1053  ML_EXTERN ML_STORAGE_CLASS
1067  GeometryKernelObj geomKernelObj,
1068  const char *entityName, /* Evaluation surface name */
1069  MLREAL *minTolerance,
1070  MLREAL *maxTolerance
1071 );
1072 
1073  ML_EXTERN ML_STORAGE_CLASS
1084  GeometryKernelObj geomKernelObj,
1085  ProjectionDataObj *projectionDataObj
1086  );
1087  ML_EXTERN ML_STORAGE_CLASS
1094  void ML_freeProjectionDataObj(ProjectionDataObj *projectionDataObj);
1095 
1096  ML_EXTERN ML_STORAGE_CLASS
1109  GeometryKernelObj geomKernelObj,
1110  GeometryGroupObj geomGroupObj,
1111  MLVector3D point,
1112  ProjectionDataObj projectionDataObj
1113 );
1114  ML_EXTERN ML_STORAGE_CLASS
1130  GeometryKernelObj geomKernelObj,
1131  ProjectionDataObj projectionDataObj,
1132  MLVector3D xyz,
1133  MLVector2D UV,
1134  char *entityNameBuf, MLINT entityNameBufLen,
1135  MLREAL *distance,
1136  MLREAL *tolerance
1137 );
1138 
1139  ML_EXTERN ML_STORAGE_CLASS
1148  GeometryKernelObj geomKernelObj,
1149  const char *entityName
1150 );
1151  ML_EXTERN ML_STORAGE_CLASS
1160  GeometryKernelObj geomKernelObj,
1161  const char *entityName
1162 );
1163 
1164 #endif
1165 
1166 /****************************************************************************
1167  *
1168  * DISCLAIMER:
1169  * TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, POINTWISE DISCLAIMS
1170  * ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
1171  * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1172  * PURPOSE, WITH REGARD TO THIS SCRIPT. TO THE MAXIMUM EXTENT PERMITTED
1173  * BY APPLICABLE LAW, IN NO EVENT SHALL POINTWISE BE LIABLE TO ANY PARTY
1174  * FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES
1175  * WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
1176  * BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE
1177  * USE OF OR INABILITY TO USE THIS SCRIPT EVEN IF POINTWISE HAS BEEN
1178  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND REGARDLESS OF THE
1179  * FAULT OR NEGLIGENCE OF POINTWISE.
1180  *
1181  ***************************************************************************/
MeshLinkObject MeshPointObj
Opaque pointer to a MeshPoint object.
Definition: Types.h:195
MeshLinkConstObject MeshLinkTransformConstObj
Definition: Types.h:202
MLSTATUS ML_getMeshLinkTransformInfo(MeshAssociativityObj meshAssocObj, MeshLinkTransformConstObj xformObj, char *nameBuf, MLINT nameBufLen, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs)
Get info associated with a MeshLinkTransform.
MLSTATUS ML_getFaceInds(MeshFaceObj meshFaceObj, MLINT inds[], MLINT *numInds)
Return array of MeshFace point indices.
MeshLinkConstObject MeshLinkFileConstObj
Opaque pointer to a constant generic MeshLinkFile object.
Definition: Types.h:178
MLSTATUS ML_getActiveGeometryKernel(MeshAssociativityObj meshAssocObj, GeometryKernelObj *geomKernelObj)
Get MeshAssociativity active Geometry Kernel object.
MLSTATUS ML_getEntityNames(GeometryGroupObj geomGroupObj, char *entityNamesBufArr, MLINT entityNamesArrLen, MLINT entityNameBufLen, MLINT *num_entityNames)
Get array of entity names referenced by GeometryGroup.
MeshLinkObject ProjectionDataObj
Opaque pointer to a ProjectionData object.
Definition: Types.h:219
MLSTATUS ML_readGeomFile(GeometryKernelObj geomKernelObj, const char *geomFilename)
Read a GeometryFile into the GeometryKernel.
MLSTATUS ML_getStringMeshEdges(MeshSheetObj meshStringObj, MeshTopoObj edgeObjs[], MLINT sizeEdgeObj, MLINT *numEdgeObjs)
Get array of MeshEdges in the MeshString.
MLSTATUS ML_getModelMeshSheetByName(MeshModelObj meshModelObj, const char *sheetname, MeshSheetObj *meshSheetObj)
Get a MeshSheet in the MeshModel by name.
MeshLinkObject MeshModelObj
Opaque pointer to a MeshModel object.
Definition: Types.h:186
MeshLinkObject MeshTopoObj
Opaque pointer to a generic MeshTopo object.
Definition: Types.h:181
MeshLinkObject MeshStringObj
Opaque pointer to a MeshString object.
Definition: Types.h:193
MLSTATUS ML_getMeshSheetByName(MeshAssociativityObj meshAssocObj, const char *sheetname, MeshModelObj *meshModel, MeshSheetObj *meshSheet)
Get MeshSheet object by name.
MLSTATUS ML_findLowestTopoPointByInd(MeshModelObj meshModelObj, MLINT pointIndex, MeshPointObj *meshPointObj)
Find a point index's lowest topological reference. Returns first usage in the order MeshString,...
MLSTATUS ML_parserReadMeshLinkFile(MeshLinkParserObj parseObj, const char *meshlinkFilename, MeshAssociativityObj meshAssocObj)
Read a MeshLink XML file into a MeshAssociativity object.
MLSTATUS ML_getMeshElementLinkageInfo(MeshAssociativityObj meshAssocObj, MeshElementLinkageObj linkageObj, char *nameBuf, MLINT nameBufLen, char *sourceEntityRefBuf, MLINT sourceEntityRefBufLen, char *targetEntityRefBuf, MLINT targetEntityRefBufLen, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs)
Get info associated with a MeshElementLinkage.
MLSTATUS ML_getMeshStrings(MeshModelObj meshModelObj, MeshTopoObj stringObjs[], MLINT sizeStringObj, MLINT *numStringObjs)
Get array of MeshStrings in the MeshModel.
MeshLinkObject MeshFaceObj
Opaque pointer to a MeshFace object.
Definition: Types.h:199
MLSTATUS ML_getMeshTopoInfo(MeshAssociativityObj meshAssocObj, MeshTopoObj meshTopoObj, char *refBuf, MLINT refBufLen, char *nameBuf, MLINT nameBufLen, MLINT *gref, MLINT *mid, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs)
Get MeshTopo information. MeshTopo object may be a MeshPoint, MeshEdge, MeshFace object.
MLSTATUS ML_entityExists(GeometryKernelObj geomKernelObj, const char *entityName)
Determine if a geometric entity exists by name.
MLTYPE ML_getEntityType(GeometryKernelObj geomKernelObj, const char *entityName)
Get the geomtric type of an entity by name.
MLSTATUS ML_getGeometryGroupIDs(MeshAssociativityObj meshAssocObj, MLINT IDs[], MLINT sizeIDs, MLINT *numIDs)
Get array of GeometryGroup IDs in the MeshAssociativity database.
MLSTATUS ML_parserGetMeshLinkAttributes(MeshLinkParserObj parseObj, char *xmlns, MLINT xmlnsBufLen, char *xmlns_xsi, MLINT xmlns_xsiBufLen, char *schemaLocation, MLINT schemaBufLen)
Get MeshLink schema attributes.
MLSTATUS ML_checkDataSizes(size_t size_of_MLINT, size_t size_of_MLINT32, size_t size_of_MLFLOAT, size_t size_of_MLREAL)
Checks MeshLink Caller data sizes against MeshLink library.
MLSTATUS ML_removeGeometryKernel(MeshAssociativityObj meshAssocObj, GeometryKernelObj geomKernelObj)
Remove GeometryKernel object from MeshAssociativity.
MLSTATUS ML_findMeshEdgePointByInd(MeshModelObj meshModelObj, MLINT pointIndex, MeshPointObj *meshPointObj)
Find a point index reference in a MeshString's MeshEdge. Returns first occurance of index in a MeshSt...
MLSTATUS ML_findMeshFacePointByInd(MeshModelObj meshModelObj, MLINT pointIndex, MeshPointObj *meshPointObj)
Find a point index reference in a MeshSheet's MeshFace. Returns first occurance of index in a MeshShe...
MLSTATUS ML_getSheetMeshFaces(MeshSheetObj meshSheetObj, MeshTopoObj *faceObjs, MLINT sizeFaceObj, MLINT *numFaceObjs)
Get array of MeshFaces in the MeshSheet.
int MLSTATUS
Return status of most public functions.
Definition: Types.h:246
int MLORIENT
Geometry orientation with respect to container entity.
Definition: Types.h:240
MLSTATUS ML_getMeshPointInfo(MeshAssociativityObj meshAssocObj, MeshPointObj meshPointObj, char *refBuf, MLINT refBufLen, char *nameBuf, MLINT nameBufLen, MLINT *gref, MLINT *mid, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs, ParamVertexConstObj *pvObj)
Get MeshPoint information.
MLINT ML_getNumGeometryFiles(MeshAssociativityObj meshAssocObj)
Get number of geometry files referenced by the MeshAssociativity.
MLSTATUS ML_setGeomModelSize(GeometryKernelObj geomKernelObj, MLREAL modelSize)
Set the model size attribute in the GeometryKernel. Model size (extents) is used to define tolerances...
MeshLinkObject MeshEdgeObj
Opaque pointer to a MeshEdge object.
Definition: Types.h:197
MLSTATUS ML_getModelMeshStringByName(MeshModelObj meshModelObj, const char *stringname, MeshStringObj *meshStringObj)
Get a MeshString in the MeshModel by name.
MLSTATUS ML_setActiveGeometryKernelByName(MeshAssociativityObj meshAssocObj, const char *kernelname)
Set MeshAssociativity active Geometry Kernel by name.
MLSTATUS ML_getTransform(MeshAssociativityObj meshAssocObj, MeshElementLinkageObj linkageObj, MeshLinkTransformConstObj *xformObj)
Get MeshLinkTransform associated with a MeshElementLinkage.
MLSTATUS ML_getGeometryFileObj(MeshAssociativityObj meshAssocObj, MLINT index, MeshLinkFileConstObj *fileObj)
Get GeometryFile refereneced in MeshAssociativity by index.
MeshLinkObject GeometryKernelObj
Opaque pointer to a GeometryKernel object.
Definition: Types.h:167
MLSTATUS ML_createProjectionDataObj(GeometryKernelObj geomKernelObj, ProjectionDataObj *projectionDataObj)
Allocates a new GeometryKernel-specific ProjectionData Object. A ProjectionData object is used to sto...
MLINT ML_getNumParamVerts(MeshTopoObj meshTopoObj)
Get number of ParamVertex objects in the MeshTopo.
MLSTATUS ML_getMeshFaceInfo(MeshAssociativityObj meshAssocObj, MeshEdgeObj meshFaceObj, char *refBuf, MLINT refBufLen, char *nameBuf, MLINT nameBufLen, MLINT *gref, MLINT *mid, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs, ParamVertexConstObj pvObjs[], MLINT sizepvObjs, MLINT *numpvObjs)
Get MeshFace information.
MLSTATUS ML_evalSurfaceTolerance(GeometryKernelObj geomKernelObj, const char *entityName, MLREAL *minTolerance, MLREAL *maxTolerance)
Evaluate model assembly tolerances on geometric surface. If the surface name given matches a model fa...
MLSTATUS ML_findHighestTopoPointByInd(MeshModelObj meshModelObj, MLINT pointIndex, MeshPointObj *meshPointObj)
Find a point index's highest topological reference. Returns first usage in the order MeshModel,...
void ML_freeMeshAssociativityObj(MeshAssociativityObj *meshAssocObj)
Frees a MeshAssociativity Object.
MLSTATUS ML_getEdgeInds(MeshEdgeObj meshEdgeObj, MLINT inds[], MLINT *numInds)
Return array of MeshEdge point indices.
MLREAL MLVector3D[3]
3D vector of MLREAL
Definition: Types.h:154
MeshLinkObject MeshLinkWriterObj
Opaque pointer to a MeshLinkWriter object.
Definition: Types.h:171
MLSTATUS ML_evalXYZ(GeometryKernelObj geomKernelObj, MLVector2D UV, const char *entityName, MLVector3D XYZ)
Evaluate XYZ at parametric coordinates on geometric entity.
MeshLinkConstObject ParamVertexConstObj
Opaque pointer to a constant ParamVertex object.
Definition: Types.h:208
MeshLinkObject MeshAssociativityObj
Opaque pointer to a MeshAssociativity object.
Definition: Types.h:174
MLINT ML_getNumGeometryGroups(MeshAssociativityObj meshAssocObj)
Get number of GeometryGroups in the MeshAssociativity database.
MLSTATUS ML_getProjectionInfo(GeometryKernelObj geomKernelObj, ProjectionDataObj projectionDataObj, MLVector3D xyz, MLVector2D UV, char *entityNameBuf, MLINT entityNameBufLen, MLREAL *distance, MLREAL *tolerance)
Get info from closest point projection onto a GeometryGroup stored in a ProjectionData object specifi...
MeshLinkObject MeshLinkParserObj
Opaque pointer to a MeshLinkParser object.
Definition: Types.h:169
MLINT ML_getNumSheetMeshFaceEdges(MeshSheetObj meshSheetObj)
Get number of MeshFaceEdges in the MeshSheet.
MLSTATUS ML_getGeometryGroupByID(MeshAssociativityObj meshAssocObj, MLINT gid, GeometryGroupObj *geomGroupObj)
Get GeometryGroup by ID.
MLSTATUS ML_getGeomModelSize(GeometryKernelObj geomKernelObj, MLREAL *modelSize)
Get the model size attribute in the GeometryKernel. Model size is used to define tolerances related t...
MLSTATUS ML_getMeshModelByName(MeshAssociativityObj meshAssocObj, const char *modelname, MeshModelObj *meshModel)
Get MeshModel object by name.
MLSTATUS ML_addGeometryKernel(MeshAssociativityObj meshAssocObj, GeometryKernelObj geomKernelObj)
Add GeometryKernel object to MeshAssociativity.
MLSTATUS ML_evalCurvatureOnSurface(GeometryKernelObj geomKernelObj, MLVector2D UV, const char *entityName, MLVector3D XYZ, MLVector3D dXYZdU, MLVector3D dXYZdV, MLVector3D d2XYZdU2, MLVector3D d2XYZdUdV, MLVector3D d2XYZdV2, MLVector3D surfaceNormal, MLVector3D principalV, MLREAL *minCurvature, MLREAL *maxCurvature, MLREAL *avg, MLREAL *gauss, MLORIENT *orientation)
Evaluate curvature at parametric coordinate on geometric surface.
MLSTATUS ML_getSheetMeshFaceEdges(MeshSheetObj meshSheetObj, MeshTopoObj *faceEdgeObjs, MLINT sizeFaceEdgeObj, MLINT *numFaceEdgeObjs)
Get array of MeshFaceEdges in the MeshSheet.
MeshLinkObject MeshSheetObj
Opaque pointer to a MeshSheet object.
Definition: Types.h:191
MLSTATUS ML_getMeshSheets(MeshModelObj meshModelObj, MeshSheetObj *sheetObjs, MLINT sizeSheetObj, MLINT *numSheetObjs)
Get array of MeshSheets in the MeshModel.
MeshLinkObject MeshElementLinkageObj
Opaque pointer to a MeshElementLinkage object.
Definition: Types.h:204
MLSTATUS ML_projectPoint(GeometryKernelObj geomKernelObj, GeometryGroupObj geomGroupObj, MLVector3D point, ProjectionDataObj projectionDataObj)
Closest point projection onto a GeometryGroup. A ProjectionData object is used to store inverse evalu...
MLSTATUS ML_getParamVerts(MeshTopoConstObj meshTopoObj, ParamVertexConstObj pvObjsArr[], MLINT pvObjsArrLen, MLINT *num_pvObjs)
Return array of Parametric Vertices for a MeshTopo object. MeshTopo object may be any MeshTopo derive...
MLSTATUS ML_evalRadiusOfCurvature(GeometryKernelObj geomKernelObj, MLVector2D UV, const char *entityName, MLREAL *minRradOfCurvature, MLREAL *maxRradOfCurvature)
Evaluate radius of curvature at parametric coordinates on geometric entity.
void ML_freeProjectionDataObj(ProjectionDataObj *projectionDataObj)
Frees a GeometryKernel-specific ProjectionData Object.
MLSTATUS ML_getParamVertInfo(ParamVertexConstObj pvObj, char *vrefBuf, MLINT vrefBufLen, MLINT *gref, MLINT *mid, MLVector2D UV)
Get Parametric Vertex information.
MLINT ML_getNumMeshStrings(MeshModelObj meshModelObj)
Get number of MeshStrings in the MeshModel.
MLREAL MLVector2D[2]
2D vector of MLREAL
Definition: Types.h:156
MLINT ML_getNumMeshModels(MeshAssociativityObj meshAssocObj)
Get number of MeshModels in the MeshAssociativity.
double MLREAL
64-bit real
Definition: Types.h:115
MLSTATUS ML_getFilename(MeshLinkFileConstObj fileObj, char *filenameBuf, MLINT filenameBufLen)
Get file name for a generic MeshLinkFile.
MLSTATUS ML_findLowestTopoEdgeByInds(MeshModelObj meshModelObj, MLINT *indices, MLINT numIndices, MeshEdgeObj *meshEdgeObj)
Find a MeshEdge's lowest topological reference by point indices. Returns first usage in the order Mes...
MeshLinkObject GeometryGroupObj
Opaque pointer to a GeometryGroup object.
Definition: Types.h:211
MLSTATUS ML_evalDerivativesOnCurve(GeometryKernelObj geomKernelObj, MLVector2D UV, const char *entityName, MLVector3D XYZ, MLVector3D dXYZdU, MLVector3D d2XYZdU2)
Evaluate parametric derivatives on curve.
MLSTATUS ML_getFileAttIDs(MeshAssociativityObj meshAssocObj, MeshLinkFileConstObj fileObj, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs)
Get array of attribute IDs for a generic MeshLinkFile.
MLSTATUS ML_evalCurvatureOnCurve(GeometryKernelObj geomKernelObj, MLVector2D UV, const char *entityName, MLVector3D XYZ, MLVector3D Tangent, MLVector3D PrincipalNormal, MLVector3D Binormal, MLREAL *Curvature, MLINT *Linear)
Evaluate curvature at parametric coordinate on geometric curve.
MLSTATUS ML_getMeshTopoGref(MeshTopoObj meshTopoObj, MLINT *gref)
Get GeometryGroup ID for a MeshTopo object. MeshTopo object may be a MeshPoint, MeshEdge,...
MLSTATUS ML_getMeshStringByName(MeshAssociativityObj meshAssocObj, const char *stringname, MeshModelObj *meshModel, MeshStringObj *meshString)
Get MeshString object by name.
MLSTATUS ML_getMeshModels(MeshAssociativityObj meshAssocObj, MeshTopoObj *modelObjs, MLINT sizeModelObj, MLINT *numModelObjs)
Get array of MeshModels in the MeshAssociativity.
MLINT ML_getNumMeshElementLinkages(MeshAssociativityObj meshAssocObj)
Get number of MeshElementLinkages in the MeshAssociativity database.
MLSTATUS ML_getMeshElementLinkages(MeshAssociativityObj meshAssocObj, MeshElementLinkageObj *linkageObjs, MLINT sizeLinkageObj, MLINT *numLinkageObjs)
Get array of MeshElementLinkages in the MeshAssociativity database.
MLSTATUS ML_findFaceByInds(MeshModelObj meshModelObj, MLINT *indices, MLINT numIndices, MeshFaceObj *meshFaceObj)
Find a MeshFace in a MeshModel by point indices. Returns first occurance of indices in a MeshSheet's ...
int MLTYPE
Basic geometry type.
Definition: Types.h:252
MLINT ML_getNumSheetMeshFaces(MeshSheetObj meshSheetObj)
Get number of MeshFaces in the MeshSheet.
MLSTATUS ML_writerWriteMeshLinkFile(MeshLinkWriterObj writeObj, MeshAssociativityObj meshAssocObj, const char *meshlinkFilename, const char *xmlns, const char *xmlns_xsi, const char *schemaLocation)
Write MeshAssociativity data to XML file.
MLINT64 MLINT
Standard integer - value depends on IS64BIT macro.
Definition: Types.h:120
MLSTATUS ML_getAttribute(MeshAssociativityObj meshAssocObj, MLINT attID, char *attNameBuf, MLINT attNameBufLen, char *attValueBuf, MLINT attValueBufLen)
Get attribute name-value pair by ID.
MLSTATUS ML_createMeshAssociativityObj(MeshAssociativityObj *meshAssocObj)
Allocates a new MeshAssociativity Object.
MLINT ML_getNumMeshSheets(MeshModelObj meshModelObj)
Get number of MeshSheets in the MeshModel.
MLSTATUS ML_getTransformQuaternion(MeshLinkTransformConstObj xformObj, MLREAL quat[4][4])
Get the quaternion matrix associated with a MeshLinkTransform.
MLSTATUS ML_parserValidateFile(MeshLinkParserObj parseObj, const char *meshlinkFilename, const char *schemaFilename)
Validate a MeshLink XML file against the schema.
MLINT ML_getNumStringMeshEdges(MeshSheetObj meshStringObj)
Get number of MeshEdges in the MeshString.
MLSTATUS ML_getMeshEdgeInfo(MeshAssociativityObj meshAssocObj, MeshEdgeObj meshEdgeObj, char *refBuf, MLINT refBufLen, char *nameBuf, MLINT nameBufLen, MLINT *gref, MLINT *mid, MLINT attIDs[], MLINT sizeAttIDs, MLINT *numAttIDs, ParamVertexConstObj pvObjs[], MLINT sizepvObjs, MLINT *numpvObjs)
Get MeshEdge information.
MeshLinkConstObject MeshTopoConstObj
Opaque pointer to a constant generic MeshTopo object.
Definition: Types.h:183