VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSegmentedLineInterface.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 <vrvCore/vrvCore.h>
14 
16 
17 namespace makVrv
18 {
19  class DtDe;
20  class DtChannel;
21  class DtTextureInterface;
22 
26  {
27  public:
28 
31 
33  virtual ~DtSegmentedLineInterface();
34 
37 
39  DtSegmentedLineInterface& operator=( const DtSegmentedLineInterface& ) = delete;
40 
41  public:
42 
47  virtual void setEventsEnabled( bool enabled, unsigned long long userData = 0 ) = 0;
48 
50  virtual bool eventsEnabled() const = 0;
51 
56  virtual void setVertexCount( unsigned int vertexCount ) = 0;
57 
60  virtual unsigned int vertexCount() const = 0;
61 
63  virtual unsigned int segmentCount() const = 0;
64 
66  virtual void set2DPosition( unsigned int vertexIndex, float x1, float y1 ) = 0;
67 
69  virtual void get2DPosition( unsigned int vertexIndex, float& x, float& y ) const = 0;
70 
74  virtual void set3DPosition( unsigned int vertexIndex, float x, float y, float z, float w ) = 0;
75 
77  virtual void get3DPosition( unsigned int vertexIndex, float& x, float& y, float& z, float& w ) const = 0;
78 
80  virtual void set3DDirection( unsigned int vertexIndex, float x, float y, float z ) = 0;
81 
83  virtual void get3DDirection( unsigned int vertexIndex, float& x, float& y, float& z ) const = 0;
84 
86  virtual void setDirection2DLength( unsigned int vertexIndex, float length ) = 0;
87 
89  virtual float direction2DLength( unsigned int vertexIndex ) const = 0;
90 
92  virtual void setSegmentColor( unsigned int segment, float r, float g, float b, float a ) = 0;
93 
95  virtual void setPointColor( unsigned int point, float r, float g, float b, float a ) = 0;
96 
98  virtual void setStipplePattern( unsigned int segment, unsigned int pattern ) = 0;
99  virtual void setStipplePattern( unsigned int segment, unsigned int scale, unsigned int pattern ) = 0;
100 
102  virtual void setWidth( unsigned int segment, float w ) = 0;
103 
107  virtual void setEventWidth( float ) = 0;
108 
111  virtual void setGroup( int ) = 0;
112 
116  virtual void setTexture( DtTextureInterface* texture ) = 0;
117 
120  virtual void setZoomFactor( float z ) = 0;
121 
123  virtual void setRotationOffset( float ) = 0;
125  };
126 
128  {
129  public:
132  static DtSegmentedLineInterfaceCreator& instance( DtDe& );
133 
135  static void registerInstance( DtDe& de, DtSegmentedLineInterfaceCreator* anInstance );
136 
138  virtual DtSegmentedLineInterface* create( DtDe& de, DtChannel* channel, DtModelSetId modelSet ) = 0;
139  };
140 
142  {
143  public:
146  static DtTexturedLineInterfaceCreator& instance( DtDe& );
147 
149  static void registerInstance( DtDe& de, DtTexturedLineInterfaceCreator* anInstance );
150 
152  virtual DtSegmentedLineInterface* create( DtDe& de, DtChannel* channel, DtModelSetId modelSet ) = 0;
153  };
154 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtTextureInterface.h:24
Definition: DtSegmentedLineInterface.h:127
Definition: DtSegmentedLineInterface.h:141
An interface for a convex polygon drawn using lines.
Definition: DtSegmentedLineInterface.h:25
The abstract Channel Class.
Definition: DtChannel.h:35
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
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
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains various enum classes relating to model sets.
Contains DLL export macros.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)