@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
109 lines (108 loc) • 3.55 kB
TypeScript
import type { Scene } from "../scene.js";
import type { Vector2 } from "../Maths/math.vector.js";
import { Vector3 } from "../Maths/math.vector.js";
import { Mesh } from "../Meshes/mesh.js";
import { Color4 } from "../Maths/math.color.js";
/**
* Defines the set of goldberg data used to create the polygon
*/
export type GoldbergData = {
/**
* The list of Goldberg faces colors
*/
faceColors: Color4[];
/**
* The list of Goldberg faces centers
*/
faceCenters: Vector3[];
/**
* The list of Goldberg faces Z axis
*/
faceZaxis: Vector3[];
/**
* The list of Goldberg faces Y axis
*/
faceXaxis: Vector3[];
/**
* The list of Goldberg faces X axis
*/
faceYaxis: Vector3[];
/**
* Defines the number of shared faces
*/
nbSharedFaces: number;
/**
* Defines the number of unshared faces
*/
nbUnsharedFaces: number;
/**
* Defines the total number of goldberg faces
*/
nbFaces: number;
/**
* Defines the number of goldberg faces at the pole
*/
nbFacesAtPole: number;
/**
* Defines the number of adjacent faces per goldberg faces
*/
adjacentFaces: number[][];
};
/**
* Mesh for a Goldberg Polyhedron which is made from 12 pentagonal and the rest hexagonal faces
* @see https://en.wikipedia.org/wiki/Goldberg_polyhedron
*/
export declare class GoldbergMesh extends Mesh {
/**
* Defines the specific Goldberg data used in this mesh construction.
*/
goldbergData: GoldbergData;
/**
* Gets the related Goldberg face from pole infos
* @param poleOrShared Defines the pole index or the shared face index if the fromPole parameter is passed in
* @param fromPole Defines an optional pole index to find the related info from
* @returns the goldberg face number
*/
relatedGoldbergFace(poleOrShared: number, fromPole?: number): number;
private _changeGoldbergFaceColors;
/**
* Set new goldberg face colors
* @param colorRange the new color to apply to the mesh
*/
setGoldbergFaceColors(colorRange: (number | Color4)[][]): void;
/**
* Updates new goldberg face colors
* @param colorRange the new color to apply to the mesh
*/
updateGoldbergFaceColors(colorRange: (number | Color4)[][]): void;
private _changeGoldbergFaceUVs;
/**
* set new goldberg face UVs
* @param uvRange the new UVs to apply to the mesh
*/
setGoldbergFaceUVs(uvRange: (number | Vector2)[][]): void;
/**
* Updates new goldberg face UVs
* @param uvRange the new UVs to apply to the mesh
*/
updateGoldbergFaceUVs(uvRange: (number | Vector2)[][]): void;
/**
* Places a mesh on a particular face of the goldberg polygon
* @param mesh Defines the mesh to position
* @param face Defines the face to position onto
* @param position Defines the position relative to the face we are positioning the mesh onto
*/
placeOnGoldbergFaceAt(mesh: Mesh, face: number, position: Vector3): void;
/**
* Serialize current mesh
* @param serializationObject defines the object which will receive the serialization data
*/
serialize(serializationObject: any): void;
/**
* Parses a serialized goldberg mesh
* @param parsedMesh the serialized mesh
* @param scene the scene to create the goldberg mesh in
* @returns the created goldberg mesh
*/
static Parse(parsedMesh: any, scene: Scene): GoldbergMesh;
}