Commit bc3e1c0a authored by David Svoboda's avatar David Svoboda Committed by Vladimír Ulman
Browse files

Vylepšená dokumentace ve stylu Doxygen.

M    CMakeLists.txt
M    Doxyfile
M    src/cell.cpp
M    src/cell.h
M    src/cell_00_Samplephase.cpp
M    src/cell_01_Prophase.cpp
M    src/cell_02_Metaphase.cpp
M    src/cell_03_Anaphase.cpp
M    src/cell_04_Telophase.cpp
M    src/cell_05_Cytokinesis.cpp
M    src/cell_06_G1Phase.cpp
M    src/cell_07_SPhase.cpp
M    src/cell_08_G2Phase.cpp
M    src/dots.h
M    src/main.cpp
M    src/molecule.h
M    src/scheduler.h
M    src/settings.h
M    src/toolbox/bp_lists.h
M    src/toolbox/cell_movement.h
M    src/toolbox/collisions.h
M    src/toolbox/deformations.h
M    src/toolbox/finalpreview.h
M    src/toolbox/flowfields.h
M    src/toolbox/importexport.h
M    src/toolbox/perlin.h
M    src/toolbox/randWalk.h
M    src/toolbox/rnd_generators.h
M    src/toolbox/shape_rendering.h
M    src/toolbox/user_abort.h
M    src/types.h
parent efa11f48
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ set (SRCS
		  src/molecule.cpp
		  src/scheduler.cpp 
		  src/cell.cpp 
		  src/cell_00_Samplephase.cpp 
		  src/cell_01_Prophase.cpp 
		  src/cell_02_Metaphase.cpp 
		  src/cell_03_Anaphase.cpp 
+4 −4
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ PROJECT_NAME = MitoGen
# This could be handy for archiving the generated documentation or 
# if some version control system is used.

PROJECT_NUMBER         = "release 6.2016"
PROJECT_NUMBER         = "release 2016.7"

# Using the PROJECT_BRIEF tag one can provide an optional one line description 
# for a project that appears at the top of each page and should give viewer 
@@ -44,9 +44,9 @@ PROJECT_BRIEF = "Generator of simulated 3D time-lapse biomedical datase
# included in the documentation. The maximum height of the logo should not 
# exceed 55 pixels and the maximum width should not exceed 200 pixels. 
# Doxygen will copy the logo to the output directory.

PROJECT_LOGO           = doc/cbia_logo.png

#
# PROJECT_LOGO           = doc/cbia_logo.png
#
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
# base path where the generated documentation will be put. 
# If a relative path is entered, it will be relative to the location 
+3 −0
Original line number Diff line number Diff line
@@ -655,6 +655,9 @@ ListOfPhases Cell<MV, PV>::GetNextPhase() const
	 return nextPhase;
}

/**
 * \ingroup edit
 */
//------------------------------------------------------------------
template <class MV, class PV>
void Cell<MV, PV>::DoNextPhase(void)
+35 −4
Original line number Diff line number Diff line
@@ -42,18 +42,30 @@
#include "toolbox/randWalk.h"

/**
 * \ingroup cell
 *
 * A helper function to provide IDs for objects which guarantees their uniqueness
 * within the whole scene throughout the whole simulation.
 */
template <class ID_TYPE> ID_TYPE GetNewCellID(void);

/// prototype of a class defined in file 'scheduler.h'
/**
 * \ingroup scheduler
 *
 * prototype of a class defined in file 'scheduler.h'
 */
template <class MV, class PV> class Scheduler;

/// prototype of a struct defined in file 'scheduler.h'
/**
 * \ingroup scheduler
 *
 * prototype of a struct defined in file 'scheduler.h'
 */
template <class TYPE> struct TrackRecord;

