You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
5.8 KiB
C++
177 lines
5.8 KiB
C++
/*****************************************************************//**
|
|
* @file FITKFluidVTKGraphObjectBoundMesh.h
|
|
* @brief Graph object for 'boundary mesh' data.
|
|
*
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*********************************************************************/
|
|
|
|
#ifndef __FITKFLUIDVTKGRAPHOBJECTBOUNDMESH_H__
|
|
#define __FITKFLUIDVTKGRAPHOBJECTBOUNDMESH_H__
|
|
|
|
#include "FITKFluidVTKGraphObject3D.h"
|
|
|
|
#include "FITKFluidVTKGraphAdaptorAPI.h"
|
|
|
|
// Forward declaration
|
|
class QVariant;
|
|
|
|
class FITKGraphActor;
|
|
|
|
namespace Interface
|
|
{
|
|
class FITKBoundaryMeshVTK;
|
|
}
|
|
|
|
namespace Exchange
|
|
{
|
|
class FITKFluidVTKGraphObjectSelect;
|
|
}
|
|
|
|
namespace Exchange
|
|
{
|
|
/**
|
|
* @brief Graph object for 'boundary mesh' data.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
class FITKFLUIDGRAPHADAPTORAPI FITKFluidVTKGraphObjectBoundMesh : public FITKFluidVTKGraphObject3D
|
|
{
|
|
// Regist
|
|
FITKGraphRegist(FITKFluidVTKGraphObjectBoundMesh, FITKFluidVTKGraphObject3D);
|
|
FITKCLASS(Exchange, FITKFluidVTKGraphObjectBoundMesh);
|
|
|
|
public:
|
|
/**
|
|
* @brief Constructor.
|
|
* @param meshData: The boundary mesh data
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
FITKFluidVTKGraphObjectBoundMesh(Interface::FITKBoundaryMeshVTK* meshData);
|
|
|
|
/**
|
|
* @brief Destructor.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
~FITKFluidVTKGraphObjectBoundMesh() = default;
|
|
|
|
/**
|
|
* @brief Update all graph actors.[override]
|
|
* @param forceUpdate: Force update[default]
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-08-06
|
|
*/
|
|
void update(bool forceUpdate = false) override;
|
|
|
|
/**
|
|
* @brief Hide or show the graph object's actor.[override]
|
|
* @param visibility: The visibility.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
void setVisible(bool visibility) override;
|
|
|
|
/**
|
|
* @brief Set the color.[override]
|
|
* @param color: The color
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
void setColor(QColor color) override;
|
|
|
|
/**
|
|
* @brief Set the mesh view mode by the given type and flag.[override]
|
|
* @param type: The shape type
|
|
* @param visible: The visibility
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void setViewMode(FITKFluidVTKCommons::ShapeMeshViewMode type, bool visible) override;
|
|
|
|
/**
|
|
* @brief Enable or disable transparent.[override]
|
|
* @param isOn: Enable or disable
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-30
|
|
*/
|
|
void setTransparent(bool isOn) override;
|
|
|
|
/**
|
|
* @brief Highlight the graph actors.[override]
|
|
* @param type: The shape type need to be highlighted[default]
|
|
* @param color: The given color for highlighting this time[default]
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void highlight(FITKFluidVTKCommons::ShapeType type = FITKFluidVTKCommons::ShapeTypeNone, QColor color = QColor()) override;
|
|
|
|
/**
|
|
* @brief Dis-highlight the graph actors.[override]
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void disHighlight() override;
|
|
|
|
/**
|
|
* @brief Advanced highlight mode for highlighting part of the graph actors.[override]
|
|
* @param type: The type of the model need to be highlighted
|
|
* @param indice: The given indice of the model component need to be highlight
|
|
* @param color: The given color for highlighting this time[default]
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void advanceHighlight(FITKFluidVTKCommons::ShapeType type, QVector<int> indice, QColor color = QColor()) override;
|
|
|
|
/**
|
|
* @brief Dis-highlight the graph actors if the graph object is in advanced highlighting mode.[override]
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
void disAdvanceHighlight() override;
|
|
|
|
/**
|
|
* @brief Get the VTK mesh grid by the given mesh type.[override]
|
|
* @param type: The shape's VTK mesh type
|
|
* @return The vtkDataSet object of the given type of mesh
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-26
|
|
*/
|
|
vtkDataSet* getMesh(FITKFluidVTKCommons::ShapeType type) override;
|
|
|
|
private:
|
|
/**
|
|
* @brief Initialize the pointer.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
void init();
|
|
|
|
/**
|
|
* @brief Generate the mesh with the vtkDataSet.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-24
|
|
*/
|
|
void generateGraph();
|
|
|
|
private:
|
|
/**
|
|
* @brief The model extractor for normal or advanced highlight.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
FITKFluidVTKGraphObjectSelect* m_highlightSelector{ nullptr };
|
|
|
|
/**
|
|
* @brief The actor.
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
* @date 2024-07-23
|
|
*/
|
|
FITKGraphActor* m_fActor{ nullptr };
|
|
|
|
};
|
|
} // namespace Exchange
|
|
|
|
#endif // __FITKFLUIDVTKGRAPHOBJECTBOUNDMESH_H__
|