Cajas 2D
Funciones
Box2D | box2d (...) |
Box2D | box2d_from_points (...) |
V2D | box2d_center (...) |
void | box2d_add (...) |
void | box2d_addn (...) |
void | box2d_add_circle (...) |
void | box2d_merge (...) |
void | box2d_segments (...) |
real | box2d_area (...) |
bool_t | box2d_is_null (...) |
Tipos y Constantes
Box2D | kNULL |
Los cajas 2D o (Axis-Aligned Bounding boxes) delimitan la zona del plano que ocupan diferentes elementos geométricos (Figura 1). Son útiles en la detección de colisiones u operaciones de recortado (clipping), ya que impiden que se dibujen figuras no visibles, mejorando el rendimiento global. También son muy rápidas de computar a partir de un conjunto de puntos.
- Utiliza box2d_from_pointsf para crear una caja 2D a partir de un conjunto de puntos.
- Utiliza box2d_addnf para cambiar las dimensiones en función de nuevos puntos.
- Utiliza box2d_segmentsf para obtener los cuatro segmentos que delimitan la caja.
kNULL
const Box2Df kBOX2D_NULLf; const Box2Dd kBOX2D_NULLd; const Box2D Box2D::kNULL;
Representa un contenedor nulo (sin geometría).
box2d ()
Crea una nueva caja con los límites indicados.
Box2Df box2df(const real32_t minX, const real32_t minY, const real32_t maxX, const real32_t maxY); Box2Dd box2dd(const real64_t minX, const real64_t minY, const real64_t maxX, const real64_t maxY); Box2D Box2D(const real minX, const real minY, const real maxX, const real maxY);
minX | El límite inferior en X. |
minY | El límite inferior en Y. |
maxX | El límite superior en X. |
maxY | El límite superior en Y. |
Retorna
La caja recién creada.
box2d_from_points ()
Crea una nueva caja que contiene un conjunto de puntos.
Box2Df box2d_from_pointsf(const V2Df *p, const uint32_t n); Box2Dd box2d_from_pointsd(const V2Dd *p, const uint32_t n); Box2D Box2D::from_points(const V2D *p, const uint32_t n);
p | Vector de puntos 2d. |
n | Número de puntos en el vector. |
Retorna
La caja recién creada.
box2d_center ()
Devuelve el punto central.
V2Df box2d_centerf(const Box2Df *box); V2Dd box2d_centerd(const Box2Dd *box); V2D Box2D::center(const Box2D *box);
box | El contenedor. |
Retorna
Las coordenadas del centro.
box2d_add ()
Amplia las dimensiones del contenedor para albergar al punto de entrada. Si el punto ya está dentro de su área, las dimensiones no se modificarán.
void box2d_addf(Box2Df *box, const V2Df *p); void box2d_addd(Box2Dd *box, const V2Dd *p); void Box2D::add(Box2D *box, const V2D *p);
box | El contenedor. |
p | El punto a incluir. |
box2d_addn ()
Amplia las dimensiones del contenedor para albergar varios puntos. Es equivalente a llamar sucesivas veces al método box2d_addf.
void box2d_addnf(Box2Df *box, const V2Df *p, const uint32_t n); void box2d_addnd(Box2Dd *box, const V2Dd *p, const uint32_t n); void Box2D::addn(Box2D *box, const V2D *p, const uint32_t n);
box | El contenedor. |
p | Vector de puntos a incluir. |
n | Número de puntos. |
box2d_add_circle ()
Amplia las dimensiones del contenedor para albergar un círculo.
void box2d_add_circlef(Box2Df *box, const Cir2Df *cir); void box2d_add_circled(Box2Dd *box, const Cir2Dd *cir); void Box2D::add_circle(Box2D *box, const Cir2D *cir);
box | El contenedor. |
cir | Círculo. |
box2d_merge ()
Amplia las dimensiones de la caja dest
para contener a la caja src
.
void box2d_mergef(Box2Df *dest, const Box2Df *src); void box2d_merged(Box2Dd *dest, const Box2Dd *src); void Box2D::merge(Box2D *dest, const Box2D *src);
dest | La caja destino. |
src | La caja origen. |
box2d_segments ()
Obtiene los cuatro segmentos que forman la caja.
void box2d_segmentsf(const Box2Df *box, Seg2Df *segs); void box2d_segmentsd(const Box2Dd *box, Seg2Dd *segs); void Box2D::segments(const Box2D *box, Seg2D *segs);
box | El contenedor. |
segs | Array de al menos cuatro segmentos. |
box2d_area ()
Obtiene el área de la caja.
real32_t box2d_areaf(const Box2Df *box); real64_t box2d_aread(const Box2Dd *box); real Box2D::area(const Box2D *box);
box | El contenedor. |
Retorna
El área (width * height)
.
box2d_is_null ()
Comprueba si un contendor es nulo (sin dimensión).
bool_t box2d_is_nullf(const Box2Df *box); bool_t box2d_is_nulld(const Box2Dd *box); bool_t Box2D::is_null(const Box2D *box);
box | El contenedor. |
Retorna
TRUE
si es nulo, FALSE
si contiene alguna geometría.