24 Offset_Precision = Offset_DataType + Count_DataType,
25 Offset_Faces = Offset_Precision + Count_Precision,
26 Offset_PQ = Offset_Faces + Count_Faces,
27 Offset_P = Offset_PQ + Count_Style,
28 Offset_Q = Offset_P + Count_Style,
30 Mask_DataType = ((1 << Count_DataType ) - 1) << Offset_DataType,
31 Mask_Precision = ((1 << Count_Precision) - 1) << Offset_Precision,
32 Mask_Faces = ((1 << Count_Faces ) - 1) << Offset_Faces,
33 Mask_PQ = ((1 << Count_Style ) - 1) << Offset_PQ,
34 Mask_P = ((1 << Count_Style ) - 1) << Offset_P,
35 Mask_Q = ((1 << Count_Style ) - 1) << Offset_Q
39 struct DisplayDataType {
44 PointHeightRadius = 4,
48 SegmentHeightRadius = 8,
53 SegmentVerticalQuad = 13,
63 struct DisplayPrecision {
96 VerticalCylinder = 20,
97 VerticalPentagon = 21,
109 Arrow2d5_Double = 41,
111 ArrowPyramid_Double = 43,
113 ArrowTube_Double = 45,
126 OctogonAndCross2d = 60,
128 DiagonalCross2d = 62,
129 DiamondAndCross2d = 63,
130 QuadAndDiagonalCross2d = 64,
143 explicit DisplayFlags(
KyUInt32 flags) : m_flags(flags) {}
144 typedef DisplayDataType DataType;
145 typedef DisplayPrecision Precision;
146 typedef DisplayFaces Faces;
147 typedef DisplayStyle Style;
148 typedef DisplayBits Bits;
151 DisplayFlags() : m_flags(0) {}
153 static DisplayFlags P(DisplayStyle::Enum e) {
return DisplayFlags(
KyUInt32(e) << Bits::Offset_P); }
154 static DisplayFlags PQ(DisplayStyle::Enum e) {
return DisplayFlags(
KyUInt32(e) << Bits::Offset_PQ); }
155 static DisplayFlags Make(Precision::Enum e) {
return DisplayFlags(
KyUInt32(e) << Bits::Offset_Precision); }
156 static DisplayFlags Make(DisplayFaces::Enum e) {
return DisplayFlags(
KyUInt32(e) << Bits::Offset_Faces); }
158 DisplayFlags& Set(DisplayDataType::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_DataType ) | (m_flags & ~Bits::Mask_DataType );
return *
this; }
159 DisplayFlags& Set(DisplayPrecision::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_Precision) | (m_flags & ~Bits::Mask_Precision);
return *
this; }
160 DisplayFlags& Set(DisplayFaces::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_Faces ) | (m_flags & ~Bits::Mask_Faces );
return *
this; }
161 DisplayFlags& SetPQ(DisplayStyle::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_PQ ) | (m_flags & ~Bits::Mask_PQ );
return *
this; }
162 DisplayFlags& SetP(DisplayStyle::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_P ) | (m_flags & ~Bits::Mask_P );
return *
this; }
163 DisplayFlags& SetQ(DisplayStyle::Enum e) { m_flags = (
KyUInt32(e) << Bits::Offset_Q ) | (m_flags & ~Bits::Mask_Q );
return *
this; }
165 DataType::Enum GetDataType()
const {
return (DataType::Enum) ((m_flags & Bits::Mask_DataType ) >> Bits::Offset_DataType); }
166 Precision::Enum GetPrecisionEnum()
const {
return (Precision::Enum)((m_flags & Bits::Mask_Precision) >> Bits::Offset_Precision); }
167 Faces::Enum GetFaces()
const {
return (Faces::Enum) ((m_flags & Bits::Mask_Faces ) >> Bits::Offset_Faces); }
168 Style::Enum GetStylePQ()
const {
return (Style::Enum) ((m_flags & Bits::Mask_PQ ) >> Bits::Offset_PQ); }
169 Style::Enum GetStyleP()
const {
return (Style::Enum) ((m_flags & Bits::Mask_P ) >> Bits::Offset_P); }
170 Style::Enum GetStyleQ()
const {
return (Style::Enum) ((m_flags & Bits::Mask_Q ) >> Bits::Offset_Q); }
174 Precision::Enum precision = GetPrecisionEnum();
177 case Precision::_50cm :
return 0.5f;
178 case Precision::_10cm :
return 0.1f;
179 case Precision::_5cm :
return 0.05f;
180 case Precision::_2cm :
return 0.02f;
181 case Precision::_1cm :
return 0.01f;
182 case Precision::_5mm :
return 0.005f;
183 case Precision::_2mm :
return 0.002f;
184 case Precision::_1mm :
return 0.001f;
185 default :
return 0.05f;
195 SwapEndianness(e,
self.m_flags);
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
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