gwnavruntime/pathfollower/circlearcsplinedisplay.h Source File

circlearcsplinedisplay.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 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 #pragma once
9 
10 
12 
13 
14 namespace Kaim
15 {
16 
17 class DisplayList;
18 class CircleArcSplineSectionBlob;
19 class CircleArcSplineBlob;
20 class PositionOnCircleArcSplineBlob;
21 
22 class CircleArcSplineSectionDisplayConfig
23 {
24 public:
25  CircleArcSplineSectionDisplayConfig() { SetDefaults(); }
26  void SetDefaults();
27 
28  Color m_pointColor;
29  Color m_segmentColor;
30  Color m_arcColor;
31  Color m_indexColor;
32  KyFloat32 m_pointRenderSize;
33 
34  bool m_displayIndex;
35  bool m_displayArcSector;
36  bool m_displayArcRadius;
37  bool m_displayArcTangents;
38 
39  // Both parameters setup the arc precision rendering: at display list feed time,
40  // we use the most precise between:
41  // - m_arcRenderPrecisionMeter and
42  // - m_arcRenderPrecisionRadian * arc radius
43  KyFloat32 m_arcRenderPrecisionMeter;
44  KyFloat32 m_arcRenderPrecisionRadian;
45 };
46 
47 class CircleArcSplineDisplayConfig
48 {
49 public:
50  CircleArcSplineSectionDisplayConfig m_sectionDisplayConfig;
51 };
52 
53 class PositionOnCircleArcSplineDisplayConfig
54 {
55 public:
56  PositionOnCircleArcSplineDisplayConfig() { SetDefaults(); }
57  void SetDefaults();
58 
59  Color m_pointColor;
60  Color m_tangentColor;
61  KyFloat32 m_pointRenderSize;
62 };
63 
64 
65 class CircleArcSplineDisplayListBuilder
66 {
67 public:
68  static void DisplayCircleArcSplineSection(DisplayList* displayList, const CircleArcSplineSectionBlob* circleArcSplineSection, KyUInt32 arcIndex, const CircleArcSplineSectionDisplayConfig& displayConfig);
69  static void DisplayCircleArcSpline(DisplayList* displayList, const CircleArcSplineBlob* spline, const CircleArcSplineDisplayConfig& displayConfig);
70  static void DisplayPositionOnCircleArcSpline(DisplayList* displayList, const PositionOnCircleArcSplineBlob* positionOnSpline, const PositionOnCircleArcSplineDisplayConfig& displayConfig);
71 };
72 
73 } // namespace Kaim
74 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32