GlobeEngine
geGIS::LineFeatureObject Class Reference

#include <LineFeatureObject.h>

Inheritance diagram for geGIS::LineFeatureObject:
geGIS::FeatureObject ge::DrawableComponent ge::GlobeComponent geGIS::BorderObject geGIS::BundlingObject geGIS::CommuterObject geGIS::GreatCircle geGIS::ReferenceSystem geGIS::TrafficObject

Public Member Functions

 LineFeatureObject ()
 
 ~LineFeatureObject ()
 
void clear () override
 
void create (std::shared_ptr< ge::Shader > _shader, std::string _name, vmml::Vector3f _color)
 
void create (std::shared_ptr< ge::Shader > _shader, std::string _name, const GLuint _uid, const GLuint _guid, vmml::Vector3f _color, vmml::Vector3d _position, vmml::Vector3d _scale, vmml::Vector3d _rotations)
 
void recreateMultiLineObject (std::string _name)
 
virtual void update () override
 
virtual void draw (std::shared_ptr< ge::Camera > _cam) override
 
virtual void createVAO (enum geData::MultiLineObject::GEOMETRYMODE _in)
 
void load2DLines (geGIS::FeatureRange _range)
 
void load3DLines (geGIS::FeatureRange _range)
 
void load2DPolygonsWithLimitedLines (geGIS::FeatureRange _entityRange, geGIS::FeatureRange _lineRange)
 
void setExtrusionXZ (double _input)
 
void setExtrusionY (double _input)
 
void setLineThickness (float _input)
 
float getLineThickness () const
 
enum GEOMETRYDRAWMODE getDrawMode () const
 
int getGraphPointCount () const
 
void addPolyline (std::shared_ptr< geData::PolyLine > _polyline)
 
const std::shared_ptr< geData::PolyLinegetEntity (int _idx) const
 
virtual void performAnimationStep ()
 
vmml::Vector4d expandBoundWith2DPoint (ge::Vertex2d _point, vmml::Vector4d _bound)
 
ge::Vertex4d expandBound (ge::Vertex4d _point, ge::Vertex4d _bound)
 
ge::Vertex4d expandBoundWithRadius (ge::Vertex4d _point, ge::Vertex4d _bound, double _radius)
 
void resetColor ()
 
void setColor (vmml::Vector3f _color) override
 
void setUID (GLuint _input) override
 
void setGroupID (GLuint _input) override
 
void setScale (vmml::Vector3d _scale) override
 
void setPosition (vmml::Vector3d _position) override
 
void setRotation (vmml::Vector3d _rotations) override
 
void setColorPerVertex (unsigned int _in) override
 
void createGPUFeatureBufferAsMortonCurve ()
 
GLuint getGPUFeatureBufferHandle (GLuint _layer)
 
unsigned int getGPUFeatureMaxDepth ()
 
void loadAttributeGPUBuffer (int _bufferLayerID, std::shared_ptr< StyleCollection > _styling, bool _spaceFillingCurve)
 
std::vector< size_t > loadMortonOrderForGPUBuffer (const std::vector< ge::Vertex2d > &_linesegmentList, ge::AABB3f _AABB)
 
void copyLineSegmentToGPUBuffer (int _bufferLayerID, bool _spaceFillingCurve)
 
void copyBoundsArrayToGPUBuffer (int _bufferLayerID)
 
void createLineSegmentListForGPUBuffer ()
 
void createMortonLineSegmentBounds ()
 
vmml::Vector4d getBounds2DWithLineWidth ()
 
void createGPUFeatureBufferForClusteredShading (vmml::Vector2ui _clusterCount, double _linewidth, std::shared_ptr< StyleCollection > _styling)
 
void createClusteredMortonLineSegmentBounds ()
 
vmml::Vector2f getClusterSize ()
 
const ClusterGridTexturesgetClusterHandles ()
 
- Public Member Functions inherited from geGIS::FeatureObject
 FeatureObject ()
 
virtual ~FeatureObject ()
 
vmml::Vector4d getBounds2D () const
 
vmml::Vector3d getMinBounds () const
 
vmml::Vector3d getMaxBounds () const
 
vmml::Vector3d getEdgeLength () const
 
int getShapeType () const
 
enum GEOMETRYDRAWMODE getDrawMode () const
 
int getEntityCount () const
 
int getEdgeCount () const
 
int getLocationPointCount () const
 
void exportToSHPFile (std::string _path, enum shpio::SHPFileExportContainer::EXPORT_TYPE _type, shpio::SHPFileExportContainer *_content)
 
