gdicmn.h

Clase wxRect

Representa un rectángulo con coordenadas enteras.

Los miembros x e y especifican las coordenadas de la esquina superior izquierda del rectángulo y width y height especifican su anchura y altura respectivamente. Se utiliza la convención habitual de C++ de intervalo semiabierto: el punto p se encuentra dentro del rectángulo si y solo si se cumplen las dos condiciones siguientes:

x <= p.x < x + width
y <= p.y < y + height

En otras palabras, los límites izquierdo y derecho del rectángulo están en x y x+ancho-1 y sus límites superior e inferior están en y e y+alto-1 respectivamente.

hay que tener en cuenta que las coordenadas x e y pueden ser negativas, pero la anchura y la altura son siempre estrictamente positivas para los rectángulos no vacíos.

Funciones miembro

wxRect()

wxRect::wxRect()

Constructor por defecto.

Inicializa a cero los miembros internos x, y, width y height.

wxRect()

wxRect::wxRect( int x, int y, int width, int height )

Crea un objeto wxRect a partir de los valores x, y, anchura y altura.

wxRect()

wxRect::wxRect( const wxPoint & topLeft, const wxPoint & bottomRight )

Crea un objeto wxRect a partir de los puntos superior izquierdo e inferior derecho.

La anchura del rectángulo será bottomRight.x-topLeft.x+1 y la altura será bottomRight.y-topLeft.y+1.

wxRect()

wxRect::wxRect( const wxPoint & pos, const wxSize & size )

Crea un objeto wxRect a partir de los valores de posición pos y tamaño size.

wxRect()

wxRect::wxRect (const wxSize & size)

Crea un objeto wxRect a partir de valores de tamaño en el origen.

CenterIn()

wxRect wxRect::CenterIn( const wxRect & r, int dir = wxBOTH ) const

Devuelve el rectángulo que tiene el mismo tamaño que éste pero centrado relativamente al rectángulo r dado.

Por defecto, el rectángulo se centra en ambas direcciones pero si dir incluye solo wxVERTICAL o solo wxHORIZONTAL, entonces solo se centra en esta dirección mientras que el otro componente de su posición permanece sin cambios.

CentreIn()

wxRect wxRect::CentreIn( const wxRect & r, int dir = wxBOTH ) const

Devuelve el rectángulo que tiene el mismo tamaño que éste pero centrado relativamente al rectángulo r dado.

Por defecto, el rectángulo se centra en ambas direcciones pero si dir incluye solo wxVERTICAL o solo wxHORIZONTAL, entonces solo se centra en esta dirección mientras que el otro componente de su posición permanece sin cambios.

Contains()

bool wxRect::Contains(const wxPoint & pt) const

Devuelve true si el punto dado está dentro del rectángulo (o en su límite) y false en caso contrario.

Contains()

bool wxRect::Contains(const wxRect & rect) const

Devuelve true si el rectángulo dado está completamente dentro de este rectángulo (o toca su límite) y false en caso contrario.

Contains()

bool wxRect::Contains( int x, int y ) const

Devuelve true si el punto dado está dentro del rectángulo (o en su límite) y false en caso contrario.

Deflate()

wxRect& wxRect::Deflate(const wxSize & diff)

Disminuye el tamaño del rectángulo.

Este método es el opuesto a Inflate(): Deflate(a, b) es equivalente a Inflate(-a, -b). Consultar Inflate() para obtener una descripción completa.

Deflate()

wxRect& wxRect::Deflate(wxCoord diff)

Disminuye el tamaño del rectángulo.

Este método es el opuesto a Inflate(): Deflate(a, b) es equivalente a Inflate(-a, -b). Consultar Inflate() para obtener una descripción completa.

Deflate()

wxRect& wxRect::Deflate( wxCoord dx, wxCoord dy )

Disminuye el tamaño del rectángulo.

Este método es el opuesto a Inflate(): Deflate(a, b) es equivalente a Inflate(-a, -b). Consultar Inflate() para obtener una descripción completa.

Deflate()

wxRect wxRect::Deflate( wxCoord dx, wxCoord dy ) const

Disminuye el tamaño del rectángulo.

Este método es el opuesto a Inflate(): Deflate(a, b) es equivalente a Inflate(-a, -b). Consultar Inflate() para obtener una descripción completa.

