Guiliani  Version 2.6 revision 7293 (documentation build 12)
Triangulate.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef __TRIANGULATE_H__
11#define __TRIANGULATE_H__
12
13#include "eC_Types.h"
14#include "eC_Math.h"
15
16#include "GUIPoint.h"
17
21{
22public:
26 x(eC_FromInt(0)),
27 y(eC_FromInt(0))
28 {}
29
34 Vector2(const eC_Value& vX, const eC_Value& vY) :
35 x(vX),
36 y(vY)
37 {}
38
43 Vector2 operator+(Vector2 rightVec) const
44 {
45 return Vector2(*this) += rightVec;
46 }
47
52 Vector2 operator-(Vector2 rightVec) const
53 {
54 return Vector2(*this) -= rightVec;
55 }
56
61 Vector2 operator*(float scalar) const
62 {
63 return Vector2(*this) *= scalar;
64 }
65
70 Vector2 operator/(float scalar) const
71 {
72 return Vector2(*this) /= scalar;
73 }
74
80 {
81 x += rightVec.x;
82 y += rightVec.y;
83 return *this;
84 }
85
91 {
92 x -= rightVec.x;
93 y -= rightVec.y;
94 return *this;
95 }
96
101 Vector2& operator*=(float scalar)
102 {
103 x = eC_Mul(x, scalar);
104 y = eC_Mul(y, scalar);
105 return *this;
106 }
107
112 Vector2& operator/=(float scalar)
113 {
114 x = eC_Div(x, scalar);
115 y = eC_Div(y, scalar);
116 return *this;
117 }
118
124 {
125 x = rightVec.x;
126 y = rightVec.y;
127 return *this;
128 }
129
134 bool operator==(const Vector2& rightVec) const
135 {
136 return (x == rightVec.x && y == rightVec.y);
137 }
138
143 bool operator!=(const Vector2& rightVec) const
144 {
145 return !operator==(rightVec);
146 }
147
148 eC_Value x;
149 eC_Value y;
150};
151
155{
156public:
160 {
161 CW = 1,
162 CCW = 2
163 };
164
165public:
174 static eC_Bool Run(
175 eC_Value* pvPoints,
176 const eC_UInt& uiCount,
177 const WindingOrder& eOrder,
178 eC_UInt** puiTriangleIndices,
179 eC_UInt& uiTriCount);
180};
181
182#endif
Definition: Triangulate.h:155
WindingOrder
Definition: Triangulate.h:160
@ CW
clockwise
Definition: Triangulate.h:161
@ CCW
counter-clockwise
Definition: Triangulate.h:162
static eC_Bool Run(eC_Value *pvPoints, const eC_UInt &uiCount, const WindingOrder &eOrder, eC_UInt **puiTriangleIndices, eC_UInt &uiTriCount)
Definition: Triangulate.h:21
Vector2 & operator/=(float scalar)
Definition: Triangulate.h:112
Vector2 operator+(Vector2 rightVec) const
Definition: Triangulate.h:43
Vector2()
Definition: Triangulate.h:25
eC_Value x
x-coordinate
Definition: Triangulate.h:148
Vector2 operator*(float scalar) const
Definition: Triangulate.h:61
bool operator!=(const Vector2 &rightVec) const
Definition: Triangulate.h:143
Vector2 & operator-=(Vector2 rightVec)
Definition: Triangulate.h:90
Vector2 operator/(float scalar) const
Definition: Triangulate.h:70
Vector2 operator-(Vector2 rightVec) const
Definition: Triangulate.h:52
Vector2 & operator=(Vector2 rightVec)
Definition: Triangulate.h:123
Vector2(const eC_Value &vX, const eC_Value &vY)
Definition: Triangulate.h:34
Vector2 & operator+=(Vector2 rightVec)
Definition: Triangulate.h:79
bool operator==(const Vector2 &rightVec) const
Definition: Triangulate.h:134
Vector2 & operator*=(float scalar)
Definition: Triangulate.h:101
eC_Value y
y-coordinate
Definition: Triangulate.h:149