Spaces:
Running
Running
| import { Vector3 } from './../math/Vector3'; | |
| import { Color } from './../math/Color'; | |
| import { Face3, Event } from './Face3'; | |
| import { Vector2 } from './../math/Vector2'; | |
| import { Vector4 } from './../math/Vector4'; | |
| import { Box3 } from './../math/Box3'; | |
| import { Sphere } from './../math/Sphere'; | |
| import { Matrix4 } from './../math/Matrix4'; | |
| import { BufferGeometry } from './BufferGeometry'; | |
| import { Matrix } from './../math/Matrix3'; | |
| import { Mesh } from './../objects/Mesh'; | |
| import { Bone } from './../objects/Bone'; | |
| import { AnimationClip } from './../animation/AnimationClip'; | |
| import { EventDispatcher } from './EventDispatcher'; | |
| /** | |
| * @deprecated Use {@link Face3} instead. | |
| */ | |
| export interface MorphTarget { | |
| name: string; | |
| vertices: Vector3[]; | |
| } | |
| export interface MorphColor { | |
| name: string; | |
| colors: Color[]; | |
| } | |
| export interface MorphNormals { | |
| name: string; | |
| normals: Vector3[]; | |
| } | |
| export let GeometryIdCount: number; | |
| /** | |
| * Base class for geometries | |
| * | |
| * # Example | |
| * var geometry = new THREE.Geometry(); | |
| * geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ) ); | |
| * geometry.vertices.push( new THREE.Vector3( -10, -10, 0 ) ); | |
| * geometry.vertices.push( new THREE.Vector3( 10, -10, 0 ) ); | |
| * geometry.faces.push( new THREE.Face3( 0, 1, 2 ) ); | |
| * geometry.computeBoundingSphere(); | |
| * | |
| * @see https://github.com/mrdoob/three.js/blob/master/src/core/Geometry.js | |
| */ | |
| export class Geometry extends EventDispatcher { | |
| constructor(); | |
| /** | |
| * Unique number of this geometry instance | |
| */ | |
| id: number; | |
| uuid: string; | |
| /** | |
| * Name for this geometry. Default is an empty string. | |
| */ | |
| name: string; | |
| type: string; | |
| /** | |
| * The array of vertices hold every position of points of the model. | |
| * To signal an update in this array, Geometry.verticesNeedUpdate needs to be set to true. | |
| */ | |
| vertices: Vector3[]; | |
| /** | |
| * Array of vertex colors, matching number and order of vertices. | |
| * Used in ParticleSystem, Line and Ribbon. | |
| * Meshes use per-face-use-of-vertex colors embedded directly in faces. | |
| * To signal an update in this array, Geometry.colorsNeedUpdate needs to be set to true. | |
| */ | |
| colors: Color[]; | |
| /** | |
| * Array of triangles or/and quads. | |
| * The array of faces describe how each vertex in the model is connected with each other. | |
| * To signal an update in this array, Geometry.elementsNeedUpdate needs to be set to true. | |
| */ | |
| faces: Face3[]; | |
| /** | |
| * Array of face UV layers. | |
| * Each UV layer is an array of UV matching order and number of vertices in faces. | |
| * To signal an update in this array, Geometry.uvsNeedUpdate needs to be set to true. | |
| */ | |
| faceVertexUvs: Vector2[][][]; | |
| /** | |
| * Array of morph targets. Each morph target is a Javascript object: | |
| * | |
| * { name: "targetName", vertices: [ new THREE.Vector3(), ... ] } | |
| * | |
| * Morph vertices match number and order of primary vertices. | |
| */ | |
| morphTargets: MorphTarget[]; | |
| /** | |
| * Array of morph normals. Morph normals have similar structure as morph targets, each normal set is a Javascript object: | |
| * | |
| * morphNormal = { name: "NormalName", normals: [ new THREE.Vector3(), ... ] } | |
| */ | |
| morphNormals: MorphNormals[]; | |
| /** | |
| * Array of skinning weights, matching number and order of vertices. | |
| */ | |
| skinWeights: Vector4[]; | |
| /** | |
| * Array of skinning indices, matching number and order of vertices. | |
| */ | |
| skinIndices: Vector4[]; | |
| /** | |
| * | |
| */ | |
| lineDistances: number[]; | |
| /** | |
| * Bounding box. | |
| */ | |
| boundingBox: Box3; | |
| /** | |
| * Bounding sphere. | |
| */ | |
| boundingSphere: Sphere; | |
| /** | |
| * Set to true if the vertices array has been updated. | |
| */ | |
| verticesNeedUpdate: boolean; | |
| /** | |
| * Set to true if the faces array has been updated. | |
| */ | |
| elementsNeedUpdate: boolean; | |
| /** | |
| * Set to true if the uvs array has been updated. | |
| */ | |
| uvsNeedUpdate: boolean; | |
| /** | |
| * Set to true if the normals array has been updated. | |
| */ | |
| normalsNeedUpdate: boolean; | |
| /** | |
| * Set to true if the colors array has been updated. | |
| */ | |
| colorsNeedUpdate: boolean; | |
| /** | |
| * Set to true if the linedistances array has been updated. | |
| */ | |
| lineDistancesNeedUpdate: boolean; | |
| /** | |
| * | |
| */ | |
| groupsNeedUpdate: boolean; | |
| /** | |
| * Bakes matrix transform directly into vertex coordinates. | |
| */ | |
| applyMatrix(matrix: Matrix4): Geometry; | |
| rotateX(angle: number): Geometry; | |
| rotateY(angle: number): Geometry; | |
| rotateZ(angle: number): Geometry; | |
| translate(x: number, y: number, z: number): Geometry; | |
| scale(x: number, y: number, z: number): Geometry; | |
| lookAt(vector: Vector3): void; | |
| fromBufferGeometry(geometry: BufferGeometry): Geometry; | |
| center(): Geometry; | |
| normalize(): Geometry; | |
| /** | |
| * Computes face normals. | |
| */ | |
| computeFaceNormals(): void; | |
| /** | |
| * Computes vertex normals by averaging face normals. | |
| * Face normals must be existing / computed beforehand. | |
| */ | |
| computeVertexNormals(areaWeighted?: boolean): void; | |
| /** | |
| * Compute vertex normals, but duplicating face normals. | |
| */ | |
| computeFlatVertexNormals(): void; | |
| /** | |
| * Computes morph normals. | |
| */ | |
| computeMorphNormals(): void; | |
| /** | |
| * Computes bounding box of the geometry, updating {@link Geometry.boundingBox} attribute. | |
| */ | |
| computeBoundingBox(): void; | |
| /** | |
| * Computes bounding sphere of the geometry, updating Geometry.boundingSphere attribute. | |
| * Neither bounding boxes or bounding spheres are computed by default. They need to be explicitly computed, otherwise they are null. | |
| */ | |
| computeBoundingSphere(): void; | |
| merge( | |
| geometry: Geometry, | |
| matrix?: Matrix, | |
| materialIndexOffset?: number | |
| ): void; | |
| mergeMesh(mesh: Mesh): void; | |
| /** | |
| * Checks for duplicate vertices using hashmap. | |
| * Duplicated vertices are removed and faces' vertices are updated. | |
| */ | |
| mergeVertices(): number; | |
| setFromPoints(points: Array<Vector2> | Array<Vector3>): this; | |
| sortFacesByMaterialIndex(): void; | |
| toJSON(): any; | |
| /** | |
| * Creates a new clone of the Geometry. | |
| */ | |
| clone(): this; | |
| copy(source: Geometry): this; | |
| /** | |
| * Removes The object from memory. | |
| * Don't forget to call this method when you remove an geometry because it can cuase meomory leaks. | |
| */ | |
| dispose(): void; | |
| // These properties do not exist in a normal Geometry class, but if you use the instance that was passed by JSONLoader, it will be added. | |
| bones: Bone[]; | |
| animation: AnimationClip; | |
| animations: AnimationClip[]; | |
| // EventDispatcher mixins | |
| addEventListener(type: string, listener: (event: Event) => void): void; | |
| hasEventListener(type: string, listener: (event: Event) => void): boolean; | |
| removeEventListener(type: string, listener: (event: Event) => void): void; | |
| dispatchEvent(event: { type: string; [attachment: string]: any }): void; | |
| } | |