GetBottom()

int wxRect::GetBottom() const

Obtiene el punto inferior del rectángulo.

GetBottomLeft()

wxPoint wxRect::GetBottomLeft() const

Obtiene la posición de la esquina inferior izquierda.

GetBottomRight()

wxPoint wxRect::GetBottomRight() const

GetHeight()

int wxRect::GetHeight() const

Obtiene el miembro de altura.

GetLeft()

int wxRect::GetLeft() const

Obtiene el punto izquierdo del rectángulo (igual que GetX()).

GetPosition()

wxPoint wxRect::GetPosition() const

Obtiene la posición.

GetRight()

int wxRect::GetRight() const

Obtiene el punto derecho del rectángulo.

GetSize()

wxSize wxRect::GetSize() const

Obtiene el tamaño.

GetTop()

int wxRect::GetTop() const

Obtiene el punto superior del rectángulo (igual que GetY()).

GetTopLeft()

wxPoint wxRect::GetTopLeft() const

Obtiene la posición de la esquina superior izquierda del rectángulo, igual que GetPosition().

GetTopRight()

wxPoint wxRect::GetTopRight() const

Obtiene la posición de la esquina superior derecha.

GetWidth()

int wxRect::GetWidth() const

Obtiene el miembro de anchura.

GetX()

int wxRect::GetX() const

Obtiene el miembro x.

GetY()

int wxRect::GetY() const

Obtiene el miembro y.

Inflate()

wxRect& wxRect::Inflate(const wxSize & diff)

Aumenta el tamaño del rectángulo.

El borde izquierdo se desplaza hacia la izquierda y el derecho hacia la derecha en dx. El borde superior se desplaza hacia arriba y el inferior hacia abajo en dy. (Observar que la anchura y la altura del rectángulo cambian así en 2*dx y 2*dy, respectivamente). Si uno o ambos de dx y dy son negativos, ocurre lo contrario: el tamaño del rectángulo disminuye en la dirección respectiva.

Inflar y desinflar se comporta de forma "natural". Definido de forma más precisa, eso significa:

  1. Los inflados "reales" (es decir, dx y/o dy = 0) no están limitados. Por lo tanto inflar un rectángulo puede causar que su esquina superior izquierda se mueva hacia los números negativos. (2.5.4 y anteriores forzaban la coordenada superior izquierda a no caer por debajo de (0, 0), lo que implicaba un movimiento forzado del rectángulo).
  2. Los desinflados se fijan para no reducir la anchura o la altura del rectángulo por debajo de cero. En estos casos, la esquina superior izquierda se gestiona correctamente. Por ejemplo, un rectángulo en (10, 10) con tamaño (20, 40) que se infla en (-15, -15) pasará a estar situado en (20, 25) con tamaño (0, 10). Por último, obsérvese que la anchura y la altura se tratan de forma independiente. En el ejemplo anterior, la anchura se reduce en 20, mientras que la altura se reduce en 30 (en lugar de detenerse también en 20, cuando la anchura llegaba a cero).
Inflate()

wxRect& wxRect::Inflate(wxCoord diff)

Aumenta el tamaño del rectángulo.

El borde izquierdo se desplaza hacia la izquierda y el derecho hacia la derecha en dx. El borde superior se desplaza hacia arriba y el inferior hacia abajo en dy. (Observar que la anchura y la altura del rectángulo cambian así en 2*dx y 2*dy, respectivamente). Si uno o ambos de dx y dy son negativos, ocurre lo contrario: el tamaño del rectángulo disminuye en la dirección respectiva.

Inflar y desinflar se comporta de forma "natural". Definido de forma más precisa, eso significa:

  1. Los inflados "reales" (es decir, dx y/o dy = 0) no están limitados. Por lo tanto inflar un rectángulo puede causar que su esquina superior izquierda se mueva hacia los números negativos. (2.5.4 y anteriores forzaban la coordenada superior izquierda a no caer por debajo de (0, 0), lo que implicaba un movimiento forzado del rectángulo).
  2. Los desinflados se fijan para no reducir la anchura o la altura del rectángulo por debajo de cero. En estos casos, la esquina superior izquierda se gestiona correctamente. Por ejemplo, un rectángulo en (10, 10) con tamaño (20, 40) que se infla en (-15, -15) pasará a estar situado en (20, 25) con tamaño (0, 10). Por último, obsérvese que la anchura y la altura se tratan de forma independiente. En el ejemplo anterior, la anchura se reduce en 20, mientras que la altura se reduce en 30 (en lugar de detenerse también en 20, cuando la anchura llegaba a cero).
