PolygonMeshPrimitives.kl

Types

PolygonMesh (object)

A PolygonMesh is a geometry made of a collection of polygons connected points. Attributes values, such as UVs and normals, can be attached to the points, and these are contained in a GeometryAttributes container. The PolygonMesh supports spatial queries such as raycast by implementing the SpatialQueryable interface.

注釈

Unless stated otherwise, functions that read the mesh are threadsafe only if the mesh structure or attribute sharing layout is not modified. Functions that modify the mesh structure or the attribute sharing layout are not threadsafe.

Please refer to the following guide for an in-depth description of the mesh structure, components and attributes:

Members

GeometryAttributes attributes Container for all attributes.
String debugName Name that will be printed in descriptions.
UInt32 structureVersion Version of the geometry structure itself, excluding the GeometryAttributes content.
Boolean computeGPUBoundingVolume If positions are on the GPU: if true, the bounding volume is computed, else an infinite bbox is returned.
ThreadsafeMetaDataContainer metaData Container for holding various user data (Geometry specific), such as the BoundingBox cache data, or raycast acceleration structures and data (Octree).
PolygonMeshTopology topology  
UInt32 memType  
UInt32 attributeSharingVersion This version is automatically incremented when attribute sharing layout changes
Boolean maintainOrderedPointPolygons If this is false, pointPolygons will not be reordered. This will increase performance if the mesh only needs to hold data with no need to query the structure.
/*
** Example: PolygonMesh
*/

require Geometry;
  
operator entry() {

                                              // create a simple polygon mesh
                                              PolygonMesh mesh();
                                              
                                              // begin changes before adding polygons
                                              mesh.beginStructureChanges();
                                              
                                              // create points and set their positions
                                              Size firstPoint = mesh.createPoints(4);
                                              mesh.setPointPosition( 0, Vec3( 0, 0, 0) );
                                              mesh.setPointPosition( 1, Vec3( 1, 0, 0) );
                                              mesh.setPointPosition( 2, Vec3( 0, 0, 1) );
                                              mesh.setPointPosition( 3, Vec3( 1, 0, 1) );
                                              
                                              // create a quad
                                              mesh.addPolygon( 0, 2, 3, 1 );
                                              
                                              // end changes bracket (batch update pointPolygons order)
                                              mesh.endStructureChanges();
                                              
                                              // generate default normals
                                              mesh.recomputePointNormals();
                                              
                                              // print the resulting structure
                                              for( Size i = 0; i < mesh.polygonCount(); ++i ) {
                                                report("Polygon " + i + ":");
                                                for( Size j = 0; j < mesh.getPolygonSize(i); ++j ) {
                                                  UInt32 point = mesh.getPolygonPoint( i, j );
                                                  report( "  Point " + point 
                                                        + ": pos=" + mesh.getPointPosition(point) 
                                                        + " normal=" + mesh.getPointNormal(point) );
                                                }
                                              }
  
}

/*
** Output:

Polygon 0:
  Point 0: pos={x:+0.0,y:+0.0,z:+0.0} normal={x:+0.0,y:+1.0,z:+0.0}
  Point 2: pos={x:+0.0,y:+0.0,z:+1.0} normal={x:+0.0,y:+1.0,z:+0.0}
  Point 3: pos={x:+1.0,y:+0.0,z:+1.0} normal={x:+0.0,y:+1.0,z:+0.0}
  Point 1: pos={x:+1.0,y:+0.0,z:+0.0} normal={x:+0.0,y:+1.0,z:+0.0}

*/

Methods

  PolygonMesh ( in Boolean float64Positions )
  PolygonMesh ( in PolygonMesh other )
  PolygonMesh ( in String debugName )
  PolygonMesh ( in String debugName, in Boolean float64Positions )
  PolygonMesh ()
UInt32 addNoneOverlappingUVLayout ! ( in String attributeName, in Boolean fixedResolution, in UInt32 resolution, in Float32 pixelsPerSquare, in UInt32 maxResolution, in UInt32 margin, in Float32 smoothStrength, in UInt32 smoothIterations )
UInt32 addUniqueUVAttribute ! ( in String attributeName, in Boolean fixedResolution, in UInt32 resolution, in Float32 pixelsPerSquare, in UInt32 maxResolution )
  applyTransform ! ( in Mat44 transform )
  applyTransform ! ( in Xfo transform )
