gwnavruntime/pathfollower/circlearcsplinesectionblob.h Source File

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