VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtProjected2DLineEffect.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 <vrvGraphics/Dt2DEffect.h>
13 
14 namespace makVrv
15 {
20  {
21  public:
22 
24  DtProjected2DLineEffect(const std::string& dataPath, const std::string& defines);
25 
27  virtual ~DtProjected2DLineEffect();
28 
31  virtual void setCamera(bool geocentric, float geocentricAlpha,
32  const double position[3]
33  , const double positionMatrix[16]
34  , const double projectionMatrix[16]
35  , const int viewport[4]) override;
36 
37  //Set the number of groups.
38  virtual void setGroupCount(unsigned int count);
39 
40  virtual void setVertexAttribPointers(size_t stride
41  , const VertexAttribPtrInfo& positionAddress
42  , const VertexAttribPtrInfo& colorAddress
43  , const VertexAttribPtrInfo& offsetAddress
44  , const VertexAttribPtrInfo& directionAndLengthAddress
45  , const VertexAttribPtrInfo& scale);
46 
47  virtual void unsetVertexAttribPointers();
48  protected:
49 
50  virtual void updateUniformLocations();
51  virtual void updateUniforms();
52  virtual void initializeShaderSource();
53 
54  protected:
62 
63 
64  unsigned int myUnit;
65  unsigned int myGroupCount;
66  double myCameraPos[3];
67  double myMatrix[16];
68  double myProjectionMatrix[16];
71 
72  void updateOtherUniforms(void);
73  };
74 
75 
79  {
80  public:
81  virtual DtEffect* create(const std::string& dataPath, const std::string& strDefines, CreateParameters* params = 0)
82  {
83  return new DtProjected2DLineEffect(dataPath, strDefines);
84  }
85  };
86 }
87 
unsigned int myGroupCount
Definition: DtProjected2DLineEffect.h:65
Contains the makVrv::Dt2DEffect class declaration.
Abstract creator class for registering effects with a effects manager.
Definition: DtEffect.h:108
int myUniform_ProjectionMat
Definition: DtProjected2DLineEffect.h:57
float myGeocentricAlpha
Definition: DtProjected2DLineEffect.h:70
bool myGeocentricFlag
Definition: DtProjected2DLineEffect.h:69
A creator class for the Projected 2D line effect.
Definition: DtProjected2DLineEffect.h:78
virtual DtEffect * create(const std::string &dataPath, const std::string &strDefines, CreateParameters *params=0)
Definition: DtProjected2DLineEffect.h:81
int myUniform_Stipple
Definition: DtProjected2DLineEffect.h:61
int myUniform_CameraMat
Definition: DtProjected2DLineEffect.h:56
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
int myUniform_Sphere
Definition: DtProjected2DLineEffect.h:59
Definition: DtEffect.h:24
The base class for a programmable pipeline render effect.
Definition: DtEffect.h:20
An effect for rendering 2D projected lines Has support for direction and length information per verte...
Definition: DtProjected2DLineEffect.h:19
unsigned int myUnit
Definition: DtProjected2DLineEffect.h:64
The 2D effect is an abstract interface for effects used to render in 2D.
Definition: Dt2DEffect.h:19
int myUniform_OccludedAlpha
Definition: DtProjected2DLineEffect.h:60
int myUniform_CameraPos
Definition: DtProjected2DLineEffect.h:55
int myUniform_GroupCount
Definition: DtProjected2DLineEffect.h:58

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)