VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTritonGroupTcsUserData.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvTriton/vrvTriton.h>
13 
14 #include <vrvCore/DtKeyedData.h>
15 
17 
18 #include <Triton.h>
19 
20 #include <string>
21 
22 namespace Triton
23 {
24  class Camera;
25  class Environment;
26  class Ocean;
27 }
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtProgramUniformLocationMap;
33  class DtTritonShaderUniformManager;
34  class DtTritonBreakingWavesMapManager;
35  class DtTritonPlanarReflectionManager;
36  class DtGlDeleteObjectManager;
37 
40  {
41  public:
43  DtTritonGroupTcsUserData(DtDe& de, const std::string& name);
44 
46  virtual ~DtTritonGroupTcsUserData();
47  public:
49  virtual void initShaderUniformHandles();
50  private:
52  DtTritonGroupTcsUserData() = delete;
56  DtTritonGroupTcsUserData& operator=(const DtTritonGroupTcsUserData& rhs) = delete;
57  public:
59  virtual const Triton::Ocean* ocean(void) const;
62  virtual void setOceanAndEnvironment(Triton::Ocean* ocean, Triton::Environment* environment);
63  public:
64  DtProgramUniformLocationMap* myProgramUniformLocationMap = nullptr;
65 
66  DtTritonShaderUniformManager* myShaderUniformManger = nullptr;
67 
68  DtTritonBreakingWavesMapManager* myBreakingWavesMapManager = nullptr;
69 
70  DtTritonPlanarReflectionManager* myPlanarReflectionManager = nullptr;
71 
72  // This disables the ocean if the shaders fail to compile.
73  bool myDisableDrawing = false;
74 
75  Triton::Environment* myEnvironment = nullptr;
76  Triton::Ocean* myOcean = nullptr;
77  Triton::Camera* myTritonCamera = nullptr;
78 
79  bool myWaterVisible = false;
80  bool myFirstTraversalFlag = true;
81 
82  float myWaterVisibility = 20.0f;
83  protected:
84  //only used to create unique names for the cameras
85  static unsigned int theNextCameraId;
86 
88  };
89 
92 
94  template <>
95  inline const char* creatorTypeName<DtTritonGroupTcsUserData>(void) { return "DtTritonGroupTcsUserDataCreator"; }
96 }
This represents an arbitrary user pointer/data within DtKeyedData.
Definition: DtKeyedData.h:95
Definition: surface.h:48
Contains DLL export macros.
static unsigned int theNextCameraId
Definition: DtTritonGroupTcsUserData.h:85
class for managing the shader uniforms for triton, gets the shader ids and caches them between frames...
Definition: DtTritonShaderUniformManager.h:52
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtGlDeleteObjectManager & myGlDeleteObjectManager
Definition: DtTritonGroupTcsUserData.h:87
This represents per camera, context (tcs) specific data for Triton.
Definition: DtTritonGroupTcsUserData.h:39
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
DtVirtualBaseClassCreator< DtTritonGroupTcsUserData, const std::string & > DtTritonGroupTcsUserDataCreator
creator
Definition: DtTritonGroupTcsUserData.h:91
Vaos are OpenGL context specific. They need to be deleted in the context they are created in...
Definition: DtGlDeleteObjectManager.h:58
A class to manage automatic periodic updating of a breaking wave direction map generated from shapefi...
Definition: DtTritonBreakingWavesMapManager.h:40
class for managing the planar reflections used by triton drawable.
Definition: DtTritonPlanarReflectionManager.h:51
const char * creatorTypeName< DtTritonGroupTcsUserData >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtTritonGroupTcsUserData.h:95
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
Definition: DtProgramUniformLocationMap.h:26
Contains the DtKeyedData class declaration.

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)