Inflate()

wxRect& wxRect::Inflate( wxCoord dx, wxCoord dy )

Aumenta el tamaño del rectángulo.

El borde izquierdo se desplaza hacia la izquierda y el derecho hacia la derecha en dx. El borde superior se desplaza hacia arriba y el inferior hacia abajo en dy. (Observar que la anchura y la altura del rectángulo cambian así en 2*dx y 2*dy, respectivamente). Si uno o ambos de dx y dy son negativos, ocurre lo contrario: el tamaño del rectángulo disminuye en la dirección respectiva.

Inflar y desinflar se comporta de forma "natural". Definido de forma más precisa, eso significa:

  1. Los inflados "reales" (es decir, dx y/o dy = 0) no están limitados. Por lo tanto inflar un rectángulo puede causar que su esquina superior izquierda se mueva hacia los números negativos. (2.5.4 y anteriores forzaban la coordenada superior izquierda a no caer por debajo de (0, 0), lo que implicaba un movimiento forzado del rectángulo).
  2. Los desinflados se fijan para no reducir la anchura o la altura del rectángulo por debajo de cero. En estos casos, la esquina superior izquierda se gestiona correctamente. Por ejemplo, un rectángulo en (10, 10) con tamaño (20, 40) que se infla en (-15, -15) pasará a estar situado en (20, 25) con tamaño (0, 10). Por último, obsérvese que la anchura y la altura se tratan de forma independiente. En el ejemplo anterior, la anchura se reduce en 20, mientras que la altura se reduce en 30 (en lugar de detenerse también en 20, cuando la anchura llegaba a cero).
Inflate()

wxRect& wxRect::Inflate( wxCoord dx, wxCoord dy ) const

Aumenta el tamaño del rectángulo.

El borde izquierdo se desplaza hacia la izquierda y el derecho hacia la derecha en dx. El borde superior se desplaza hacia arriba y el inferior hacia abajo en dy. (Observar que la anchura y la altura del rectángulo cambian así en 2*dx y 2*dy, respectivamente). Si uno o ambos de dx y dy son negativos, ocurre lo contrario: el tamaño del rectángulo disminuye en la dirección respectiva.

Inflar y desinflar se comporta de forma "natural". Definido de forma más precisa, eso significa:

  1. Los inflados "reales" (es decir, dx y/o dy = 0) no están limitados. Por lo tanto inflar un rectángulo puede causar que su esquina superior izquierda se mueva hacia los números negativos. (2.5.4 y anteriores forzaban la coordenada superior izquierda a no caer por debajo de (0, 0), lo que implicaba un movimiento forzado del rectángulo).
  2. Los desinflados se fijan para no reducir la anchura o la altura del rectángulo por debajo de cero. En estos casos, la esquina superior izquierda se gestiona correctamente. Por ejemplo, un rectángulo en (10, 10) con tamaño (20, 40) que se infla en (-15, -15) pasará a estar situado en (20, 25) con tamaño (0, 10). Por último, obsérvese que la anchura y la altura se tratan de forma independiente. En el ejemplo anterior, la anchura se reduce en 20, mientras que la altura se reduce en 30 (en lugar de detenerse también en 20, cuando la anchura llegaba a cero).
Intersect()

wxRect& wxRect::Intersect(const wxRect & rect)

Modifica este rectángulo para que contenga la parte superpuesta de este rectángulo y el pasado como parámetro.

Valor de retorno

El rectángulo, modificado.

Intersect()

wxRect wxRect::Intersect(const wxRect & rect) const

Devuelve la parte superpuesta de este rectángulo y el pasado como parámetro.

Intersects()

bool wxRect::Intersects(const wxRect & rect) const

Devuelve true si este rectángulo tiene una intersección no vacía con el rectángulo rect y false en caso contrario.

IsEmpty()

bool wxRect::IsEmpty() const

Devuelve true si este rectángulo tiene una anchura o altura menor o igual a 0 y false en caso contrario.

Offset()

