xmsgeom  1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
triangles.h
Go to the documentation of this file.
1 #pragma once
2 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
10 
11 //----- Included files ---------------------------------------------------------
12 
13 // 3. Standard Library Headers
14 #include <vector>
15 
16 // 4. External Library Headers
17 #include <xmscore/points/pt.h>
18 
19 // 5. Shared Headers
20 #include <xmscore/stl/vector.h>
21 
22 // 6. Non-shared Headers
23 
24 //----- Namespace declaration --------------------------------------------------
25 
26 namespace xms
27 {
28 //----- Constants / Enumerations -----------------------------------------------
29 
30 //----- Forward declarations ---------------------------------------------------
31 
32 //----- Structs / Classes -----------------------------------------------------
33 
34 //----- Function prototypes ----------------------------------------------------
35 
36 double trArea(const Pt3d& a_pt1, const Pt3d& a_pt2, const Pt3d& a_pt3);
37 void trBuildGridPolys(int rows, int cols, VecPt3d& pts, VecInt2d& polys);
38 void trBuildGridTrianglePolys(int rows, int cols, VecPt3d& a_points, VecInt2d& a_polys);
39 
40 //------------------------------------------------------------------------------
44 //------------------------------------------------------------------------------
45 inline int trIncrementIndex(int i)
46 {
47  static const int plus1mod3[3] = {1, 2, 0};
48  return plus1mod3[i];
49 }
50 //------------------------------------------------------------------------------
54 //------------------------------------------------------------------------------
55 inline int trDecrementIndex(int i)
56 {
57  static const int minus1mod3[3] = {2, 0, 1};
58  return minus1mod3[i];
59 }
60 
61 } // namespace xms
Pt3< double > Pt3d
std::vector< Pt3d > VecPt3d
std::vector< VecInt > VecInt2d