Core 1.0
Quadrangle Class Reference

Quadrangles. More...

#include <quadrangle.h>

Public Member Functions

 Quadrangle ()
 Empty.
 
 Quadrangle (const Vector &, const Vector &, const Vector &, const Vector &)
 Create a quadrangle.
 
 Quadrangle (double, double)
 Create a horizontal quadrangle.
 
 Quadrangle (double)
 Create a horizontal quadrangle.
 
 ~Quadrangle ()
 Empty.
 
Vector Vertex (const double &, const double &) const
 Compute the position of a vertex inside the quadrangle.
 
Vector Normal (const double &, const double &) const
 Compute the normal of a vertex inside the quadrangle.
 
Vector Normal () const
 Compute the normal of the quadrangle.
 
void Rotate (const Matrix &)
 Rotate the quadrangle.
 
void Translate (const Vector &)
 Translate the quadrangle.
 
void Scale (const double &)
 Scale the quadrangle.
 
void Transform (const FrameScaled &)
 Transform the quadrangle.
 
Quadrangle Transformed (const FrameScaled &) const
 Transform the quadrangle.
 
Quadrangle Translated (const Vector &) const
 Return a translated quadrangle.
 

Protected Attributes

Vector p [4] = { Vector::Null,Vector::X,Vector::X + Vector::Y,Vector::Y }
 Vertices, stored in counter-clockwize order.
 

Static Protected Attributes

static double epsilon = 1.0e-10
 Internal \epsilon; constant.
 

Detailed Description

Quadrangles.

Quadrangles should be planar and convex.

Constructor & Destructor Documentation

◆ Quadrangle() [1/3]

Quadrangle::Quadrangle ( const Vector & a,
const Vector & b,
const Vector & c,
const Vector & d )
explicit

Create a quadrangle.

Parameters
a,b,c,dVertices.

◆ Quadrangle() [2/3]

Quadrangle::Quadrangle ( double x,
double y )
explicit

Create a horizontal quadrangle.

Parameters
x,yHalf size, the quadrangle vertexes will have (±x ±y) coordinates.

◆ Quadrangle() [3/3]

Quadrangle::Quadrangle ( double r)
explicit

Create a horizontal quadrangle.

Parameters
rRadius, i.e., half size.
See also
Quadrangle::Quadrangle(double, double)

Member Function Documentation

◆ Normal() [1/2]

Vector Quadrangle::Normal ( ) const

Compute the normal of the quadrangle.

The quadrangle should be flat.

◆ Normal() [2/2]

Vector Quadrangle::Normal ( const double & u,
const double & v ) const

Compute the normal of a vertex inside the quadrangle.

Parameters
u,vParametric coordinates of the vertex.

◆ Rotate()

void Quadrangle::Rotate ( const Matrix & r)

Rotate the quadrangle.

Parameters
rRotation matrix.

◆ Scale()

void Quadrangle::Scale ( const double & s)

Scale the quadrangle.

Parameters
sScaling factor.

◆ Transform()

void Quadrangle::Transform ( const FrameScaled & frame)

Transform the quadrangle.

Parameters
frameTransformation.

◆ Transformed()

Quadrangle Quadrangle::Transformed ( const FrameScaled & frame) const

Transform the quadrangle.

Parameters
frameTransformation.

◆ Translate()

void Quadrangle::Translate ( const Vector & t)

Translate the quadrangle.

Parameters
tTranslation vector.

◆ Translated()

Quadrangle Quadrangle::Translated ( const Vector & t) const

Return a translated quadrangle.

Parameters
tTranslation vector.

◆ Vertex()

Vector Quadrangle::Vertex ( const double & u,
const double & v ) const

Compute the position of a vertex inside the quadrangle.

Parameters
u,vParametric coordinates of the vertex.