PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
collisionPin.h
Go to the documentation of this file.
1#ifndef PGR_SEM_COPAKOND_COLLISIONPIN_H
2#define PGR_SEM_COPAKOND_COLLISIONPIN_H
3
6
7namespace copakond {
8 enum class PinState { IDLE, FALLING, DEAD };
9
12 private:
13 PinState _state = PinState::IDLE;
14 glm::vec3 _startPosition;
15 glm::vec3 _fallAxis;
16 float _fallAngle = 0.0f;
17 float _timeSinceHit = 0.0f;
18
19 public:
20 CollisionPin(const glm::vec3 &position, const glm::vec3 &rotation, const glm::vec3 &scale, bool visible = true);
21
23 void updatePin(float deltaTime, RigidSphere* ball);
24
25 CollisionResult collisionCheckDetailed(const CollisionShape &mesh, glm::vec3 velocity, bool calculateNormal) override;
26
28 void reset();
29 bool isDown() { return _state == PinState::DEAD; }
30 };
31}
32
33#endif //PGR_SEM_COPAKOND_COLLISIONPIN_H
void reset()
Restores pin to its initial standing position and state.
Definition collisionPin.cpp:62
CollisionResult collisionCheckDetailed(const CollisionShape &mesh, glm::vec3 velocity, bool calculateNormal) override
Detailed collision check returning overlap status, normal, and reflection vectors.
Definition collisionPin.cpp:50
CollisionPin(const glm::vec3 &position, const glm::vec3 &rotation, const glm::vec3 &scale, bool visible=true)
Definition collisionPin.cpp:5
void updatePin(float deltaTime, RigidSphere *ball)
Custom physics update simulating toppling over when hit.
Definition collisionPin.cpp:17
bool isDown()
Definition collisionPin.h:29
Base class for physics colliders, acting as an invisible (or debug) mesh.
Definition collisionShape.h:18
CollisionSphere(const glm::vec3 &position=glm::vec3(0.0f), const glm::vec3 &rotation=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f), bool visible=false)
Definition collisionSphere.cpp:13
glm::vec3 & rotation()
Definition geometry.h:61
glm::vec3 & scale()
Definition geometry.h:62
glm::vec3 & position()
Definition geometry.h:60
Kinematic sphere that automatically rolls based on its horizontal velocity.
Definition rigidSphere.h:7
PGR Semestral work with sample scenes and bowling. doxygen was generated with a help of LLM.
Definition bezier.cpp:3
PinState
Definition collisionPin.h:8
@ FALLING
Definition collisionPin.h:8
@ IDLE
Definition collisionPin.h:8
@ DEAD
Definition collisionPin.h:8
Container for collision response data.
Definition collisionDetector.h:12