All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DoublePlaneMethods.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #ifndef __apps_on_maps__DoublePlaneMethods__
4 #define __apps_on_maps__DoublePlaneMethods__
5 
6 
7 #include "Geometry.h"
8 #include "VectorMath.h"
9 #include "DoublePlane.h"
10 
11 #include <vector>
12 
13 namespace Eegeo
14 {
15  namespace Geometry
16  {
17  namespace DoublePlanes
18  {
19  bool IntersectsLineSegment(const DoublePlane& plane, const dv3& lineSegmentStart, const dv3& lineSegmentEnd, dv3& out_intersectionPoint, double& out_param);
20 
21 
22  enum LineSegmentClassification
23  {
24  LineSegmentClassification_PositiveSide,
25  LineSegmentClassification_NegativeSide,
26  LineSegmentClassification_Intersects_StartOnPositiveSide,
27  LineSegmentClassification_Intersects_StartOnNegativeSide
28  };
29 
30  LineSegmentClassification ClassifyLineSegment(const DoublePlane& plane, const dv3& lineSegmentStart, const dv3& lineSegmentEnd, double& out_param);
31 
33  DoublePlane BuildBestFitFromPoints(const std::vector<dv3>& points);
34  }
35  }
36 }
37 
38 #endif /* defined(__apps_on_maps__DoublePlaneMethods__) */