/// check if this ray hits a block
/// depth in the collision is the distance between the ray's
/// origin and the intersection point
- /// M is the global transform for given reference chunk
+ /// reference is the chunk offset of the ray in world space
bool Intersection(
const Ray &,
- const glm::mat4 &M,
- const Chunk::Pos &reference,
+ const ExactLocation::Coarse &reference,
WorldCollision &);
/// check if this ray hits an entity
/// intersections with the reference are not tested
- /// M is the global transform for the chunk of given reference entity
+ /// the ray is assumed to be in world space offset by entity's chunk coords
bool Intersection(
const Ray &,
- const glm::mat4 &M,
const Entity &reference,
EntityCollision &);
void Update(Entity &, float dt);
void Render(Viewport &);
+ void RenderDebug(Viewport &);
private:
using EntityHandle = std::list<Entity>::iterator;
const EntityState &
);
+ /// calculate light direction and intensity at entity's location
+ void GetLight(
+ const Entity &entity,
+ glm::vec3 &direction,
+ glm::vec3 &color,
+ glm::vec3 &ambient
+ );
+
private:
Config config;