VertexElement — Aspose.3D TypeScript API Reference
Pakiet: @aspose/3d (v24.12.0)
VertexElement jest abstrakcyjną klasą bazową dla kanałów atrybutów per-wierzchołkowych dołączonych do Geometry. Każdy kanał przechowuje typowaną tablicę danych oraz mappingMode / referenceMode metadane, które kontrolują, jak dane odnoszą się do prymitywów geometrycznych. Podklasy to: VertexElementNormal, VertexElementUV, oraz VertexElementVertexColor.
import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';ImageRenderOptions
export abstract class VertexElement implements IIndexedVertexElementImageRenderOptions
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)ImageRenderOptions mappingMode jest MappingMode.CONTROL_POINT; domyślnie referenceMode jest ReferenceMode.DIRECT.
ImageRenderOptions
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
vertexElementType | VertexElementType | odczyt | Typ semantyczny tej warstwy. |
name | string | odczyt/zapis | Opcjonalna etykieta dla tej warstwy. |
mappingMode | MappingMode | odczyt/zapis | Kontroluje, z którym prymitywem geometrii powiązana jest każda wartość. |
referenceMode | ReferenceMode | odczyt/zapis | Kontroluje, czy wartości są adresowane bezpośrednio, czy poprzez tablicę indeksów. |
indices | number[] | odczyt | Tablica indeksów dla IndexToDirect tryb referencyjny. |
ImageRenderOptions
setIndices(data)
NOT IMPLEMENTED. Na bazie VertexElement klasa, ta metoda rzuca Error('set_indices is not implemented') w czasie wykonywania. Podklasy VertexElementFVector i VertexElementIntsTemplate zapewniają działające implementacje.
Zastąp tablicę indeksów.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. W bazowej VertexElement klasa, ta metoda rzuca Error('clear is not implemented') w czasie wykonywania. Podklasy VertexElementFVector i VertexElementIntsTemplate zapewniają działające implementacje.
Usuń wszystkie dane i indeksy z warstwy.
clear(): voidVertexElementNormal
Przechowuje wektory normalne powierzchni. Dane normalne są wymagane przez większość rendererów do prawidłowego oświetlenia.
export class VertexElementNormal extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementNormal
ImageRenderOptions
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType jest ustalone na VertexElementType.NORMAL.
VertexElementUV
Przechowuje dwuwymiarowe współrzędne tekstury. Siatka może zawierać wiele warstw UV dla różnych kanałów tekstur. Ten textureMapping właściwość identyfikuje przeznaczenie kanału.
export class VertexElementUV extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementUV
ImageRenderOptions
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Domyślnie ustawione na TextureMapping.DIFFUSE gdy textureMapping jest null.
Dodatkowa właściwość
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|---|
textureMapping | TextureMapping | odczyt | Kanał tekstury, z którym powiązana jest ta warstwa UV. |
data | FVector4[] | odczyt | Wartości UV udostępnione jako FVector4 pozycje (z i w są 0). |
uvData | FVector2[] | odczyt | Wartości UV jako FVector2 wpisy (tylko x, y). |
addData(data)
Dołącz wartości UV. Akceptuje FVector2[], FVector3[], lub FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Przechowuje wartości koloru RGBA dla każdego wierzchołka. Składowe mieszczą się w przedziale 0–1.
export class VertexElementVertexColor extends VertexElementFVectorImageRenderOptions
VertexElement → VertexElementFVector → VertexElementVertexColor
ImageRenderOptions
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType jest ustalone na VertexElementType.VERTEX_COLOR.
ImageRenderOptions
Dodaj wektory normalne do siatki trójkątów:
import { Scene, Mesh, Vector4, VertexElementType, MappingMode, ReferenceMode, FVector4 } from '@aspose/3d';
const mesh = new Mesh();
mesh.controlPoints.push(new Vector4(0, 0, 0, 1));
mesh.controlPoints.push(new Vector4(1, 0, 0, 1));
mesh.controlPoints.push(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);
const normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT,
);
normals.setData([
new FVector4(0, 0, 1, 0),
new FVector4(0, 0, 1, 0),
new FVector4(0, 0, 1, 0),
]);
const scene = new Scene();
scene.rootNode.createChildNode('tri', mesh);
scene.save('triangle_normals.glb');Dodaj współrzędne UV:
import { Scene, Mesh, Vector4, TextureMapping, MappingMode, ReferenceMode, FVector2 } from '@aspose/3d';
const mesh = new Mesh();
for (const [x, z] of [[0,0],[1,0],[1,1],[0,1]]) {
mesh.controlPoints.push(new Vector4(x, 0, z, 1));
}
mesh.createPolygon(0, 1, 2, 3);
const uv = mesh.createElementUV(TextureMapping.DIFFUSE, MappingMode.CONTROL_POINT, ReferenceMode.DIRECT);
uv.addData([
new FVector2(0, 0),
new FVector2(1, 0),
new FVector2(1, 1),
new FVector2(0, 1),
]);
const scene = new Scene();
scene.rootNode.createChildNode('quad', mesh);
scene.save('quad_uv.glb');