Candidate_v1.6.1
Last change
on this file was d127c8, checked in by Frederik Heber <heber@…>, 13 years ago |
Moved modules related to Tesselation into own source subfolder.
- This required quite a lot of changes in includes.
|
-
Property mode
set to
100644
|
File size:
1.5 KB
|
Line | |
---|
1 | /*
|
---|
2 | * BoundaryLineSet.hpp
|
---|
3 | *
|
---|
4 | * Created on: Jul 29, 2010
|
---|
5 | * Author: heber
|
---|
6 | */
|
---|
7 |
|
---|
8 | #ifndef BOUNDARYLINESET_HPP_
|
---|
9 | #define BOUNDARYLINESET_HPP_
|
---|
10 |
|
---|
11 | // include config.h
|
---|
12 | #ifdef HAVE_CONFIG_H
|
---|
13 | #include <config.h>
|
---|
14 | #endif
|
---|
15 |
|
---|
16 |
|
---|
17 | #include "BoundaryMaps.hpp"
|
---|
18 |
|
---|
19 | #include <iostream>
|
---|
20 | #include <map>
|
---|
21 |
|
---|
22 | class BoundaryLineSet;
|
---|
23 | class BoundaryPointSet;
|
---|
24 | class BoundaryTriangleSet;
|
---|
25 |
|
---|
26 | class BoundaryLineSet {
|
---|
27 | public:
|
---|
28 | BoundaryLineSet();
|
---|
29 | BoundaryLineSet(BoundaryPointSet * const Point[2], const int number);
|
---|
30 | BoundaryLineSet(BoundaryPointSet * const Point1, BoundaryPointSet * const Point2, const int number);
|
---|
31 | ~BoundaryLineSet();
|
---|
32 |
|
---|
33 | void AddTriangle(BoundaryTriangleSet * const triangle);
|
---|
34 | bool IsConnectedTo(const BoundaryLineSet * const line) const;
|
---|
35 | bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const;
|
---|
36 | bool CheckConvexityCriterion() const;
|
---|
37 | double CalculateConvexity() const;
|
---|
38 | class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const;
|
---|
39 | class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const;
|
---|
40 |
|
---|
41 | class BoundaryPointSet *endpoints[2];
|
---|
42 | TriangleMap triangles;
|
---|
43 | int Nr;
|
---|
44 | bool skipped;
|
---|
45 | };
|
---|
46 |
|
---|
47 | std::ostream & operator << (std::ostream &ost, const BoundaryLineSet &a);
|
---|
48 |
|
---|
49 | template <typename T> void SetEndpointsOrdered(T endpoints[2], T endpoint1, T endpoint2)
|
---|
50 | {
|
---|
51 | if (endpoint1->Nr < endpoint2->Nr) {
|
---|
52 | endpoints[0] = endpoint1;
|
---|
53 | endpoints[1] = endpoint2;
|
---|
54 | } else {
|
---|
55 | endpoints[0] = endpoint2;
|
---|
56 | endpoints[1] = endpoint1;
|
---|
57 | }
|
---|
58 | };
|
---|
59 |
|
---|
60 | #endif /* BOUNDARYLINESET_HPP_ */
|
---|
Note:
See
TracBrowser
for help on using the repository browser.