FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
fast::Renderer Class Referenceabstract

#include <Renderer.hpp>

+ Inheritance diagram for fast::Renderer:
+ Collaboration diagram for fast::Renderer:

Public Types

typedef std::shared_ptr< Rendererpointer
 
- Public Types inherited from fast::ProcessObject
typedef std::shared_ptr< ProcessObjectpointer
 
- Public Types inherited from fast::Object
typedef std::shared_ptr< Objectpointer
 

Public Member Functions

virtual void draw (Matrix4f perspectiveMatrix, Matrix4f viewingMatrix, float zNear, float zFar, bool mode2D)=0
 
virtual void postDraw ()
 
virtual uint addInputConnection (DataChannel::pointer port)
 
virtual uint addInputData (DataObject::pointer data)
 
virtual DataBoundingBox getBoundingBox (bool transform=true)
 
virtual void stopPipeline ()
 
virtual void reset ()
 
virtual void setDisabled (bool disabled)
 
virtual bool isDisabled () const
 
void setView (View *view)
 
void setSynchronizedRendering (bool synched)
 
bool getSynchronizedRendering () const
 
- Public Member Functions inherited from fast::ProcessObject
virtual ~ProcessObject ()
 
void update (int executeToken=-1)
 
RuntimeMeasurement::pointer getRuntime ()
 
RuntimeMeasurement::pointer getRuntime (std::string name)
 
RuntimeMeasurementsManager::pointer getAllRuntimes ()
 
void enableRuntimeMeasurements ()
 
void disableRuntimeMeasurements ()
 
void setMainDevice (ExecutionDevice::pointer device)
 
void setMainDeviceCriteria (const DeviceCriteria &citeria)
 
ExecutionDevice::pointer getMainDevice () const
 
void setDevice (uint deviceNumber, ExecutionDevice::pointer device)
 
void setDeviceCriteria (uint deviceNumber, const DeviceCriteria &criteria)
 
ExecutionDevice::pointer getDevice (uint deviceNumber) const
 
virtual DataChannel::pointer getOutputPort (uint portID=0)
 
virtual DataChannel::pointer getInputPort (uint portID=0)
 
virtual void setInputConnection (DataChannel::pointer port)
 
virtual void setInputConnection (uint portID, DataChannel::pointer port)
 
virtual void setInputData (DataObject::pointer data)
 
virtual void setInputData (uint portID, DataObject::pointer data)
 
int getNrOfInputConnections () const
 
int getNrOfOutputPorts () const
 
virtual std::string getNameOfClass () const =0
 
virtual void loadAttributes ()
 
std::shared_ptr< AttributegetAttribute (std::string id)
 
std::unordered_map< std::string, std::shared_ptr< Attribute > > getAttributes ()
 
void setAttributes (std::vector< std::shared_ptr< Attribute >> attributes)
 
void stopPipeline ()
 
void setModified (bool modified)
 
template<class DataType >
std::shared_ptr< DataTypeupdateAndGetOutputData (uint portID=0)
 
- Public Member Functions inherited from fast::Object
 Object ()
 
virtual ~Object ()
 
ReportergetReporter ()
 

Protected Member Functions

 Renderer ()
 
virtual void execute () override
 
void createShaderProgram (std::vector< std::string > shaderFilenames, std::string programName="default")
 
void attachShader (std::string filename, std::string programName="default")
 
void activateShader (std::string programName="default")
 
void deactivateShader ()
 
uint getShaderProgram (std::string programName="default")
 
void setShaderUniform (std::string name, Matrix4f matrix, std::string shaderProgramName="default")
 
void setShaderUniform (std::string name, Affine3f matrix, std::string shaderProgramName="default")
 
void setShaderUniform (std::string name, Vector3f vector, std::string shaderProgramName="default")
 
void setShaderUniform (std::string name, float value, std::string shaderProgramName="default")
 
void setShaderUniform (std::string name, bool value, std::string shaderProgramName="default")
 
void setShaderUniform (std::string name, int value, std::string shaderProgramName="default")
 
int getShaderUniformLocation (std::string name, std::string shaderProgramName="default")
 
void lock ()
 
void unlock ()
 
- Protected Member Functions inherited from fast::ProcessObject
 ProcessObject ()
 
virtual void preExecute ()
 
virtual void postExecute ()
 
template<class DataType >
void createInputPort (uint portID, bool required=true)
 
template<class DataType >
void createOutputPort (uint portID)
 
