@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
81 lines (78 loc) • 2.04 kB
text/typescript
import {Vector3, BufferAttribute} from 'three';
import {ObjectGeometryMap, CoreObjectType, ObjectContent} from '../../ObjectContent';
import {CorePoint} from '../../entities/point/CorePoint';
import {PointAttributesDict} from '../../entities/point/Common';
import {CadObject} from './CadObject';
import {CadGeometryType} from './CadCommon';
export class CadPoint extends CorePoint<CoreObjectType.CAD> {
protected _geometry?: ObjectGeometryMap[CoreObjectType.CAD];
protected override _object: CadObject<CadGeometryType>;
constructor(object: CadObject<CadGeometryType>, index: number) {
super(object, index);
this._object = object;
this._updateGeometry();
}
override object() {
return this._object;
}
override setIndex(index: number, object?: CadObject<CadGeometryType>) {
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;
}
//
//
//
//
//
}