Boolean areGeometryLocationsEquivalent ? ( in GeometryLocation location0, in GeometryLocation location1 )
  clear ! ()
PolygonMesh clone ? ()
  cloneMembersTo ? ( io PolygonMesh that )
Boolean cloneUVs ? ( in String source, in String target )
  convertToCPU ! ()
  convertToGPU ! ()
  copy ! ( in Geometry src )
  copy ! ( in PolygonMesh src )
Size createPoints ! ( in Size nb )
  deleteUnusedPoints ! ()
Size elementCount ? ()
Vec3[] getAllPointPositions ? ()
LocalBoundingVolume getBoundingVolume ? ()
UInt32 getClosestEdgeToLocation ? ( in GeometryLocation location, out Scalar weight )
String getDebugName ? ()
LocalBoundingVolume getElementBoundingVolume ? ( in Size index )
  getLocationAttributeIndicesAndWeights ? ( in GeometryLocation location, out LocalL16UInt32Array attributeIndices, out LocalL16ScalarArray weights )
UInt32 getMemType ? ()
Ref<ThreadsafeMetaDataContainer> getMetaData ? ()
UInt32 getPointIterNextOffInWingInternal ? ( in DataIter pointIter, in UInt32 offset, in UInt32 nextOffset, in Size count, in DataIter borderDataIter )
Float32 getPolygonArea ? ( in Index polygon )
Size getPolygonPoint ? ( in Size polygon, in Size polygonPointIndex )
  getPolygonPointAndNeighborIndex ? ( in Size polygon, in Size polygonPointIndex, out Size point, out Size pointNeighborIndex )
Size getPolygonPointIndex ? ( in Size polygon, in Size point )
  getPolygonPoints ? ( in Size polygon, out LocalL8UInt32Array points )
  getPolygonPointsAndNeighborIndices ? ( in Size polygon, out LocalL8UInt32Array points, out LocalIndexArray polygonPointIndices )
Float32 getPolygonUVArea ? ( in Index polygon )
Float32 getPolygonUVArea ? ( in Index polygon, in String attributeName )
UInt32 getStructureVersion ? ()
UInt32 getVersion ? ()
Boolean hasFloat64Positions ? ()
  incrementPointPositionsVersion ! ()
Boolean isLocationInternalEdge ? ( in GeometryLocation location, in Index edge )
Boolean mapMaterialIDs ! ( in SInt32 newIDs<> )
Size nextPolygonPointIndex ? ( in Size polygon, in Size polygonPointIndex )
Size previousPolygonPointIndex ? ( in Size polygon, in Size polygonPointIndex )
  setAllPointPositions ! ( in Vec3 positions[] )
  setMaterialIDOnAllPolygons ! ( in SInt32 id )
ImportExportHelpers methods
  generateAttributesTriangleListAsExternalArray ? ( io UInt32 triangles<> )
  getColorAsExternalArrayForTriangle ? ( io Float32 values<> )
  getColorAttributeAsExternalArray ? ( io Float32 values<>, in String attributeName, in Size components )
Boolean getMeshExternalArrayForArnold ? ( io Xfo meshXfo, io Boolean hasuv, io UInt32 nsides<>, io UInt32 vidxs<>, io UInt32 nidxs<>, io UInt32 uvidxs<>, io Float32 nlist<>, io Float32 vlist<>, io Float32 uvlist<> )
  getNormalAsExternalArrayForTriangle ? ( io Float32 values<> )
  getNormalsAsExternalArray ? ( io Float32 values<> )
  getNormalsAsExternalArray_d ? ( io Float64 values<> )
Size getNormalsAttributeSize ? ()
  getPointsAsExternalArray ? ( io Float32 values<>, in Size components )
  getPointsAsExternalArray_d ? ( io Float64 values<>, in Size components )
  getPositionsAsExternalArrayForTriangle ? ( io Float32 values<> )
