VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
acoParser.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
7 
9 
10 #pragma once
11 
12 #include "usmtfParser.h"
13 #include <matrix/vlVector.h>
14 
15 
16 #include "vrfutil/vrfutilDefines.h"
18 {
19 
20  enum SHAPE
21  {
22  APOINT = 0,
30  RADARC
31  };
32 
34  enum EFLVL
35  {
36  BRRA = 0,
40  FLFL
41  };
42 
43  enum ALT
44  {
45  GL = 0,
46  MSL,
47  FL //Flight Level
48  };
49 
50  struct Extrusion
51  {
54  double myFloor;
56  double myCeiling;
57  };
58 
59  struct CorridorLeg
60  {
63  double myWidth;
64  double myHeight;
65  };
66 
67 public:
68  DtAcoParser();
69 public:
70  ~DtAcoParser();
71 
72 public:
73 
74  virtual bool parse( istream& stream );
75 
76  virtual void initTypeMap(const std::map<std::string, std::string>& importData);
77 
80  virtual Extrusion& objectExtrusion();
81  virtual std::vector<CorridorLeg>& trackLegList();
82 
83 protected:
84 
85  ObjectInformation* currentAcoData();
86 
88  DtVector getVertex(const string& data);
89 
90  void addVertex( const string& data );
91  void addVertex( const vector<string>& tokens, size_t index );
92  void addVertices( const vector<string>& tokens, size_t startIndex );
93 
96  double parseDistance( const string str );
97 
98 
99 
101  bool parseACMID( const vector<string>& tokens );
103  bool parseGEOLINE( const vector<string>& tokens );
105  bool parsePOLYGON( const vector<string>& tokens );
107  bool parseAPOINT( const vector<string>& tokens );
109  bool parseCIRCLE( const vector<string>& tokens );
111  bool parseCORRIDOR( const vector<string>& tokens );
113  bool parseAORBIT( const vector<string>& tokens );
115  bool parseTRACK(const vector<string>& tokens);
117  bool parseEFFLEVEL(const vector<string>& tokens);
119  bool parseEXER(const vector<string>& tokens);
120  bool parsePOLYARC(const vector<string>& tokens);
121  bool parsePERIOD(const vector<string>& tokens);
122  bool parseTIMEFRAM(const vector<string>& tokens);
123  bool parseAPERIOD(const vector<string>& tokens);
124 
125  bool addLeg(const vector<string>& tokens, size_t startIndex);
126  void updateOrbitVertices( DtVector& firstVertex, DtVector& lastVertex, double width, string alignment );
127 
128 protected:
129 
130  std::map<string, EFLVL> myFltLevelMap;
137  time_period* myTimeFrame;
138  std::vector<CorridorLeg> myLegList;
139 };
140 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)