ITK  4.6.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 CellBase
37 {
38 public:
43 
44  virtual ColorType GetColor(void) const;
45 
46  double GetRadius(void) const;
47 
49 
51 
53  {
54  M = 1UL,
56  S,
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 
150 
151  static double GetGrowthRadiusLimit(void);
152 
154 
156 
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
virtual bool CheckPointMitosis(void)
static SizeValueType GrowthMaximumLatencyTime
IdentifierType m_SelfIdentifier
itk::RGBPixel< float > ColorType
IdentifierType GetSelfIdentifier(void) const
GenomeType::GeneIdType GeneIdType
static double DefaultNutrientsIntake
virtual bool CheckPointApoptosis(void)
GenomeType * m_GenomeCopy
static GeneIdType BlueGene
static SizeValueType GetGrowthMaximumLatencyTime(void)
static void SetDefaultRadius(double)
static SizeValueType DivisionMaximumLatencyTime
SizeValueType m_DivisionLatencyTime
static void SetGrowthRadiusIncrement(double)
double m_NutrientsReserveLevel
static double GrowthRadiusLimit
static ColorType DefaultColor
static void Initialize(void)
static void SetEnergySelfRepairLevel(double)
virtual void NutrientsIntake(void)
static GeneIdType RedGene
static void SetDivisionMaximumLatencyTime(SizeValueType)
static void SetGrowthRadiusLimit(double)
unsigned long SizeValueType
Definition: itkIntTypes.h:143
static double GetGrowthRadiusLimit(void)
static void ResetCounter(void)
static double NutrientSelfRepairLevel
static double DefaultEnergyIntake
itk::bio::Genome GenomeType
IdentifierType m_ParentIdentifier
void MarkForRemoval(void)
static void SetGrowthMaximumLatencyTime(SizeValueType latency)
static ColorType WellNourishedColor
static void SetDefaultColor(const ColorType &color)
IdentifierType GetParentIdentifier(void) const
static ColorType StarvingColor
SizeValueType IdentifierType
Definition: itkIntTypes.h:147
static void SetChemoAttractantHighThreshold(double)
static double ChemoAttractantHighThreshold
virtual void Apoptosis(void)
static GeneIdType Cdk2E
double GetRadius(void) const
static SizeValueType Counter
virtual void DNAReplication(void)
SizeValueType m_GrowthLatencyTime
This class implements the abstraction of a biological genome.
Definition: itkBioGenome.h:44
virtual bool CheckPointDNAReplication(void)
static double EnergySelfRepairLevel
static double GrowthRadiusIncrement
SizeValueType m_Generation
static double DefaultRadius
static void SetChemoAttractantLowThreshold(double)
static GeneIdType Pressurin
virtual ColorType GetColor(void) const
static void SetMaximumGenerationLimit(SizeValueType)
virtual void EnergyIntake(void)
static GeneIdType Caspase
static SizeValueType MaximumGenerationLimit
virtual void ComputeGeneNetwork(void)
GenomeType * m_Genome
Non-templated Base class from which the templated Cell classes will be derived.
static ColorType HopefullColor
virtual bool CheckPointGrowth(void)
virtual void SecreteProducts(void)
virtual bool MarkedForRemoval(void) const
static void SetNutrientSelfRepairLevel(double)
static GeneIdType GreenGene
itk::IdentifierType IdentifierType
static SizeValueType GetDivisionMaximumLatencyTime(void)
std::string GeneIdType
Definition: itkBioGenome.h:47
static double ChemoAttractantLowThreshold
CellCycleState m_CycleState
virtual void Grow(void)