ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkBioCellBase.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkBioCellBase_h
19 #define __itkBioCellBase_h
20 
21 #include "itkRGBPixel.h"
22 #include "itkPoint.h"
23 #include "itkIntTypes.h"
24 #include "itkBioGenome.h"
25 
26 namespace itk
27 {
28 namespace bio
29 {
36 class ITK_EXPORT CellBase
37 {
38 public:
43 
44  virtual ColorType GetColor(void) const;
45 
46  double GetRadius(void) const;
47 
48  IdentifierType GetSelfIdentifier(void) const;
49 
50  IdentifierType GetParentIdentifier(void) const;
51 
53  {
54  M = 1UL,
56  S,
59  Apop
60  };
61 protected:
62  CellBase();
63  virtual ~CellBase();
64 
65  virtual void Grow(void);
66 
67  virtual void DNAReplication(void);
68 
69  virtual void Apoptosis(void);
70 
71  virtual void EnergyIntake(void);
72 
73  virtual void NutrientsIntake(void);
74 
75  virtual void ComputeGeneNetwork(void);
76 
77  virtual void SecreteProducts(void);
78 
79  virtual bool CheckPointGrowth(void);
80 
81  virtual bool CheckPointDNAReplication(void);
82 
83  virtual bool CheckPointMitosis(void);
84 
85  virtual bool CheckPointApoptosis(void);
86 
87  void MarkForRemoval(void);
88 
89  // Static Members
91 
92  static GeneIdType BlueGene; // Pigment genes
95  static GeneIdType Cdk2E; // cell cycle control genes
96  static GeneIdType Caspase; // cleavage enzyme: apoptosis effector
97  static GeneIdType Pressurin; // signal from micro-tubules subject to
98  // stress
99 
103 
104  static double EnergySelfRepairLevel;
105  static double NutrientSelfRepairLevel;
106 
107  static double DefaultEnergyIntake;
108  static double DefaultNutrientsIntake;
109 
111 
115 
118 
121 
122  static double DefaultRadius;
123  static double GrowthRadiusLimit;
124  static double GrowthRadiusIncrement;
125 public:
126 
127  virtual bool MarkedForRemoval(void) const;
128 
129  static void SetDefaultRadius(double);
130 
131  static void SetGrowthRadiusLimit(double);
132 
133  static void SetGrowthRadiusIncrement(double);
134 
135  static void SetEnergySelfRepairLevel(double);
136 
137  static void SetNutrientSelfRepairLevel(double);
138 
139  static void SetDefaultColor(const ColorType & color);
140 
141  static void SetChemoAttractantHighThreshold(double);
142 
143  static void SetChemoAttractantLowThreshold(double);
144 
145  static void SetGrowthMaximumLatencyTime(SizeValueType latency);
146 
147  static SizeValueType GetGrowthMaximumLatencyTime(void);
148 
149  static double GetGrowthRadiusLimit(void);
150 
151  static void SetMaximumGenerationLimit(SizeValueType);
152 
153  static void SetDivisionMaximumLatencyTime(SizeValueType);
154 
155  static SizeValueType GetDivisionMaximumLatencyTime(void);
156 
157  static void ResetCounter(void);
158 
159  static void Initialize(void); // define values in static variables.
160 
161 protected:
162  double m_Pressure;
163 
165 
166  double m_Radius;
169 
171 
174 
176 
178 
181 
184 };
185 } // end namespace bio
186 } // end namespace itk
187 
188 #endif
189