36 #define HFileInputResult HFileIOResult
37 #define InputOK HIO_OK
38 #define InputVersionMismatch HIO_VersionMismatch
39 #define InputFail HIO_Fail
40 #define InputNotHandled HIO_NotHandled
41 #define InputBadFileName HIO_BadFileName
42 #define InputBadOptions HIO_BadOptions
43 #define InputBadLicense HIO_BadLicense
44 #define InputLibraryNotFound HIO_LibraryNotFound
47 #define HFileOutputResult HFileIOResult
48 #define OutputOK HIO_OK
49 #define OutputVersionMismatch HIO_VersionMismatch
50 #define OutputFail HIO_Fail
51 #define OutputNotHandled HIO_NotHandled
52 #define OutputBadFileName HIO_BadFileName
53 #define OutputBadOptions HIO_BadOptions
54 #define OutputBadLicense HIO_BadLicense
55 #define OutputLibraryNotFound HIO_LibraryNotFound
60 #define LAST_HFileInputResult InputBadOptions
64 #define LAST_HFileOutputResult OutputBadOptions
86 #define LAST_HSignal HSignalClash
113 #define LAST_HShadowMode HShadowHard
132 HPoint(
float X,
float Y,
float Z=0.0f) : x(X), y(Y), z(Z) {};
141 void Set(
float X,
float Y,
float Z=0.0f) { x=X; y=Y; z=Z; };
160 void Add(
float X,
float Y,
float Z=0.0){ x+=X; y+=Y; z+=Z; };
172 HPoint const operator *(
float const rhs)
const
174 return HPoint(x*rhs, y*rhs, z*rhs);
177 HPoint const operator /(
float const rhs)
const
179 return HPoint(x/rhs, y/rhs, z/rhs);
198 HPoint const & operator *= (
float const rhs)
206 HPoint const & operator /= (
float const rhs)
214 bool operator ==(
HPoint const & rhs)
const
219 bool operator !=(
HPoint const & rhs)
const
226 #define HPOINT_EPSILON (1e-5f)
231 return (x - p->
x < epsi) && (x - p->
x > -epsi)
232 && (y - p->
y < epsi) && (y - p->
y > -epsi)
233 && (z - p->
z < epsi) && (z - p->
z > -epsi);
238 return Equal(&p, epsi);
264 bool operator < (
HPointKey const & rhs)
const
279 bool operator > (
HPointKey const & rhs)
const
281 return !(*
this < rhs);
284 bool operator <= (
HPointKey const & rhs)
const
289 else if( (*
this) == rhs ){
295 bool operator >= (
HPointKey const & rhs)
const
300 else if( (*
this) == rhs ){
342 HPlane(
float const A = 0,
float const B = 1,
float const C = 0,
float const D = 0) :
343 m_a(A), m_b(B), m_c(C), m_d(D){
347 m_a(normal.x), m_b(normal.y), m_c(normal.z), m_d(D){
351 m_a(p.a()), m_b(p.b()), m_c(p.c()), m_d(p.d()){
355 inline void Set(
float A,
float B,
float C,
float D) { a(A); b(B); c(C); d(D); }
367 normal.
Set(a(), b(), c());
373 return (m_a - p->m_a < epsi1) && (m_a - p->m_a > -epsi1)
374 && (m_b - p->m_b < epsi1) && (m_b - p->m_b > -epsi1)
375 && (m_c - p->m_c < epsi1) && (m_c - p->m_c > -epsi1)
376 && (m_d - p->m_d < epsi2) && (m_d - p->m_d > -epsi2);
380 inline float a()
const {
return m_a;};
381 inline float b()
const {
return m_b;};
382 inline float c()
const {
return m_c;};
383 inline float d()
const {
return m_d;};
385 inline void a(
float A) {m_a = A;};
386 inline void b(
float B) {m_b = B;};
387 inline void c(
float C) {m_c = C;};
388 inline void d(
float D) {m_d = D;};
398 HPlaneKey(
float const A = 0,
float const B = 1,
float const C = 0,
float const D = 0) :
408 bool operator < (
HPlane const & rhs)
const {
419 else if(p1.a() == p2.a()){
422 else if(p1.b() == p2.b()){
425 else if(p1.c() == p2.c()){
434 bool operator == (
HPlane const & rhs)
const {
443 if( p1.a() == p2.a() &&
452 bool operator >= (
HPlane const & rhs)
const {
453 return !(*
this < rhs);
456 bool operator > (
HPlane const & rhs)
const {
457 return !(*
this < rhs) && !(*
this == rhs);
460 bool operator <= (
HPlane const & rhs)
const {
461 return *
this < rhs || *
this == rhs;
464 bool operator != (
HPlane const & rhs)
const {
465 return !(*
this == rhs);
479 HPixelRGB(
unsigned char R = 0,
unsigned char G = 0,
unsigned char B = 0) : m_r(R), m_g(G), m_b(B) {
485 inline unsigned char r()
const {
return m_r;};
486 inline unsigned char g()
const {
return m_g;};
487 inline unsigned char b()
const {
return m_b;};
489 inline void r(
unsigned char const R) {m_r = R;};
490 inline void g(
unsigned char const G) {m_g = G;};
491 inline void b(
unsigned char const B) {m_b = B;};
494 inline void Set(
unsigned char R,
unsigned char G,
unsigned char B){
501 inline void Setf(
float R,
float G,
float B){
502 r((
unsigned char)(R*255.99f));
503 g((
unsigned char)(G*255.99f));
504 b((
unsigned char)(B*255.99f));
516 unsigned char const R = 0,
517 unsigned char const G = 0,
518 unsigned char const B = 0,
519 unsigned char const A = 0)
526 inline void Set(
unsigned char R,
unsigned char G,
unsigned char B,
unsigned char A=0){
532 inline void Setf(
float R,
float G,
float B,
float A=0.0f){
534 a((
unsigned char)(A*255.99f));
537 inline unsigned char a()
const {
return m_a;};
538 inline void a(
unsigned char const A) {m_a = A;};
568 enum HRegionFaceHighlightMode
self-explantory
Definition: HGlobals.h:79
self-explanatory
Definition: HGlobals.h:33
The HPlaneKey class is the data type of a plane that can be used as a key in STL containers.
Definition: HGlobals.h:395
void CalculateNormal(HPoint &normal) const
Definition: HGlobals.h:365
The HPixelRGB class is the data type of a rgb pixel.
Definition: HGlobals.h:471
void Setf(float R, float G, float B, float A=0.0f)
Definition: HGlobals.h:532
color the selected item and make the rest of the model transparent.
Definition: HGlobals.h:551
HPoint(HPoint const *p)
Definition: HGlobals.h:135
self-explanatory
Definition: HGlobals.h:31
float z
The z-coordinate of a 3-dimensional point.
Definition: HGlobals.h:126
Faces will be visible for cut geometry.
Definition: HGlobals.h:105
#define HPOINT_EPSILON
HPOINT_EPSILON.
Definition: HGlobals.h:226
void Set(HPoint *p)
Definition: HGlobals.h:144
a paint (screen update) has occurred; signal_data is pointer to HRectangle containing window size ...
Definition: HGlobals.h:77
self-explanatory
Definition: HGlobals.h:27
objects have clashed; signal_data is pointer to StencilProbe object that detected a clash; StencilPro...
Definition: HGlobals.h:78
HPointKey(HPoint const *p)
Definition: HGlobals.h:258
void Set(HPoint &p)
Definition: HGlobals.h:150
void Set(HPoint const *p)
Definition: HGlobals.h:147
bool Equal(HPoint const &p, float epsi=HPOINT_EPSILON) const
Definition: HGlobals.h:237
HRefSelType
Definition: HGlobals.h:577
HPointKey(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:255
The HPixelRGBA class is the data type of a rgba pixel.
Definition: HGlobals.h:509
No cut geometry will be visible.
Definition: HGlobals.h:104
float x
The x-coordinate of a 3-dimensional point.
Definition: HGlobals.h:124
HSelectionHighlightMode
Definition: HGlobals.h:547
Definition: HGlobals.h:310
self-explantory
Definition: HGlobals.h:74
self-explantory
Definition: HGlobals.h:75
self-explanatory
Definition: HGlobals.h:28
soft shadow
Definition: HGlobals.h:95
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:326
hard shadow
Definition: HGlobals.h:96
HPointKey(HPoint const &p)
Definition: HGlobals.h:261
HRegionEdgeHighlightMode
Definition: HGlobals.h:561
void Set(float A, float B, float C, float D)
Definition: HGlobals.h:355
use default conditional highlighting
Definition: HGlobals.h:548
void Setf(float R, float G, float B)
Definition: HGlobals.h:501
do not use quick moves for reference selection
Definition: HGlobals.h:581
HCutGeometryVisibility
Definition: HGlobals.h:102
void Set(unsigned char R, unsigned char G, unsigned char B)
Definition: HGlobals.h:494
self-explantory
Definition: HGlobals.h:73
void Set(unsigned char R, unsigned char G, unsigned char B, unsigned char A=0)
Definition: HGlobals.h:526
no shadow
Definition: HGlobals.h:94
self-explanatory
Definition: HGlobals.h:29
use quick move reference highlighting
Definition: HGlobals.h:549
HPoint()
Definition: HGlobals.h:129
HPointKey()
Definition: HGlobals.h:252
float y
The y-coordinate of a 3-dimensional point.
Definition: HGlobals.h:125
self-explanatory
Definition: HGlobals.h:30
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
Edges will be visible for cut geometry.
Definition: HGlobals.h:106
int right
The right position.
Definition: HGlobals.h:314
HPoint(HPoint const &p)
Definition: HGlobals.h:138
bool Equal(HPlane const *p, float epsi1=HPOINT_EPSILON, float epsi2=HPOINT_EPSILON) const
Definition: HGlobals.h:372
self-explantory
Definition: HGlobals.h:80
HPoint(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:132
int left
The left position.
Definition: HGlobals.h:313
do nothing to the selected item, but make the rest of the model transparent.
Definition: HGlobals.h:550
self-explantory
Definition: HGlobals.h:76
Definition: HGlobals.h:248
self-explanatory
Definition: HGlobals.h:32
HShadowMode
Definition: HGlobals.h:92
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:580
void Add(float X, float Y, float Z=0.0)
Definition: HGlobals.h:160
int bottom
The bottom position.
Definition: HGlobals.h:315
use spriting for reference selection
Definition: HGlobals.h:579
The HPlane class is the data type of a plane.
Definition: HGlobals.h:333
void Set(const HPoint &p)
Definition: HGlobals.h:153
self-explantory
Definition: HGlobals.h:72
void Set(float X, float Y, float Z=0.0f)
Definition: HGlobals.h:141
bool Equal(HPoint const *p, float epsi=HPOINT_EPSILON) const
Definition: HGlobals.h:230
HSignal
Definition: HGlobals.h:70
self-explanatory
Definition: HGlobals.h:26
int top
The top position.
Definition: HGlobals.h:316
Both Faces and Edges will be visible.
Definition: HGlobals.h:107
HFileIOResult
Definition: HGlobals.h:24
double ClassifyPoint(HPoint const &p) const
Definition: HGlobals.h:360