template<class DataType >
std::shared_ptr< DataTypegetInputData (uint portID=0)
 
template<class DataType >
std::shared_ptr< DataTypegetOutputData (uint portID=0)
 
void addOutputData (uint portID, DataObject::pointer data)
 
bool hasNewInputData (uint portID)
 
virtual void waitToFinish ()
 
void createOpenCLProgram (std::string sourceFilename, std::string name="")
 
cl::Program getOpenCLProgram (std::shared_ptr< OpenCLDevice > device, std::string name="", std::string buildOptions="")
 
void createFloatAttribute (std::string id, std::string name, std::string description, float initialValue)
 
void createIntegerAttribute (std::string id, std::string name, std::string description, int initialValue)
 
void createBooleanAttribute (std::string id, std::string name, std::string description, bool initialValue)
 
void createStringAttribute (std::string id, std::string name, std::string description, std::string initialValue)
 
float getFloatAttribute (std::string id)
 
int getIntegerAttribute (std::string id)
 
bool getBooleanAttribute (std::string id)
 
std::string getStringAttribute (std::string id)
 
std::vector< float > getFloatListAttribute (std::string id)
 
std::vector< int > getIntegerListAttribute (std::string id)
 
std::vector< bool > getBooleanListAttribute (std::string id)
 
std::vector< std::string > getStringListAttribute (std::string id)
 
void changeDeviceOnInputs (uint deviceNumber, ExecutionDevice::pointer device)
 
void validateInputPortExists (uint portID)
 
void validateOutputPortExists (uint portID)
 
- Protected Member Functions inherited from fast::Object
ReporterreportError ()
 
ReporterreportWarning ()
 
ReporterreportInfo ()
 
ReporterEnd reportEnd () const
 

Protected Attributes

bool mHasRendered = true
 
bool mStop = false
 
bool m_synchedRendering = true
 
std::condition_variable_any mRenderedCV
 
std::mutex mMutex
 
bool m_disabled = false
 
std::unordered_map< uint, SpatialDataObject::pointermDataToRender
 
Viewm_view
 
- Protected Attributes inherited from fast::ProcessObject
bool mIsModified
 
int m_lastExecuteToken = -1
 
RuntimeMeasurementsManager::pointer mRuntimeManager
 
std::unordered_map< uint, bool > mRequiredInputs
 
std::unordered_map< uint, std::vector< uint > > mInputDevices
 
std::unordered_map< uint, ExecutionDevice::pointermDevices
 
std::unordered_map< uint, DeviceCriteriamDeviceCriteria
 
std::unordered_map< uint, DataChannel::pointermInputConnections
 
std::unordered_map< uint, std::vector< std::weak_ptr< DataChannel > > > mOutputConnections
 
std::unordered_map< uint, bool > mInputPorts
 
std::unordered_set< uintmOutputPorts
 
std::unordered_map< uint, std::pair< DataObject::pointer, uint64_t > > mLastProcessed
 
std::unordered_map< std::string, std::shared_ptr< OpenCLProgram > > mOpenCLPrograms
 
std::unordered_map< std::string, std::shared_ptr< Attribute > > mAttributes
 
std::unordered_map< std::string, std::string > m_frameData
 
std::unordered_set< std::string > m_lastFrame
 
int m_maximumNrOfFrames = -1
 
- Protected Attributes inherited from fast::Object
std::weak_ptr< ObjectmPtr
 

Friends

class View
 

Additional Inherited Members

- Static Public Member Functions inherited from fast::ProcessObject
static std::string getStaticNameOfClass ()
 
- Static Public Member Functions inherited from fast::Object
static std::string getStaticNameOfClass ()
 

Member Typedef Documentation

◆ pointer

typedef std::shared_ptr<Renderer> fast::Renderer::pointer

Constructor & Destructor Documentation

◆ Renderer()

fast::Renderer::Renderer ( )
protected

Member Function Documentation

◆ activateShader()

void fast::Renderer::activateShader ( std::string  programName = "default")
protected

◆ addInputConnection()

virtual uint fast::Renderer::addInputConnection ( DataChannel::pointer  port)
virtual

Adds a new input connection

Parameters
port
Returns
the input nr of the new connection

Reimplemented in fast::SliceRenderer, fast::VertexRenderer, fast::LineRenderer, and fast::TriangleRenderer.

◆ addInputData()

virtual uint fast::Renderer::addInputData ( DataObject::pointer  data)
virtual

