17 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_GEOMETRY_HXX
18 # define VCSN_AUTOMATA_IMPLEMENTATION_GEOMETRY_HXX
22 # define GEOMETRY_TPARAM \
23 template<typename HState, typename HTransition, typename Coords>
26 geometry<HState, HTransition, Coords>
31 : states_(0), transitions_(0), initials_(0), finals_(0), name_(0)
36 GEOMETRY& GEOMETRY::operator=(
const GEOMETRY& obj)
38 return copy_from(obj);
43 GEOMETRY::geometry(
const GEOMETRY& obj)
44 : states_(0), transitions_(0), initials_(0), finals_(0), name_(0)
51 GEOMETRY& GEOMETRY::copy_from(
const GEOMETRY& obj)
56 states_ =
new states_geometry_map_t(obj.states());
58 if (obj.transitions_ != 0)
61 transitions_ =
new transitions_geometry_map_t(obj.transitions());
63 if (obj.initials_ != 0)
66 initials_ =
new initials_geometry_map_t(obj.initials());
71 finals_ =
new finals_geometry_map_t(obj.finals());
76 name_ =
new std::string(obj.name());
95 typename GEOMETRY::states_geometry_map_t&
99 states_ =
new states_geometry_map_t();
105 const typename GEOMETRY::states_geometry_map_t&
106 GEOMETRY::states()
const
109 states_ =
new states_geometry_map_t();
116 typename GEOMETRY::transitions_geometry_map_t&
117 GEOMETRY::transitions()
120 transitions_ =
new transitions_geometry_map_t();
121 return *transitions_;
126 const typename GEOMETRY::transitions_geometry_map_t&
127 GEOMETRY::transitions()
const
130 transitions_ =
new transitions_geometry_map_t();
131 return *transitions_;
137 typename GEOMETRY::initials_geometry_map_t&
141 initials_ =
new initials_geometry_map_t();
147 const typename GEOMETRY::initials_geometry_map_t&
148 GEOMETRY::initials()
const
151 initials_ =
new initials_geometry_map_t();
158 typename GEOMETRY::finals_geometry_map_t&
162 finals_ =
new finals_geometry_map_t();
168 const typename GEOMETRY::finals_geometry_map_t&
169 GEOMETRY::finals()
const
172 finals_ =
new finals_geometry_map_t();
183 name_ =
new std::string();
190 GEOMETRY::name()
const
193 name_ =
new std::string();
201 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_GEOMETRY_HXX