Могу ли я получить доступ к геометрии класса Sphere без расширения? - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь создать общий абстрактный суперкласс для всех трехмерных объектов в программе Java3D, которую я пишу. Мне нужно это, чтобы добавить общие функции, такие как движущиеся объекты, ко всем трехмерным объектам через общий интерфейс. Я хотел бы использовать ранее существовавшую геометрию класса Sphere для создания своего собственного объектаcope3d.

Я хочу иметь возможность доступа к геометрии класса Sphere без его наследования, так как мой абстрактный класс object3d расширяет Shape3D и, следовательно, подклассы должны наследовать object3d. Есть ли способ установить геометрию моего собственного классаcope3d (который расширяет object3d) на класс Sphere? Геометрия - это все, что мне нужно.

Спасибо за ваше время

1 Ответ

1 голос
/ 14 февраля 2012
float radius = 2.4f;
int divisions = 24;
// Further flags: GENERATE_TEXTURE_COORDS etc.
int primflags = Sphere.GEOMETRY_NOT_SHARED | Sphere.GENERATE_NORMALS;

Sphere sphere = new Sphere(radius, primflags, divisions);

Shape3D shape3D = sphere.getShape();

Geometry = shape3D.getGeometry(); // Your desired result !

shape3D.setGeometry(null);
...