Skip to content

Commit

Permalink
v3.606a: No more FragTracer functions in normal Vaa3D plugin interface
Browse files Browse the repository at this point in the history
  • Loading branch information
MKRangers committed Dec 31, 2019
1 parent 5006d1c commit 3ec1dd6
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 149 deletions.
8 changes: 0 additions & 8 deletions v3d_main/basic_c_fun/v3d_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,14 +245,6 @@ class V3DPluginCallback2 : public V3DPluginCallback

virtual bool setImageTeraFly(size_t x, size_t y, size_t z) = 0;

virtual bool teraflyImgInstance() = 0;
virtual bool checkFragTraceStatus() = 0;
virtual void changeFragTraceStatus(bool newStatus) = 0;
virtual bool getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[]) = 0;
virtual bool getXlockStatus() = 0;
virtual bool getYlockStatus() = 0;
virtual bool getZlockStatus() = 0;

virtual int setSWC_noDecompose(V3dR_MainWindow* window, const char* fileName) = 0;
virtual bool hideSWC(V3dR_MainWindow* window, int treeIndex) = 0;
virtual bool displaySWC(V3dR_MainWindow* window, int treeIndex) = 0;
Expand Down
35 changes: 0 additions & 35 deletions v3d_main/plugin_loader/v3d_plugin_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1830,41 +1830,6 @@ bool V3d_PluginLoader::setImageTeraFly(size_t x, size_t y, size_t z)
return terafly::PluginInterface::setImage(x,y,z);
}

bool V3d_PluginLoader::checkFragTraceStatus()
{
return terafly::PluginInterface::checkFragTraceStatus();
}

void V3d_PluginLoader::changeFragTraceStatus(bool newStatus)
{
terafly::PluginInterface::changeFragTraceStatus(newStatus);
}

bool V3d_PluginLoader::getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[])
{
return terafly::PluginInterface::getPartialVolumeCoords(globalCoords, localCoords, displayingVolDims);
}

bool V3d_PluginLoader::teraflyImgInstance()
{
return terafly::PluginInterface::teraflyImgInstance();
}

bool V3d_PluginLoader::getXlockStatus()
{
return terafly::PluginInterface::getXlockStatus();
}

bool V3d_PluginLoader::getYlockStatus()
{
return terafly::PluginInterface::getYlockStatus();
}

bool V3d_PluginLoader::getZlockStatus()
{
return terafly::PluginInterface::getZlockStatus();
}

#ifdef __ALLOW_VR_FUNCS__
void V3d_PluginLoader::openVRWindow(V3dR_MainWindow *w, bool bOnlineMode)
{
Expand Down
8 changes: 0 additions & 8 deletions v3d_main/plugin_loader/v3d_plugin_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -233,14 +233,6 @@ public slots:

virtual bool setImageTeraFly(size_t x, size_t y, size_t z);

virtual bool teraflyImgInstance();
virtual bool checkFragTraceStatus();
virtual void changeFragTraceStatus(bool newStatus);
virtual bool getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[]);
virtual bool getXlockStatus();
virtual bool getYlockStatus();
virtual bool getZlockStatus();

virtual int setSWC_noDecompose(V3dR_MainWindow* window, const char* fileName);
virtual bool hideSWC(V3dR_MainWindow* window, int treeIndex);
virtual bool displaySWC(V3dR_MainWindow* window, int treeIndex);
Expand Down
85 changes: 6 additions & 79 deletions v3d_main/terafly/src/control/CPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -542,85 +542,12 @@ bool tf::PluginInterface::setImage(size_t x, size_t y, size_t z)
}


// ------------------------------------ Fragment-based Tracing Related ------------------------------------ //
//--------------------------------------------------------------------------- MK, Mar, 2019 --------------- //
bool tf::PluginInterface::teraflyImgInstance()
{
if (!CImport::instance()->isEmpty()) return true;
else return false;
}

