17 #ifndef HEADER_SUPERTUX_COLLISION_COLLISION_HPP 18 #define HEADER_SUPERTUX_COLLISION_COLLISION_HPP 23 #include "collision/collision_hit.hpp" 24 #include "math/fwd.hpp" 41 float infinity = (std::numeric_limits<float>::has_infinity ?
42 std::numeric_limits<float>::infinity() :
43 std::numeric_limits<float>::max());
44 position_left = -infinity;
45 position_right = infinity;
46 position_top = -infinity;
47 position_bottom = infinity;
50 bool has_constraints()
const 52 float infinity = (std::numeric_limits<float>::has_infinity ?
53 std::numeric_limits<float>::infinity() :
54 std::numeric_limits<float>::max());
56 position_left > -infinity ||
57 position_right < infinity ||
58 position_top > -infinity ||
59 position_bottom < infinity;
64 void constrain_left (
float position)
66 position_left = std::max (position_left, position);
69 void constrain_right (
float position)
71 position_right = std::min (position_right, position);
74 void constrain_top (
float position)
76 position_top = std::max (position_top, position);
79 void constrain_bottom (
float position)
81 position_bottom = std::min (position_bottom, position);
86 float get_position_left ()
const {
return position_left; }
87 float get_position_right ()
const {
return position_right; }
88 float get_position_top ()
const {
return position_top; }
89 float get_position_bottom ()
const {
return position_bottom; }
91 float get_height ()
const {
return (position_bottom - position_top); }
92 float get_width ()
const {
return (position_right - position_left); }
94 float get_x_midpoint ()
const {
return (.5f * (position_left + position_right)); }
100 float position_right;
102 float position_bottom;
113 bool& hits_rectangle_bottom);
115 void set_rectangle_rectangle_constraints(
Constraints* constraints,
const Rectf& r1,
const Rectf& r2);
117 bool line_intersects_line(
const Vector& line1_start,
const Vector& line1_end,
const Vector& line2_start,
const Vector& line2_end);
118 bool intersects_line(
const Rectf& r,
const Vector& line_start,
const Vector& line_end);
Definition: collision.cpp:24
Definition: collision.hpp:31
An axis-aligned triangle (ie.
Definition: aatriangle.hpp:26
This class collects data about a collision.
Definition: collision_hit.hpp:44