IndexedPolyfaceSubsetVisitor Class

An IndexedPolyfaceSubsetVisitor is an IndexedPolyfaceVisitor which only visits a subset of facets in the polyface.

  • The subset is defined by an array of facet indices provided when this visitor is created.
  • Within the subset visitor, facetIndex is understood as index within the subset array:
    • moveToNextFacet moves only within the subset.
    • moveToReadIndex(i) moves underlying visitor's parentFacetIndex(i).

Extends

Methods

Name Description
moveToNextFacet(): boolean Advance the iterator to the next facet in the client polyface.  
moveToReadIndex(activeIndex: number): boolean Advance the iterator to a particular facet in the client polyface.  
parentFacetIndex(activeIndex: number): undefined | number Return the parent facet index of the indicated index within the active facets.  
reset(): void Reset the iterator to start at the first active facet in the polyface.  
createSubsetVisitor(polyface: IndexedPolyface, activeFacetIndices: number[], numWrap: number): IndexedPolyfaceSubsetVisitor Static Create a visitor for iterating a subset of the facets of polyface.  

Inherited methods

Name Inherited from Description
clearArrays(): void IndexedPolyfaceVisitor Clear the contents of all arrays.
clientAuxIndex(i: number): number IndexedPolyfaceVisitor Return the aux data index of vertex i within the currently loaded facet.
clientColorIndex(i: number): number IndexedPolyfaceVisitor Return the color index of vertex i within the currently loaded facet.
clientNormalIndex(i: number): number IndexedPolyfaceVisitor Return the normal index of vertex i within the currently loaded facet.
clientParamIndex(i: number): number IndexedPolyfaceVisitor Return the param index of vertex i within the currently loaded facet.
clientPointIndex(i: number): number IndexedPolyfaceVisitor Return the point index of vertex i within the currently loaded facet.
clientPolyface(): Polyface IndexedPolyfaceVisitor Return the client polyface object.
clone(): PolyfaceData IndexedPolyfaceVisitor Return a deep clone.
compress(tolerance: number = Geometry.smallMetricDistance): void IndexedPolyfaceVisitor Compress the instance by equating duplicate data.
copyNormalTo(i: number, dest: Vector3d): void IndexedPolyfaceVisitor Copy the contents (not pointer) of normal[i] into dest.
copyParamTo(i: number, dest: Point2d): void IndexedPolyfaceVisitor Copy the contents (not pointer) of param[i] into dest.
copyPointTo(i: number, dest: Point3d): void IndexedPolyfaceVisitor Copy the contents (not pointer) of point[i] into dest.
currentReadIndex(): number IndexedPolyfaceVisitor Return the index (in the client polyface) of the current facet.
gatherIndexedData(other: PolyfaceData, index0: number, index1: number, numWrap: number): void IndexedPolyfaceVisitor Copy data from other to this.
getColor(i: number): number IndexedPolyfaceVisitor Return indexed color at index i.
getEdgeVisible(i: number): boolean IndexedPolyfaceVisitor Return indexed visibility.
getNormal(i: number, result?: Vector3d): undefined | Vector3d IndexedPolyfaceVisitor Return indexed normal at index i.
getParam(i: number, result?: Point2d): undefined | Point2d IndexedPolyfaceVisitor Return indexed param at index i.
getPoint(i: number, result?: Point3d): undefined | Point3d IndexedPolyfaceVisitor Return indexed point at index i.
isAlmostEqual(other: PolyfaceData): boolean IndexedPolyfaceVisitor Test for equal indices and nearly equal coordinates.
isAlmostEqualParamIndexUV(i: number, u: number, v: number): boolean IndexedPolyfaceVisitor Test if param at a index i matches the given uv
pushDataFrom(other: PolyfaceVisitor, index: number): void IndexedPolyfaceVisitor 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 IndexedPolyfaceVisitor Transfer interpolated data from the other visitor.
range(result?: Range3d, transform?: Transform): Range3d IndexedPolyfaceVisitor Return the range of the point array (optionally transformed).
resizeAllArrays(length: number): void IndexedPolyfaceVisitor Resize all data and index arrays to the specified length.
resizeAllDataArrays(length: number): void IndexedPolyfaceVisitor Resize all data arrays to the specified length.
reverseIndices(facetStartIndex?: number[]): void IndexedPolyfaceVisitor Reverse the indices for the specified facets in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
reverseIndicesSingleFacet(facetIndex: number, facetStartIndex: number[]): void IndexedPolyfaceVisitor Reverse the indices for the specified facet in the index arrays (pointIndex, normalIndex, paramIndex, colorIndex,
reverseNormals(): void IndexedPolyfaceVisitor Scale all the normals by -1.
setNumWrap(numWrap: number): void IndexedPolyfaceVisitor Set the number of vertices replicated in visitor arrays (both data and index arrays).
setTaggedNumericData(data: undefined | TaggedNumericData): void IndexedPolyfaceVisitor Set the tagged geometry data.
trimAllIndexArrays(length: number): void IndexedPolyfaceVisitor Trim all index arrays to the stated length.
tryGetDistanceParameter(index: number, result?: Point2d): undefined | Point2d IndexedPolyfaceVisitor Attempts to extract the distance parameter for the given vertex index on the current facet.
tryGetNormalizedParameter(index: number, result?: Point2d): undefined | Point2d IndexedPolyfaceVisitor Attempts to extract the normalized parameter (0,1) for the given vertex index on the current facet.
tryTransformInPlace(transform: Transform): boolean IndexedPolyfaceVisitor Apply transform to point and normal arrays and to auxData.
create(polyface: IndexedPolyface, numWrap: number): IndexedPolyfaceVisitor Static IndexedPolyfaceVisitor Create a visitor for iterating the facets of polyface.
isValidFacetStartIndexArray(facetStartIndex: number[]): boolean Static IndexedPolyfaceVisitor Test if facetStartIndex is (minimally) valid.
reverseIndices<T>(facetStartIndex: number[], indices: undefined | T[], preserveStart: boolean): boolean Static IndexedPolyfaceVisitor Reverse the indices for the specified facets in the given index array.
reverseIndicesSingleFacet<T>(facetIndex: number, facetStartIndex: number[], indices: undefined | T[], preserveStart: boolean): boolean Static IndexedPolyfaceVisitor Reverse the indices for the specified facet in the specified index array.

Inherited properties

Name Type Inherited from Description
auxData undefined | PolyfaceAuxData IndexedPolyfaceVisitor Auxiliary data.
color undefined | number[] IndexedPolyfaceVisitor Color values.
colorCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the color count
colorIndex undefined | number[] IndexedPolyfaceVisitor Indices of colors at facet vertices.
edgeVisible boolean[] IndexedPolyfaceVisitor Booleans indicating visibility of corresponding edges.
expectedClosure Accessor number IndexedPolyfaceVisitor Get flag indicating if the mesh closure is unknown (0), open sheet (1), closed solid (2).
face FacetFaceData[] IndexedPolyfaceVisitor Map from facet index to face data.
faceCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the number of faces.
* Note that a "face" is not a facet.
* A face is a subset of the Polyface's facets grouped for application purposes.
indexCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the index count. Note that the point array is always indexed, and index arrays all have the same length.
normal undefined | GrowableXYZArray IndexedPolyfaceVisitor Coordinates of normal vectors (packed as numbers in a contiguous array).
normalCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the normal count
normalIndex undefined | number[] IndexedPolyfaceVisitor Indices of normals at facet vertices.
numEdgesThisFacet Accessor ReadOnly number IndexedPolyfaceVisitor Return the number of edges in the current facet.
* If numWrap > 0 for this visitor, the number of edges is smaller than the number of points.
param undefined | GrowableXYArray IndexedPolyfaceVisitor Coordinates of uv parameters (packed as numbers in a contiguous array).
paramCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the param count
paramIndex undefined | number[] IndexedPolyfaceVisitor Indices of params at facet vertices.
point GrowableXYZArray IndexedPolyfaceVisitor Coordinate data for points in the facets (packed as numbers in a contiguous array).
pointCount Accessor ReadOnly number IndexedPolyfaceVisitor Get the point count
pointIndex number[] IndexedPolyfaceVisitor Indices of points at facet vertices.
requireColors Accessor ReadOnly boolean IndexedPolyfaceVisitor Ask if colors are required in this mesh.
requireNormals Accessor ReadOnly boolean IndexedPolyfaceVisitor Ask if normals are required in this mesh.
requireParams Accessor ReadOnly boolean IndexedPolyfaceVisitor Ask if params are required in this mesh.
taggedNumericData undefined | TaggedNumericData IndexedPolyfaceVisitor Tagged geometry data.
twoSided Accessor boolean IndexedPolyfaceVisitor Get boolean tag indicating if the facets are to be considered viewable from the back.

Defined in

Last Updated: 25 April, 2024