lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
62 lines • 1.72 kB
JavaScript
import toFixed from "../../api/serializer/toFixed";
import { PI2 } from "../../globals";
import { cylinderDefaults, cylinderSchema } from "../../interface/ICylinder";
import { releaseCylinderGeometry, requestCylinderGeometry } from "../../pools/cylinderGeometryPool";
import { refreshPooledPrimitiveSystem } from "../../systems/configSystems/refreshPooledPrimitiveSystem";
import PooledPrimitve from "../core/PooledPrimitive";
export const cylinderGeometry = requestCylinderGeometry([
0.5,
0.5,
1,
32,
1,
false,
0,
PI2
]);
class Cylinder extends PooledPrimitve {
static componentName = "cylinder";
static defaults = cylinderDefaults;
static schema = cylinderSchema;
constructor() {
super(cylinderGeometry, releaseCylinderGeometry, requestCylinderGeometry);
}
$getParams() {
return [
this.radiusTop,
this.radiusBottom,
1,
this.segments,
1,
false,
0,
PI2
];
}
_segments;
get segments() {
return this._segments ?? 32;
}
set segments(val) {
this._segments = toFixed(val);
refreshPooledPrimitiveSystem.add(this);
}
_radiusTop;
get radiusTop() {
return this._radiusTop ?? 0.5;
}
set radiusTop(val) {
this._radiusTop = toFixed(val);
refreshPooledPrimitiveSystem.add(this);
}
_radiusBottom;
get radiusBottom() {
return this._radiusBottom ?? 0.5;
}
set radiusBottom(val) {
this._radiusBottom = toFixed(val);
refreshPooledPrimitiveSystem.add(this);
}
}
export default Cylinder;
//# sourceMappingURL=Cylinder.js.map