bool tf::PluginInterface::checkFragTraceStatus()
{
Renderer_gl1* thisRenderer = static_cast<Renderer_gl1*>(CViewer::getCurrent()->getGLWidget()->getRenderer());
return thisRenderer->fragmentTrace;
}

void tf::PluginInterface::changeFragTraceStatus(bool newStatus)
{
PMain& pMain = *(PMain::getInstance());
pMain.fragTracePluginInstance = newStatus;
}

bool tf::PluginInterface::getXlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.xLockStatus;
}

bool tf::PluginInterface::getYlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.yLockStatus;
}

bool tf::PluginInterface::getZlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.zLockStatus;
}

bool tf::PluginInterface::getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[])
{
terafly::CViewer* currViewerPtr = terafly::CViewer::getCurrent();
PMain& pMain = *(PMain::getInstance());

if (!currViewerPtr->volumeCutSbAdjusted) return false;

// This part is currently not being used by the caller due to incorrect image origin when volume cut lock is on -- //
globalCoords[0] = PDialogProofreading::instance()->xCoordl;
globalCoords[1] = PDialogProofreading::instance()->xCoordh;
globalCoords[2] = PDialogProofreading::instance()->yCoordl;
globalCoords[3] = PDialogProofreading::instance()->yCoordh;
globalCoords[4] = PDialogProofreading::instance()->zCoordl;
globalCoords[5] = PDialogProofreading::instance()->zCoordh;
// --------------------------------------------------------------------------------------------------------------- //

displayingVolDims[0] = currViewerPtr->getXDim();
displayingVolDims[1] = currViewerPtr->getYDim();
displayingVolDims[2] = currViewerPtr->getZDim();

if (currViewerPtr->xMinAdjusted) localCoords[0] = PDialogProofreading::instance()->sbXlb;
else localCoords[0] = 1;
if (currViewerPtr->xMaxAdjusted) localCoords[1] = PDialogProofreading::instance()->sbXhb;
else localCoords[1] = displayingVolDims[0];
if (currViewerPtr->yMinAdjusted) localCoords[2] = PDialogProofreading::instance()->sbYlb;
else localCoords[2] = 1;
if (currViewerPtr->yMaxAdjusted) localCoords[3] = PDialogProofreading::instance()->sbYhb;
else localCoords[3] = displayingVolDims[1];
if (currViewerPtr->zMinAdjusted) localCoords[4] = PDialogProofreading::instance()->sbZlb;
else localCoords[4] = 1;
if (currViewerPtr->zMaxAdjusted) localCoords[5] = PDialogProofreading::instance()->sbZhb;
else localCoords[5] = displayingVolDims[2];

//cout << " Image block dimensions: " << displayingVolDims[0] << " " << displayingVolDims[1] << " " << displayingVolDims[2] << endl;

if (localCoords[1] - localCoords[0] + 1 == displayingVolDims[0] &&
localCoords[3] - localCoords[2] + 1 == displayingVolDims[1] &&
localCoords[5] - localCoords[4] + 1 == displayingVolDims[2]) return false;
else return true;
}

/* ======================================================================================================
* This method is called by V3d_PluginLoader::runNApluginInterface,
* which casts CViewer to INeuronAssembler in order to allow Neuron Assembler talking to terafly directly.
* Note, when '_NEURON_ASSEMBLER_' preprocessor is deactivated, this method becomes a dummy function
* due to its being a static member of terafly::PluginInterface.
* ========================================================================== MK, Dec, 2019 ============= */
#ifdef _NEURON_ASSEMBLER_
INeuronAssembler* tf::PluginInterface::getTeraflyCViewer()
{
Expand Down
12 changes: 1 addition & 11 deletions v3d_main/terafly/src/control/CPlugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -935,18 +935,8 @@ class terafly::PluginInterface
static std::string version(){ return "1.1.0"; }
static bool setImage(size_t x, size_t y, size_t z);

// ----------------- Fragment-based Tracing Related ----------------- //
//------------------------------------- MK, Mar, 2019 --------------- //
static bool teraflyImgInstance();
static bool checkFragTraceStatus();
static void changeFragTraceStatus(bool newStatus);
static bool getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[]);
static bool getXlockStatus();
static bool getYlockStatus();
static bool getZlockStatus();

