VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSwitchTerrainFeature.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
11 #include <vrvOsg/vrvOsg.h>
12 
15 
16 #include <tbb/spin_mutex.h>
17 
18 namespace makVrv
19 {
20  class DtDynamicTerrainGeometry;
21  class DtDynamicTerrainChange;
22  class DtDynamicTerrainSwitch;
23 
25  {
26  public:
27  explicit DtSwitchTerrainFeature(
28  DtDynamicTerrainSwitch* switcher,
29  const DtString& stateName,
30  const DtDynamicTerrainSwitchNode::ValueChildMap& valueChildMap,
31  const osg::BoundingSphere& sphere,
32  const boost::shared_ptr<DtDynamicTerrainFeature>& parent);
33 
34  virtual DtString description() const;
35 
36  virtual const DtDynamicTerrainFeature* parentFeature() const;
37 
38  virtual void iterateCommands( const boost::function<void (const DtDynamicTerrainChange&)>& callback) const;
39 
40  virtual const DtDynamicTerrainGeometry* geometry() const;
41  virtual const DtDynamicTerrainGeometry* originalGeometry() const;
42 
43  virtual bool matches(const DtDynamicTerrainChange& command, bool useOriginalGeometry) const;
44  virtual bool matches(const DtDynamicTerrainGeometry&, bool useOriginalGeometry) const;
45 
46  virtual void changeState(const DtDynamicTerrainChanges& changes);
47 
50  virtual bool stringValueToState( const DtString& valueName, int &state ) const;
51 
52  virtual void setState(const DtDynamicTerrainChange* command);
53 
54  virtual bool isInDefaultState() const;
55  virtual bool lastStateWasDefaultState() const;
56 
57  protected:
58  const boost::scoped_ptr<DtDynamicTerrainGeometry> myGeometry;
59  const boost::scoped_ptr<DtDynamicTerrainGeometry> myOriginalGeometry;
60  const boost::shared_ptr<DtDynamicTerrainFeature> myParentFeature;
63 
65  typedef tbb::spin_mutex Mutex;
66  mutable Mutex myMutex;
67 
68  boost::scoped_ptr<DtDynamicTerrainSwitch> mySwitcher;
69  };
70 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)