VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDrawnIntersectorManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 
13 #include <vrvCore/DtTickable.h>
14 #include <vrvCore/DtIntersector.h>
16 
17 #include <map>
18 #include <tbb/concurrent_queue.h>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtDrawnIntersector;
24 
27 
30 
32  template <>
33  inline const char* creatorTypeName<DtDrawnIntersectorManager>(void) { return "DtDrawnIntersectorManagerCreator"; }
34 
36  {
37  public:
39  virtual ~DtDrawnIntersectorManager();
40 
41  DtDrawnIntersectorManager() = delete;
43  DtDrawnIntersectorManager& operator=(const DtDrawnIntersectorManager& rhs) = delete;
44  public:
45 
48  virtual void update(DtTime tNow);
49 
51  virtual void drawIntersection(
52  const DtIntersector::DtIntersections& results, double durationmodelSet, DtModelSetId modelSet);
53 
55  virtual void drawIntersection(const DtIntersectorResult& result,
56  double duration, DtModelSetId modelSet);
57 
58  protected:
60  virtual void processIntersectionsQueue(DtTime tNow);
61 
63  virtual void expireDrawnIntersections(DtTime tNow);
64  protected:
66 
68  {
70  double myDuration;
72  };
73 
74  tbb::concurrent_queue<IntersectionQueueOp> myQueue;
75 
76  std::multimap<double, DtDrawnIntersector* > myDrawnIntersectorMap;
77  };
78 }
DtVirtualBaseClassCreator< DtDrawnIntersectorManager > DtDrawnIntersectorManagerCreator
creator
Definition: DtDrawnIntersectorManager.h:26
Descriptor for a single intersection result.
Definition: DtIntersectorResult.h:21
std::vector< DtIntersectorResult > DtIntersections
A vector of DtIntersectionRecords.
Definition: DtIntersector.h:50
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
std::multimap< double, DtDrawnIntersector * > myDrawnIntersectorMap
Definition: DtDrawnIntersectorManager.h:76
Contains makVrv:DtIntersector class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Definition: DtDrawnIntersectorManager.h:67
double myDuration
Definition: DtDrawnIntersectorManager.h:70
Definition: DtDrawnIntersectorManager.h:35
DtModelSetId myModelSet
Definition: DtDrawnIntersectorManager.h:71
Contains the declaration for makVrv::DtTickable.
tbb::concurrent_queue< IntersectionQueueOp > myQueue
Definition: DtDrawnIntersectorManager.h:74
DtDe & myDe
Definition: DtDrawnIntersectorManager.h:65
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
const char * creatorTypeName< DtDrawnIntersectorManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtDrawnIntersectorManager.h:33
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains DLL export macros.
DtIntersector::DtIntersections myResults
Definition: DtDrawnIntersectorManager.h:69

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)