Commit bafde34d authored by David Svoboda's avatar David Svoboda
Browse files

Added parameters for variability of cell body texture.

Affected files:
- TriangleMesh.*
- overExpressing.cfg
- phosphoDefective.cfg
parent 4f1a9a52
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -9,9 +9,9 @@ texture_res_z 1


; Border width is given as percentage of the minimal (axes-aligned) bounding box of the cell.
; Border width is given as percentage of the minimal (axes-aligned) bounding box of the cell.
; NB: The texture image is then given as (1 + 2*percentage/100)*box_size.
; NB: The texture image is then given as (1 + 2*percentage/100)*box_size.
border_width_x  5
border_width_x  75
border_width_y  5
border_width_y  75
border_width_z  5
border_width_z  75


; Parameters related to phantom rendering:
; Parameters related to phantom rendering:
; NB: One can influence the rendered cell type (e.g., overexpressing, phosphodefective) in this section.
; NB: One can influence the rendered cell type (e.g., overexpressing, phosphodefective) in this section.
@@ -34,3 +34,9 @@ filoAxisOrientedDensity 10
; neighbouring pixel in the direction from filo axis to the envelope
; neighbouring pixel in the direction from filo axis to the envelope
; (surface). This direction is orthogonal to filo axis.
; (surface). This direction is orthogonal to filo axis.
filoContourOrientedDensity	12
filoContourOrientedDensity	12
		
; coarseness of initial Perlin noise in cell body (lower limit)
coarsenessLower 1.0

; coarseness of initial Perlin noise in cell body (upper limit)
coarsenessUpper 2.0
+8 −2
Original line number Original line Diff line number Diff line
@@ -26,11 +26,17 @@ PSF ../psf/2013-07-25_1_1_9_0_2_0_0_1_0_0_0_0_9_12.ics
; multiplicity of how many dots should be pressed between two
; multiplicity of how many dots should be pressed between two
; pixel positions. The neighbouring pixels are understood as
; pixel positions. The neighbouring pixels are understood as
; neighbouring pixel along the direction of filopodium axis
; neighbouring pixel along the direction of filopodium axis
filoAxisOrientedDensity 7	
filoAxisOrientedDensity 5	


; Filopodium parameter:
; Filopodium parameter:
; multiplicity of how many dots should be pressed between two
; multiplicity of how many dots should be pressed between two
; pixel positions. The neighbouring pixels are understood as
; pixel positions. The neighbouring pixels are understood as
; neighbouring pixel in the direction from filo axis to the envelope
; neighbouring pixel in the direction from filo axis to the envelope
; (surface). This direction is orthogonal to filo axis.
; (surface). This direction is orthogonal to filo axis.
filoContourOrientedDensity	9
filoContourOrientedDensity	4

; coarseness of initial Perlin noise in cell body (lower limit)
coarsenessLower 1.0

; coarseness of initial Perlin noise in cell body (upper limit)
coarsenessUpper 1.0
+7 −2
Original line number Original line Diff line number Diff line
@@ -1428,7 +1428,9 @@ void ActiveMesh::InitDots_body(const i3d::Image3d<i3d::GRAY16>& mask)


	i3d::Image3d<float> perlinInner,perlinOutside;
	i3d::Image3d<float> perlinInner,perlinOutside;
	perlinInner.CopyMetaData(mask);
	perlinInner.CopyMetaData(mask);
	DoPerlin3D(perlinInner,1.0,0.3,1.0,6);
	float coarseness = GetRandomUniform(this->configFile.coarsenessLower, 
													this->configFile.coarsenessUpper);
	DoPerlin3D(perlinInner,coarseness,0.3,1.0,6);
	Stretch(perlinInner, 0.0f, 1.0f, 4.0f);
	Stretch(perlinInner, 0.0f, 1.0f, 4.0f);
#ifdef SAVE_INTERMEDIATE_IMAGES
#ifdef SAVE_INTERMEDIATE_IMAGES
	perlinInner.SaveImage("2_PerlinAlone_Inner.ics");
	perlinInner.SaveImage("2_PerlinAlone_Inner.ics");
@@ -2395,6 +2397,9 @@ int ActiveMesh::configDataSubClass::ParseConfigFile(const char* fileName)
	getValueOrDefault("filoAxisOrientedDensity", 10, filoAxisOrientedDensity);
	getValueOrDefault("filoAxisOrientedDensity", 10, filoAxisOrientedDensity);
	getValueOrDefault("filoContourOrientedDensity", 15, filoContourOrientedDensity);
	getValueOrDefault("filoContourOrientedDensity", 15, filoContourOrientedDensity);


	getValueOrDefault("coarsenessLower", 1.0, coarsenessLower);
	getValueOrDefault("coarsenessUpper", 2.0, coarsenessUpper);

	//clear to save some memory
	//clear to save some memory
	keyVal_map.clear();
	keyVal_map.clear();
	return (0);
	return (0);
+5 −0
Original line number Original line Diff line number Diff line
@@ -206,6 +206,11 @@ class ActiveMesh
		// (surface). This direction is orthogonal to filo axis.
		// (surface). This direction is orthogonal to filo axis.
		int filoContourOrientedDensity;
		int filoContourOrientedDensity;


		// coarseness of initial Perlin noise in cell body (lower limit)
		float coarsenessLower;

		// coarseness of initial Perlin noise in cell body (upper limit)
		float coarsenessUpper;


	 private:
	 private:
		void getValueOrDefault(const char* key,const std::string& defValue, std::string& var);
		void getValueOrDefault(const char* key,const std::string& defValue, std::string& var);