VertexElement — Aspose.3D TypeScript API référence
Package : @aspose/3d (v24.12.0)
‘VertexElement’ est la classe de base abstraite pour les canaux attribués par vertex attachés à une ‘Geometry’. Chaque canal détient un array de données typiquement et des métadonnées ‘mappingMode` / ‘referenceModa’ qui contrôlent comment les données se rapportent aux primitives géométriques. Les sous-classifs sont: ’ VerteXElmentNormal’, ‘VertexElimentUV’ et ’ VertexElimentVertxColor’.
import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';Le Vertex (bas abstrait)
export abstract class VertexElement implements IIndexedVertexElement { }Constructeur
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Le mode de cartographie est « MappingMode.CONTROL_POINT » ; le mode par défaut « référenceMOD » est le code de références.DIRECT.
Propriétés
| Property | Type | Access | Description |
|---|---|---|---|
vertexElementType | VertexElementType | Read | Semantic type of this layer. |
name | string | Read/Write | Optional label for this layer. |
mappingMode | MappingMode | Read/Write | Controls which geometry primitive each value is associated with. |
referenceMode | ReferenceMode | Read/Write | Controls whether values are addressed directly or through an index array. |
indices | number[] | Read | Index array for IndexToDirect reference mode. |
méthodes
« Les données » (data )
NO IMPLEMENTÉ. sur la base de la classe ‘VertexElement’, cette méthode jette ‘Error(‘set_indices n’est pas mis en œuvre’)’ à l’heure d’exécution. Les sous-classes ’ VerteXElementsFVector et ' VertexElmentsIntsTemplate fournissent des implémentations de travail.
Remplacer l’index de la ligne.
setIndices(data: number[]): void« clair »
NON IMPLEMENTÉ. Sur la classe de base VertexElement, cette méthode lève Error('clear is not implemented') à l’exécution. Les sous‑classes VertexElementFVector et VertexElementIntsTemplate fournissent des implémentations fonctionnelles.
Supprimez toutes les données et les index de la couche.
clear(): voidVertexNormale
Il stocke les vecteurs normaux de surface.Les données normales sont demandées par la plupart des rénateurs pour une lumière correcte.
export class VertexElementNormal extends VertexElementFVector { }héritage
« VertexElement » → « VertexElmentFVector »
Constructeur
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)‘vertexElementType’ est fixé à ‘VertexElmentTYpe.NORMAL’.
VertexElementUV
Il stocke les coordonnées de texture 2D. Une messe peut porter plusieurs couches UV pour différents canaux de texture. La propriété ’textureMapping’ identifie le but du canal.
export class VertexElementUV extends VertexElementFVector { }héritage
« VertexElement » → « VertexElementsFVector »
Constructeur
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Défauts dans ‘TextureMapping.DIFFUSE’ lorsque ’texture Mappage’ est null.
Propriété supplémentaire
| Property | Type | Access | Description |
|---|---|---|---|
textureMapping | TextureMapping | Read | The texture channel this UV layer is associated with. |
data | FVector4[] | Read | UV values exposed as FVector4 entries (z and w are 0). |
uvData | FVector2[] | Read | UV values as FVector2 entries (x, y only). |
« AddData (dats) »
Appliquez les valeurs UV. Acceptez FVector2[], FVektor3[], oufVECT4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElevéVertexColor
Stockage par-vertex RGBA valeurs de couleur. Les composants sont dans la gamme 0-1 .
export class VertexElementVertexColor extends VertexElementFVector { }héritage
« VertexElement » → « VertexElementsFVector »
Constructeur
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)‘vertexElementType’ est fixé à ‘VertexElmentTYpe.VERTEX_COLOR’.
Exemples
Ajoutez des normes à une messe triangulaire :
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');Ajouter des coordonnées 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');Voir aussi
- Référence de la classe Mesh
- Référence des énumérations
- Référence Vector2, Vector4
- Aspose.3D - référence API d’entreprise