@types/three
Version:
TypeScript definitions for three
68 lines (63 loc) • 2.84 kB
TypeScript
import { BufferGeometry } from "../core/BufferGeometry.js";
/**
* A class for generating sphere geometries.
* @example
* ```typescript
* const geometry = new THREE.SphereGeometry(15, 32, 16);
* const material = new THREE.MeshBasicMaterial({
* color: 0xffff00
* });
* const sphere = new THREE.Mesh(geometry, material);
* scene.add(sphere);
* ```
* @see {@link https://threejs.org/docs/index.html#api/en/geometries/SphereGeometry | Official Documentation}
* @see {@link https://github.com/mrdoob/three.js/blob/master/src/geometries/SphereGeometry.js | Source}
*/
export class SphereGeometry extends BufferGeometry {
/**
* Create a new instance of {@link SphereGeometry}
* @remarks
* The geometry is created by sweeping and calculating vertexes
* around the **Y** axis (horizontal sweep) and the **Z** axis (vertical sweep)
* Thus, incomplete spheres (akin to `'sphere slices'`) can be created
* through the use of different values of {@link phiStart}, {@link phiLength}, {@link thetaStart} and {@link thetaLength},
* in order to define the points in which we start (or end) calculating those vertices.
* @param radius Sphere radius. Expects a `Float`. Default `1`
* @param widthSegments Number of horizontal segments. Minimum value is 3, and the Expects a `Integer`. Default `32`
* @param heightSegments Number of vertical segments. Minimum value is 2, and the Expects a `Integer`. Default `16`
* @param phiStart Specify horizontal starting angle. Expects a `Float`. Default `0`
* @param phiLength Specify horizontal sweep angle size. Expects a `Float`. Default `Math.PI * 2`
* @param thetaStart Specify vertical starting angle. Expects a `Float`. Default `0`
* @param thetaLength Specify vertical sweep angle size. Expects a `Float`. Default `Math.PI`
*/
constructor(
radius?: number,
widthSegments?: number,
heightSegments?: number,
phiStart?: number,
phiLength?: number,
thetaStart?: number,
thetaLength?: number,
);
/**
* A Read-only _string_ to check if `this` object type.
* @remarks Sub-classes will update this value.
* @defaultValue `SphereGeometry`
*/
override readonly type: string | "SphereGeometry";
/**
* An object with a property for each of the constructor parameters.
* @remarks Any modification after instantiation does not change the geometry.
*/
readonly parameters: {
readonly radius: number;
readonly widthSegments: number;
readonly heightSegments: number;
readonly phiStart: number;
readonly phiLength: number;
readonly thetaStart: number;
readonly thetaLength: number;
};
/** @internal */
static fromJSON(data: {}): SphereGeometry;
}