ITK  4.4.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 
62 protected:
63  CellBase();
64  virtual ~CellBase();
65 
66  virtual void Grow(void);
67 
68  virtual void DNAReplication(void);
69 
70  virtual void Apoptosis(void);
71 
72  virtual void EnergyIntake(void);
73 
74  virtual void NutrientsIntake(void);
75 
76  virtual void ComputeGeneNetwork(void);
77 
78  virtual void SecreteProducts(void);
79 
80  virtual bool CheckPointGrowth(void);
81 
82  virtual bool CheckPointDNAReplication(void);
83 
84  virtual bool CheckPointMitosis(void);
85 
86  virtual bool CheckPointApoptosis(void);
87 
88  void MarkForRemoval(void);
89 
90  // Static Members
92 
93  static GeneIdType BlueGene; // Pigment genes
96  static GeneIdType Cdk2E; // cell cycle control genes
97  static GeneIdType Caspase; // cleavage enzyme: apoptosis effector
98  static GeneIdType Pressurin; // signal from micro-tubules subject to
99  // stress
100 
104 
105  static double EnergySelfRepairLevel;
106  static double NutrientSelfRepairLevel;
107 
108  static double DefaultEnergyIntake;
109  static double DefaultNutrientsIntake;
110 
112 
116 
119 
122 
123  static double DefaultRadius;
124  static double GrowthRadiusLimit;
125  static double GrowthRadiusIncrement;
126 
127 public:
128 
129  virtual bool MarkedForRemoval(void) const;
130 
131  static void SetDefaultRadius(double);
132 
133  static void SetGrowthRadiusLimit(double);
134 
135  static void SetGrowthRadiusIncrement(double);
136 
137  static void SetEnergySelfRepairLevel(double);
138 
139  static void SetNutrientSelfRepairLevel(double);
140 
141  static void SetDefaultColor(const ColorType & color);
142 
143  static void SetChemoAttractantHighThreshold(double);
144 
145  static void SetChemoAttractantLowThreshold(double);
146 
147  static void SetGrowthMaximumLatencyTime(SizeValueType latency);
148 
149  static SizeValueType GetGrowthMaximumLatencyTime(void);
150 
151  static double GetGrowthRadiusLimit(void);
152 
153  static void SetMaximumGenerationLimit(SizeValueType);
154 
155  static void SetDivisionMaximumLatencyTime(SizeValueType);
156 
157  static SizeValueType GetDivisionMaximumLatencyTime(void);
158 
159  static void ResetCounter(void);
160 
161  static void Initialize(void); // define values in static variables.
162 
163 protected:
164  double m_Pressure;
165 
167 
168  double m_Radius;
171 
173 
176 
178 
180 
183 
186 };
187 } // end namespace bio
188 } // end namespace itk
189 
190 #endif
191