void exportToCSVFile (std::string _path, enum shpio::SHPFileExportContainer::EXPORT_TYPE _type, shpio::SHPFileExportContainer *_content)
 
void loadDatabaseFields ()
 
enum FEATUREFORMAT getFormatFromString (std::string _input)
 
std::string getStringForFormat (enum FEATUREFORMAT _input)
 
enum FEATUREFORMAT checkForFileWithStandardExtension (std::string _input)
 
char getFieldType (int _fieldnumber)
 
std::vector< std::string > getFieldNames ()
 
intreadIntegerFieldFromDBFtoArray (int _fieldnumber)
 
template<typename T >
std::vector< T > readStringField (int _fieldnumber)
 
template<typename T >
std::vector< T > readNumericField (int _fieldnumber)
 
float getWheightMax () const
 
float getWheightMin () const
 
void saveFeature (std::string _path, std::string _ext)
 
const tileService::TileFeatureService * getTFSInfo ()
 
vmml::Vector3d getMidpointOfBounds ()
 
vmml::Vector2d getMidpointOfBoundsProj2D ()
 
void setTextColor (vmml::Vector3f _textcolor)
 
vmml::Vector3f getTextColor () const
 
std::shared_ptr< StyleCollectiongetStyleCollection () const
 
- Public Member Functions inherited from ge::DrawableComponent
 DrawableComponent ()
 
 ~DrawableComponent ()
 
 DrawableComponent (const DrawableComponent &_in)=delete
 
DrawableComponentoperator= (const DrawableComponent &_in)=delete
 
virtual void draw (std::shared_ptr< ge::Camera > _cam)
 
vmml::Vector3d getPosition () const
 
vmml::Vector3d getScale () const
 
vmml::Vector3d getRotation () const
 
void setBoundingSphere (BoundingSphere _boundingSphere)
 
void setBoundingBox (BoundingBox3d _boundingBox)
 
const BoundingSpheregetBoundingSphere () const
 
const BoundingBox3dgetBoundingBox () const
 
bool isVisible () const
 
virtual void isVisible (bool _input)
 
bool isGeometryReady () const
 
virtual void isGeometryReady (bool _input)
 
const vmml::Vector3f getColor () const
 
unsigned int getColorPerVertex () const
 
void setTextured (bool _in)
 
bool isTextured ()
 
void setTextureHandle (GLuint _handle)
 
GLuint getTextureHandle () const
 
void setNormalTextureHandle (GLuint _handle)
 
GLuint getNormalTextureHandle () const
 
void setNormalMapped (bool _in)
 
bool isNormalMapped ()
 
virtual void setShader (std::shared_ptr< ge::Shader > _shader)
 
void setStandardUniforms ()
 
const std::shared_ptr< ge::ShadergetShader () const
 
void recompileShader ()
 
void setNormalMatrix ()
 
void setModelMatrices ()
 
vmml::Matrix4d getModelMatrix () const
 
vmml::Matrix4d getInverseModelMatrix () const
 
void setViewProjMatrices (const std::shared_ptr< ge::Camera > _cam)
 
void setMVPMatrix (const std::shared_ptr< ge::Camera > _cam)
 
virtual void enableOcclusionQueries (bool _in)
 
void beginOcclusionQuery (RENDERSTATE _state)
 
void endOcclusionQuery (RENDERSTATE _state)
 
GLuint getQueryResult ()
 
void enablePointSprites ()
 
void disablePointSprites ()
 
void fillIndexBufferWithLinearValues ()
 
void enableVertexAttributes (int vaaSize=2)
 
void disableVertexAttributes (int vaaSize=2)
 
void setNumberOfVertexAttributes (unsigned int _in)
 
void generateVertexHandlesFromShader (int _bufferCount=0)
 
void setVertexAttributePointer (GLuint _bufferID, GLuint _index, GLint _size, GLenum _type)
 
void setVertexAttributePointerNormalized (GLuint _bufferID, GLuint _index, GLint _size, GLenum _type)
 
void setVertexLongAttributePointer (GLuint _bufferID, GLuint _index, GLint _size, GLenum _type)
 
void unbindVertexBuffers ()
 
void setAttributeBuffer1i (int _bufferID, int _input)
 
void setAttributeBuffer1i (int _bufferID, std::vector< int > _input)
 
void setAttributeBuffer1f (int _bufferID, float _value)
 
void setAttributeBuffer1f (int _bufferID, std::vector< float > _input)
 
void addVertex3fAttribute (unsigned int _bufferPos, unsigned int _size, const vmml::Vector3d _value)
 