Adds a new input connection to a specific data object

Parameters
data
Returns
the input nr of the new connection

Reimplemented in fast::VertexRenderer.

◆ attachShader()

void fast::Renderer::attachShader ( std::string  filename,
std::string  programName = "default" 
)
protected

◆ createShaderProgram()

void fast::Renderer::createShaderProgram ( std::vector< std::string >  shaderFilenames,
std::string  programName = "default" 
)
protected

Creates an OpenGL shader program. Should be used in the renderer constructor.

Parameters
shaderFilenames
programName

◆ deactivateShader()

void fast::Renderer::deactivateShader ( )
protected

◆ draw()

virtual void fast::Renderer::draw ( Matrix4f  perspectiveMatrix,
Matrix4f  viewingMatrix,
float  zNear,
float  zFar,
bool  mode2D 
)
pure virtual

◆ execute()

virtual void fast::Renderer::execute ( )
overrideprotectedvirtual

◆ getBoundingBox()

virtual DataBoundingBox fast::Renderer::getBoundingBox ( bool  transform = true)
virtual

Reimplemented in fast::TextRenderer.

◆ getShaderProgram()

uint fast::Renderer::getShaderProgram ( std::string  programName = "default")
protected

◆ getShaderUniformLocation()

int fast::Renderer::getShaderUniformLocation ( std::string  name,
std::string  shaderProgramName = "default" 
)
protected

◆ getSynchronizedRendering()

bool fast::Renderer::getSynchronizedRendering ( ) const

◆ isDisabled()

virtual bool fast::Renderer::isDisabled ( ) const
virtual

Get whether this renderer is disabled or not

Returns

◆ lock()

void fast::Renderer::lock ( )
protected

This will lock the renderer mutex. Used by the compute thread.

◆ postDraw()

virtual void fast::Renderer::postDraw ( )
virtual

◆ reset()

virtual void fast::Renderer::reset ( )
virtual

◆ setDisabled()

virtual void fast::Renderer::setDisabled ( bool  disabled)
virtual

Set renderer to disabled or enabled. A disabled renderer will not draw.

Parameters
disabled

◆ setShaderUniform() [1/6]

void fast::Renderer::setShaderUniform ( std::string  name,
Affine3f  matrix,
std::string  shaderProgramName = "default" 
)
protected

◆ setShaderUniform() [2/6]

void fast::Renderer::setShaderUniform ( std::string  name,
bool  value,
std::string  shaderProgramName = "default" 
)
protected

◆ setShaderUniform() [3/6]

void fast::Renderer::setShaderUniform ( std::string  name,
float  value,
std::string  shaderProgramName = "default" 
)
protected

◆ setShaderUniform() [4/6]

void fast::Renderer::setShaderUniform ( std::string  name,
int  value,
std::string  shaderProgramName = "default" 
)
protected

◆ setShaderUniform() [5/6]

void fast::Renderer::setShaderUniform ( std::string  name,
Matrix4f  matrix,
std::string  shaderProgramName = "default" 
)
protected

◆ setShaderUniform() [6/6]

void fast::Renderer::setShaderUniform ( std::string  name,
Vector3f  vector,
std::string  shaderProgramName = "default" 
)
protected

◆ setSynchronizedRendering()

void fast::Renderer::setSynchronizedRendering ( bool  synched)

◆ setView()

void fast::Renderer::setView ( View view)

◆ stopPipeline()

virtual void fast::Renderer::stopPipeline ( )
virtual

◆ unlock()

void fast::Renderer::unlock ( )
protected

This will unlock the renderer mutex. Used by the compute thread.

Friends And Related Function Documentation

◆ View

friend class View
friend

Member Data Documentation

◆ m_disabled

bool fast::Renderer::m_disabled = false
protected

A disabled renderer will not draw

◆ m_synchedRendering

bool fast::Renderer::m_synchedRendering = true
protected

◆ m_view

View* fast::Renderer::m_view
protected

◆ mDataToRender

std::unordered_map<uint, SpatialDataObject::pointer> fast::Renderer::mDataToRender
protected

This holds the current data to render for each input connection

◆ mHasRendered

bool fast::Renderer::mHasRendered = true
protected

◆ mMutex

std::mutex fast::Renderer::mMutex
protected

◆ mRenderedCV

std::condition_variable_any fast::Renderer::mRenderedCV
protected

◆ mStop

bool fast::Renderer::mStop = false
protected

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