Size getPositionsAttributeSize ? ()
  getScalarAttributeAsExternalArray ? ( io Float32 values<>, in String attributeName, in Size components )
  getSkinningAttributeAsExternalArray ? ( io Float32 values<>, in String attributeName, in Size bones )
  getTopologyAsCombinedExternalArray ? ( io UInt32 indices<> )
  getTopologyAsCountsIndicesExternalArrays ? ( io UInt32 counts<>, io UInt32 indices<> )
  getTopologyCountsAndAttributeIndices ? ( out UInt32 nsides[], out UInt32 attr_idxs[] )
  getUVAsExternalArrayForTriangle ? ( io Float32 values<> )
Size getUVAttributeSize ? ()
  getUVsAsExternalArray ? ( io Float32 values<>, in Size components )
Vec2[] getUVsAsPackedArray ? ( io UInt32 polygonPackedIndices[] )
  getVec2AttributeAsExternalArray ? ( io Float32 values<>, in String attributeName, in Size components )
  getVec3AttributeAsExternalArray ? ( io Float32 values<>, in String attributeName, in Size components )
Size getVertexColorAttributeSize ? ()
  getVertexColorsAsExternalArray ? ( io Float32 values<>, in Size components )
Boolean hasUVs ? ()
Boolean hasVertexColors ? ()
  setColorAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setColorPointAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setNormalsFromExternalArray ! ( in Float32 values<> )
  setNormalsFromExternalArray_d ! ( in Float64 values<> )
  setPointsFromExternalArray ! ( in Float32 values<>, in Size components )
  setPointsFromExternalArray_d ! ( in Float64 values<>, in Size components )
  setScalarAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setScalarPointAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setSkinningAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size bones )
  setSkinningPointAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size bones )
  setTopologyFromCombinedExternalArray ! ( in UInt32 indices<> )
  setTopologyFromCountsIndicesExternalArrays ! ( in UInt32 counts<>, in UInt32 indices<> )
  setUVsFromExternalArray ! ( in Float32 values<>, in Size components )
  setVec2AttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setVec2PointAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setVec3AttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setVec3PointAttributeFromExternalArray ! ( in Float32 values<>, in String attributeName, in Size components )
  setVertexColorsFromExternalArray ! ( in Float32 values<>, in Size components )
SpatialQueryable methods
Ref<SpatialQuery> beginSpatialQuery ? ()
  endSpatialQuery ? ( in Ref<SpatialQuery> query )
GeometryLocation getClosest ? ( in Vec3 position, in Vec3 scaling, in Scalar maxUnscaledDistance )
  getLocationAttributeIndicesAndWeights ? ( in GeometryLocation location, out UInt32 attributeIndices[3], out Scalar weights[3] )
  getLocationPointsAndWeights ? ( in GeometryLocation location, out UInt32 points[3], out Scalar weights[3] )
Size getLocationPolygon ? ( in GeometryLocation location )
  getLocationPolygonPointIndicesAndWeights ? ( in GeometryLocation location, out UInt32 polygonPointIndices[3], out Scalar weights[3] )
Vec3 getNormalAtLocation ? ( in GeometryLocation location )
Vec3 getPositionAtLocation ? ( in GeometryLocation location )
Vec3_d getPositionAtLocation_d ? ( in GeometryLocation location )
  prepareForSpatialQueries ? ( in Size approximateNumberOfQueries, in GenericValueContainer options )
GeometryLocation raycast ? ( in Ray ray, in Boolean doubleSided, in Scalar coneThreshold, in Scalar maxDistance )
  removeSpatialQueryAcceleration ! ()
