2012-02-13 1 views
0

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

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

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

ответ

1
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); 
Смежные вопросы