19 #include <matrix/vlMath.h>
23 #include <unordered_map>
29 class DtFlat2DLineRenderer;
30 class DtLineSegmentProxy;
31 class DtLineSegmentProxyGroup;
32 class DtOverlayResourceProvider;
33 class DtProjected2DLineEffect;
34 struct DtObserverRenderData;
35 struct DtOverlayRenderData;
62 const static unsigned short NoStipple = 0xFFFF;
63 const static unsigned short NoLine = 0x0;
83 virtual int numberOfPrimitives()
const;
88 const double projectionMatrix[16],
bool picking);
91 virtual void releaseResources();
94 virtual bool isRenderModeSupported(
int mode);
122 return mySimpleLines;
124 return myStippledLines;
130 return mySimpleProxies;
132 return myStippledProxies;
135 void deleteToBeRenderedBuffer(
void);
137 void updateRenderData(
double cameraAltitude);
138 void releaseResources(
void);
146 typedef std::unordered_map<float, LineSegmentSets>
LineMap;
161 virtual int moveSegmentToOtherList(
162 const float currentWidth,
163 const int currentSegmentIndex,
164 const int currentPrimativeIndex,
165 const float desiredWidth,
166 const int desiredSegmentIndex);
168 virtual void setAltitudeBasedConfigurationsForProxy(
175 virtual void updateRenderData(
double altitude);
176 virtual void sortByStipple();
201 void enableStipple();
204 void disableStipple();
209 void setLodOutAltitude(
double lodOutAltitude);
212 double lodOutAltitude()
const;
216 void setIsLodOutAltitudeEnabled(
bool isLodOutAltitudeEnabled);
219 bool isLodOutAltitudeEnabled()
const;
222 void setWidth(
float w);
229 void setAltitudeBasedLineLengths(
234 void clearAltitudeBasedLineLengths();
242 void setIsUseForcedAltitudeEnabled(
bool enabled);
245 bool isUseForcedAltitudeEnabled()
const;
250 void setForcedAltitudeToUse(
double minimumAltitudeForUse);
254 double forcedAltitudeToUse()
const;
257 void setGroup(
float group);
337 void updateRenderData(
double cameraMSLAltitude);
std::unordered_map< float, LineSegmentSets > LineMap
Definition: DtLineRenderer.h:146
std::vector< DtLineSegmentProxy * > DtLineSegmentProxyList
Definition: DtLineRenderer.h:328
friend DtLineRendererCreator
Definition: DtLineRenderer.h:51
DtLineSegmentProxyList myProxies
Definition: DtLineRenderer.h:340
A line segment proxy is a flyweight class for controlling a single line segment.
Definition: DtLineRenderer.h:191
int myIndex
Definition: DtLineRenderer.h:310
LineSegmentProxyList myDirtyList
Definition: DtLineRenderer.h:184
int mySegmentIndex
Definition: DtLineRenderer.h:309
A class the wraps a OpenGL Array Buffer object.
Definition: DtBufferObject.h:17
bool myIsLodOutAltitudeEnabled
Definition: DtLineRenderer.h:313
std::vector< DtLineSegmentProxyGroup * > myLineSegmentProxyGroups
Definition: DtLineRenderer.h:182
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
DtProjected2DLineEffect * myEffect
Definition: DtLineRenderer.h:183
DtVirtualBaseClassCreator< DtLineRenderer, DtOverlayResourceProvider & > DtLineRendererCreator
creator
Definition: DtLineRenderer.h:38
static bool equal(DtLineSegmentProxy *&v1, DtLineSegmentProxy *&v2)
Definition: DtLineRenderer.h:290
std::map< const DtLineSegmentProxy *, DtLineSegmentProxyGroup * > myLineSegmentProxyToGroupMap
Definition: DtLineRenderer.h:181
unsigned int myRenderedSimpleLineCount
Definition: DtLineRenderer.h:143
Definition: DtLineRenderer.h:108
LineSegmentProxyList myStippledProxies
Definition: DtLineRenderer.h:112
LineSegments & segmentsByIndex(unsigned int index)
Definition: DtLineRenderer.h:119
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
The overlay resource provider class provides resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:28
Definition: DtLineRenderer.h:56
static bool less(DtLineSegmentProxy *&v1, DtLineSegmentProxy *&v2)
Definition: DtLineRenderer.h:275
float myWidth
Definition: DtLineRenderer.h:311
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
Contains the makVrv::DtLineSegmentInterface class declaration.
bool myDirtyFlag
Definition: DtLineRenderer.h:308
std::vector< LineSegmentPrimitive > LineSegments
Definition: DtLineRenderer.h:105
DtLineSegmentInterface::DtLineSegmentAltitudeBasedConfigurationCollection myAltitudeBasedConfigurations
Definition: DtLineRenderer.h:342
Abstract primitive rendering base class.
Definition: DtPrimitiveRenderer.h:19
A vertex element used for rendering a line.
Definition: DtFlat2DLineRenderer.h:20
unsigned int myPrimitiveCount
Definition: DtLineRenderer.h:185
double myForcedAltitudeToUse
Definition: DtLineRenderer.h:316
DtLineRenderer * myParent
Definition: DtLineRenderer.h:306
std::vector< DtLineSegmentAltitudeBasedConfiguration > DtLineSegmentAltitudeBasedConfigurationCollection
A collection of altitude-based configurations.
Definition: DtLineSegmentInterface.h:76
A structure to hold rendering information for overlays. This is used to pass to various overlay rende...
Definition: DtCommonRenderData.h:42
LineSegments myStippledLines
Definition: DtLineRenderer.h:115
DtLineVertex p2
Definition: DtLineRenderer.h:59
DtBufferObject * myBufferObjectStippleLines
Definition: DtLineRenderer.h:141
float lineParams[2]
Definition: DtFlat2DLineRenderer.h:35
LineSegmentProxyList mySimpleProxies
Definition: DtLineRenderer.h:111
An effect for rendering 2D projected lines Has support for direction and length information per verte...
Definition: DtProjected2DLineEffect.h:19
const char int mode
Definition: ioapi.h:38
A Renderer which renders 2D lines with only a color.
Definition: DtFlat2DLineRenderer.h:43
bool myIsForcedAltitudeEnabled
Definition: DtLineRenderer.h:315
DtBufferObject * myBufferObjectSimpleLines
Definition: DtLineRenderer.h:140
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
LineSegments mySimpleLines
Definition: DtLineRenderer.h:114
LineSegmentProxyList & proxiesByIndex(unsigned int index)
Definition: DtLineRenderer.h:127
DtLineVertex p1
Definition: DtLineRenderer.h:58
A group of line segment proxy objects that all share the same altitude-based configurations - allowin...
Definition: DtLineRenderer.h:323
LineMap myLines
Definition: DtLineRenderer.h:180
static void swap(DtLineSegmentProxy *&v1, DtLineSegmentProxy *&v2)
Definition: DtLineRenderer.h:263
Definition: DtCommonRenderData.h:32
const char * creatorTypeName< DtLineRenderer >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtLineRenderer.h:45
Contains makVrv::DtFlat2DLineRenderer class.
A class responsible for rendering lines.
Definition: DtLineRenderer.h:49
uint8_t * myToBeRenderedBuffer
Definition: DtLineRenderer.h:110
std::vector< DtLineSegmentProxy * > LineSegmentProxyList
Definition: DtLineRenderer.h:106
double myLodOutAltitude
Definition: DtLineRenderer.h:312