GOFIGURE2  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members
ContourMeshContainer Class Reference

Wraps a boost::multi_index_container of ContourMeshStructure. This class intends to synchronize Contour and Mesh representation in the Visualization and in the TableWidget. More...

#include <Code/GUI/lib/VisualizationTraceContainers/ContourMeshContainer.h>

Inheritance diagram for ContourMeshContainer:
Inheritance graph
[legend]
Collaboration diagram for ContourMeshContainer:
Collaboration graph
[legend]

Public Types

typedef
MultiIndexContainerType::index
< TCoord >::type::iterator 
MultiIndexContainerTCoordIterator
 
typedef
Superclass::MultiIndexContainerType 
MultiIndexContainerType
 
typedef TraceContainerBase
< boost::MultiIndexContourMeshContainer
Superclass
 
- Public Types inherited from TraceContainerBase< boost::MultiIndexContourMeshContainer >
typedef
MultiIndexContainerType::template
index< CollectionID >
::type::iterator 
MultiIndexContainerCollectionIDIterator
 
typedef
MultiIndexContainerType::value_type 
MultiIndexContainerElementType
 
typedef
MultiIndexContainerType::template
index< Highlighted >
::type::iterator 
MultiIndexContainerHighlightedIterator
 
typedef
MultiIndexContainerType::template
index< TraceID >
::type::iterator 
MultiIndexContainerTraceIDIterator
 
typedef
boost::MultiIndexContourMeshContainer 
MultiIndexContainerType
 
typedef
MultiIndexContainerType::template
index< Visible >
::type::iterator 
MultiIndexContainerVisibleIterator
 

Public Slots

void UpdateElementHighlightingWithGivenTraceIDs (const QStringList &iList, const Qt::CheckState &iCheck)
 Change elements highlighting property given a list of TraceIDs and the new status. More...
 
void UpdateElementVisibilityWithGivenTraceIDs (const QStringList &iList, const Qt::CheckState &iCheck)
 Change elements visibility property given a list of TraceIDs and the new status. More...
 

Signals

void TracePicked (unsigned int, Qt::CheckState)
 When one contour / mesh has been picked (highlighted) from the visualization. More...
 
void TraceVisibilityChanged (unsigned int, Qt::CheckState)
 When one contour / mesh's visibility has been changed from the visualization. More...
 

Public Member Functions

void AddActorsWithGivenTimePoint (const unsigned int &iT)
 Add all actors (elements) from the scene for a given time point. More...
 
void AssignToGivenCollection (unsigned int iCollection, std::list< unsigned int > iToBeAssigned)
 
void ChangeActorsVisibility (MultiIndexContainerTCoordIterator iBegin, MultiIndexContainerTCoordIterator iEnd, const bool &iVisibility)
 Change elements (in between iBegin and iEnd ) visibility. More...
 
template<class TIndex >
void ChangeActorsVisibility (typename MultiIndexContainerType::template index< TIndex >::type::iterator iBegin, typename MultiIndexContainerType::template index< TIndex >::type::iterator iEnd, const bool &iVisibility)
 Change element visibility in the scene. More...
 
void Clear ()
 Delete all elements from the container. More...
 
void Clear (const std::list< unsigned int > &iTraceIDs)
 Delete given elements from the container. More...
 
 ContourMeshContainer (QObject *iParent, QGoImageView3D *iView)
 Constructor. More...
 
std::list< unsigned int > DeleteAllHighlightedElements ()
 Delete all highlighted elements. More...
 
bool DeleteElement (const unsigned int &iId)
 Remove the element which TraceId = iId. More...
 
bool DeleteElement (MultiIndexContainerTraceIDIterator iIter)
 
std::list< unsigned int > GetElementsTraceIDForGivenTimePoint (unsigned int iTimePoint)
 
std::list< unsigned int > GetHighlightedElementsTCoord ()
 
std::map< unsigned int, double * > GetMeshesPoints (std::list< unsigned int > iMeshID)
 
