#include <i3d/image3d.h> #include "params.h" #include "graphics.h" #include "../cmath3d/TriangleMesh.h" //create some shared objects... ParamsClass params; void ParamsSetup(void); // ActiveMesh mesh; int main(void) { ParamsSetup(); //load mesh //char filename[]="../sample_input/samplecell.stl"; //char filename[]="../sample_input/torus_100_30.stl"; char filename[]="../sample_input/sphere.stl"; char VTKfile[]="../sample_input/ID1_t001_nucleusSurf2148.vtk"; //surface //char VTKfile[]="../sample_input/ID1_t001_nucleus2038.vtk"; //volumetric //int retval=mesh.ImportSTL(filename); int retval=mesh.ImportVTK(VTKfile); //int retval=mesh.ImportVTK_Volumetric(VTKfile); if (retval) { std::cout << "some error reading file: " << retval << "\n"; return(1); } retval=mesh.ImportVTK_Ftree("../sample_input/ID1_t001_fTree01.vtk"); retval=mesh.ImportVTK_Ftree("../sample_input/ID1_t001_fTree02.vtk"); if (retval) { std::cout << "some error reading f-tree: " << retval << "\n"; return(2); } std::cout << "mesh: " << filename << "\n"; std::cout << "vertices #: " << mesh.Pos.size() << "\n"; std::cout << "triangles #: " << mesh.ID.size()/3 << "\n"; std::cout << "normals #: " << mesh.norm.size() << "\n"; mesh.CenterMesh(params.sceneCentre); //work with mesh /* float surf_coeff[10]; mesh.CalcQuadricSurface_Taubin(10,surf_coeff); */ /* //render mesh i3d::Image3d<i3d::GRAY16> mask; mask.SetOffset(i3d::Offset(0.0,0.0,0.0)); //mask.SetResolution(i3d::Resolution(20.0,20.0,20.0)); //for torus //mask.MakeRoom(300,300,300); mask.SetResolution(i3d::Resolution(2.0,2.0,2.0)); //for sample cell mask.MakeRoom(600,600,600); mask.GetVoxelData()=0; mesh.RenderMask(mask); mask.SaveImage("mesh.ics"); */ initializeGL(); loopGL(); closeGL(); return(0); } void ParamsSetup(void) { //set up the environment params.sceneOffset=Vector3d<float>(0.f); params.sceneSize=Vector3d<float>(15.f,15.f,15.f); //for torus //params.sceneSize=Vector3d<float>(150.f,150.f,150.f); //for sample cell params.sceneCentre=params.sceneSize; params.sceneCentre/=2.0f; params.sceneCentre+=params.sceneOffset; params.sceneOuterBorder=Vector3d<float>(2.f); params.sceneBorderColour.r=0.5f; params.sceneBorderColour.g=0.5f; params.sceneBorderColour.b=0.5f; params.inputCellsFilename="cells/cell%d.txt"; params.numberOfAgents=2; params.friendshipDuration=10.f; params.maxCellSpeed=0.20f; //adapted for cell cycle length of 24 hours params.cellCycleLength=14.5*60; //[min] params.currTime=0.f; //all three are in units of minutes params.incrTime=0.1f; params.stopTime=5000.f; params.imgSizeX=500; //pixels params.imgSizeY=500; params.imgResX=1.0f; //pixels per micrometer params.imgResY=1.0f; params.imgOutlineFilename="Outline%05d.tif"; params.imgPhantomFilename="Phantom%05d.tif"; params.imgMaskFilename="Mask%05d.tif"; params.imgFluoFilename="FluoImg%05d.tif"; params.imgPhCFilename="PhCImg%05d.tif"; params.tracksFilename="tracks.txt"; }