VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtFlatPrimitiveStyle.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 
14 
15 #include <matrix/vlVector.h>
16 
17 #include <vector>
18 
19 namespace makVrv
20 {
21 
22  class DtOverlayResourceProvider;
23  struct DtObserverRenderData;
24 
28  {
29  public:
30 
33  unsigned int vertexCountPerPrimitve );
34 
36  virtual ~DtFlatPrimitiveStyle();
37 
39  virtual void add( unsigned int* index );
40 
42  virtual void remove( unsigned int index );
43 
46  virtual void render(int mode, unsigned int groupCount, bool geocentric,
47  float geocentricAlpha, const double cameraLocation[3],
48  const DtObserverRenderData& observerRenderData,
49  const double positionMatrix[16], const double projectionMatrix[16],
50  const int viewport[4], int offset) override;
51 
53  virtual void update( int renderMode );
54 
57 
59  virtual void set3DVertexPosition( unsigned int index, unsigned int vertex,
60  float x, float y, float z, float w = 0 );
61 
63  virtual void set3DVertexQuadPositions(unsigned int index,
64  float x, float y, float z, float w);
65 
67  virtual void get3DVertexPosition( unsigned int index, unsigned int vertex,
68  float& x, float& y, float& z, float& w ) const;
69 
71  virtual void set2DVertexPosition( unsigned int index, unsigned int vertex,
72  float x, float y );
73 
75  virtual void get2DVertexPosition( unsigned int index, unsigned int vertex,
76  float& x, float& y ) const;
77 
79  virtual void set2DOffsetRotation( unsigned int index,
80  unsigned int vertIndex, float angle );
81 
83  virtual void get2DOffsetRotation( unsigned int index,
84  unsigned int vertIndex, float& angle ) const;
85 
87  virtual void setColor( unsigned int index, unsigned int vertIndex,
88  float r, float g, float b, float a );
89 
91  virtual void getColor( unsigned int index, unsigned int vertIndex,
92  float& r, float& g, float& b, float& a ) const;
93 
95  virtual void setUVCoordinates( unsigned int index,
96  unsigned int vertIndex, float u, float v );
97 
99  virtual void getUVCoordinates( unsigned int index,
100  unsigned int vertIndex, float& u, float& v ) const;
101 
108  virtual void projectUVCoordinates(unsigned int index, const DtVector& origin,
109  const DtVector& axisU, const DtVector& axisV, float scale) override;
110 
112 
113 
116 
119  virtual void setFillParameters( unsigned int index,
120  unsigned int fullStipplePattern[32] = 0 ) override;
121 
124  virtual void getFillParameters( unsigned int index,
125  unsigned int fullStipplePattern[32] = 0 ) const override;
126 
134  virtual void setFillPatternFrequency(unsigned int index, float frequency) override;
135 
138  virtual void setTextureHandle( unsigned int index, DtTextureInterface* newTextureHandle ) override;
139 
142  virtual DtTextureInterface* findTextureHandle( unsigned int index ) const override;
143 
146  virtual void setGroup( unsigned int index, float zFactor );
147 
150  virtual float group( unsigned int index ) const;
151 
154  virtual void setVisible( unsigned int index, bool visible );
155 
158  virtual bool visible (unsigned int index) const;
159 
161 
162  protected:
163 
165  virtual float* vertexData() const;
166 
168  virtual unsigned int vertexDataSize() const;
169 
170  protected:
172  {
173  unsigned int group;
174  unsigned int* indexPtr;
175  bool visible;
176  };
177 
181  {
182  bool operator()( const FlatPrimitiveInfo& left, const FlatPrimitiveInfo& right )
183  {
184  return (left.group < right.group);
185  }
186  };
187 
189 
190  typedef std::vector<FlatPrimitiveInfo> FlatPrimitiveInfoList;
191  typedef std::vector<unsigned int> FlatIndexList;
192  typedef std::vector<DtOffsetColoredVertex> QuadVertexList;
193 
197 
201 
202  };
203 
204 }
bool mySortDirty
Definition: DtFlatPrimitiveStyle.h:188
Definition: DtFlatPrimitiveStyle.h:171
DtOverlayResourceProvider & myResourceProvider
Definition: DtFlatPrimitiveStyle.h:198
bool operator()(const FlatPrimitiveInfo &left, const FlatPrimitiveInfo &right)
Definition: DtFlatPrimitiveStyle.h:182
unsigned int group
Definition: DtFlatPrimitiveStyle.h:173
The abstract base class for the various primitive styles.
Definition: DtPrimitiveStyle.h:25
voidpf uLong int origin
Definition: ioapi.h:42
FlatIndexList myFlatIndices
Definition: DtFlatPrimitiveStyle.h:196
Sorts flat primitives by their group, used to make sure the indices are in the correct order...
Definition: DtFlatPrimitiveStyle.h:180
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtTextureInterface.h:24
DtProjected2DFlatEffect * myEffect
Definition: DtFlatPrimitiveStyle.h:200
The overlay resource provider class provides resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:28
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::vector< FlatPrimitiveInfo > FlatPrimitiveInfoList
Definition: DtFlatPrimitiveStyle.h:190
std::vector< unsigned int > FlatIndexList
Definition: DtFlatPrimitiveStyle.h:191
Contains the makVrv::DtFlat2DRenderer class declaration.
A style for rendering a 2D quad with only a flat color.
Definition: DtFlatPrimitiveStyle.h:27
FlatPrimitiveInfoList myFlatPrimitives
Definition: DtFlatPrimitiveStyle.h:194
std::vector< DtOffsetColoredVertex > QuadVertexList
Definition: DtFlatPrimitiveStyle.h:192
bool visible
Definition: DtFlatPrimitiveStyle.h:175
const char int mode
Definition: ioapi.h:38
QuadVertexList myVertices
Definition: DtFlatPrimitiveStyle.h:199
An effect for rendering 2D flat colored quads.
Definition: DtProjected2DFlatEffect.h:19
voidpf uLong offset
Definition: ioapi.h:42
FlatPrimitiveInfoList mySortedFlatPrimitives
Definition: DtFlatPrimitiveStyle.h:195
Definition: DtCommonRenderData.h:33
Contains the makVrv::DtPrimitiveStyle class declaration.
unsigned int * indexPtr
Definition: DtFlatPrimitiveStyle.h:174

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)