void addVertex3fAttribute (unsigned int _bufferPos, unsigned int _size, const vmml::Vector3d *_values)
 
void addCustomVertexAttributef (unsigned int _bufferPos, unsigned int _attributeCount, unsigned int _sizePerAttribute, float **_values)
 
void setDepthMatrix (vmml::Matrix4d _mat)
 
void setDepthMatrixUniform ()
 
void setDepthTextureHandle (GLuint _handle)
 
void setDepthUniforms ()
 
GLuint getDepthTextureHandle () const
 
void setPickingInformation ()
 
void createMultiDrawPointerList (GLuint _numberOfDrawObjects, GLsizei *_stripLenghts)
 
void createMultiDrawPointerList (GLuint _numberOfDrawObjects, GLsizei _stripLenghts)
 
void drawMultiElements (GLenum _mode, const GLsizei *_count, GLsizei _drawcount)
 
void drawArrays (GLenum _mode, GLint _first, GLsizei _count)
 
void drawElements (GLenum _mode, GLsizei _count, const GLvoid *_indices)
 
void drawMultiArrays (GLenum _mode, const GLsizei *_count, GLsizei _drawcount)
 
void enablePrimitiveRestart ()
 
void disablePrimitiveRestart ()
 
void setPrimitiveRestartIndex (GLuint _in)
 
unsigned int getVertexCount () const
 
void setVertexAttributePointerForBuffer (unsigned int _bufferID, unsigned int _size, GLenum _type)
 
- Public Member Functions inherited from ge::GlobeComponent
 GlobeComponent ()
 
virtual ~GlobeComponent ()=0
 
GLuint getUID () const
 
GLuint getGroupID () const
 
const std::string getName () const
 
void setName (std::string _name)
 

Protected Member Functions

void loadPolygonAttributesToGPUBuffer (int _bufferLayerID, bool _spaceFillingCurve)
 
- Protected Member Functions inherited from geGIS::FeatureObject
void deleteMemory ()
 
void setupInitialShapeData (std::string _filename, std::string _driver, geGIS::FeatureRange _entRange)
 
void setupInitialTFSData (std::string _filename, int _minlod, int _maxlod)
 
virtual shpio::SHPFileExportContainer * getExportContainer (std::shared_ptr< ReferenceSystem > _referenceSystem)
 
void checkForBoundaries ()
 
void setEntityRanges (geGIS::FeatureRange _entRange)
 
void print ()
 
void setFeatureType (std::string _type)
 
void loadDataFromSHP (std::string filename)
 

Protected Attributes

std::shared_ptr< geData::MultiLineObjectmultilineGeometry
 
double lineThickness
 
ge::ShaderStorageBufferArray gpuFeatureInfo
 
std::vector< size_t > resMorton
 
unsigned int gpuFeatureMaxLevel
 
unsigned int gpulineSegmentCount
 
unsigned int gpulineSegmentListPointCount
 
std::vector< ge::Vertex2dgpulinesegmentList
 
std::vector< ge::Vertex4dboundsFinal
 
ClusterGrid cgrid
 
bool fillLineFeature
 
- Protected Attributes inherited from geGIS::FeatureObject
GEOMETRYDRAWMODE drawMode
 
FEATURETYPE featureType
 
FEATUREFORMAT featureFormat
 
int shapetype
 
int numberOfEntities
 
int numberOfEdges
 
int numberOfLocations
 
geGIS::FeatureRange entityRange
 
double bounds [6]
 
vmml::Vector3d midPoint
 
double edgelength [3]
 
std::shared_ptr< ReferenceSystemreferenceSystem
 
std::vector< vmml::Vector3d > feature_vec
 
std::vector< intshapeVecIdx
 
std::vector< SHPObject * > shape_vec
 
SHPHandle shapehandle
 
shpio::DBFDataContainer datatable
 
vmml::Vector3f textColor
 
float weightMax
 
float weightMin
 
vmml::Vector3f blueprintColor
 
bool isRepository
 
tileService::TileFeatureService tfsloader
 
std::string fileUrl
 
std::shared_ptr< StyleCollectionvectorStyling
 
- Protected Attributes inherited from ge::DrawableComponent
std::shared_ptr< ge::Shadershader
 
vmml::Vector3d position
 
vmml::Vector3d scale
 
vmml::Vector3d rotations
 
vmml::Vector3f color
 
unsigned int colorPerVertex
 
bool textured
 
GLuint colorTexHandle
 
bool normalMapped
 
GLuint normalTexHandle
 
BoundingSphereboundingSphere
 
BoundingBox3dboundingBox
 