void wxRect::Offset(const wxPoint & pt)

Mueve el rectángulo según el desplazamiento especificado.

Si dx es positivo, el rectángulo se desplaza hacia la derecha, si dy es positivo, se desplaza hacia abajo, en caso contrario se desplaza hacia la izquierda o hacia arriba respectivamente.

Offset()

void wxRect::Offset( wxCoord dx, wxCoord dy )

Mueve el rectángulo según el desplazamiento especificado.

Si dx es positivo, el rectángulo se desplaza hacia la derecha, si dy es positivo, se desplaza hacia abajo, en caso contrario se desplaza hacia la izquierda o hacia arriba respectivamente.

SetBottom()

void wxRect::SetBottom(int bottom)

Establece el borde inferior del rectángulo.

Obsérvese que esto no afecta al valor de retorno de GetTop() sino que cambia la altura del rectángulo para establecer su lado inferior en la posición dada.

SetBottomLeft()

void wxRect::SetBottomLeft(const wxPoint & p)

Establece el punto inferior izquierdo del rectángulo.

SetBottomRight()

void wxRect::SetBottomRight(const wxPoint & p)

Establece el punto inferior derecho del rectángulo.

SetHeight()

void wxRect::SetHeight(int height)

Establece la altura.

SetLeft()

void wxRect::SetLeft(int left)

Establece el lado izquierdo del rectángulo.

Obsérvese que como el rectángulo almacena su lado izquierdo y su anchura, al llamar a SetLeft() cambia también la posición del lado derecho - pero conserva la anchura.

SetPosition()

void wxRect::SetPosition(const wxPoint & pos)

Establece la posición.

SetRight()

void wxRect::SetRight(int right)

Establece el lado derecho del rectángulo.

Obsérvese que esto no afecta al valor de retorno de GetLeft(), sino que cambia la anchura del rectángulo para establecer su lado derecho en la posición dada.

SetSize()

void wxRect::SetSize(const wxSize & s)

Establece el tamaño.

SetTop()

void wxRect::SetTop(int top)

Establece el borde superior del rectángulo.

Obsérvese que como el rectángulo almacena su lado superior y su altura, al llamar a SetTop() cambia también la posición del lado inferior - pero preserva la altura.

SetTopLeft()

void wxRect::SetTopLeft(const wxPoint & p)

Establece el punto superior izquierdo del rectángulo.

SetTopRight()

void wxRect::SetTopRight(const wxPoint & p)

Establece el punto superior derecho del rectángulo.

SetWidth()

void wxRect::SetWidth(int width)

Establece la anchura.

SetX()

void wxRect::SetX(int x)

Establece la posición x.

SetY()

void wxRect::SetY(int y)

Establece la posición y.

Union()

wxRect& wxRect::Union(const wxRect & rect)

Modifica el rectángulo para que contenga el cuadro delimitador de este rectángulo y el pasado como parámetro.

Union()

wxRect wxRect::Union(const wxRect & rect) const

Modifica el rectángulo para que contenga el cuadro delimitador de este rectángulo y el pasado como parámetro.

Operadores

operator!=()

bool wxRect::operator!=( const wxRect & r1, const wxRect & r2 )

Operador de desigualdad.

operator*()

wxRect wxRect::operator*( const wxRect & r1, const wxRect & r2 )

Devuelve la intersección de dos rectángulos (que puede estar vacío).

operator*=()

wxRect& wxRect::operator*=(const wxRect & r)

Devuelve la intersección de dos rectángulos (que puede estar vacío).

operator+()

wxRect wxRect::operator+( const wxRect & r1, const wxRect & r2 )

Como Union(), pero no trata especialmente los rectángulos vacíos.

operator+=()

wxRect& wxRect::operator+=(const wxRect & r)

Como Union(), pero no trata especialmente los rectángulos vacíos.

operator=()

wxRect& wxRect::operator=(const wxRect & rect)

Operador de asignación.

operator==()

bool wxRect::operator==( const wxRect & r1, const wxRect & r2 )

Operador de igualdad.

Datos miembro

height

int wxRect::height

Miembro de altura.

width

proto

Miembro de anchura.

x

proto

Coordenada x de la esquina superior izquierda del rectángulo.

y

proto

Coordenada y de la esquina superior izquierda del rectángulo.