LAMPCAE/src/PostInterface/GraphWidget.h

192 lines
4.4 KiB
C
Raw Normal View History

2023-05-08 06:32:41 +00:00
#ifndef _GRAPHWIDGET_H_
#define _GRAPHWIDGET_H_
#include <QWidget>
#include "PostRenderData/Macros.hxx"
#include "PostInterfaceAPI.h"
ForwardDeclarNS(Ui, GraphWidget)
ForwardDeclar(vtkRenderWindow)
ForwardDeclar(vtkRenderer)
ForwardDeclar(vtkOrientationMarkerWidget)
ForwardDeclar(vtkRenderWindowInteractor)
ForwardDeclar(vtkTextWidget)
namespace Post {
ForwardDeclar(RenderDataObject)
class POSTINTERFACEAPI GraphWidget : public QWidget
{
Q_OBJECT
AddPropertyReadOnly(int, ID, -1)
AddPropertyReadOnly(int, PostType, -1)
AddPropertySetOverride(int, PostDisplayMode, 2)
//AddPtrListProperty(RenderDataObject, ObjectList)
public:
GraphWidget(int id, int type, QWidget* parent = nullptr);
~GraphWidget();
/**
* @brief
*/
void reRender();
/**
* @brief
*/
bool renderObject(RenderDataObject* obj);
/**
* @brief
*/
void removeObject(RenderDataObject* obj);
/**
* @brief
*/
void setView(double lookX, double lookY, double lookZ,
double upX, double upY, double upZ,
double posX, double posY, double posZ);
/**
* @brief
*/
void fitView();
/**
* @brief
* @param file
* @return
*/
bool saveImage(QString file);
/**
* @brief
* @param enable
*/
void enabelAxis(bool enable);
/**
* @brief
* @param top
* @param bottom
*/
void setBackground(double* top, double* bottom);
/**
* @brief
* @param wid id
* @param color
* @param position
* @param focalPoint
*/
void addLight(double* color, double* position, double* focalPoint);
/**
* @brief
* @param wid id
* @param index
*/
void deleteLight(int index);
/**
* @brief
* @param wid id
* @param index
* @param color
* @param position
* @param focalPoint
*/
void refreshLight(int index, double* color, double* position, double* focalPoint);
/**
* @brief
*/
const int getNumberOfLights();
/**
* @brief
*/
vtkRenderWindowInteractor* getInteractor();
vtkRenderWindow* getRenderWindow();
/**
* @brief
* @param wid id
* @param text
* @param color
* @param pos :x,y
* @param size :width,height
* @param movable
* @param visible
*/
bool setRenderTitle(const char* text, double* color, double* pos, double* size, bool movable = true, bool visible = true);
/**
* @brief
* @param wid id
* @param text
*/
bool setRenderTitleText(const char* text);
/**
* @brief
* @param wid id
* @param color
*/
bool setRenderTitleColor(double* color);
/**
* @brief ()
* @param wid id
* @param xCoor x:0-1
* @param yCoor y:0-1
*/
bool setRendetTitlePosition(double xCoor, double yCoor);
/**
* @brief ()
* @param wid id
* @param width :0-1
* @param height :0-1
*/
bool setRendetTitleSize(double width, double height);
/**
* @brief
* @param wid id
* @param visible true-false-
*/
bool setRenderTitleVisible(bool visible);
/**
* @brief
* @param wid id
* @param move true-false-
*/
bool setRenderTitleMovale(bool move);
Q_SIGNALS:
/**
* @brief
* @param w this
*/
void widgetClosed(GraphWidget* w);
private:
/**
* @brief
* @param event My Param doc
*/
void contextMenuEvent(QContextMenuEvent *event) override;
private:
Ui::GraphWidget* _ui{};
/**
* @brief
*/
vtkRenderWindow* _renderWindow{};
/**
* @brief
*/
vtkRenderer* _renderer{};
/**
* @brief
*/
vtkOrientationMarkerWidget* _axesWidget{};
vtkTextWidget* _textWidget{};
QList<RenderDataObject*> _ObjectList{};
};
}
#endif