@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
30 lines (29 loc) • 2.22 kB
TypeScript
import { BufferGeometry, Object3D, Vector3, BufferAttribute } from 'three';
import { CoreObjectType, ObjectContent } from '../../ObjectContent';
import { CoreVertex } from '../../entities/vertex/CoreVertex';
import { VertexAttributesDict, UserDataWithVertexAttributes } from '../../entities/vertex/Common';
import { BaseVertexAttribute } from '../../entities/vertex/VertexAttribute';
import { NumericAttribValue } from '../../../../types/GlobalTypes';
import { CoreEntityWithObject } from '../../CoreEntity';
export interface BufferGeometryWithVertexAttributes extends BufferGeometry {
userData: UserDataWithVertexAttributes;
}
export declare class ThreejsVertex extends CoreVertex<CoreObjectType.THREEJS> {
protected _geometry?: BufferGeometry;
constructor(object: Object3D, index: number);
setIndex(index: number, object?: Object3D): this;
private _updateGeometry;
geometry(): BufferGeometry<import("three").NormalBufferAttributes> | undefined;
static addAttribute(object: Object3D, attribName: string, attribute: BaseVertexAttribute): void;
static addNumericAttribute(object: Object3D, attribName: string, size?: number, defaultValue?: NumericAttribValue): void;
static attributes<T extends CoreObjectType>(object: ObjectContent<T>): VertexAttributesDict | undefined;
static indexAttribute<T extends CoreObjectType>(object: ObjectContent<T>): BufferAttribute | undefined | null;
static setIndexAttribute<T extends CoreObjectType>(object: ObjectContent<T>, index: BufferAttribute | number[]): BufferAttribute | undefined;
static entitiesCount<T extends CoreObjectType>(object: ObjectContent<T>): number;
position(target: Vector3): Vector3;
normal(target: Vector3): Vector3;
static relatedPrimitiveIds<T extends CoreObjectType>(object: ObjectContent<T>, pointIndex: number, target: number[]): void;
static relatedPointIds<T extends CoreObjectType>(object: ObjectContent<T>, pointIndex: number, target: number[]): void;
static relatedPointClass<T extends CoreObjectType>(object: ObjectContent<T>): typeof CoreEntityWithObject<T>;
static relatedPrimitiveClass<T extends CoreObjectType>(object: ObjectContent<T>): typeof CoreEntityWithObject<T>;
}