SDK Multiplataforma en C logo

SDK Multiplataforma en C

Cajas 2D

❮ Anterior
Siguiente ❯

Funciones

Box2Dbox2d (...)
Box2Dbox2d_from_points (...)
V2Dbox2d_center (...)
voidbox2d_add (...)
voidbox2d_addn (...)
voidbox2d_add_circle (...)
voidbox2d_merge (...)
voidbox2d_segments (...)
realbox2d_area (...)
bool_tbox2d_is_null (...)

Tipos y Constantes

Box2DkNULL

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.
  • Dibujo de un plano donde aparece un contenedor 2D que integra varias figuras.
    Figura 1: Cajas 2D como contenedor de otros objetos.
❮ Anterior
Siguiente ❯

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.

❮ Anterior
Siguiente ❯