Создает трубку, которая экструдится по трехмерной кривой.
class CustomSinCurve extends v3d.Curve {
constructor(scale = 1) {
super();
this.scale = scale;
}
getPoint(t, optionalTarget = new v3d.Vector3()) {
const tx = t * 3 - 1.5;
const ty = Math.sin(2 * Math.PI * t);
const tz = 0;
return optionalTarget.set(tx, ty, tz).multiplyScalar(this.scale);
}
}
const path = new CustomSinCurve(10);
const geometry = new v3d.TubeGeometry(path, 20, 2, 8, false);
const material = new v3d.MeshBasicMaterial({ color: 0x00ff00 });
const mesh = new v3d.Mesh(geometry, material);
app.scene.add(mesh);
path — Curve — 3D-путь, который наследуется от базового класса Curve.
tubularSegments — Integer — Количество сегментов, из которых состоит трубка, по умолчанию 64
radius — Float — Радиус трубки, по умолчанию 1
radialSegments — Integer — Количество сегментов, составляющих поперечное сечение, по умолчанию 8
closed — Boolean Открытая или закрытая трубка, по умолчанию false.
Общие свойства см. в базовом классе BufferGeometry.
Объект со свойством для каждого из параметров конструктора. Любая модификация после построения не изменяет геометрию.
Массив Vector3 касательных
Массив Vector3 нормалей
Массив Vector3 бинормалей
Общие методы см. в базовом классе BufferGeometry.
О том как получить исходный код этого модуля читайте тут.