UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

80 lines (77 loc) 1.95 kB
import {Vector3, BufferAttribute} from 'three'; import {ObjectGeometryMap, CoreObjectType, ObjectContent} from '../../ObjectContent'; import {CorePoint} from '../../entities/point/CorePoint'; import {PointAttributesDict} from '../../entities/point/Common'; import {SDFObject} from './SDFObject'; export class SDFPoint extends CorePoint<CoreObjectType.SDF> { protected _geometry?: ObjectGeometryMap[CoreObjectType.SDF]; protected override _object: SDFObject; constructor(object: SDFObject, index: number) { super(object, index); this._object = object; this._updateGeometry(); } override object() { return this._object; } override setIndex(index: number, object?: SDFObject) { this._index = index; if (object) { this._object = object; this._updateGeometry(); } return this; } private _updateGeometry() { const geometry = this._object.geometry; if (geometry) { this._geometry = geometry; } } geometry() { return this._geometry; } static override addAttribute<T extends CoreObjectType>( object: ObjectContent<T>, attribName: string, attribute: BufferAttribute ) {} static override attributes<T extends CoreObjectType>(object: ObjectContent<T>): PointAttributesDict | undefined { return undefined; } static override entitiesCount<T extends CoreObjectType>(object: ObjectContent<T>) { return 0; } override position(target: Vector3): Vector3 { return target; } override normal(target: Vector3): Vector3 { return target; } // // // // // static override userDataAttribs<T extends CoreObjectType>(object: ObjectContent<T>) { return {}; } static override setIndexedAttribute<T extends CoreObjectType>( object: ObjectContent<T>, attribName: string, values: string[], indices: number[] ) {} static override attribValueIndex<T extends CoreObjectType>( object: ObjectContent<T>, index: number, attribName: string ): number { return -1; } // // // // // }