vmml::Matrix4d modelMatrix
 
vmml::Matrix4d mvpMatrix
 
vmml::Matrix3d normalMatrix
 
vmml::Matrix4d depthTextureMatrix
 
GLuint depthTextureHandle
 
ge::VertexArrayObject vao
 
ge::VertexBufferArray attributes
 
GLuint vertexCount
 
GLuint indexCount
 
ge::IndexBuffer indexBuffer
 
GLuint multiDrawPointerListSize
 
const GLvoid ** multiDrawPointerList
 
GLint * multiDrawArraysList
 
GLuint occlusionQueryState
 
GLuint occlusionQueryID
 
GLuint queryResultPixelCount
 
GLint uniformViewMatrixLocation
 
GLint uniformProjectionMatrixLocation
 
GLint uniformModelMatrixLocation
 
GLint uniformMVPMatrixLocation
 
GLint uniformObjectColorLocation
 
GLint uniformColorPerVertexLocation
 
GLint uniformObjectIDLocation
 
GLint uniformObjectGroupIDLocation
 
- Protected Attributes inherited from ge::GlobeComponent
int uid
 
int group_uid
 
std::string name
 

Additional Inherited Members

- Public Types inherited from geGIS::FeatureObject
enum  GEOMETRYDRAWMODE {
  LINES =0, TRIANGLES_OVERLAPPING, EXTRUDED_GEOMETRY, RIBBON,
  TRIANGULATED, POINTS
}
 
enum  FEATUREFORMAT { SHP =0, JSON, CSV, NONE }
 
enum  FEATURETYPE {
  NOTYPE =0, POINT, MULTIPOINT, LINE,
  MULTILINE, POLYGON, MULTIPOLYGON
}
 
- Public Types inherited from ge::DrawableComponent
enum  RENDERSTATE {
  STENCILPASS, DEPTHPASS, RENDER, OCCLUSIONTEST,
  OCCLUSIONGROUNDTEST, OCCLUSIONRESULT, EMPTY, DECALPASS
}
 

Constructor & Destructor Documentation

geGIS::LineFeatureObject::LineFeatureObject ( )
geGIS::LineFeatureObject::~LineFeatureObject ( )

Member Function Documentation

void geGIS::LineFeatureObject::addPolyline ( std::shared_ptr< geData::PolyLine _polyline)
void geGIS::LineFeatureObject::clear ( )
overridevirtual
void geGIS::LineFeatureObject::copyBoundsArrayToGPUBuffer ( int  _bufferLayerID)
void geGIS::LineFeatureObject::copyLineSegmentToGPUBuffer ( int  _bufferLayerID,
bool  _spaceFillingCurve 
)
void geGIS::LineFeatureObject::create ( std::shared_ptr< ge::Shader _shader,
std::string  _name,
vmml::Vector3f  _color 
)
void geGIS::LineFeatureObject::create ( std::shared_ptr< ge::Shader _shader,
std::string  _name,
const GLuint  _uid,
const GLuint  _guid,
vmml::Vector3f  _color,
vmml::Vector3d  _position,
vmml::Vector3d  _scale,
vmml::Vector3d  _rotations 
)
void geGIS::LineFeatureObject::createClusteredMortonLineSegmentBounds ( )
void geGIS::LineFeatureObject::createGPUFeatureBufferAsMortonCurve ( )
void geGIS::LineFeatureObject::createGPUFeatureBufferForClusteredShading ( vmml::Vector2ui  _clusterCount,
double  _linewidth,
std::shared_ptr< StyleCollection _styling 
)
void geGIS::LineFeatureObject::createLineSegmentListForGPUBuffer ( )
void geGIS::LineFeatureObject::createMortonLineSegmentBounds ( )
void geGIS::LineFeatureObject::createVAO ( geData::MultiLineObject::GEOMETRYMODE  _in)
virtual
void geGIS::LineFeatureObject::draw ( std::shared_ptr< ge::Camera _cam)
overridevirtual
ge::Vertex4d geGIS::LineFeatureObject::expandBound ( ge::Vertex4d  _point,
ge::Vertex4d  _bound 
)
vmml::Vector4d geGIS::LineFeatureObject::expandBoundWith2DPoint ( ge::Vertex2d  _point,
vmml::Vector4d  _bound 
)
ge::Vertex4d geGIS::LineFeatureObject::expandBoundWithRadius ( ge::Vertex4d  _point,
ge::Vertex4d  _bound,
double  _radius 
)
vmml::Vector4d geGIS::LineFeatureObject::getBounds2DWithLineWidth ( )
const ClusterGridTextures * geGIS::LineFeatureObject::getClusterHandles ( )
vmml::Vector2f geGIS::LineFeatureObject::getClusterSize ( )
enum GEOMETRYDRAWMODE geGIS::LineFeatureObject::getDrawMode ( ) const
inline
const std::shared_ptr< geData::PolyLine > geGIS::LineFeatureObject::getEntity ( int  _idx) const
GLuint geGIS::LineFeatureObject::getGPUFeatureBufferHandle ( GLuint  _layer)
unsigned int geGIS::LineFeatureObject::getGPUFeatureMaxDepth ( )
int geGIS::LineFeatureObject::getGraphPointCount ( ) const
float geGIS::LineFeatureObject::getLineThickness ( ) const
void geGIS::LineFeatureObject::load2DLines ( geGIS::FeatureRange  _range)
void geGIS::LineFeatureObject::load2DPolygonsWithLimitedLines ( geGIS::FeatureRange  _entityRange,
geGIS::FeatureRange  _lineRange 
)
void geGIS::LineFeatureObject::load3DLines ( geGIS::FeatureRange  _range)
void geGIS::LineFeatureObject::loadAttributeGPUBuffer ( int  _bufferLayerID,
std::shared_ptr< StyleCollection _styling,
bool  _spaceFillingCurve 
)
std::vector< size_t > geGIS::LineFeatureObject::loadMortonOrderForGPUBuffer ( const std::vector< ge::Vertex2d > &  _linesegmentList,
ge::AABB3f  _AABB 
)
void geGIS::LineFeatureObject::loadPolygonAttributesToGPUBuffer ( int  _bufferLayerID,
bool  _spaceFillingCurve 
)
protected
void geGIS::LineFeatureObject::performAnimationStep ( )
virtual
void geGIS::LineFeatureObject::recreateMultiLineObject ( std::string  _name)
void geGIS::LineFeatureObject::resetColor ( )
void geGIS::LineFeatureObject::setColor ( vmml::Vector3f  _color)
overridevirtual

