PolyfaceVisitor Interface
A PolyfaceVisitor manages data while walking through facets.
- The polyface visitor holds data for one facet at a time.
- The caller can request the position in the addressed facets as a "readIndex."
- The readIndex value (as a number) is not promised to be sequential. (I.e. it might be a simple facet count or might be
Extends
Implemented by
Methods
Name | Description | |
---|---|---|
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 | |
currentReadIndex(): number | Return the readIndex of the currently loaded facet | |
moveToNextFacet(): boolean | Load data for the next facet. | |
moveToReadIndex(index: number): boolean | Load data for the facet with given index. | |
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 to initial state for reading all facets sequentially with moveToNextFacet | |
setNumWrap(numWrap: number): void | Set the number of vertices to replicate in visitor arrays. |
Inherited methods
Name | Inherited from | Description |
---|---|---|
constructor(needNormals: boolean = false, needParams: boolean = false, needColors: boolean = false, twoSided: boolean = false): PolyfaceVisitor | PolyfaceData | Constructor for facets. |
clone(): PolyfaceData | PolyfaceData | Return a depp clone. |
compress(): void | PolyfaceData | * Search for duplication of coordinates within points, normals, and params. |
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): Vector3d | undefined | PolyfaceData | return indexed normal. |
getParam(i: number): Point2d | undefined | PolyfaceData | return indexed param. |
getPoint(i: number): Point3d | undefined | 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 |
trimAllIndexArrays(length: number): void | PolyfaceData | Trim all index arrays to stated length. |
tryTransformInPlace(transform: Transform): boolean | PolyfaceData | Apply transform to point and normal arrays. |
isValidFacetStartIndexArray(facetStartIndex: number[]): boolean Static | PolyfaceData | Test if facetStartIndex is (minimally!) valid: length must be nonzero (recall that for "no facets" the facetStartIndexArray still must contain a 0) Each entry must be strictly smaller than the one that follows. |
reverseIndices<T>(facetStartIndex: number[], indices: T[] | undefined, preserveStart: boolean): boolean Static | PolyfaceData | Reverse data in entire facet indexing arrays. |
reverseIndicesSingleFacet<T>(facetId: number, facetStartIndex: number[], indices: T[] | undefined, preserveStart: boolean): boolean Static | PolyfaceData | Reverse data in entire facet indexing arrays. |
Inherited properties
Name | Type | Inherited from | Description |
---|---|---|---|
auxData | PolyfaceAuxData | undefined | PolyfaceData | Auxiliary data |
color | number[] | undefined | PolyfaceData | Color values. |
colorIndex | number[] | undefined | PolyfaceData | Indices of colors at facet vertices. |
edgeVisible | boolean[] | PolyfaceData | booleans indicating visibility of corresponding edges |
face | FacetFaceData[] | PolyfaceData | Face data will remain empty until a face is specified. |
normal | GrowableXYZArray | undefined | PolyfaceData | Coordinates of normal vectors, packed as numbers in a contiguous array |
normalIndex | number[] | undefined | PolyfaceData | indices of normals at facet vertices. |
param | undefined | GrowableXYArray | PolyfaceData | Coordinates of uv parameters, packed as numbers in a contiguous array. |
paramIndex | number[] | undefined | PolyfaceData | Indics of params at facet vertices. |
point | GrowableXYZArray | PolyfaceData | Coordinate data for points in the facets, packed as numbers in a contiguous array. |
pointIndex | number[] | PolyfaceData | Indices of points at facet vertices. |
colorCount Accessor ReadOnly | number | PolyfaceData | Get the color count |
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 |
normalCount Accessor ReadOnly | number | PolyfaceData | Get the normal count |
paramCount Accessor ReadOnly | number | PolyfaceData | Get the param count |
pointCount Accessor ReadOnly | number | PolyfaceData | Get the point count |
requireNormals Accessor ReadOnly | boolean | PolyfaceData | Ask if normals are required in this mesh. |
twoSided Accessor | boolean | PolyfaceData | boolean tag indicating if the facets are viewable from the back |
Defined in
Last Updated: 08 January, 2020