// This method casts CViewer to INeuronAssembler to allow Neuron Assembler to directly talk to terafly environment. MK, Dec, 2019
static INeuronAssembler* getTeraflyCViewer();
// ------------------------------------------------------------------ //
};

#endif
Expand Down
71 changes: 71 additions & 0 deletions v3d_main/terafly/src/control/CViewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3227,18 +3227,89 @@ void CViewer::resetEvents()

/* =========== CViewer's implementation of the virtuals inherited from INeuronAssembler =========== */
#ifdef _NEURON_ASSEMBLER_
bool CViewer::teraflyImgInstance()
{
if (!CImport::instance()->isEmpty()) return true;
else return false;
}

bool CViewer::checkFragTraceStatus()
{
Renderer_gl1* thisRenderer = static_cast<Renderer_gl1*>(CViewer::getCurrent()->getGLWidget()->getRenderer());
return thisRenderer->fragmentTrace;
}

void CViewer::changeFragTraceStatus(bool newStatus)
{
PMain& pMain = *(PMain::getInstance());
pMain.fragTracePluginInstance = newStatus;
}

int CViewer::getTeraflyResLevel()
{
CViewer* currViewer = CViewer::getCurrent();
return currViewer->getResIndex();
}

bool CViewer::getXlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.xLockStatus;
}

bool CViewer::getYlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.yLockStatus;
}

bool CViewer::getZlockStatus()
{
PMain& pMain = *(PMain::getInstance());
return pMain.zLockStatus;
}

bool CViewer::getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[])
{
terafly::CViewer* currViewerPtr = terafly::CViewer::getCurrent();
PMain& pMain = *(PMain::getInstance());

if (!currViewerPtr->volumeCutSbAdjusted) return false;

// This part is currently not being used by the caller due to incorrect image origin when volume cut lock is on -- //
globalCoords[0] = PDialogProofreading::instance()->xCoordl;
globalCoords[1] = PDialogProofreading::instance()->xCoordh;
globalCoords[2] = PDialogProofreading::instance()->yCoordl;
globalCoords[3] = PDialogProofreading::instance()->yCoordh;
globalCoords[4] = PDialogProofreading::instance()->zCoordl;
globalCoords[5] = PDialogProofreading::instance()->zCoordh;
// --------------------------------------------------------------------------------------------------------------- //

displayingVolDims[0] = currViewerPtr->getXDim();
displayingVolDims[1] = currViewerPtr->getYDim();
displayingVolDims[2] = currViewerPtr->getZDim();

if (currViewerPtr->xMinAdjusted) localCoords[0] = PDialogProofreading::instance()->sbXlb;
else localCoords[0] = 1;
if (currViewerPtr->xMaxAdjusted) localCoords[1] = PDialogProofreading::instance()->sbXhb;
else localCoords[1] = displayingVolDims[0];
if (currViewerPtr->yMinAdjusted) localCoords[2] = PDialogProofreading::instance()->sbYlb;
else localCoords[2] = 1;
if (currViewerPtr->yMaxAdjusted) localCoords[3] = PDialogProofreading::instance()->sbYhb;
else localCoords[3] = displayingVolDims[1];
if (currViewerPtr->zMinAdjusted) localCoords[4] = PDialogProofreading::instance()->sbZlb;
else localCoords[4] = 1;
if (currViewerPtr->zMaxAdjusted) localCoords[5] = PDialogProofreading::instance()->sbZhb;
else localCoords[5] = displayingVolDims[2];

//cout << " Image block dimensions: " << displayingVolDims[0] << " " << displayingVolDims[1] << " " << displayingVolDims[2] << endl;

if (localCoords[1] - localCoords[0] + 1 == displayingVolDims[0] &&
localCoords[3] - localCoords[2] + 1 == displayingVolDims[1] &&
localCoords[5] - localCoords[4] + 1 == displayingVolDims[2]) return false;
else return true;
}

