source: GTP/trunk/Lib/Vis/Preprocessing/src/havran/ktbconf.h @ 2582

Revision 2582, 2.1 KB checked in by bittner, 16 years ago (diff)

Havran Ray Caster compiles and links, but still does not work

Line 
1// ===================================================================
2// $Id: $
3//
4// ktb.h
5//      definition of classes for CKTB tree building up and traversal
6//
7// Class: CKTBNodeAbstract, SKTBNode, CKTBAllocMan, CKTBNodeIterator
8//
9// REPLACEMENT_STRING
10//
11// Copyright by Vlastimil Havran, 2006 - email to vhavran AT seznam.cz
12// Initial coding by Vlastimil Havran, 2006
13
14#ifndef __KTBCONF_H__
15#define __KTBCONF_H__
16
17// GOLEM headers
18#include "configh.h"
19#include "subdivm.h"
20#ifdef __SSE__
21// SSE supported
22#include <xmmintrin.h>
23#endif
24
25namespace GtpVisibilityPreprocessor {
26
27#ifdef __SSE__
28// The second parameter is
29// 
30#define GPREFETCH(A, B) _mm_prefetch((const char*)A, B)
31#else
32#define GPREFETCH(A, B) 
33#endif
34 
35#if defined(__INTEL_COMPILER)||defined(_MSC_VER)
36// Intel compiler or Microsoft Compiler
37#define GALIGN16 __declspec(align(16))
38#endif
39#ifndef __INTEL_COMPILER
40#ifdef __GNUC__
41// GNU compiler - somehow correct, but it crashes during
42// compilation for GCC 4.1.2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
43//#define GALIGN16 __attribute((aligned(16)))
44#undef  GALIGN16
45#define GALIGN16
46#endif
47#endif
48 
49
50// forward declarations
51class CObjectList;
52
53// The statistics for construction
54#define _KTB_CONSTR_STATS
55
56// If to use 8 Bytes representation of the node
57#define _KTB8Bytes
58
59// If to use allocated boxes in minbox nodes or allocate
60// them as a whole nodes, the difference is access time
61// when the boxes are not needed
62#define _SHORT_FORM_MINBOX
63
64// -----------------------------------------------
65// The containter at the leaves or interior node (tagged object lists)
66// We use vector<CObject3D*> representation of object list
67typedef CObjectList* CKTBObjectContainer;
68
69// ==============================================
70// definition of axes of spatial subdivision
71
72class CKTBAxes
73{
74public:
75  enum Axes {
76    // The axes of a splitting plane
77    EE_X_axis = 0,
78    EE_Y_axis = 1,
79    EE_Z_axis = 2,
80    // The leaf node, full or empty
81    EE_Leaf = 3,
82    // The link node for DFS order representation
83    EE_Link = 4,
84    EE_X_axisBox = 5,
85    EE_Y_axisBox = 6,
86    EE_Z_axisBox = 7,
87  };
88  enum {
89    EE_Mask = 0x7
90  };
91};
92
93}
94
95#endif //  __KTBCONF_H__
Note: See TracBrowser for help on using the repository browser.