Attributes methods
Boolean arePointAttributesUniform ? ( in Size point )
Boolean arePointIterAttributesUniform ? ( in DataIter pointIter )
Boolean arePolygonAttributeUniformForAllCorners ? ( in Size polygon )
Ref<GeometryAttribute> getAttribute ? ( in String name )
Ref<GeometryAttribute> getAttribute ? ( in String name, in Type attributeType )
Ref<GeometryAttributes> getAttributes ? ()
Ref<GeometryAttribute> getOrCreateAttribute ! ( in String name, in Type attributeType )
Ref<ColorAttribute> getOrCreateColorAttribute ! ( in String name )
Ref<IntegerAttribute> getOrCreateIntegerAttribute ! ( in String name )
Ref<Mat33Attribute> getOrCreateMat33Attribute ! ( in String name )
Ref<Mat44Attribute> getOrCreateMat44Attribute ! ( in String name )
Ref<QuatAttribute> getOrCreateQuatAttribute ! ( in String name )
Ref<RGBAAttribute> getOrCreateRGBAAttribute ! ( in String name )
Ref<RGBAttribute> getOrCreateRGBAttribute ! ( in String name )
Ref<ScalarAttribute> getOrCreateScalarAttribute ! ( in String name )
Ref<ScalarConstantArrayAttribute> getOrCreateScalarConstantArrayAttribute ! ( in String name )
Ref<SkinningAttribute> getOrCreateSkinningAttribute ! ( in String name )
Ref<UInt16ConstantArrayAttribute> getOrCreateUInt16ConstantArrayAttribute ! ( in String name )
Ref<UInt32Attribute> getOrCreateUInt32Attribute ! ( in String name )
Ref<Vec2Attribute> getOrCreateVec2Attribute ! ( in String name )
Ref<Vec3Attribute> getOrCreateVec3Attribute ! ( in String name )
Ref<Vec3_dAttribute> getOrCreateVec3_dAttribute ! ( in String name )
Ref<Vec4Attribute> getOrCreateVec4Attribute ! ( in String name )
Size getPointAttributeIndex ? ( in Size point )
Size getPointAttributeIndex ? ( in Size point, in Size neighborPolygonIndex )
Size getPointFromAttributeIndex ? ( in Size attributeIndex )
Size getPolygonAttributeIndex ? ( in Size polygon, in Size polygonPointIndex )
  getPolygonPackedSharedAttributeValues ? ( in Ref<GeometryAttribute> meshAttribute, io GeometryAttribute outValues, io UInt32 polygonPackedIndices[] )
Boolean has ? ( in String name )
Boolean hasAttribute ? ( in String name )
Boolean isPointAttributeUniform ? ( in Size point, in Ref<GeometryAttribute> attribute )
Boolean isPolygonAttributeUniformForAllCorners ? ( in Size polygon, in Ref<GeometryAttribute> attribute )
  removeAttribute ! ( in String name )
  resetAttributeAndAvoidSharingChanges ! ( in Ref<GeometryAttribute> attribute )
  setAttributeFromPolygonPackedData ! ( in String name, in Color values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in Color values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in RGB values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in RGB values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in RGBA values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in RGBA values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in Scalar values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in Scalar values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec2 values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec2 values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec3 values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec3 values<>, in Size optionalValuesIndices[] )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec4 values<> )
  setAttributeFromPolygonPackedData ! ( in String name, in Vec4 values<>, in Size optionalValuesIndices[] )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<ColorAttribute> attribute, in Color value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Mat33Attribute> attribute, in Mat33 value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Mat44Attribute> attribute, in Mat44 value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<QuatAttribute> attribute, in Quat value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<RGBAAttribute> attribute, in RGBA value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<RGBAttribute> attribute, in RGB value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<ScalarConstantArrayAttribute> attribute, in LocalL16ScalarArray value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<UInt16ConstantArrayAttribute> attribute, in LocalL16UInt16Array value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<UInt32Attribute> attribute, in UInt32 value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Vec2Attribute> attribute, in Vec2 value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Vec3Attribute> attribute, in Vec3 value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Vec3_dAttribute> attribute, in Vec3_d value )
  setPointAttribute ! ( in Size point, in Size neighborPolygonIndex, io Ref<Vec4Attribute> attribute, in Vec4 value )
  setPointAttribute ! ( in Size point, io Ref<ColorAttribute> attribute, in Color value )
  setPointAttribute ! ( in Size point, io Ref<IntegerAttribute> attribute, in Integer value )
  setPointAttribute ! ( in Size point, io Ref<Mat33Attribute> attribute, in Mat33 value )
  setPointAttribute ! ( in Size point, io Ref<Mat44Attribute> attribute, in Mat44 value )
  setPointAttribute ! ( in Size point, io Ref<QuatAttribute> attribute, in Quat value )
  setPointAttribute ! ( in Size point, io Ref<RGBAAttribute> attribute, in RGBA value )
  setPointAttribute ! ( in Size point, io Ref<RGBAttribute> attribute, in RGB value )
  setPointAttribute ! ( in Size point, io Ref<ScalarAttribute> attribute, in Scalar value )
  setPointAttribute ! ( in Size point, io Ref<ScalarConstantArrayAttribute> attribute, in LocalL16ScalarArray value )
  setPointAttribute ! ( in Size point, io Ref<SkinningAttribute> attribute, in LocalL16UInt32Array indices, in LocalL16ScalarArray weights )
  setPointAttribute ! ( in Size point, io Ref<UInt16ConstantArrayAttribute> attribute, in LocalL16UInt16Array value )
  setPointAttribute ! ( in Size point, io Ref<UInt32Attribute> attribute, in UInt32 value )
  setPointAttribute ! ( in Size point, io Ref<Vec2Attribute> attribute, in Vec2 value )
  setPointAttribute ! ( in Size point, io Ref<Vec3Attribute> attribute, in Vec3 value )
  setPointAttribute ! ( in Size point, io Ref<Vec3_dAttribute> attribute, in Vec3_d value )
  setPointAttribute ! ( in Size point, io Ref<Vec4Attribute> attribute, in Vec4 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<ColorAttribute> attribute, in Color value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<IntegerAttribute> attribute, in Integer value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Mat33Attribute> attribute, in Mat33 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Mat44Attribute> attribute, in Mat44 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<QuatAttribute> attribute, in Quat value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<RGBAAttribute> attribute, in RGBA value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<RGBAttribute> attribute, in RGB value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<ScalarAttribute> attribute, in Scalar value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<ScalarConstantArrayAttribute> attribute, in LocalL16ScalarArray value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<SkinningAttribute> attribute, in LocalL16UInt32Array indices, in LocalL16ScalarArray weights )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<UInt16ConstantArrayAttribute> attribute, in LocalL16UInt16Array value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<UInt32Attribute> attribute, in UInt32 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Vec2Attribute> attribute, in Vec2 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Vec3Attribute> attribute, in Vec3 value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Vec3_dAttribute> attribute, in Vec3_d value )
  setPolygonAttribute ! ( in Size polygon, in Size polygonPointIndex, io Ref<Vec4Attribute> attribute, in Vec4 value )