void CViewer::getSelectedMarkerList(QList<ImageMarker>& selectedMarkerList, QList<ImageMarker>& selectedLocalMarkerList)
{
terafly::CViewer* currViewerPtr = terafly::CViewer::getCurrent();
Expand Down
22 changes: 15 additions & 7 deletions v3d_main/terafly/src/control/CViewer.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,16 +191,24 @@ class terafly::CViewer : public QWidget

#ifdef _NEURON_ASSEMBLER_
/* ====================================================================================================
* In order to simplify the communication between Neuron Assembler plugin and terafly environment,
* I make INeuronAsembler 1 of CViewer's bases (with conditional preprocessor macro '_NEURON_ASSEMBLER_').
* This preprocessor block lists functionalities that can be accessed through this interface.
* Note, this is a bypass of [V3DPluginCallback2 -> V3d_PluginLoader -> CPlugin -> CViewer] route.
* Through this interface, the plugin directly talks to CViewer through [INeuronAssembler].
* -- MK, Dec, 2019
* ==================================================================================================== */
* In order to simplify the communication between Neuron Assembler plugin and terafly environment,
* I make INeuronAsembler 1 of CViewer's bases (with conditional preprocessor macro '_NEURON_ASSEMBLER_').
* This preprocessor block lists functionalities that can be accessed through this interface.
* Note, this is a bypass of [V3DPluginCallback2 -> V3d_PluginLoader -> CPlugin -> CViewer] route.
* Through this interface, the plugin directly talks to CViewer through [INeuronAssembler].
* -- MK, Dec, 2019
* ==================================================================================================== */
virtual bool teraflyImgInstance();

virtual bool checkFragTraceStatus();
virtual void changeFragTraceStatus(bool newStatus);

virtual string getCviewerWinTitle() { return this->title; }
virtual int getTeraflyResLevel();
virtual bool getXlockStatus();
virtual bool getYlockStatus();
virtual bool getZlockStatus();
virtual bool getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[]);

virtual void getSelectedMarkerList(QList<ImageMarker>& selectedMarkerList, QList<ImageMarker>& selectedLocalMarkerList);
virtual void refreshSelectedMarkers();
Expand Down
8 changes: 8 additions & 0 deletions v3d_main/v3d/INeuronAssembler.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ class INeuronAssembler
public:
virtual ~INeuronAssembler() {}

virtual bool teraflyImgInstance() = 0;

virtual bool checkFragTraceStatus() = 0;
virtual void changeFragTraceStatus(bool newStatus) = 0;

virtual string getCviewerWinTitle() = 0;
virtual int getTeraflyResLevel() = 0;
virtual bool getXlockStatus() = 0;
virtual bool getYlockStatus() = 0;
virtual bool getZlockStatus() = 0;
virtual bool getPartialVolumeCoords(int globalCoords[], int localCoords[], int displayingVolDims[]) = 0;

virtual void getSelectedMarkerList(QList<ImageMarker>& selectedMarkerList, QList<ImageMarker>& selectedLocalMarkerList) = 0;
virtual void refreshSelectedMarkers() = 0;
Expand Down
2 changes: 1 addition & 1 deletion v3d_main/v3d/v3d_version_info.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Peng, H, Ruan, Z., Atasoy, D., and Sternson, S. (2010) “Automatic reconstructi
namespace v3d {
// Set current version here.

VersionInfo thisVersionOfV3D("3.606");
VersionInfo thisVersionOfV3D("3.606a");

QString versionnumber = "Vaa3D (3D Visualization-Assisted Analysis) (" +
thisVersionOfV3D.toQString() +
Expand Down

0 comments on commit 3ec1dd6

Please sign in to comment.