130 :
vertices({glm::tvec2<T>(0),glm::tvec2<T>(0),glm::tvec2<T>(0),glm::tvec2<T>(0)})
154 auto handedness = [](
float x,
float y,
float x0,
float y0,
float x1,
float y1)
156 return (y1-y0)*x+(x0-x1)*y+(x1*y0-y1*x0) >= 0;
158 float px =
static_cast<float>(x);
159 float py =
static_cast<float>(y);
176 :
BoundingBox<float>({glm::tvec2<float>(0),glm::tvec2<float>(0),glm::tvec2<float>(0),glm::tvec2<float>(0)})
190 float lowest =
vertices[0].
y; uint8_t lowestVertex = 0;
192 for (uint8_t i = 1; i <
vertices.size(); i++)
199 uint8_t next = (lowestVertex + 1) %
vertices.size();
201 float d = std::sqrt(r.x*r.x+r.y*r.y);
206 theta = std::atan2(n.y, n.x);
211 return Transform(centre.x, centre.y, -theta, d, std::sqrt(r.x*r.x+r.y*r.y));
A world space bounding box.
Definition primitive.h:173
WorldBoundingBox(const std::array< glm::tvec2< float >, 4 > &v)
Definition primitive.h:179
WorldBoundingBox()
Definition primitive.h:175
Transform toTransform()
Returns a Transform for ShapeRenderer.
Definition primitive.h:188
A drawable graphic.
Definition id.h:10
uint64_t RenderPriority
Higher priority is drawn last.
Definition primitive.h:15
BoundingBox< uint16_t > ScreenBoundingBox
A screen space bounding box.
Definition primitive.h:219
std::ostream & operator<<(std::ostream &out, const jGL::ScreenBoundingBox &sbb)
Prints each vertex on a new line.
Definition primitive.cpp:3
A bounding box template.
Definition primitive.h:128
std::array< glm::tvec2< T >, 4 > vertices
Vertices of bounding box.
Definition primitive.h:141
BoundingBox(const std::array< glm::tvec2< T >, 4 > &v)
Definition primitive.h:133
BoundingBox()
Definition primitive.h:129
bool in(T x, T y)
If the point (x, y) is in the box.
Definition primitive.h:152
Rectangular region of a texture, normalised by the textures dimensions.
Definition primitive.h:106
float lx
Definition primitive.h:118
float ty
Definition primitive.h:117
NormalisedTextureRegion(float x, float y, float w, float h)
Definition primitive.h:108
float tx
Definition primitive.h:116
NormalisedTextureRegion()
Definition primitive.h:112
float ly
Definition primitive.h:119
Definition primitive.h:18
virtual ~Primitive()=default
Rectangular region of a texture in pixels.
Definition primitive.h:77
uint16_t ly
Definition primitive.h:90
TextureRegion(uint16_t x, uint16_t y, uint16_t w, uint16_t h)
Definition primitive.h:79
uint16_t tx
Definition primitive.h:87
uint16_t lx
Definition primitive.h:89
uint16_t ty
Definition primitive.h:88
TextureRegion()
Definition primitive.h:83
Particle with a texture, with a position, orientation, and scale, colour, and texture region.
Definition primitive.h:27
glm::vec4 state
Definition primitive.h:34
glm::vec4 colour
Definition primitive.h:35
glm::vec4 texCoord
Definition primitive.h:36
TexturedParticle(glm::vec4 p, glm::vec4 c, glm::vec4 t)
Definition primitive.h:30
TexturedParticle()=default