Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::scene Namespace Reference

Scene related management (Render-agnostic Geometry, Manger, etc...) More...

Namespaces

namespace  gltf
 Helpers and classes related to glTF models.
 
namespace  loader
 Generators of geometry / scene by computation (eg. Bezier) or from files (eg. Gltf)
 
namespace  primitive
 Standard mesh primitives (Cube, Plane, Teapot, etc...)
 
namespace  skin
 Helpers and classes related to skinned meshes.
 

Classes

class  AABB
 Axis-aligned bounding box. More...
 
struct  AreaLight
 Realistic light that emits from a rectangle shape (example: screens, neons) More...
 
class  Camera
 The "eye of the scene". More...
 
struct  DefaultMeshSettings
 Settings to specialize Mesh. More...
 
struct  FrustumProjection
 Special case of perspective projection where you need to provide frustum extents. More...
 
struct  IsPosition
 
struct  IsPosition< glm::vec3 >
 
struct  IsRotation
 
struct  IsRotation< glm::quat >
 
struct  IsScale
 
struct  IsScale< glm::vec3 >
 
struct  Lighting
 Lighting manager (scene) More...
 
class  Material
 Render agnostic material. More...
 
struct  Mesh
 
class  Node
 Scene node. More...
 
struct  NodePtr
 Wrapper to a node reference to use pointers to node even if the actual node moves in memory. More...
 
struct  OrthographicProjection
 Non realistic projection where all objects lines are orthogonal to the projection plane giving the idea that all faces are at the same distance to the viewer. More...
 
struct  PerspectiveProjection
 Realistic projection where distant objects appear smaller than closer objects. More...
 
struct  PointLight
 Light that emits from a point in all directions. More...
 
struct  Primitive
 Part of a mesh (used to separate mesh materials for example) More...
 
class  Scene
 Logical scene manager. More...
 
struct  SkinnedVertex
 
struct  TextureCoordinatesTransform
 Material property defining texture coordinates set transformation. More...
 
struct  TextureProperty
 Material property defining texture settings. More...
 
class  Transform
 Manage local Translation / Rotation / Scale of an entity in the world. More...
 
struct  TransmissiveProperties
 Material properties related to physically-based transparency related effects. More...
 
struct  Vertex
 

Typedefs

using SolidMesh = Mesh< Vertex >
 
using SkinnedMesh = Mesh< SkinnedVertex >
 
using NodeType = uint64_t
 
typedef uint32_t index_t
 

Functions

AABB operator+ (const AABB &op1, const AABB &op2) noexcept
 return an AABB containing both AABB
 
template<typename MeshType , VertexPredicateFunction< typename MeshType::vertex_type > F>
constexpr AABB generateBoundingBoxFromPredicate (const MeshType &mesh, F &&predicate) noexcept
 Generate a bounding box containing vertices matching a predicate.
 

Variables

const NodeType NodeTypeALL = 0
 

Detailed Description

Scene related management (Render-agnostic Geometry, Manger, etc...)

Typedef Documentation

◆ index_t

typedef uint32_t oe::scene::index_t

Vertex index in meshes

Function Documentation

◆ generateBoundingBoxFromPredicate()

template<typename MeshType , VertexPredicateFunction< typename MeshType::vertex_type > F>
constexpr AABB oe::scene::generateBoundingBoxFromPredicate ( const MeshType &  mesh,
F &&  predicate 
)
inlineconstexprnoexcept

Generate a bounding box containing vertices matching a predicate.

Parameters
predicateA function with a vertex as parameter that should return true if the vertex should be considered in the bbox

◆ operator+()

AABB oe::scene::operator+ ( const AABB op1,
const AABB op2 
)
inlinenoexcept

return an AABB containing both AABB

Parameters
op1AABB
op2AABB