Skip to content

Commit

Permalink
FragTracer marker detector for 3D viewer
Browse files Browse the repository at this point in the history
  • Loading branch information
MKRangers committed Feb 4, 2020
1 parent 76d0b1f commit bc2d14d
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 12 deletions.
6 changes: 3 additions & 3 deletions v3d_main/3drenderer/renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,9 @@ int Renderer::selectObj(int x, int y, bool b_menu, char* pTip)
}
//printf("\n");

// v3d_msg("hello before processHit",0);
int ret = processHit((int)nameLength, hitNames, x, y, b_menu, pTip); //////////////////////
// v3d_msg("hello after processHit",0);
//v3d_msg("hello before processHit",0);
int ret = processHit((int)nameLength, hitNames, x, y, b_menu, pTip); //////////////////////
//v3d_msg("hello after processHit",0);

delete[] selectBuf;
delete[] hitNames;
Expand Down
2 changes: 2 additions & 0 deletions v3d_main/3drenderer/renderer_gl1.h
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,8 @@ class Renderer_gl1 : public Renderer
void rc_downstream_segID(My4DImage* curImg, size_t segID);
void segTreeFastReprofile(My4DImage* curImg);
void rc_findDownstreamSegs(My4DImage* curImg, size_t inputSegID, string gridKey, int gridLength);

bool FragTraceMarkerDetector3Dviewer;
// -----------------------------------------------------------------------------------------------------------------------------------

// @ADDED by Alessandro on 2015-05-23. Called when "Esc" key is pressed and tracedNeuron must be updated.
Expand Down
33 changes: 24 additions & 9 deletions v3d_main/3drenderer/renderer_hit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,14 +126,14 @@ int Renderer_gl1::processHit(int namelen, int names[], int cx, int cy, bool b_me
{
case stImageMarker: {//marker
(qsName = QString("marker #%1 ... ").arg(names[2]) + listMarker.at(names[2]-1).name);

//qDebug() << qsName;
/* ======== Select and unselect marker with mouse left button, MK, Sep, 2019 ======= */
switch (b_menu)
switch (b_menu)
{
case true:
LIST_SELECTED(listMarker, names[2] - 1, true);
case true: // With menu popping up (right click)
if (!this->FragTraceMarkerDetector3Dviewer) LIST_SELECTED(listMarker, names[2] - 1, true);
break;
case false:
case false: // Without menu popping up (left click)
switch (listMarker.at(names[2] - 1).selected)
{
case true:
Expand Down Expand Up @@ -530,6 +530,23 @@ int Renderer_gl1::processHit(int namelen, int names[], int cx, int cy, bool b_me
//##############################################################################
if (IS_SURFACE())
{
if (this->FragTraceMarkerDetector3Dviewer)
{
switch (listMarker.at(names[2] - 1).selected)
{
case true:
LIST_SELECTED(listMarker, names[2] - 1, false);
cout << "test1" << endl;
break;
case false:
LIST_SELECTED(listMarker, names[2] - 1, true);
cout << "test2" << endl;
break;
}

return 0;
}

listAct.append(act = new QAction("", w)); act->setSeparator(true);
listAct.append(actShowFullPath = new QAction("Show full path", w));
listAct.append(actObjectManager = new QAction("object manager", w));
Expand Down Expand Up @@ -1414,9 +1431,7 @@ int Renderer_gl1::processHit(int namelen, int names[], int cx, int cy, bool b_me
{
const ImageMarker & m = listMarker.at(tmpind);
XYZ p = XYZ(m);
//<<<<<<< HEAD
// MarkerSpaceToNormalizeSpace(p);
//=======

p.x = p.x*thicknessX -start1;
p.y = p.y*thicknessY -start2;
p.z = p.z*thicknessZ -start3;
Expand All @@ -1438,7 +1453,7 @@ int Renderer_gl1::processHit(int namelen, int names[], int cx, int cy, bool b_me
p.x = s[0]*(p.x +t[0]);
p.y = s[1]*(p.y +t[1]);
p.z = s[2]*(p.z +t[2]);
//>>>>>>> de6b711e02a658efa8704f8bffd841b27a8873ba

qDebug("normalized alt rotation center: (%f %f %f)", p.x, p.y, p.z);

w->setAltCenter(p.x, p.y, p.z);
Expand Down
1 change: 1 addition & 0 deletions v3d_main/3drenderer/renderer_tex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ Renderer_gl1::Renderer_gl1(void* widget)
this->isLoadFromFile = false;
this->pressedShowSubTree = false;
this->zThick = 1;
this->FragTraceMarkerDetector3Dviewer = false;

qDebug(" Renderer_gl1::Renderer_gl1");
init_members();
Expand Down
2 changes: 2 additions & 0 deletions v3d_main/basic_c_fun/v3d_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ class V3DPluginCallback2 : public V3DPluginCallback
virtual void setHideDisplayControlButton(V3dR_MainWindow *w)=0;
// virtual void setResizeEvent(V3dR_MainWindow *w, int x, int y)=0;

virtual void set3DViewerMarkerDetectorStatus(bool on_off, V3dR_MainWindow* w) = 0;

//added TeraFly interface, functions are provided by Alessadnro Bria, the wrapper is provided by Zhi Zhou Aug. 23, 2017
virtual NeuronTree getSWCTeraFly() = 0;
virtual bool setSWCTeraFly(NeuronTree & nt) = 0;
Expand Down
8 changes: 8 additions & 0 deletions v3d_main/plugin_loader/v3d_plugin_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1288,6 +1288,14 @@ void V3d_PluginLoader::setHideDisplayControlButton(V3dR_MainWindow *w)
// }
//}

void V3d_PluginLoader::set3DViewerMarkerDetectorStatus(bool on_off, V3dR_MainWindow* w)
{
V3dR_GLWidget* vi = w->getGLWidget();
Renderer_gl1* thisRenderer = (Renderer_gl1*)(vi->getRenderer());
thisRenderer->FragTraceMarkerDetector3Dviewer = on_off;
cout << "marker detector test: " << thisRenderer->listMarker.size() << endl;
}

void V3d_PluginLoader::setWindowDataTitle(V3dR_MainWindow * w, QString title)
{
if (v3d_mainwindow )
Expand Down
2 changes: 2 additions & 0 deletions v3d_main/plugin_loader/v3d_plugin_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,8 @@ public slots:
virtual void setHideDisplayControlButton(V3dR_MainWindow *w);
//virtual void setResizeEvent(V3dR_MainWindow *w, int x, int y);

virtual void set3DViewerMarkerDetectorStatus(bool on_off, V3dR_MainWindow* w);

#ifdef __ALLOW_VR_FUNCS__
virtual void openVRWindow(V3dR_MainWindow *w, bool bOnlineMode = false);
virtual void openVRWindowV2(v3dhandle image_window, bool bOnlineMode = false);
Expand Down

0 comments on commit bc2d14d

Please sign in to comment.