IndexedPolyfaceVisitor Class

An IndexedPolyfaceVisitor is an iterator-like object that "visits" facets of a mesh.

  • The visitor extends a PolyfaceData class, so it can at any time hold all the data of a single facet.

Extends

Extended by

Implements

Methods

Name Description
constructor(facets: IndexedPolyface, numWrap: number): IndexedPolyfaceVisitor Protected Constructor for facets.  
clearArrays(): void clear the contents of all arrays.  
clientAuxIndex(i: number): number Return the aux data index of vertex i within the currently loaded facet  
clientColorIndex(i: number): number Return the color index of vertex i within the currently loaded facet  
clientNormalIndex(i: number): number Return the normal index of vertex i within the currently loaded facet  
clientParamIndex(i: number): number Return the param index of vertex i within the currently loaded facet  
clientPointIndex(i: number): number Return the point index of vertex i within the currently loaded facet  
clientPolyface(): Polyface Return the client polyface object.  
currentReadIndex(): number Return the index (in the client polyface) of the current facet  
moveToNextFacet(): boolean Advance the iterator to a the 'next' facet in the client polyface  
moveToReadIndex(facetIndex: number): boolean Advance the iterator to a particular facet in the client polyface  
pushDataFrom(other: PolyfaceVisitor, index: number): void transfer data from a specified index of the other visitor as new data in this visitor.  
pushInterpolatedDataFrom(other: PolyfaceVisitor, index0: number, fraction: number, index1: number): void transfer interpolated data from the other visitor.  
reset(): void Reset the iterator to start at the first facet of the polyface.  
setNumWrap(numWrap: number): void Set the number of vertices duplicated (e.g.  
tryGetDistanceParameter(index: number, result?: Point2d): undefined | Point2d Attempts to extract the distance parameter for the given vertex index on the current facet  
tryGetNormalizedParameter(index: number, result?: Point2d): undefined | Point2d Attempts to extract the normalized parameter (0,1) for the given vertex index on the current facet.  
create(polyface: IndexedPolyface, numWrap: number): IndexedPolyfaceVisitor Static Create a visitor for iterating the facets of polyface, with indicated number of points to be added to each facet to produce closed point arrays  

Inherited methods

Name Inherited from Description
clone(): PolyfaceData PolyfaceData Return a depp clone.
compress(): void PolyfaceData * Search for duplicates within points, normals, params, and colors.
copyNormalTo(i: number, dest: Vector3d): void PolyfaceData Copy the contents (not pointer) of normal[i] into dest.
copyParamTo(i: number, dest: Point2d): void PolyfaceData Copy the contents (not pointer) of param[i] into dest.
copyPointTo(i: number, dest: Point3d): void PolyfaceData Copy the contents (not pointer) of point[i] into dest.
gatherIndexedData(other: PolyfaceData, index0: number, index1: number, numWrap: number): void PolyfaceData * Copy data from other to this.
getColor(i: number): number PolyfaceData return indexed color
getEdgeVisible(i: number): boolean PolyfaceData return indexed visibility
getNormal(i: number): undefined | Vector3d PolyfaceData return indexed normal.
getParam(i: number): undefined | Point2d PolyfaceData return indexed param.
getPoint(i: number, out?: Point3d): undefined | Point3d PolyfaceData return indexed point.
isAlmostEqual(other: PolyfaceData): boolean PolyfaceData Test for equal indices and nearly equal coordinates
isAlmostEqualParamIndexUV(index: number, u: number, v: number): boolean PolyfaceData test if normal at a specified index matches uv
range(result?: Range3d, transform?: Transform): Range3d PolyfaceData Return the range of the point array (optionally transformed)
resizeAllDataArrays(length: number): void PolyfaceData Resize all data arrays to specified length
reverseIndices(facetStartIndex?: number[]): void PolyfaceData reverse indices facet-by-facet, with the given facetStartIndex array delimiting faces.
reverseIndicesSingleFacet(facetId: number, facetStartIndex: number[]): void PolyfaceData reverse indices facet-by-facet, with the given facetStartIndex array delimiting faces.
reverseNormals(): void PolyfaceData Scale all the normals by -1
setTaggedNumericData(data: undefined | TaggedNumericData): void PolyfaceData set the taggedNumericData member
trimAllIndexArrays(length: number): void PolyfaceData Trim all index arrays to stated length.
tryTransformInPlace(transform: Transform): boolean PolyfaceData Apply transform to point and normal arrays and to auxData.
isValidFacetStartIndexArray(facetStartIndex: number[]): boolean Static PolyfaceData Test if facetStartIndex is (minimally!) valid:
reverseIndices<T>(facetStartIndex: number[], indices: undefined | T[], preserveStart: boolean): boolean Static PolyfaceData Reverse data in entire facet indexing arrays.
reverseIndicesSingleFacet<T>(facetId: number, facetStartIndex: number[], indices: undefined | T[], preserveStart: boolean): boolean Static PolyfaceData Reverse data in entire facet indexing arrays.

Properties

Name Type Description
numEdgesThisFacet Accessor ReadOnly number Return the number of edges in the current facet.  

Inherited properties

Name Type Inherited from Description
auxData undefined | PolyfaceAuxData PolyfaceData Auxiliary data
color undefined | number[] PolyfaceData Color values.
colorCount Accessor ReadOnly number PolyfaceData Get the color count
colorIndex undefined | number[] PolyfaceData Indices of colors at facet vertices.
edgeVisible boolean[] PolyfaceData booleans indicating visibility of corresponding edges
expectedClosure Accessor number PolyfaceData boolean tag indicating if the facets are viewable from the back
face FacetFaceData[] PolyfaceData Face data will remain empty until a face is specified.
faceCount Accessor ReadOnly number PolyfaceData Get the number of faces.
* Note that a "face" is not a facet.
* A "face" is a subset of facets grouped for application purposes.
indexCount Accessor ReadOnly number PolyfaceData Get the index count. Note that there is one count, and all index arrays (point, normal, param, color) must match
normal undefined | GrowableXYZArray PolyfaceData Coordinates of normal vectors, packed as numbers in a contiguous array
normalCount Accessor ReadOnly number PolyfaceData Get the normal count
normalIndex undefined | number[] PolyfaceData indices of normals at facet vertices.
param undefined | GrowableXYArray PolyfaceData Coordinates of uv parameters, packed as numbers in a contiguous array.
paramCount Accessor ReadOnly number PolyfaceData Get the param count
paramIndex undefined | number[] PolyfaceData Indices of params at facet vertices.
point GrowableXYZArray PolyfaceData Coordinate data for points in the facets, packed as numbers in a contiguous array.
pointCount Accessor ReadOnly number PolyfaceData Get the point count
pointIndex number[] PolyfaceData Indices of points at facet vertices.
requireNormals Accessor ReadOnly boolean PolyfaceData Ask if normals are required in this mesh.
taggedNumericData undefined | TaggedNumericData PolyfaceData Tagged geometry data
twoSided Accessor boolean PolyfaceData boolean tag indicating if the facets are viewable from the back

Defined in

Last Updated: 20 June, 2023