void RemoveActorsWithGivenTimePoint (const unsigned int &iT)
 Remove all actors (elements) from the scene for a given time point. More...
 
void SetTimePoint (const unsigned int &iT)
 Set the Current Time Point. More...
 
void ShowActorsWithGivenTimePoint (const unsigned int &iT)
 Display all elements for a given time point. More...
 
void UpdateCurrentElementFromVisu (std::vector< vtkActor * > &iActors, vtkPolyData *iNodes, const unsigned int &iT, const bool &iHighlighted, const bool &iVisible)
 Update Current Element by providing all required informations from the visualization. More...
 
void UpdateElementHighlighting (unsigned int TraceId)
 Update highlighting property of one element given one actor. More...
 
void UpdateElementVisibility (unsigned int iTraceID, bool iState)
 Update highlighting property of one element given one actor. More...
 
virtual ~ContourMeshContainer ()
 Destructor. More...
 
- Public Member Functions inherited from TraceContainerBase< boost::MultiIndexContourMeshContainer >
std::vector< vtkActor * > GetActorGivenTraceID (unsigned int iTraceID)
 
unsigned int GetCollectionIDOfGivenTraceID (unsigned int iTraceID)
 Get the CollectionID given a TraceID. More...
 
double * GetCurrentElementColor ()
 Get the color of the current element track. More...
 
vtkPolyData * GetCurrentElementNodes ()
 Get the polydata representing the current element track. More...
 
std::list< vtkPolyData * > GetHighlightedElements ()
 Get all highlighted elements by pair<ID, Polydata>. More...
 
std::list< unsigned int > GetHighlightedElementsCollectionID ()
 
std::list< unsigned int > GetHighlightedElementsTraceID ()
 Get the list of highlighted elements TraceID. More...
 
vtkProperty * GetHighlightedProperty ()
 Get property for highlighted traces. More...
 
void Insert (const MultiIndexContainerElementType &iE)
 Insert one element in the container. More...
 
void InsertCurrentElement ()
 Insert Current Element in the container. More...
 
void Print (TIterator iBegin, TIterator iEnd)
 Print the container content in the application output. More...
 
void Print ()
 Print the container content in the application output according to the template parameter. More...
 
void Print ()
 Print the container content in the application output. More...
 
bool RemoveElementFromVisualizationWithGivenTraceID (const unsigned int &iId)
 Remove element from visualization. More...
 
void ResetCurrentElement ()
 Reset Current Element to a default state. More...
 
void SetColorCode (const std::string &iColumnName, const std::map< unsigned int, std::string > &iValues)
 Color code contour / mesh according to values provided. More...
 
void SetColorCode (const std::string &iColumnName, const std::map< unsigned int, TValue > &iValues)
 Color code contour / mesh according to values provided. More...
 
void SetHighlightedProperty (vtkProperty *iProperty)
 Set property whenever the trace is highlighted. More...
 
void SetIntersectionLineWidth (const float &iWidth)
 
void SetLookupTableForColorCoding (vtkLookupTable *iLut)
 Apply the given lookup table to all traces in the container. More...
 
void SetRandomColor (const std::string &iColumnName, const std::map< unsigned int, unsigned int > &iIds)
 
void SetRandomColor (const std::string &iColumnName, const std::map< unsigned int, std::string > &iValues)
 
 TraceContainerBase (QObject *iParent, QGoImageView3D *iView)
 Constructor. More...
 
std::list< unsigned int > UpdateAllHighlightedElementsWithGivenColor (QColor iColor)
 Update all highlighted elements in the container with a given color. More...
 
void UpdateCurrentElementCollection (unsigned int iCollectionID)
 
void UpdateCurrentElementFromDB (unsigned int iTraceID, double irgba[4], bool IsVisible=false)
 Update Current Element from te database. More...
 
bool UpdateCurrentElementFromExistingOne (unsigned int iTraceID, bool iErase=true)
 put the information of the existing element into m_CurrentElement and remove the existing element from the container,the visu and the memory More...
 
bool UpdateCurrentElementFromExistingOne (typename MultiIndexContainerType::template index< TIndex >::type::iterator iIt)
 
bool UpdateElementHighlightingWithGivenTraceID (const unsigned int &iId)
 Update element highlighting given it TraceId. More...
 
bool UpdateElementVisibilityWithGivenTraceID (const unsigned int &iId)
 Update element visibility given it TraceId. More...
 
void UpdateVisualizationForGivenElement (typename MultiIndexContainerType::template index< TIndex >::type::iterator &iIt, std::vector< vtkActor * > iActors, const bool &iHighlighted, const bool &iVisible)
 Update Actors, Highlighted, Visibility (properties) of given a element. More...
 
void UpdateVisualizationForGivenIDs (TList iList)
 Update Visualization of the given TraceIDs. More...
 
virtual ~TraceContainerBase ()
 Destructor. More...
 

Static Public Member Functions

template<typename T >
static int ComputeDirectionFromBounds (T *iBounds)
 Returns the direction of a given element given its bounding box. This static method is supposed to be used when dealing with contours. More...
 
template<typename T >
static int ComputeDirectionFromBounds (const std::vector< T > &iBounds)
 
static int ComputeDirectionFromContour (vtkPolyData *iContour)
 Returns the direction of a given contour vtkPolyData. This static method is supposed to be used when dealing with contours. More...
 

Protected Attributes

unsigned int m_TCoord
 
- Protected Attributes inherited from TraceContainerBase< boost::MultiIndexContourMeshContainer >
vtkProperty * m_HighlightedProperty
 
float m_IntersectionLineWidth
 

Private Member Functions

 Q_DISABLE_COPY (ContourMeshContainer)
 

Additional Inherited Members

- Public Attributes inherited from TraceContainerBase< boost::MultiIndexContourMeshContainer >
MultiIndexContainerType m_Container
 Trace Contaienr. More...
 
MultiIndexContainerElementType m_CurrentElement
 Current Element of the trace type. More...
 
QGoImageView3Dm_ImageView
 Link to the visualization. More...
 
- Protected Member Functions inherited from TraceContainerBase< boost::MultiIndexContourMeshContainer >
void RenderAllElementsWithOriginalColors ()
 Render with original colors. More...
 
void SetScalarRangeForAllElements (const double &iMin, const double &iMax)
 Set the scalar range. More...
 
void UpdateCurrentElementFromVisuBase (std::vector< vtkActor * > &iActors, vtkPolyData *iNodes, const bool &iHighlighted, const bool &iVisible)
 
virtual void UpdateElementHighlightingWithGivenTraceIDsBase (const QStringList &iList, const Qt::CheckState &iCheck)
 Change elements highlighting property given a list of TraceIDs and the new status. More...
 
void UpdateElementHighlightingWithTraceID (const unsigned int &oTraceId, Qt::CheckState &oState)
 Update highlighting property of one element given one actor. More...
 
virtual void UpdateElementVisibilityWithGivenTraceIDsBase (const QStringList &iList, const Qt::CheckState &iCheck)
 Change elements visibility property given a list of TraceIDs and the new status. More...
 
void UpdateElementVisibilityWithTraceID (const unsigned int &oTraceId, const bool &iState)
 

Detailed Description

Wraps a boost::multi_index_container of ContourMeshStructure. This class intends to synchronize Contour and Mesh representation in the Visualization and in the TableWidget.

See Also
ContourMeshStructure QGoTableWidget QGoImageView3D

Definition at line 117 of file ContourMeshContainer.h.

Member Typedef Documentation

typedef MultiIndexContainerType::index< TCoord >::type::iterator ContourMeshContainer::MultiIndexContainerTCoordIterator

Definition at line 127 of file ContourMeshContainer.h.

