gwnavruntime/pathfollower/circlearcsplinesectionblob.h Source File

circlearcsplinesectionblob.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_CircleArcSplineSectionBlob_H
11 #define Navigation_CircleArcSplineSectionBlob_H
12 
16 
17 namespace Kaim
18 {
19 
20 class CircleArcSplineSection;
21 
22 class CircleArcSplineSectionBlob
23 {
24 public:
25  CircleArcSplineSectionBlob() {}
26 
27 public:
28  Vec3f m_startPosition;
29  Vec3f m_endPosition;
30  Vec3f m_center;
31  Vec2f m_startTangent;
32  Vec2f m_endTangent;
33  KyFloat32 m_radius;
34  KyFloat32 m_length;
35  KyUInt32 m_direction; // cast this to RotationDirection
36  KyUInt32 m_startSectionIdx;
37  KyUInt32 m_endSectionIdx;
38 };
39 
40 inline void SwapEndianness(Endianness::Target e, CircleArcSplineSectionBlob& self)
41 {
42  SwapEndianness(e, self.m_startPosition);
43  SwapEndianness(e, self.m_endPosition);
44  SwapEndianness(e, self.m_center);
45  SwapEndianness(e, self.m_startTangent);
46  SwapEndianness(e, self.m_endTangent);
47  SwapEndianness(e, self.m_radius);
48  SwapEndianness(e, self.m_length);
49  SwapEndianness(e, self.m_direction);
50  SwapEndianness(e, self.m_startSectionIdx);
51  SwapEndianness(e, self.m_endSectionIdx);
52 }
53 
54 class CircleArcSplineSectionBlobBuilder : public BaseBlobBuilder<CircleArcSplineSectionBlob>
55 {
56  KY_CLASS_WITHOUT_COPY(CircleArcSplineSectionBlobBuilder)
57 
58 public:
59  CircleArcSplineSectionBlobBuilder(const CircleArcSplineSection* circleArcSplineSection) : m_circleArcSplineSection(circleArcSplineSection) {}
60 
61  virtual void DoBuild();
62 
63 private:
64  const CircleArcSplineSection* m_circleArcSplineSection;
65 };
66 
67 } // namespace Kaim
68 
69 #endif // Navigation_CircleArcSplineSectionBlob_H
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
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