VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectDataStateProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vrfGuiNetworkCommon/vrfDataProcessorInterface.inl>
14 #include <vrfGuiCore/DtVrfObjectDataStateObjectAgent.hpp>
17 
18 namespace makVrf
19 {
20  class DtNetworkMessageInterfaceHandlerAgent;
21 
23  class DT_DLL_vrfGuiNetworkCommon DtVrfObjectDataStateProcessor : public DtVrfDataProcessor<DtVrfObjectDataStateObjectAgent>
24  {
25  public:
27 
29  DtVrfObjectDataStateProcessor(DtStateDataManager*, makVrv::DtBaseConnection&, int sessionId, int messageVersion);
30 
33 
35  virtual void createAndSendState(DtStateData* sd,
36  makVrv::DtSimStateObjectAgent& objectDriver, bool force = false);
37 
38  virtual const makVrv::DtSimState& emptyState() const;
39 
40  virtual void setState(const DtStateData*, makVrv::DtSimState& state);
41 
42  static const char* ProcessorName() { return "DtVrfObjectDataStateProcessor"; };
43  virtual const char* processorName() const { return ProcessorName(); };
44 
46  virtual void setLightweightMode(bool);
47  bool lightweightMode() const
48  {
49  return myLightweightMode;
50  }
51 
52  boost::signals2::signal<void (const std::vector<DtRangeItem>&)> signal_addAdditionalRangeRingItems;
53 
54  protected:
55 
57  virtual void addSimData(DtStateData* listener);
58  virtual void removeData(Legion::UInt64 legionGlobalId);
59  virtual void slot_postUpdateCallback(const DtStateData*);
60  virtual void setupObjectStateData();
61  virtual void addRangeRingItemToVisuals(const DtRangeItem& item);
62  virtual bool rangeItemsFrom(const DtStateData* sd, const DtRangeItems& sourceItems, std::vector<DtRangeItem>& items);
63  virtual bool shouldForceObjectUpdate(const DtFrameStateInterface*) const;
64  virtual void slot_visualizerCreationDisabled(bool b, int type);
65  virtual void addToState(const DtStateData* sd, makVrv::DtSimState& baseState);
66  virtual void updateOnlyModifiedStatePropertiesSince(const DtRwProperties& source, DtRwProperties& target, double since);
67 
68  protected:
69  typedef std::map<makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState> Cache;
71 
74 
75  mutable std::set<std::string> myRangeLabels;
76  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
77 
80  };
81 
83  {
84  public:
87 
89 
92  static void registerInstance(makVrv::DtBaseConnection& conn, DtVrfObjectDataStateProcessorCreator* instance);
93 
94  virtual DtVrfObjectDataStateProcessor* create(DtStateDataManager*, makVrv::DtBaseConnection&, int sessionId, int messageVersion);
95  };
96 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: vrfDataProcessorInterface.h:64
Definition: vrfObjectDataStateProcessor.h:82
int myMessageVersion
Definition: vrfObjectDataStateProcessor.h:73
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
Definition: rangeItem.h:149
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
DtNetworkMessageInterfaceHandlerAgent * myNetworkMessageInterfaceHandlerAgent
Definition: vrfObjectDataStateProcessor.h:76
int myShowBoundingVolumeCount
Definition: vrfObjectDataStateProcessor.h:78
virtual const char * processorName() const
Used to uniquely identify for registration.
Definition: vrfObjectDataStateProcessor.h:43
unsigned long long UInt64
Definition: stateDataTypes.h:17
Definition: rangeItem.h:206
Cache myCache
Definition: vrfObjectDataStateProcessor.h:70
const char * source
Definition: lz4.h:442
std::map< makVrv::DtUniqueID, DtVrfNetworkUpdateObjectDataState > Cache
Definition: vrfObjectDataStateProcessor.h:69
#define DT_DLL_vrfGuiNetworkCommon
This file is used to determine how to build.
Definition: vrfGuiNetworkCommonDefines.h:24
bool myLightweightMode
Definition: vrfObjectDataStateProcessor.h:79
std::set< std::string > myRangeLabels
Definition: vrfObjectDataStateProcessor.h:75
A DtSimState is the base class for all state objects. Derived instances of DtSimState will be created...
Definition: DtSimState.h:19
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
static const char * ProcessorName()
Definition: vrfObjectDataStateProcessor.h:42
The protocol specific processor for object state specific sim data.
Definition: vrfObjectDataStateProcessor.h:23
int mySessionId
Definition: vrfObjectDataStateProcessor.h:72
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
bool lightweightMode() const
Definition: vrfObjectDataStateProcessor.h:47
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)