Dillo v3.1.1-46-g8a360e32
Loading...
Searching...
No Matches
dw::core::Polygon Class Reference

dw::core::Shape implemtation for polygons. More...

#include <types.hh>

Public Member Functions

 Polygon ()
 
 ~Polygon ()
 
void draw (core::View *view, core::style::Style *style, int x, int y)
 
void addPoint (int x, int y)
 
bool isPointWithin (int x, int y)
 
- Public Member Functions inherited from lout::object::Object
virtual ~Object ()
 The destructor is defined as virtual (but not abstract), so that destruction of Object's works properly.
 
virtual bool equals (Object *other)
 Returns, whether two objects are equal.
 
virtual int hashValue ()
 Return a hash value for the object.
 
virtual Objectclone ()
 Return an exact copy of the object.
 
virtual void intoStringBuffer (misc::StringBuffer *sb)
 Store a textual representation of the object in a misc::StringBuffer.
 
const char * toString ()
 Use object::Object::intoStringBuffer to return a textual representation of the object.
 
virtual size_t sizeOf ()
 Return the number of bytes, this object totally uses.
 

Private Member Functions

int zOfVectorProduct (int x1, int y1, int x2, int y2)
 Return the z-coordinate of the vector product of two vectors, whose z-coordinate is 0 (so that x and y of the vector product is 0, too).
 
bool linesCross0 (int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2)
 Return, whether the line, limited by (ax1, ay1) and (ax2, ay2), crosses the unlimited line, determined by two points (bx1, by1) and (bx2, by2).
 
bool linesCross (int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2)
 Return, whether the line, limited by (ax1, ay1) and (ax2, ay2), crosses the line, limited by (bx1, by1) and (bx2, by2).
 

Private Attributes

lout::misc::SimpleVector< Point > * points
 
int minx
 
int miny
 
int maxx
 
int maxy
 

Detailed Description

dw::core::Shape implemtation for polygons.

Definition at line 104 of file types.hh.

Constructor & Destructor Documentation

◆ Polygon()

dw::core::Polygon::Polygon ( )

Definition at line 124 of file types.cc.

References maxx, maxy, minx, miny, and points.

◆ ~Polygon()

dw::core::Polygon::~Polygon ( )

Definition at line 131 of file types.cc.

References points.

Member Function Documentation

◆ addPoint()

void dw::core::Polygon::addPoint ( int  x,
int  y 
)

Definition at line 156 of file types.cc.

References lout::misc::max(), maxx, maxy, lout::misc::min(), minx, miny, and points.

Referenced by Html_tag_content_area(), and main().

◆ draw()

void dw::core::Polygon::draw ( core::View view,
core::style::Style style,
int  x,
int  y 
)
virtual

◆ isPointWithin()

bool dw::core::Polygon::isPointWithin ( int  x,
int  y 
)
virtual

Implements dw::core::Shape.

Definition at line 200 of file types.cc.

References linesCross(), maxx, maxy, minx, miny, and points.

Referenced by main().

◆ linesCross()

bool dw::core::Polygon::linesCross ( int  ax1,
int  ay1,
int  ax2,
int  ay2,
int  bx1,
int  by1,
int  bx2,
int  by2 
)
private

Return, whether the line, limited by (ax1, ay1) and (ax2, ay2), crosses the line, limited by (bx1, by1) and (bx2, by2).

Definition at line 189 of file types.cc.

References _MSG, and linesCross0().

Referenced by isPointWithin().

◆ linesCross0()

bool dw::core::Polygon::linesCross0 ( int  ax1,
int  ay1,
int  ax2,
int  ay2,
int  bx1,
int  by1,
int  bx2,
int  by2 
)
private

Return, whether the line, limited by (ax1, ay1) and (ax2, ay2), crosses the unlimited line, determined by two points (bx1, by1) and (bx2, by2).

TODO Some more description

Definition at line 173 of file types.cc.

References zOfVectorProduct().

Referenced by linesCross().

◆ zOfVectorProduct()

int dw::core::Polygon::zOfVectorProduct ( int  x1,
int  y1,
int  x2,
int  y2 
)
inlineprivate

Return the z-coordinate of the vector product of two vectors, whose z-coordinate is 0 (so that x and y of the vector product is 0, too).

Definition at line 115 of file types.hh.

Referenced by linesCross0().

Member Data Documentation

◆ maxx

int dw::core::Polygon::maxx
private

Definition at line 108 of file types.hh.

Referenced by addPoint(), isPointWithin(), and Polygon().

◆ maxy

int dw::core::Polygon::maxy
private

Definition at line 108 of file types.hh.

Referenced by addPoint(), isPointWithin(), and Polygon().

◆ minx

int dw::core::Polygon::minx
private

Definition at line 108 of file types.hh.

Referenced by addPoint(), isPointWithin(), and Polygon().

◆ miny

int dw::core::Polygon::miny
private

Definition at line 108 of file types.hh.

Referenced by addPoint(), isPointWithin(), and Polygon().

◆ points

lout::misc::SimpleVector<Point>* dw::core::Polygon::points
private

Definition at line 107 of file types.hh.

Referenced by addPoint(), draw(), isPointWithin(), Polygon(), and ~Polygon().


The documentation for this class was generated from the following files: