10 #include <ImageData.hpp>
11 #include <MGXViewer/qglviewer.h>
26 virtual void interpolateAtTime(
float time);
28 std::vector<float> zooms;
56 void getOrthoWidthHeight(GLdouble& halfWidth, GLdouble& halfHeight)
const;
62 virtual void addKeyFrameToPath(
int i);
64 virtual void playPath(
int i);
66 virtual void deletePath(
int i);
68 virtual void resetPath(
int i);
70 virtual void drawAllPaths();
74 return _frame->zoom();
114 std::set<mgx::vertex::identity_t> selectV;
118 bool pixelEditCursor;
121 mgx::Shader raycasting_shader1, raycasting_shader2;
123 mgx::Shader final_combine_shader, combine_shader, render_depth_shader;
124 mgx::Shader texture_surf_shader, index_surf_shader;
125 mgx::Shader volume_surf_shader1, volume_surf_shader2;
129 GLuint baseFboId, fboId, fboCopyId;
130 GLuint depthTexId[NB_FRAMES];
131 GLuint colorTexId[NB_FRAMES];
133 std::vector<GLfloat> depthTexture;
134 int drawWidth, drawHeight;
135 int prevWidth, prevHeight;
137 enum SelectMode { NONE, MOVE, SELRECT };
138 SelectMode selectMode;
148 bool deletePckdLabel;
156 bool selectConnected;
176 int texWidth, texHeight;
183 float GlobalBrightness;
184 float GlobalContrast;
185 float UnsharpStrength;
187 float ZoomFactor()
const;
188 void setZoomFactor(
float f);
195 float getSceneRadius()
const {
199 void processRunning(
bool state)
201 _processRunning = state;
204 bool processRunning()
206 return _processRunning;
212 QString fullSnapshotFileName();
213 void initObject(
QWidget* parent);
216 bool _processRunning;
226 static void initFormat();
230 void drawSelectRect();
231 void drawPixelCursor();
232 void checkPixelCursor(
bool altPressed);
235 void setLighting(
bool isStack1);
240 void startScreenCoordinatesSystem(
bool upward =
false)
const;
247 virtual void postDraw();
251 void updateFBOTex(
int width,
int height,
bool fast_draw =
false);
252 void drawColorTexture(
int i,
bool draw_depth =
false);
253 void alternatePeels(
int& curPeelId,
int& prevPeelId,
int fullImgId);
254 void combinePeels(
int& fullImgId,
int curPeelId,
int volume1,
int volume2);
255 void setupCopyFB(GLuint depth, GLint color);
256 void setupFramebuffer(GLuint depth, GLuint color, GLbitfield clear = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
257 void resetupFramebuffer(GLuint depth, GLuint color, GLbitfield clear = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
258 void resetFramebuffer();
259 void leaveEvent(
QEvent* e);
260 void enterEvent(
QEvent* e);
272 void findSelectTriangle(
mgx::ImgData* stk, uint x, uint y, std::vector<uint>& vlist,
int& label,
273 bool useParentLabel =
true);
278 Qt::MouseButtons lastButtons;
284 void pixelEditStop();
289 void deletePickedLabelMove(
QMouseEvent* e,
bool replace =
false);
290 void deletePickedLabel();
293 void pickVolumeLabelStop();
299 void labelEditStop();
303 void ClipEnableSlot(
mgx::Clip* c,
bool _val);
304 void ClipGridSlot(
mgx::Clip* c,
bool _val);
305 void ClipWidthSlot(
mgx::Clip* c,
int _val);
308 void setLabel(
int label);
309 void selectMeshLabel(
int label,
bool replace =
true);
310 void selectMeshLabel(
int label,
int repeat,
bool replace =
true);
311 void unselectMeshLabel(
int label);
312 void ReloadShaders();
316 void editMainTransferFunction1();
317 void editWorkTransferFunction1();
318 void editSurfTransferFunction1();
319 void editHeatTransferFunction1();
320 void editMainTransferFunction2();
321 void editWorkTransferFunction2();
322 void editSurfTransferFunction2();
323 void editHeatTransferFunction2();
324 void loadFile(
const QString& pth,
bool stack2,
bool load_work);
328 void Clip1EnableSlot(
bool _val) {
329 ClipEnableSlot(c1, _val);
331 void Clip1GridSlot(
bool _val) {
332 ClipGridSlot(c1, _val);
334 void Clip1WidthSlot(
int _val) {
335 ClipWidthSlot(c1, _val);
337 void Clip2EnableSlot(
bool _val) {
338 ClipEnableSlot(c2, _val);
340 void Clip2GridSlot(
bool _val) {
341 ClipGridSlot(c2, _val);
343 void Clip2WidthSlot(
int _val) {
344 ClipWidthSlot(c2, _val);
346 void Clip3EnableSlot(
bool _val) {
347 ClipEnableSlot(c3, _val);
349 void Clip3GridSlot(
bool _val) {
350 ClipGridSlot(c3, _val);
352 void Clip3WidthSlot(
int _val) {
353 ClipWidthSlot(c3, _val);
356 void FlySpeedSlot(
int val) {
357 FlySpeed = float(val) / 10000.0;
359 void DrawCellMapSlot(
bool val)
364 void SlicesSlot(
int val)
366 mgx::ImgData::Slices = val;
369 void ScreenSamplingSlot(
int val);
370 void Surf1BrightSlot(
int val)
372 stack1->mesh->setBrightness(
float(val) / 10000.0);
375 void Surf2BrightSlot(
int val)
377 stack2->mesh->setBrightness(
float(val) / 10000.0);
380 void LabelColorSlot();
381 void ResetViewSlot();
383 void recordMovie(
bool on);
385 void saveScreenshot(
bool automatic =
false,
bool overwrite =
false)
389 void saveScreenshot(
const QString& fileName,
bool overwrite =
false)
393 void setScreenshotFileName(
const QString& name) {
396 void setScreenshotFormat(
const QString& format) {
399 void setScreenshotCounter(
int counter) {
402 void setScreenshotQuality(
int quality) {
405 bool openScreenshotFormatDialog() {
409 virtual void initFromDOMElement(
const QDomElement& element);
411 void ViewerUpdateSlot() {
414 void ToggleHeatMapSlot();
416 virtual bool saveImageSnapshot(
const QString& fileName,
QSize finalSize,
double oversampling = 1.0,
417 bool expand =
false,
bool has_gui =
false);
419 bool saveImageSnapshot(
const QString& fileName,
QSize finalSize,
double oversampling,
bool expand,
bool has_gui,
422 void showEntireScene() {
423 camera()->showEntireScene();
427 void deleteSelection();
429 void stepDrawFinished(
bool);
430 void setLabelColor(
QIcon&);
431 void recordingMovie(
bool);
432 void changeSceneRadius(
float);
433 void selectLabelChanged(
int);
setSnapshotQuality(int quality)
saveSnapshot(bool automatic=true, bool overwrite=false)
setSnapshotFormat(const QString &format)
Definition: MorphoViewer.hpp:23
This file contains the definition of a clipping region.
AttribBase(const QString &name) const QString & name()
Default constructor of named attribute.
Definition: Attributes.hpp:54
This file contains the definition of a vertex.
Definition: MorphoViewer.hpp:51
setSnapshotCounter(int counter)
setSnapshotFileName(const QString &name)
Definition: MorphoViewer.hpp:96
Class to handle rotatable pair of clipping planes.
Definition: ClipRegion.hpp:28
Definition: MorphoViewer.hpp:31
Definition: Shader.hpp:269
openSnapshotFormatDialog()
The Store class holds the actual 3D data and properties specific to it.
Definition: Store.hpp:25
Definition: MorphoGraphX.hpp:43
This file contains the definition of an edge data.
Common definitions and utilities for all geometry algorithms This file is shared by cuda...
A utility class to parse L-Studio like parameter files.
Definition: Parms.hpp:105
Definition: CutSurf.hpp:21
Definition: ImageData.hpp:37