Euphoria
collisionmesh.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <optional>
5 
6 #include "base/vec3.h"
7 
8 
9 
10 namespace eu
11 {
12  struct UnitRay3f;
13 }
14 
15 
16 namespace eu::core
17 {
18 
19 
20 struct Mesh;
21 
23 {
24  int x;
25  int y;
26  int z;
27 
28  constexpr CollisionFace(int xx, int yy, int zz)
29  : x(xx), y(yy), z(zz) {}
30 };
31 
33 {
34  std::vector<vec3f> points;
35  std::vector<CollisionFace> faces;
36 
37  void add(const Mesh& mesh);
38 };
39 
40 std::optional<float>
41 get_intersection(const UnitRay3f& ray, const CollisionMesh& mesh);
42 
43 
44 }
std::optional< float > get_intersection(const UnitRay3f &ray, const CollisionMesh &mesh)
Definition: assert.h:90
constexpr CollisionFace(int xx, int yy, int zz)
Definition: collisionmesh.h:28
std::vector< vec3f > points
Definition: collisionmesh.h:34
void add(const Mesh &mesh)
std::vector< CollisionFace > faces
Definition: collisionmesh.h:35