gKit2 light
Public Member Functions | Public Attributes | List of all members
GLTFScene Struct Reference

#include <gltf.h>

Public Member Functions

void bounds (Point &pmin, Point &pmax) const
 calcule les points extremes de la scene, utile pour regler un orbiter. More...
 
std::vector< GLTFInstancesinstances () const
 regroupe les instances de chaque maillage. More...
 

Public Attributes

std::vector< GLTFMeshmeshes
 ensemble de maillages. More...
 
std::vector< GLTFNodenodes
 noeuds / position et orientation des maillages dans la scene. More...
 
std::vector< GLTFMaterialmaterials
 matieres. More...
 
std::vector< GLTFLightlights
 lumieres. More...
 
std::vector< GLTFCameracameras
 cameras. More...
 

Detailed Description

representation d'une scene statique glTF.

resume du format glTF : https://github.com/KhronosGroup/glTF-Tutorials/blob/master/gltfTutorial/README.md

specification complete : https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html

parser gltf : https://github.com/jkuhlmann/cgltf

une scene est un ensemble de maillages places et orientes dans un repere. un GLTFNode permet de dessiner un maillage GLTFMesh a sa place. un maillage est un ensemble de groupes de triangles / primitives. cf GLTFPrimitives. un groupe de primitives est associe a une matiere. cf GLTFMaterial.

Definition at line 148 of file gltf.h.

Member Function Documentation

◆ bounds()

void GLTFScene::bounds ( Point pmin,
Point pmax 
) const

calcule les points extremes de la scene, utile pour regler un orbiter.

Definition at line 901 of file gltf.cpp.

902 {
903  pmin= Point(FLT_MAX, FLT_MAX, FLT_MAX);
904  pmax= Point(-FLT_MAX, -FLT_MAX, -FLT_MAX);
905  for(unsigned node_id= 0; node_id < nodes.size(); node_id++)
906  {
907  const GLTFNode& node= nodes[node_id];
908  const GLTFMesh& mesh= meshes[node.mesh_index];
909  for(unsigned primitive_id= 0; primitive_id < mesh.primitives.size(); primitive_id++)
910  {
911  const GLTFPrimitives& primitives= mesh.primitives[primitive_id];
912  for(unsigned i= 0; i < primitives.positions.size(); i++)
913  {
914  //~ Point p= node.model(Point(primitives.positions[i]));
915  Point p= Point(primitives.positions[i]);
916  pmin= min(pmin, p);
917  pmax= max(pmax, p);
918  }
919  }
920  }
921 }
GLenum primitives() const
renvoie le type de primitives.
Definition: mesh.h:336
int mesh_index
indice du maillage.
Definition: gltf.h:131
description d'un maillage.
Definition: gltf.h:115
position et orientation d'un maillage dans la scene.
Definition: gltf.h:129
groupe de triangles d'un maillage. chaque groupe est associe a une matiere.
Definition: gltf.h:99
Point max(const Point &a, const Point &b)
renvoie la plus grande composante de chaque point. x, y, z= max(a.x, b.x), max(a.y,...
Definition: vec.cpp:35
Point min(const Point &a, const Point &b)
renvoie la plus petite composante de chaque point. x, y, z= min(a.x, b.x), min(a.y,...
Definition: vec.cpp:30
std::vector< GLTFNode > nodes
noeuds / position et orientation des maillages dans la scene.
Definition: gltf.h:151
std::vector< GLTFMesh > meshes
ensemble de maillages.
Definition: gltf.h:150
representation d'un point 3d.
Definition: vec.h:21

◆ instances()

std::vector< GLTFInstances > GLTFScene::instances ( ) const

regroupe les instances de chaque maillage.

Definition at line 884 of file gltf.cpp.

885 {
886  std::vector<GLTFInstances> instances(meshes.size());
887  for(unsigned i= 0; i < meshes.size(); i++)
888  instances[i].mesh_index= i;
889 
890  for(unsigned i= 0; i < nodes.size(); i++)
891  {
892  int index= nodes[i].mesh_index;
893  assert(index < int(instances.size()));
894  instances[index].transforms.push_back( nodes[i].model );
895  }
896 
897  return instances;
898 }
std::vector< GLTFInstances > instances() const
regroupe les instances de chaque maillage.
Definition: gltf.cpp:884

Member Data Documentation

◆ meshes

std::vector<GLTFMesh> GLTFScene::meshes

ensemble de maillages.

Definition at line 150 of file gltf.h.

◆ nodes

std::vector<GLTFNode> GLTFScene::nodes

noeuds / position et orientation des maillages dans la scene.

Definition at line 151 of file gltf.h.

◆ materials

std::vector<GLTFMaterial> GLTFScene::materials

matieres.

Definition at line 153 of file gltf.h.

◆ lights

std::vector<GLTFLight> GLTFScene::lights

lumieres.

Definition at line 154 of file gltf.h.

◆ cameras

std::vector<GLTFCamera> GLTFScene::cameras

cameras.

Definition at line 155 of file gltf.h.


The documentation for this struct was generated from the following files: