41 #define HFileInputResult HFileIOResult
42 #define InputOK HIO_OK
43 #define InputVersionMismatch HIO_VersionMismatch
44 #define InputFail HIO_Fail
45 #define InputNotHandled HIO_NotHandled
46 #define InputBadFileName HIO_BadFileName
47 #define InputBadOptions HIO_BadOptions
48 #define InputBadLicense HIO_BadLicense
49 #define InputLibraryNotFound HIO_LibraryNotFound
52 #define HFileOutputResult HFileIOResult
53 #define OutputOK HIO_OK
54 #define OutputVersionMismatch HIO_VersionMismatch
55 #define OutputFail HIO_Fail
56 #define OutputNotHandled HIO_NotHandled
57 #define OutputBadFileName HIO_BadFileName
58 #define OutputBadOptions HIO_BadOptions
59 #define OutputBadLicense HIO_BadLicense
60 #define OutputLibraryNotFound HIO_LibraryNotFound
65 #define LAST_HFileInputResult InputBadOptions
69 #define LAST_HFileOutputResult OutputBadOptions
91 #define LAST_HSignal HSignalClash
118 #define LAST_HShadowMode HShadowHard
137 HPoint(
float X,
float Y,
float Z=0.0f) : x(X), y(Y), z(Z) {};
146 void Set(
float X,
float Y,
float Z=0.0f) { x=X; y=Y; z=Z; };
165 void Add(
float X,
float Y,
float Z=0.0){ x+=X; y+=Y; z+=Z; };
177 HPoint const operator *(
float const rhs)
const
179 return HPoint(x*rhs, y*rhs, z*rhs);
182 HPoint const operator /(
float const rhs)
const
184 return HPoint(x/rhs, y/rhs, z/rhs);
203 HPoint const & operator *= (
float const rhs)
211 HPoint const & operator /= (
float const rhs)
219 bool operator ==(
HPoint const & rhs)
const
224 bool operator !=(
HPoint const & rhs)
const
231 #define HPOINT_EPSILON (1e-5f)
237 (x - p->
x < epsi) && (x - p->
x > -epsi) &&
238 (y - p->
y < epsi) && (y - p->
y > -epsi) &&
239 (z - p->
z < epsi) && (z - p->
z > -epsi));
244 return Equal(&p, epsi);
270 bool const operator < (
HPointKey const & rhs)
const
285 bool const operator > (
HPointKey const & rhs)
const
287 return !(*
this < rhs);
290 bool const operator <= (
HPointKey const & rhs)
const
295 else if( (*
this) == rhs ){
301 bool const operator >= (
HPointKey const & rhs)
const
306 else if( (*
this) == rhs ){
348 HPlane(
float const A = 0,
float const B = 1,
float const C = 0,
float const D = 0) :
349 m_a(A), m_b(B), m_c(C), m_d(D){
353 m_a(normal.x), m_b(normal.y), m_c(normal.z), m_d(D){
357 m_a(p.a()), m_b(p.b()), m_c(p.c()), m_d(p.d()){
361 inline void Set(
float A,
float B,
float C,
float D) { a(A); b(B); c(C); d(D); }
373 normal.
Set(a(), b(), c());
380 (m_a - p->m_a < epsi1) && (m_a - p->m_a > -epsi1) &&
381 (m_b - p->m_b < epsi1) && (m_b - p->m_b > -epsi1) &&
382 (m_c - p->m_c < epsi1) && (m_c - p->m_c > -epsi1) &&
383 (m_d - p->m_d < epsi2) && (m_d - p->m_d > -epsi2));
387 inline float a()
const {
return m_a;};
388 inline float b()
const {
return m_b;};
389 inline float c()
const {
return m_c;};
390 inline float d()
const {
return m_d;};
392 inline void a(
float A) {m_a = A;};
393 inline void b(
float B) {m_b = B;};
394 inline void c(
float C) {m_c = C;};
395 inline void d(
float D) {m_d = D;};
405 HPlaneKey(
float const A = 0,
float const B = 1,
float const C = 0,
float const D = 0) :
415 bool operator < (
HPlane const & rhs)
const {
426 else if(p1.a() == p2.a()){
429 else if(p1.b() == p2.b()){
432 else if(p1.c() == p2.c()){
441 bool operator == (
HPlane const & rhs)
const {
450 if( p1.a() == p2.a() &&
459 bool operator >= (
HPlane const & rhs)
const {
460 return !(*
this < rhs);
463 bool operator > (
HPlane const & rhs)
const {
464 return !(*
this < rhs) && !(*
this == rhs);
467 bool operator <= (
HPlane const & rhs)
const {
468 return (*
this < rhs) || (*
this == rhs);
471 bool operator != (
HPlane const & rhs)
const {
472 return !(*
this == rhs);
486 HPixelRGB(
unsigned char R = 0,
unsigned char G = 0,
unsigned char B = 0) : m_r(R), m_g(G), m_b(B) {
492 inline unsigned char r()
const {
return m_r;};
493 inline unsigned char g()
const {
return m_g;};
494 inline unsigned char b()
const {
return m_b;};
496 inline void r(
unsigned char const R) {m_r = R;};
497 inline void g(
unsigned char const G) {m_g = G;};
498 inline void b(
unsigned char const B) {m_b = B;};
501 inline void Set(
unsigned char R,
unsigned char G,
unsigned char B){
508 inline void Setf(
float R,
float G,
float B){
509 r((
unsigned char)(R*255.99f));
510 g((
unsigned char)(G*255.99f));
511 b((
unsigned char)(B*255.99f));
523 unsigned char const R = 0,
524 unsigned char const G = 0,
525 unsigned char const B = 0,
526 unsigned char const A = 0)
533 inline void Set(
unsigned char R,
unsigned char G,
unsigned char B,
unsigned char A=0){
539 inline void Setf(
float R,
float G,
float B,
float A=0.0f){
541 a((
unsigned char)(A*255.99f));
544 inline unsigned char a()
const {
return m_a;};
545 inline void a(
unsigned char const A) {m_a = A;};
575 enum HRegionFaceHighlightMode
self-explantory
Definition: HGlobals.h:84
self-explanatory
Definition: HGlobals.h:38
The HPlaneKey class is the data type of a plane that can be used as a key in STL containers.
Definition: HGlobals.h:402
void CalculateNormal(HPoint &normal) const
Definition: HGlobals.h:371
The HPixelRGB class is the data type of a rgb pixel.
Definition: HGlobals.h:478
void Setf(float R, float G, float B, float A=0.0f)
Definition: HGlobals.h:539
color the selected item and make the rest of the model transparent.
Definition: HGlobals.h:558
HPoint(HPoint const *p)
Definition: HGlobals.h:140
self-explanatory
Definition: HGlobals.h:36
float z
The z-coordinate of a 3-dimensional point.
Definition: HGlobals.h:131
Faces will be visible for cut geometry.
Definition: HGlobals.h:110
#define HPOINT_EPSILON
HPOINT_EPSILON.
Definition: HGlobals.h:231
void Set(HPoint *p)
Definition: HGlobals.h:149
a paint (screen update) has occurred; signal_data is pointer to HRectangle containing window size ...
Definition: HGlobals.h:82
self-explanatory
Definition: HGlobals.h:32
objects have clashed; signal_data is pointer to StencilProbe object that detected a clash; StencilPro...
Definition: HGlobals.h:83
HPointKey(HPoint const *p)
Definition: HGlobals.h:264
void Set(HPoint &p)
Definition: HGlobals.h:155
void Set(HPoint const *p)
Definition: HGlobals.h:152
bool Equal(HPoint const &p, float epsi=HPOINT_EPSILON) const
Definition: HGlobals.h:243
HRefSelType
Definition: HGlobals.h:584
HPointKey(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:261
The HPixelRGBA class is the data type of a rgba pixel.
Definition: HGlobals.h:516
No cut geometry will be visible.
Definition: HGlobals.h:109
float x
The x-coordinate of a 3-dimensional point.
Definition: HGlobals.h:129
HSelectionHighlightMode
Definition: HGlobals.h:554
Definition: HGlobals.h:316
self-explantory
Definition: HGlobals.h:79
self-explantory
Definition: HGlobals.h:80
self-explanatory
Definition: HGlobals.h:33
soft shadow
Definition: HGlobals.h:100
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:332
hard shadow
Definition: HGlobals.h:101
HPointKey(HPoint const &p)
Definition: HGlobals.h:267
HRegionEdgeHighlightMode
Definition: HGlobals.h:568
void Set(float A, float B, float C, float D)
Definition: HGlobals.h:361
use default conditional highlighting
Definition: HGlobals.h:555
void Setf(float R, float G, float B)
Definition: HGlobals.h:508
HCutGeometryVisibility
Definition: HGlobals.h:107
void Set(unsigned char R, unsigned char G, unsigned char B)
Definition: HGlobals.h:501
self-explantory
Definition: HGlobals.h:78
void Set(unsigned char R, unsigned char G, unsigned char B, unsigned char A=0)
Definition: HGlobals.h:533
no shadow
Definition: HGlobals.h:99
self-explanatory
Definition: HGlobals.h:34
use quick move reference highlighting
Definition: HGlobals.h:556
HPoint()
Definition: HGlobals.h:134
HPointKey()
Definition: HGlobals.h:258
float y
The y-coordinate of a 3-dimensional point.
Definition: HGlobals.h:130
self-explanatory
Definition: HGlobals.h:35
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:126
Edges will be visible for cut geometry.
Definition: HGlobals.h:111
int right
The right position.
Definition: HGlobals.h:320
HPoint(HPoint const &p)
Definition: HGlobals.h:143
bool Equal(HPlane const *p, float epsi1=HPOINT_EPSILON, float epsi2=HPOINT_EPSILON) const
Definition: HGlobals.h:378
self-explantory
Definition: HGlobals.h:85
HPoint(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:137
int left
The left position.
Definition: HGlobals.h:319
do nothing to the selected item, but make the rest of the model transparent.
Definition: HGlobals.h:557
self-explantory
Definition: HGlobals.h:81
Definition: HGlobals.h:254
self-explanatory
Definition: HGlobals.h:37
HShadowMode
Definition: HGlobals.h:97
HC_BOOLEAN HC_Compute_Normalized_Vector(const HC_POINT *vector, HC_POINT *out_vector)
use whatever the current quick moves preference is
Definition: HGlobals.h:587
void Add(float X, float Y, float Z=0.0)
Definition: HGlobals.h:165
int bottom
The bottom position.
Definition: HGlobals.h:321
use spriting for reference selection
Definition: HGlobals.h:586
The HPlane class is the data type of a plane.
Definition: HGlobals.h:339
void Set(const HPoint &p)
Definition: HGlobals.h:158
self-explantory
Definition: HGlobals.h:77
void Set(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:146
bool Equal(HPoint const *p, float epsi=HPOINT_EPSILON) const
Definition: HGlobals.h:235
HSignal
Definition: HGlobals.h:75
self-explanatory
Definition: HGlobals.h:31
int top
The top position.
Definition: HGlobals.h:322
Both Faces and Edges will be visible.
Definition: HGlobals.h:112
HFileIOResult
Definition: HGlobals.h:29
double ClassifyPoint(HPoint const &p) const
Definition: HGlobals.h:366