Definition at line 124 of file ContourMeshContainer.h.

Definition at line 123 of file ContourMeshContainer.h.

Constructor & Destructor Documentation

ContourMeshContainer::ContourMeshContainer ( QObject *  iParent,
QGoImageView3D iView 
)
explicit

Constructor.

Definition at line 41 of file ContourMeshContainer.cxx.

ContourMeshContainer::~ContourMeshContainer ( )
virtual

Destructor.

Definition at line 52 of file ContourMeshContainer.cxx.

Member Function Documentation

void ContourMeshContainer::AddActorsWithGivenTimePoint ( const unsigned int &  iT)

Add all actors (elements) from the scene for a given time point.

Definition at line 149 of file ContourMeshContainer.cxx.

void ContourMeshContainer::AssignToGivenCollection ( unsigned int  iCollection,
std::list< unsigned int >  iToBeAssigned 
)

Definition at line 410 of file ContourMeshContainer.cxx.

void ContourMeshContainer::ChangeActorsVisibility ( MultiIndexContainerTCoordIterator  iBegin,
MultiIndexContainerTCoordIterator  iEnd,
const bool &  iVisibility 
)

Change elements (in between iBegin and iEnd ) visibility.

Parameters
[in]iBeginfirst element
[in]iEndlast element
[in]iVisibility
template<class TIndex >
void ContourMeshContainer::ChangeActorsVisibility ( typename MultiIndexContainerType::template index< TIndex >::type::iterator  iBegin,
typename MultiIndexContainerType::template index< TIndex >::type::iterator  iEnd,
const bool &  iVisibility 
)
inline

Change element visibility in the scene.

Template Parameters
TIndexrefers to any index from the multi index container indices
Parameters
[in]iBeginfirst element
[in]iEndlast element
[in]iVisibility

Definition at line 337 of file ContourMeshContainer.h.

void ContourMeshContainer::Clear ( )

Delete all elements from the container.

Definition at line 376 of file ContourMeshContainer.cxx.

void ContourMeshContainer::Clear ( const std::list< unsigned int > &  iTraceIDs)

Delete given elements from the container.

Definition at line 393 of file ContourMeshContainer.cxx.

template<typename T >
static int ContourMeshContainer::ComputeDirectionFromBounds ( T *  iBounds)
inlinestatic

Returns the direction of a given element given its bounding box. This static method is supposed to be used when dealing with contours.

Returns
0 if z coordinates are constant
1 if y coordinates are constant
2 if x coordinates are constant
-1 else

Definition at line 214 of file ContourMeshContainer.h.

template<typename T >
static int ContourMeshContainer::ComputeDirectionFromBounds ( const std::vector< T > &  iBounds)
inlinestatic

Definition at line 232 of file ContourMeshContainer.h.

static int ContourMeshContainer::ComputeDirectionFromContour ( vtkPolyData *  iContour)
inlinestatic

Returns the direction of a given contour vtkPolyData. This static method is supposed to be used when dealing with contours.

Parameters
[in]iContour
Returns
0 if z coordinates are constant
1 if y coordinates are constant
2 if x coordinates are constant
-1 else

Definition at line 195 of file ContourMeshContainer.h.

std::list< unsigned int > ContourMeshContainer::DeleteAllHighlightedElements ( )
virtual

Delete all highlighted elements.

Returns
the list of TraceIDs of such elements

Implements TraceContainerBase< boost::MultiIndexContourMeshContainer >.

Definition at line 253 of file ContourMeshContainer.cxx.

ContourMeshContainer::DeleteElement ( const unsigned int &  iId)
virtual

Remove the element which TraceId = iId.

  • from the visualization
  • from the container
  • from memory (release memory)
Parameters
[in]iIdTraceID of the element to be deleted
Returns
true if the element was present in the container.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Implements TraceContainerBase< boost::MultiIndexContourMeshContainer >.

Definition at line 188 of file ContourMeshContainer.cxx.