/**
 * \ingroup cell
 *
 * Basic class defining live 'cell'
 * MV ... mask voxel datatype
 * PV ... phantom voxel datatype
@@ -268,6 +280,9 @@ template <class MV, class PV> class Cell
			 /// perform one atomic phase of cell cycle
			 void DoNextPhase(void);

			 /// perform nothing (specimen empty method)
			 void DoSamplePhase(const size_t noFrames);

			 /// perform one atomic phase of cell cycle
			 void DoProphase(const size_t noFrames);

@@ -1405,6 +1420,8 @@ template <class MV, class PV> class Cell

//---------------------------------------------------------------
/**
 * \ingroup cell
 *
 * Calculates SVD from the true-valued voxels in the \e cellMask
 * and returns the eigen vector associated with the largest eigen value.
 * The output vector \e polVec should then (hopefully) tell the major
@@ -1420,6 +1437,8 @@ void GetCellPolarityAndCentreVector(const i3d::Image3d<bool> &cellMask,

//---------------------------------------------------------------
/**
 * \ingroup cell
 *
 * A function generating two independent centrosomes in the given
 * cell mask.
 *
@@ -1433,6 +1452,8 @@ void GenerateCentrosomes(const i3d::Image3d<bool> &cellMask,

//-------------------------------------------------------------------
/**
 * \ingroup cell
 *
 * A function expectes two lists of Dots understood as input list
 * and output list. The function solves the min assignment problem
 * between these to lists. Finall the sequence of moving Dots from
@@ -1452,7 +1473,10 @@ void GenerateMovementOfChromocenters
	 std::vector < std::vector<Dot> > &movementOfChromocenters);

//----------------------------------------------------------------------
/** A function that generates required number of points into
/** 
 * \ingroup cell
 *
 * A function that generates required number of points into
 * given mask.
 *
 * \param[in]	mask	given mask
@@ -1467,7 +1491,10 @@ void GenerateRandomPositions(const i3d::Image3d<T> &mask,
									  const T label = T(1));

//---------------------------------------------------------------
/** A function that take tow 3d points (centrosomes), generates
/** 
 * \ingroup cell
 *
 * A function that take tow 3d points (centrosomes), generates
 * corresponding metaphase plate a splits the image according
 * to this plate.
 *
@@ -1486,6 +1513,8 @@ void SplitMaskIntoTwoHalves(const i3d::Image3d<bool> &cellMask,

//-------------------------------------------------------------------
/**
 * \ingroup cell
 *
 * Resample array with nearest neighbour strategy with right alignment!
 * We need right alignment as the array contains time sequence and we are
 * interested in the most recent (the right most) states of the objects.
@@ -1502,6 +1531,8 @@ void ResampleArrayNN(std::vector<T> &array, size_t samples);

//-------------------------------------------------------------------
/**
 * \ingroup cell
 *
 * This function sorts the second array of Dots in a way that the
 * dots in both arrays (oldDots, newDots) in corresponding
 * positions have globaly the shortest distance one to each other.
+16 −5
Original line number Diff line number Diff line
@@ -37,10 +37,13 @@
// INSTANCE, SKIP THE NUCLEOLUS PARTS IF NO NUCLEOLUS SHOULD EXIST IN THE PHASE
//

/**
 * \ingroup edit
 */
template <class MV, class PV>
void Cell<MV, PV>::DoSPhase(const size_t noFrames)
void Cell<MV, PV>::DoSamplePhase(const size_t noFrames)
{
	REPORT("\n   *****  *****   cell ID=" << ID << ", STARTING S-phase at timePoint=" << timePoint);
	REPORT("\n   *****  *****   cell ID=" << ID << ", STARTING Ssample-phase at timePoint=" << timePoint);

	//helper information flags:
	//whether to keep local images updated (=synchronized) with the Scheduler::scene images
@@ -91,6 +94,8 @@ void Cell<MV, PV>::DoSPhase(const size_t noFrames)
	FlowField<float> FF;
	InitFlowField(maskCell,FF);

	i3d::Image3d<float> *distanceMap = NULL;

	// ---------- actions a phase needs to do before the frame generating cycle ----------
	//prepare the activity plan to spread the phase duties over the given number of frames

@@ -152,7 +157,7 @@ void Cell<MV, PV>::DoSPhase(const size_t noFrames)
			//do "significant" Brownian motion within the mask
			ChrMoveWithBrown(i,0.25f,maskNucleus,1);
			//do "very little" Gravity-induced motion within the mask
			ChrMoveWithGravity(i,0.25f,maskNucleus,1);
			ChrMoveWithGravity(i,0.25f,maskNucleus,distanceMap, 1);
		}


@@ -276,6 +281,12 @@ void Cell<MV, PV>::DoSPhase(const size_t noFrames)
			RenderBPListIntoMask(maskNucleus,(MV)3,
			  scmNucleoli2BPList,scmNucleoli2BPCentre,scmNucleoli2OuterBPNumber);

			if (distanceMap)
			{
				 delete distanceMap; 
				 distanceMap = NULL; // force recomputing distance map
			}

			//masks are done, move on to the phantom image:
			//synchronize chrDotList to the new situation
			ChrMoveByFlow(FF,*scheduler.sceneMasks[timePoint+1],this->ID);
@@ -283,8 +294,8 @@ void Cell<MV, PV>::DoSPhase(const size_t noFrames)
			//will not appear outside the ground-truth mask, that's good ;-)
			//
			//alternatively, may be a bit faster (as smaller image is considered)
			ChrMoveByFlowBM(FF,maskCell);
			ChrCentrosomesMoveByFlowBM(FF,maskCell);
			ChrMoveByFlowBM(FF,maskCell, distanceMap);
			ChrCentrosomesMoveByFlowBM(FF,maskCell, distanceMap);

			//draw the phantom image
			ChrRenderIntoPhantoms(*scheduler.scenePhantoms[timePoint+1]);
Loading