SUNENGINE 0.0.2
A simple and bright C++ game engine.
 
Loading...
Searching...
No Matches
CollisionVolume.h
1#ifndef CollisionVolume_H
2#define CollisionVolume_H
3
4#include "AzulCore.h"
5#include "VolumeType.h"
6
10
18class CollisionVolume
19{
20public:
21 CollisionVolume() = default;
22 CollisionVolume(const CollisionVolume&) = delete;
23 CollisionVolume& operator=(const CollisionVolume&) = delete;
24 virtual ~CollisionVolume() = default;
25
31 virtual void ComputeData(Model* mod, const Matrix& mat) = 0;
32
33 virtual void DebugView(const Vect& col) const = 0;
34
35 virtual bool IntersectAccept(const CollisionVolume& other) const = 0;
36 virtual bool IntersectVisit(const CollisionVolumeBSphere& other) const = 0;
37 virtual bool IntersectVisit(const CollisionVolumeAABB& other) const = 0;
38 virtual bool IntersectVisit(const CollisionVolumeOBB& other) const = 0;
39
40 virtual VolumeType GetType() const { return VolumeType::BSPHERE; }
41};
42
43#endif
Represents an axis-aligned bounding box (AABB) collision volume.
Definition CollisionVolumeAABB.h:23
Represents a bounding sphere collision volume.
Definition CollisionVolumeBSphere.h:14
virtual void ComputeData(Model *mod, const Matrix &mat)=0
Computes the collision data for the volume.
Represents an Oriented Bounding Box (OBB) collision volume.
Definition CollisionVolumeOBB.h:23