bool ContourMeshContainer::DeleteElement ( MultiIndexContainerTraceIDIterator  iIter)
virtual
std::list< unsigned int > ContourMeshContainer::GetElementsTraceIDForGivenTimePoint ( unsigned int  iTimePoint)
Returns
the traceIDs with TCoord = iTimePoint
Parameters
[in]iTimePointtimepoint for which the traceIDs are needed

Definition at line 320 of file ContourMeshContainer.cxx.

std::list< unsigned int > ContourMeshContainer::GetHighlightedElementsTCoord ( )

Definition at line 433 of file ContourMeshContainer.cxx.

std::map< unsigned int, double * > ContourMeshContainer::GetMeshesPoints ( std::list< unsigned int >  iMeshID)

Definition at line 340 of file ContourMeshContainer.cxx.

ContourMeshContainer::Q_DISABLE_COPY ( ContourMeshContainer  )
private
void ContourMeshContainer::RemoveActorsWithGivenTimePoint ( const unsigned int &  iT)

Remove all actors (elements) from the scene for a given time point.

Parameters
[in]iT

Definition at line 111 of file ContourMeshContainer.cxx.

void ContourMeshContainer::SetTimePoint ( const unsigned int &  iT)

Set the Current Time Point.

Definition at line 87 of file ContourMeshContainer.cxx.

void ContourMeshContainer::ShowActorsWithGivenTimePoint ( const unsigned int &  iT)

Display all elements for a given time point.

Parameters
[in]iTtime point

Definition at line 129 of file ContourMeshContainer.cxx.

void ContourMeshContainer::TracePicked ( unsigned  int,
Qt::CheckState   
)
signal

When one contour / mesh has been picked (highlighted) from the visualization.

void ContourMeshContainer::TraceVisibilityChanged ( unsigned  int,
Qt::CheckState   
)
signal

When one contour / mesh's visibility has been changed from the visualization.

void ContourMeshContainer::UpdateCurrentElementFromVisu ( std::vector< vtkActor * > &  iActors,
vtkPolyData *  iNodes,
const unsigned int &  iT,
const bool &  iHighlighted,
const bool &  iVisible 
)

Update Current Element by providing all required informations from the visualization.

Parameters
[in]iActors
[in]iNodes
[in]iT
[in]iHighlighted
[in]iVisible
See Also
ContourMeshStructure

Definition at line 96 of file ContourMeshContainer.cxx.

void ContourMeshContainer::UpdateElementHighlighting ( unsigned int  TraceId)
inline

Update highlighting property of one element given one actor.

Parameters
[in]iActorActor of the element to be modified
Returns
true if the element exists
false else

Definition at line 256 of file ContourMeshContainer.h.

void ContourMeshContainer::UpdateElementHighlightingWithGivenTraceIDs ( const QStringList &  iList,
const Qt::CheckState &  iCheck 
)
slot

Change elements highlighting property given a list of TraceIDs and the new status.

Parameters
[in]iListlist of TraceIDs
[in]iCheck

Definition at line 167 of file ContourMeshContainer.cxx.

void ContourMeshContainer::UpdateElementVisibility ( unsigned int  iTraceID,
bool  iState 
)
inline

Update highlighting property of one element given one actor.

Parameters
[in]iActorActor of the element to be modified
[in]iStateVisibility to applied to the element
Returns
true if the element exists
false else

Definition at line 270 of file ContourMeshContainer.h.

void ContourMeshContainer::UpdateElementVisibilityWithGivenTraceIDs ( const QStringList &  iList,
const Qt::CheckState &  iCheck 
)
slot

Change elements visibility property given a list of TraceIDs and the new status.

Parameters
[in]iListlist of TraceIDs
[in]iCheck

Definition at line 178 of file ContourMeshContainer.cxx.

Member Data Documentation

unsigned int ContourMeshContainer::m_TCoord
protected

Definition at line 435 of file ContourMeshContainer.h.


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