API Reference > geometry-core > Polyface > IndexedPolyface IndexedPolyface Class An IndexedPolyface is a set of facets which can have normal, param, and color arrays with independent point, normal, param, and color indices. Extends Polyface Methods Name Description constructor(data: PolyfaceData, facetStart?: number[], facetToFaceData?: number[]): IndexedPolyface Protected Constructor for a new polyface. addColor(color: number): number Add a color addColorIndex(index: number): void Add a color index addIndexedPolyface(source: IndexedPolyface, reversed: boolean, transform: undefined | Transform): void * Add facets from source to this polyface. addNormal(normal: Vector3d, priorIndexA?: number, priorIndexB?: number): number Add a normal vector addNormalIndex(index: number): void Add a normal index addNormalXYZ(x: number, y: number, z: number): number Add a normal vector given by direct coordinates addParam(param: Point2d): number Add a uv param. addParamIndex(index: number): void Add a param index addParamUV(u: number, v: number, priorIndexA?: number, priorIndexB?: number): number Add a uv parameter to the parameter array. addPoint(point: Point3d, priorIndex?: number): number add (a clone of ) a point. addPointIndex(index: number, visible: boolean = true): void Add a point index with edge visibility flag. addPointXYZ(x: number, y: number, z: number): number add a point. cleanupOpenFacet(): void clean up the open facet. clone(): IndexedPolyface Return a deep clone. cloneTransformed(transform: Transform): IndexedPolyface Return a deep clone with transformed points and normals createVisitor(numWrap: number = 0): PolyfaceVisitor create a visitor for this polyface dispatchToGeometryHandler(handler: GeometryHandler): any Second step of double dispatch: call handler.handleIndexedPolyface(this) extendRange(range: Range3d, transform?: Transform): void Extend range with coordinates from this mesh facetIndex0(index: number): number ASSUME valid facet index . facetIndex1(index: number): number ASSUME valid facet index . getFaceDataByFacetIndex(facetIndex: number): FacetFaceData Given the index of a facet, return the data pertaining to the face it is a part of. isAlmostEqual(other: any): boolean Tests for equivalence between two IndexedPolyfaces. isSameGeometryClass(other: any): boolean Test if other is an instance of IndexedPolyface isValidFacetIndex(index: number): boolean test if index is a valid facet index. numEdgeInFacet(facetIndex: number): number Return the number of edges in a particular facet. range(transform?: Transform, result?: Range3d): Range3d Return the range of (optionally transformed) points in this mesh. reverseIndices(): void Reverse the order of indices around all facets. reverseNormals(): void Reverse the direction of all normal vectors. reverseSingleFacet(facetId: number): void Reverse indices for a single facet. setNewFaceData(endFacetIndex: number = 0): boolean All terminated facets since the last face declaration will be mapped to a single new FacetFaceData object terminateFacet(validateAllIndices: boolean = true): any announce the end of construction of a facet. tryGetFaceData(i: number): undefined | FacetFaceData return face data using a facet index. tryTransformInPlace(transform: Transform): boolean * apply the transform to points create(needNormals: boolean = false, needParams: boolean = false, needColors: boolean = false, twoSided: boolean = false): IndexedPolyface Static Create an empty facet set, with coordinate and index data to be supplied later. Inherited methods Name Inherited from Description tryTranslateInPlace(dx: number, dy: number = 0.0, dz: number = 0.0): boolean Polyface try to move the geometry by dx,dy,dz areAlmostEqual(a: undefined | GeometryQuery, b: undefined | GeometryQuery): boolean Static Polyface apply instance method isAlmostEqual if both are defined. areIndicesValid(indices: undefined | number[], indexPositionA: number, indexPositionB: number, data: any, dataLength: number): boolean Static Polyface Check validity of indices into a data array. Properties Name Type Description _facetStart Protected number[] * index to the index array entries for a specific facet. _facetToFaceData Protected number[] * For facet i, _facetToFaceData[i] is the index of the faceData entry for the facet. colorCount Accessor ReadOnly number (read-only property) number of colors faceCount Accessor ReadOnly number (read-only property) number of faces facetCount Accessor ReadOnly number (read-only property) number of facets isEmpty Accessor ReadOnly boolean Returns true if either the point array or the point index array is empty. normalCount Accessor ReadOnly number (read-only property) number of normals paramCount Accessor ReadOnly number (read-only property) number of parameters pointCount Accessor ReadOnly number (read-only property) number of points zeroTerminatedIndexCount Accessor ReadOnly number Return the total number of param indices in zero-terminated style, which includes Inherited properties Name Type Inherited from Description children Accessor ReadOnly undefined | GeometryQuery[] Polyface return GeometryQuery children for recursive queries.* leaf classes do not need to implement. data PolyfaceData Polyface Underlying polyface data. expectedClosure Accessor number Polyface Flag indicating if the mesh closure is unknown (0), open sheet (1), closed (2) geometryCategory Readonly "polyface" Polyface String name for schema properties twoSided Accessor boolean Polyface Flag indicating if the mesh display must assume both sides are visible. Defined in polyface/Polyface.ts Line 88 Last Updated: 12 June, 2024