VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simModelRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
17 
20 
21 #include <vlutil/vlMachineTypes.h>
22 
23 #include <boost/unordered_map.hpp>
24 
25 #include <tbb/spin_rw_mutex.h>
26 
27 class DtFilename;
28 class DtEntityType;
30 class DtAppearance;
32 
34 DT_DLL_vantageTerrainImplementation std::size_t hash_value(const DtAppearance& appearance);
35 DT_DLL_vantageTerrainImplementation bool operator== (const DtAppearance& app1, const DtAppearance& app2);
36 
39 {
40 public:
43 
45  virtual void lookupGeometries(
46  const DtFilename& file, const DtAppearance& appearance,
47  DtCollisionObjectList& objects);
48 
49 protected:
50  virtual makVrv::DtOsgArticulatedModel* createModel(const DtFilename& file) const;
52  virtual makVrf::DtSurfaceCharacteristicMapConstPtr surfaceCharacteristicsMapForFile(const DtFilename& input) const;
53  virtual DtString modelDefinitionName(const DtFilename& file) const;
54 
55  virtual void setModelState(makVrv::DtOsgArticulatedModel& model, DtAppearance appearance) const;
56  virtual void setModelAttributeState(makVrv::DtOsgArticulatedModel& model,
57  makVrv::DtEntityAppearanceMapper& mapper, const DtAppearance& app, DtAppearAttribute attr) const;
58  virtual osg::Node* getRootNode(makVrv::DtOsgArticulatedModel& model) const;
59  virtual void parseTerrain(osg::Node*, makVrf::DtSurfaceCharacteristicMapConstPtr surfCharMap, DtCollisionObjectList& output) const;
60 
62  class EntityInfo
63  {
64  public:
65  explicit EntityInfo(DtSimModelRepository& rep, const DtFilename& file);
66 
67  void collisionObjectsForAppearance(DtAppearance appearance, DtCollisionObjectList& objects);
68 
69  protected:
70  DtCollisionObjectList createAppearance(DtAppearance appearance);
71 
72  typedef boost::unordered_map<DtAppearance, DtCollisionObjectList> AppearanceMap;
73 
74  mutable tbb::spin_rw_mutex myMutex;
76  const std::unique_ptr<makVrv::DtOsgArticulatedModel> myModel;
79  };
80 
81  friend class EntityInfo;
82 
83  typedef boost::unordered_map<DtFilename, std::shared_ptr<EntityInfo> > EntityMap;
84 
86  const std::unique_ptr<makVrv::DtEntityAppearanceMapperFactory> myAppearanceMapperFactory;
87 
88  mutable tbb::spin_rw_mutex myMutex;
90 };
std::shared_ptr< const DtSurfaceCharacteristicMap > DtSurfaceCharacteristicMapConstPtr
Definition: surfaceCharacteristicsMap.h:36
boost::unordered_map< DtAppearance, DtCollisionObjectList > AppearanceMap
Definition: simModelRepository.h:72
Manager for bullet objects created from vrv models.
Definition: simModelRepository.h:38
Decoder for converting a particular entity type&#39;s appearance bits into generic enumerated values...
Definition: DtEntityAppearanceMapper.h:25
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:215
const std::unique_ptr< makVrv::DtEntityAppearanceMapperFactory > myAppearanceMapperFactory
Definition: simModelRepository.h:86
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Contains makVrv::DtEntityAppearanceMapper class.
An articulated model manipulator for controlling an articulated model. Supports indirect rendering of...
Definition: DtOsgArticulatedModel.h:67
boost::unordered_map< DtFilename, std::shared_ptr< EntityInfo > > EntityMap
Definition: simModelRepository.h:83
DtVantageTerrainEngine & myVantageTerrainEngine
Definition: simModelRepository.h:85
makVrf::DtSurfaceCharacteristicMapConstPtr mySurfaceCharacteristicsFile
Definition: simModelRepository.h:77
Holds all the info for a given entity model.
Definition: simModelRepository.h:62
Contains makVrv::DtEntityAppearanceMapperFactory class.
tbb::spin_rw_mutex myMutex
Definition: simModelRepository.h:88
std::size_t hash_value(const DtNodeBoundingInfoPtr &p)
needed for boost::unordered
Definition: boundingNodeInfo.h:98
EntityMap myEntityMap
Definition: simModelRepository.h:89
std::list< std::shared_ptr< btCollisionObject > > DtCollisionObjectList
Definition: bulletUtil.h:47
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
AppearanceMap myAppearances
Definition: simModelRepository.h:78
tbb::spin_rw_mutex myMutex
Definition: simModelRepository.h:74
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector. This is the terrain engine that powers the DtVantageTerrainImplementation. The DtVantageTerrainEngine runs the DtDe it its own thread, and processes commands thought the command queue.
Definition: vantageTerrainEngine.h:112
Contains the makVrv::DtOsgArticulatedModel class declaration.
const std::unique_ptr< makVrv::DtOsgArticulatedModel > myModel
Definition: simModelRepository.h:76
DtSimModelRepository & myModelRepository
Definition: simModelRepository.h:75

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)