Я создал несколько функций, которые создают геометрии THREE.js со значениями длины phi до 360, которые не являются полыми, и я хотел бы отобразить их в сцене A-Frame (которая выполняется поверх React). Однако, когда я пытаюсь их визуализировать, я обнаруживаю, что не могу.
Я думал, что моя пользовательская геометрия не регистрируется, но я рендерил копию геометрии прямоугольника, обозначенную здесь без проблем.
Это мой код, который я использовал для регистрации пользовательской геометрии:
this.AFRAME.registerGeometry("phisphere", {
schema : {
phi : { default : 360, min : 0, type : "int" },
},
init : (data) => {
let phi = this.degToRad(data.phi);
let sphere = new THREE.SphereGeometry(1, 18, 36, 0, phi);
let semiStart = new THREE.CircleGeometry(1, 36, 0, Math.PI);
semiStart.applyMatrix(this.rotationMatrix("z", Math.PI / 2));
semiStart.applyMatrix(this.rotationMatrix("x", Math.PI));
let semiEnd = new THREE.CircleGeometry(1, 32, 0, Math.PI);
semiEnd.applyMatrix(this.rotationMatrix("z", Math.PI / 2));
semiEnd.applyMatrix(this.rotationMatrix("y", phi));
let geometry = new THREE.Geometry();
geometry.merge(sphere);
geometry.merge(semiStart);
geometry.merge(semiEnd);
this.geometry = geometry;
}
});
и это вызов, который я использую для ее рендеринга:
<a-entity geometry="primitive: phisphere; phi : 260" scale="2 2 2" position="0 2 0"></a-entity>
Ничего не появляется. Я не уверен, где я ошибся, и любая помощь будет признательна.