Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Статьи
        Основы
            Geometry

Geometry

Опубликованно: 19.07.2015, 22:03
Последняя редакция, AdiDOS: 05.05.2016 6:17

Geometry этот класс входит в состав библиотеки jme3 , предназначен для хранения ресурсов геометрических объектов а также манипуляции с ними  а простыми словами все объекты отображаемые на сцене хранятся именно в этом классе.

Класс geometry хранит в себе массивы вершин , индексов, нормалей и текстурных координат а также свойства материалов а простыми словами все что нужно для отображения полноценного объекта.

Далее немного исходного кода.

package test;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.texture.Texture;

public class HelloGeometry extends SimpleApplication{

 public static void main(String[] args) {
 new HelloGeometry().start();

 }

 // Инициализация сцены
 @Override
 public void simpleInitApp() {
 Geometry geomBox = createBox();
 rootNode.attachChild(geomBox); //Добавляем куб на сцену

 System.out.println("Количество треугольников -" +geomBox.getMesh().getTriangleCount());
 System.out.println("Количество вершин -" +geomBox.getMesh().getVertexCount());
 System.out.println("Имя Материала -" +geomBox.getMaterial().getName());
 System.out.println("Центр ограничивающей коробки -" +geomBox.getModelBound().getCenter());
 }

 //Функция создания куба
 private Geometry createBox() {
 Box box = new Box(1, 1, 1);// Создаем куб и указываем размер по трем осям
 Geometry geomBox = new Geometry("Box", box); //Создание геометрического объекта
 Material matBox = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
 matBox.setName("Material Box");
 Texture tex = assetManager.loadTexture("Interface/Logo/Monkey.jpg");
 matBox.setTexture("ColorMap", tex);
 geomBox.setMaterial(matBox);
 geomBox.rotate(1, 1, 1);

 return geomBox;

 }

}
Теория

Если разбить все это по этапам это это будет выглядеть так

1- Подготовка вершин и индексов объекта в нашем случае это делает класс Box

2 — Подготовка свойств материала и установка в класс Geometry

3 — Добавление на сцену

Описание

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

getMesh() — Возвращает сетку модели.

getMaterial() — Возвращает Материал модели

getModelBounds() — Возвращает ограничивающую коробку

setLocalTranslation() —   Трансформация модели

setLocalRotation() — Вращение модели

setLocalScale() — Масштабирование модели

setMaterial() — Установка свойств материала

setLodLevel() — Установка уровня теселяции

setName() — Установка имени

1 (2)

На заключение скажу что c помощью geometry можно масштабировать , перемещать, вращать менять вид отображения  получить доступ к куче вспомогательных функций ну короче все…

Спасибо за внимание!!

Добавить комментарий

Содержание

jMonkeyEngine.ru © 2017. Все права сохранены.