VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
generatorInputProducer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 
10 #pragma once
11 
13 
18 #include "gwnavgeneration.h"
19 #include <list>
20 #include <vector>
21 #include <map>
22 #include "boost/shared_ptr.hpp"
23 
25 
27 struct DtNavTagVolumeSet;
28 
29 //Provides triangles to NavData Generator by implementing
30 //the Produce function.
31 class DtGeneratorInputProducer : public Kaim::GeneratorInputProducer
32 {
33 public:
34 
35  typedef std::list<boost::shared_ptr<Kaim::ClientInputTagVolume> > TagVolumeList;
36  typedef std::vector<boost::shared_ptr<Kaim::DynamicNavTag> > NavTagVector;
38  : myVrfNavGenInput(0)
41  , myTerrainInterface(terrainInterface)
42  {
43 
44  }
45 
46  virtual ~DtGeneratorInputProducer();
47 
48  virtual void setTagVolumes(const DtNavTagVolumeSet& tagVolumes);
49 
51  virtual void generateTagVolumes(const Kaim::GeneratorSector& sector,
52  const DtNavTagVolumeSet& tagVolumes,
53  NavTagVector& navTagsOutput, TagVolumeList& tagVolumesOutput);
54 
57  virtual boost::shared_ptr<Kaim::DynamicNavTag> getNavTagData(unsigned navTagIndex,
58  const DtNavTagVolumeSet& tagVolumes,
59  NavTagVector& navTagsOutput);
60 
61  //Implemented to provide triangles to NavData Generator.
62  virtual KyResult Produce(
63  const Kaim::GeneratorSector& sector,
64  Kaim::ClientInputConsumer& inputConsumer);
65 
67  virtual double calculateMaxAreaSize() const;
68 
70  virtual void clipTriangleToArea(const std::vector<Kaim::Vec3f>& maxArea,
71  const std::vector<Kaim::Vec3f>& triPoints,
72  std::vector<std::vector<Kaim::Vec3f> >& outputTris) const;
73 
76 
79 
84 
87 
90 
92  std::map<unsigned, unsigned> myNavTagIndexMap;
93 };
Definition: generatorInputProducer.h:31
std::vector< boost::shared_ptr< Kaim::DynamicNavTag > > NavTagVector
Definition: generatorInputProducer.h:36
const DtRwNavigationProfile * myNavigationProfile
Definition: generatorInputProducer.h:75
DtGeneratorInputProducer(DtTerrainInterface *terrainInterface)
Definition: generatorInputProducer.h:37
virtual void generateTagVolumes(const Kaim::GeneratorSector &sector, const DtNavTagVolumeSet &tagVolumes, NavTagVector &navTagsOutput, TagVolumeList &tagVolumesOutput)
Converts the input tag volumes (in non-Kaim classes) into Kaim NavTags.
Definition: navGeneration.h:84
virtual void setTagVolumes(const DtNavTagVolumeSet &tagVolumes)
std::map< unsigned, unsigned > myNavTagIndexMap
Maps input nav tag indices to nav tag output indices.
Definition: generatorInputProducer.h:92
class DtNavigationGeneratorInput
Definition: navigationGeneratorInput.h:31
DtNavTagVolumeSet myInputTagVolumes
This is the tag volume representation in non-Kaim format.
Definition: generatorInputProducer.h:78
float myMinTerrainAltitude
Definition: generatorInputProducer.h:83
Defines settings for navData generation, to allow navData to be generated differently for different t...
Definition: rwNavigationProfile.h:25
virtual KyResult Produce(const Kaim::GeneratorSector &sector, Kaim::ClientInputConsumer &inputConsumer)
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:100
virtual double calculateMaxAreaSize() const
Calculates the largest size an area can be, measured as the distance along one edge.
virtual void clipTriangleToArea(const std::vector< Kaim::Vec3f > &maxArea, const std::vector< Kaim::Vec3f > &triPoints, std::vector< std::vector< Kaim::Vec3f > > &outputTris) const
Clips the triangle to the specified area.
const DtNavigationGeneratorInput * myVrfNavGenInput
Definition: generatorInputProducer.h:74
unsigned myNextTagVolumeId
The next unique tag volume ID.
Definition: generatorInputProducer.h:86
std::list< boost::shared_ptr< Kaim::ClientInputTagVolume > > TagVolumeList
Definition: generatorInputProducer.h:35
virtual ~DtGeneratorInputProducer()
float myMaxTerrainAltitude
These are in the Kaim coordinate system, and store the highest and lowest polygon points encountered ...
Definition: generatorInputProducer.h:82
DtTerrainInterface * myTerrainInterface
Terrain interface.
Definition: generatorInputProducer.h:89
virtual boost::shared_ptr< Kaim::DynamicNavTag > getNavTagData(unsigned navTagIndex, const DtNavTagVolumeSet &tagVolumes, NavTagVector &navTagsOutput)
Gets the nav tag data to use based on the index. Will find the appropriate existing nav tag...

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)