Debugging methods
  _validate ! ()
String getDesc ? ( in Boolean withAttributes )
String getDesc ? ( in Boolean withAttributes, in Boolean useUnitTestPrint )
Edge methods
Size getEdgeFirstPoint ? ( in PolygonMeshEdge edge )
PolygonMeshEdge getEdgeFromPoints ? ( in Size point1, in Size point2 )
Size getEdgeLeftPolygon ? ( in PolygonMeshEdge edge )
Size getEdgeRightPolygon ? ( in PolygonMeshEdge edge )
Size getEdgeSecondPoint ? ( in PolygonMeshEdge edge )
PolygonMeshEdge getPointEdge ? ( in Size point, in Size pointEdgeIndex )
Size getPointEdgeCount ? ( in Size point )
PolygonMeshEdge getPolygonEdge ? ( in Size polygon, in Size polygonPointIndex )
Modeling methods
Size _addPolygon ! ( in LocalL8UInt32Array points, in Boolean updateStructure )
  addExtrusion ! ( in Xfo xfos[], in Vec3 profile[] )
  addExtrusion ! ( in Xfo xfos[], in Vec3 profile[], in Boolean close )
Size addPolygon ! ( in LocalL8UInt32Array points )
Size addPolygon ! ( in Size ptIdx1, in Size ptIdx2, in Size ptIdx3 )
Size addPolygon ! ( in Size ptIdx1, in Size ptIdx2, in Size ptIdx3, in Size ptIdx4 )
Size addPolygonAndUpdateStructure ! ( in LocalL8UInt32Array points )
Size addPolygonAndUpdateStructure ! ( in Size ptIdx1, in Size ptIdx2, in Size ptIdx3 )
Size addPolygonAndUpdateStructure ! ( in Size ptIdx1, in Size ptIdx2, in Size ptIdx3, in Size ptIdx4 )
  addPolygons ! ( in Size polygonSizes<>, in Size packedPolygonPointIndices<> )
  addRevolution ! ( in Xfo xfo, in Vec3 profile[], in Vec3 center, in Vec3 axis, in Size detail )
  addRevolution ! ( in Xfo xfo, in Vec3 profile[], in Vec3 center, in Vec3 axis, in Size detail, in Vec2 range, in Boolean close )
  addShell ! ( in Scalar thickness )
  beginStructureChanges ! ()
  deletePolygon ! ( in Size polygonIndex, in Boolean deleteUnusedPoints, in Boolean reorderPoints )
  endStructureChanges ! ()
  extrudeLines ! ( in Lines lines, in UInt32 subdiv, in Scalar thickness, in Vec3 upvector, out Xfo transforms[] )
  invertPolygon ! ( in Size polygonIndex )
  invertPolygons ! ()
