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 
24 
26 struct DtNavTagVolumeSet;
27 
28 //Provides triangles to NavData Generator by implementing
29 //the Produce function.
30 class DtGeneratorInputProducer : public Kaim::GeneratorInputProducer
31 {
32 public:
33 
34  typedef std::list<std::shared_ptr<Kaim::ClientInputTagVolume> > TagVolumeList;
35  typedef std::vector<std::shared_ptr<Kaim::DynamicNavTag> > NavTagVector;
37  : myVrfNavGenInput(0)
40  , myTerrainInterface(terrainInterface)
41  {
42 
43  }
44 
45  virtual ~DtGeneratorInputProducer() override;
46 
47  virtual void setTagVolumes(const DtNavTagVolumeSet& tagVolumes);
48 
50  virtual void generateTagVolumes(const Kaim::GeneratorSector& sector,
51  const DtNavTagVolumeSet& tagVolumes,
52  NavTagVector& navTagsOutput, TagVolumeList& tagVolumesOutput);
53 
56  virtual std::shared_ptr<Kaim::DynamicNavTag> getNavTagData(unsigned navTagIndex,
57  const DtNavTagVolumeSet& tagVolumes,
58  NavTagVector& navTagsOutput);
59 
60  //Implemented to provide triangles to NavData Generator.
61  virtual KyResult Produce(const Kaim::GeneratorSector& sector, Kaim::ClientInputConsumer& inputConsumer) override;
62 
64  virtual double calculateMaxAreaSize() const;
65 
67  virtual void clipTriangleToArea(const std::vector<Kaim::Vec3f>& maxArea,
68  const std::vector<Kaim::Vec3f>& triPoints,
69  std::vector<std::vector<Kaim::Vec3f> >& outputTris) const;
70 
73 
76 
81 
84 
87 
89  std::map<unsigned, unsigned> myNavTagIndexMap;
90 };
Definition: generatorInputProducer.h:30
const DtRwNavigationProfile * myNavigationProfile
Definition: generatorInputProducer.h:72
DtGeneratorInputProducer(DtTerrainInterface *terrainInterface)
Definition: generatorInputProducer.h:36
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:83
virtual void setTagVolumes(const DtNavTagVolumeSet &tagVolumes)
std::map< unsigned, unsigned > myNavTagIndexMap
Maps input nav tag indices to nav tag output indices.
Definition: generatorInputProducer.h:89
class DtNavigationGeneratorInput
Definition: navigationGeneratorInput.h:31
DtNavTagVolumeSet myInputTagVolumes
This is the tag volume representation in non-Kaim format.
Definition: generatorInputProducer.h:75
float myMinTerrainAltitude
Definition: generatorInputProducer.h:80
Defines settings for navData generation, to allow navData to be generated differently for different t...
Definition: rwNavigationProfile.h:25
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:93
virtual std::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...
virtual double calculateMaxAreaSize() const
Calculates the largest size an area can be, measured as the distance along one edge.
virtual KyResult Produce(const Kaim::GeneratorSector &sector, Kaim::ClientInputConsumer &inputConsumer) override
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:71
std::vector< std::shared_ptr< Kaim::DynamicNavTag > > NavTagVector
Definition: generatorInputProducer.h:35
unsigned myNextTagVolumeId
The next unique tag volume ID.
Definition: generatorInputProducer.h:83
float myMaxTerrainAltitude
These are in the Kaim coordinate system, and store the highest and lowest polygon points encountered ...
Definition: generatorInputProducer.h:79
std::list< std::shared_ptr< Kaim::ClientInputTagVolume > > TagVolumeList
Definition: generatorInputProducer.h:34
DtTerrainInterface * myTerrainInterface
Terrain interface.
Definition: generatorInputProducer.h:86
virtual ~DtGeneratorInputProducer() override

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)