k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
import { LineSegments } from '../objects/LineSegments.js';
import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
import { Float32BufferAttribute } from '../core/BufferAttribute.js';
import { BufferGeometry } from '../core/BufferGeometry.js';
import { Color } from '../math/Color.js';
class AxesHelper extends LineSegments {
constructor(size = 1) {
const vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size];
const colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1];
const geometry = new BufferGeometry();
geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));
geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));
const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });
super(geometry, material);
this.type = 'AxesHelper';
}
setColors(xAxisColor, yAxisColor, zAxisColor) {
const color = new Color();
const array = this.geometry.attributes.color.array;
color.set(xAxisColor);
color.toArray(array, 0);
color.toArray(array, 3);
color.set(yAxisColor);
color.toArray(array, 6);
color.toArray(array, 9);
color.set(zAxisColor);
color.toArray(array, 12);
color.toArray(array, 15);
this.geometry.attributes.color.needsUpdate = true;
return this;
}
dispose() {
this.geometry.dispose();
this.material.dispose();
}
}
export { AxesHelper };