Boolean isPointDeleted ? ( in Size point )
Boolean isPolygonDeleted ? ( in Size polygon )
  linearSubdividePolygons ! ( in Size polygons[], io Size firstEdgePoint, io Size firstCenterPoint )
  mergeMesh ! ( in Ref<PolygonMesh> source )
  mergeMeshClones ! ( in Ref<PolygonMesh> source, in Xfo transformXfos[], in Boolean transformNormals )
  mergeMeshes ! ( in PolygonMesh sources[], in Xfo transformXfos[], in Boolean transformNormals )
  mergeMeshes ! ( in PolygonMesh sources[], in Xfo transformXfos[], in Boolean transformNormals, in Boolean setupMaterialIDs )
  mergeMeshes ! ( in PolygonMesh sources[], io Size firstPoints[], io Size firstPolygons[] )
  mergePoints ! ( in Size firstPointToDelete, in Size secondPoint, in Scalar attributeFirstToSecondRatio, in Boolean deleteOtherUnusedPoints, in Boolean reorderPoints )
  splitEdge ! ( in PolygonMeshEdge edge, in Scalar attributeSplitRatio, out Size newPointIndex, out PolygonMeshEdge newEdge )
Size splitEdge ! ( in Size polygon, in Size polygonPointIndex, in Scalar attributeSplitRatio )
PolygonMesh[] splitMeshIntoChunks ? ( in UInt32 chunkSizeLimit )
  splitPolygon ! ( in Size polygon, in Size polygonPointIndex1, in Size polygonPointIndex2, out Size newPolygon, out Size newPolygonEdgeStartPointIndex )
  splitPolygon ! ( in Size polygonIndex, in Size point1, in Size point2, out Size newPolygonIndex, out PolygonMeshEdge newEdge )
  updatePointPolygonOrder ! ( in Size point )
  updatePointsPolygonOrder ! ()
Normals methods
Vec3 generatePolygonNormal ? ( in Size polygon )
Ref<Vec3Attribute> getNormals ? ()
Ref<Vec3Attribute> getOrCreateNormals ! ()
Vec3 getPointNormal ? ( in Size point )
Vec3 getPointNormal ? ( in Size point, in Size neighborPolygonIndex )
Vec3 getPolygonPointNormal ? ( in Size polygon, in Size polygonPointIndex )
  incrementNormalsVersion ! ()
  recomputePointNormals ! ( in Scalar hardAngleRadians )
  recomputePointNormals ! ()
  recomputePointNormalsIfRequired ! ( in Scalar hardAngleRadians )
  recomputePointNormalsIfRequired ! ()
  setPointNormal ! ( in Size point, in Size neighborPolygonIndex, in Vec3 normal )
  setPointNormal ! ( in Size point, in Vec3 normal )
  setPolygonPointNormal ! ( in Size polygon, in Size polygonPointIndex, in Vec3 normal )
Point methods
  getPointBorderInfo ? ( in Size point, in Size neighborPolygonIndex, out Boolean precededByBorder, out Boolean atClosedWingStart )
Size getPointNextNeighborPolygonIndexInWing ? ( in Size point, in Size neighborPolygonIndex )
Size getPointPolygon ? ( in Size point, in Size neighborPolygonIndex )
  getPointPolygonAndIndex ? ( in Size point, in Size neighborPolygonIndex, out Size polygon, out Size polygonPointIndex )