override of DrawableComponent::setColor

Reimplemented from ge::DrawableComponent.

void geGIS::LineFeatureObject::setColorPerVertex ( unsigned int  _in)
overridevirtual

override of DrawableComponent::setColorPerVertex

Reimplemented from ge::DrawableComponent.

void geGIS::LineFeatureObject::setExtrusionXZ ( double  _input)
void geGIS::LineFeatureObject::setExtrusionY ( double  _input)
void geGIS::LineFeatureObject::setGroupID ( GLuint  _input)
overridevirtual

override of DrawableComponent::setGroupID

Reimplemented from ge::GlobeComponent.

void geGIS::LineFeatureObject::setLineThickness ( float  _input)
void geGIS::LineFeatureObject::setPosition ( vmml::Vector3d  _position)
overridevirtual

override of DrawableComponent::setPosition

Reimplemented from ge::DrawableComponent.

void geGIS::LineFeatureObject::setRotation ( vmml::Vector3d  _rotations)
overridevirtual

override of DrawableComponent::setRotation

Reimplemented from ge::DrawableComponent.

void geGIS::LineFeatureObject::setScale ( vmml::Vector3d  _scale)
overridevirtual

override of DrawableComponent::setScale

Reimplemented from ge::DrawableComponent.

void geGIS::LineFeatureObject::setUID ( GLuint  _input)
overridevirtual

override of DrawableComponent::setUID

Reimplemented from ge::GlobeComponent.

void geGIS::LineFeatureObject::update ( )
overridevirtual

Member Data Documentation

std::vector<ge::Vertex4d> geGIS::LineFeatureObject::boundsFinal
protected
ClusterGrid geGIS::LineFeatureObject::cgrid
protected
bool geGIS::LineFeatureObject::fillLineFeature
protected
ge::ShaderStorageBufferArray geGIS::LineFeatureObject::gpuFeatureInfo
protected
unsigned int geGIS::LineFeatureObject::gpuFeatureMaxLevel
protected
unsigned int geGIS::LineFeatureObject::gpulineSegmentCount
protected
std::vector<ge::Vertex2d> geGIS::LineFeatureObject::gpulinesegmentList
protected
unsigned int geGIS::LineFeatureObject::gpulineSegmentListPointCount
protected
double geGIS::LineFeatureObject::lineThickness
protected
std::shared_ptr<geData::MultiLineObject> geGIS::LineFeatureObject::multilineGeometry
protected
std::vector<size_t> geGIS::LineFeatureObject::resMorton
protected

The documentation for this class was generated from the following files: