gwnavruntime/pathfollower/circlearcsplinedisplay.h Source File

circlearcsplinedisplay.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 
8 // primary contact: LAPA - secondary contact: NOBODY
9 
10 #ifndef Navigation_CircleArcSplineDisplay_H
11 #define Navigation_CircleArcSplineDisplay_H
12 
13 
15 
16 
17 namespace Kaim
18 {
19 
20 class ScopedDisplayList;
21 class CircleArcSplineSectionBlob;
22 class CircleArcSplineBlob;
23 class PositionOnCircleArcSplineBlob;
24 
25 class CircleArcSplineSectionDisplayConfig
26 {
27 public:
28  CircleArcSplineSectionDisplayConfig() { SetDefaults(); }
29  void SetDefaults();
30 
31  VisualShapeColor m_pointColor;
32  VisualColor m_segmentColor;
33  VisualColor m_arcColor;
34  VisualColor m_indexColor;
35  KyFloat32 m_pointRenderSize;
36 
37  bool m_displayIndex;
38  bool m_displayArcSector;
39  bool m_displayArcRadius;
40  bool m_displayArcTangents;
41 
42  // Both parameters setup the arc precision rendering: at display list feed time,
43  // we use the most precise between:
44  // - m_arcRenderPrecisionMeter and
45  // - m_arcRenderPrecisionRadian * arc radius
46  KyFloat32 m_arcRenderPrecisionMeter;
47  KyFloat32 m_arcRenderPrecisionRadian;
48 };
49 
50 class CircleArcSplineDisplayConfig
51 {
52 public:
53  CircleArcSplineSectionDisplayConfig m_sectionDisplayConfig;
54 };
55 
56 class PositionOnCircleArcSplineDisplayConfig
57 {
58 public:
59  PositionOnCircleArcSplineDisplayConfig() { SetDefaults(); }
60  void SetDefaults();
61 
62  VisualShapeColor m_pointColor;
63  VisualColor m_tangentColor;
64  KyFloat32 m_pointRenderSize;
65 };
66 
67 
68 class CircleArcSplineDisplayListBuilder
69 {
70 public:
71  static void DisplayCircleArcSplineSection(ScopedDisplayList* displayList, const CircleArcSplineSectionBlob* circleArcSplineSection, KyUInt32 arcIndex, const CircleArcSplineSectionDisplayConfig& displayConfig);
72  static void DisplayCircleArcSpline(ScopedDisplayList* displayList, const CircleArcSplineBlob* spline, const CircleArcSplineDisplayConfig& displayConfig);
73  static void DisplayPositionOnCircleArcSpline(ScopedDisplayList* displayList, const PositionOnCircleArcSplineBlob* positionOnSpline, const PositionOnCircleArcSplineDisplayConfig& displayConfig);
74 };
75 
76 } // namespace Kaim
77 
78 #endif
Definition: gamekitcrowddispersion.h:20
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43