Size getPointPolygonCount ? ( in Size point )
  getPointPolygonFullBorderInfo ? ( in Size point, in Size neighborPolygonIndex, out Size wingPolygonPointIndexBegin, out Size wingPolygonPointIndexEnd, out Boolean isClosedWing )
  getPointPolygons ? ( in Size point, out LocalL8UInt32Array polygons )
  getPointPolygonsAndIndices ? ( in Size point, out LocalL8UInt32Array polygons, out LocalL8UInt32Array polygonPointIndices )
  getPointPolygonsBorderInfo ! ( in Size point, out LocalL8UInt32Array neighborPolygonsInfo )
Vec3 getPointPosition ? ( in Size point )
Vec3_d getPointPosition_d ? ( in Size point )
Size getPointPrevNeighborPolygonIndexInWing ? ( in Size point, in Size neighborPolygonIndex )
  getPointSurroundingPoints ? ( in Size point, in Boolean includeAllPolygonPoints, out LocalL16UInt32Array surroundingPoints )
Size pointCount ? ()
  setPointPosition ! ( in Size point, in Vec3 value )
  setPointPosition ! ( in Size point, in Vec3_d value )
Polygon methods
LocalBoundingVolume computePolygonBBox ? ( in Size polygon )
Size getPolygonAdjacentPolygon ? ( in Size polygon, in Size polygonPointIndex )
  getPolygonAdjacentPolygonAndIndex ? ( in Size polygon, in Size polygonPointIndex, io Size adjacentPolygon, io Size adjacentPolygonPointIndex )
Size getPolygonSize ? ( in Size polygon )
Boolean isPolygonBorder ? ( in Size polygon, in Size polygonPointIndex )
Size polygonCount ? ()
Size polygonPointsCount ? ()
Primitives methods
  addCone ! ( in Xfo xfo, in Scalar radius, in Scalar height, in Boolean cap, in Size detail )
  addCone ! ( in Xfo xfo, in Scalar radius, in Scalar height, in Boolean cap, in Size detail, in Boolean setNormals, in Boolean setUVs )
  addCube ! ( in Xfo xfo, in Scalar x, in Scalar y, in Scalar z )
  addCuboid ! ( in Xfo xfo, in Scalar x, in Scalar y, in Scalar z )
  addCuboid ! ( in Xfo xfo, in Scalar x, in Scalar y, in Scalar z, in Boolean setNormals, in Boolean setUVs )
  addCylinder ! ( in Xfo xfo, in Scalar radius, in Scalar height, in Boolean caps, in Integer sides, in Integer loops )
  addCylinder ! ( in Xfo xfo, in Scalar radius, in Scalar height, in Boolean caps, in Integer sides, in Integer loops, in Boolean setNormals, in Boolean setUVs )
  addDisc ! ( in Xfo xfo, in Scalar radius, in Scalar arcAngle, in Size detail, in Boolean setNormals, in Boolean setUVs )
  addPlane ! ( in Xfo xfo, in Scalar length, in Scalar width, in Size lengthSections, in Size widthSections )
  addPlane ! ( in Xfo xfo, in Scalar length, in Scalar width, in Size lengthSections, in Size widthSections, in Boolean setNormals, in Boolean setUVs )
  addSphere ! ( in Xfo xfo, in Scalar radius, in Size detail )
  addSphere ! ( in Xfo xfo, in Scalar radius, in UInt32 detail, in Boolean setNormals, in Boolean setUVs )
  addSphere ! ( in Xfo xfo, in Scalar radius, in UInt32 loops, in UInt32 sides, in Boolean setNormals, in Boolean setUVs )
  addTeapot ! ( in Xfo xfo, in Scalar size, in Integer detail )
  addTorus ! ( in Xfo xfo, in Scalar innerRadius, in Scalar outerRadius, in Size detail )
  addTorus ! ( in Xfo xfo, in Scalar innerRadius, in Scalar outerRadius, in Size detail, in Boolean setNormals, in Boolean setUVs )
  drawBone ! ( in Xfo xfo, in Scalar length, in Scalar radius, in Boolean setNormals )
Tangents methods
  recomputeTangents ! ()
  recomputeTangentsIfRequired ! ()
Triangles methods
UInt32[] generateAttributesTriangleList ? ()
UInt32[] generateTriangleList ? ()
Size getPolygonSubTriangleCount ? ( in Size polygon )
UInt32[3] getPolygonSubTrianglePolygonPoints ? ( in Size polygon, in Size subTriangleIndex )
Size triangleCount ? ()