Создает трубку, которая экструдируется по трехмерной кривой.
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.MeshStandardMaterial({ color: 0x00ff00 });
const mesh = new v3d.Mesh(geometry, material);
app.scene.add(mesh);
64.1.8.false.Процедурная геометрия может использоваться для обучения основам программирования, однако в реальной жизни используется редко. В большинстве случаев имеет смысл сделать модель трубки в пакете моделирования и загрузить в «Вердж3Д» с помощью glTF.
Смотрите свойства базового класса BufferGeometry.
Объект с параметрами, указанными в конструкторе. Модификация свойств этого объекта после вызова конструктора не изменяет получившуюся геометрию.
Массив Vector3 касательных.
Массив Vector3 нормалей.
Массив Vector3 бинормалей.
Смотрите методы базового класса BufferGeometry.
О том как получить исходный код этого модуля читайте тут.