text: //--------------------------------------------------------------------------
  // Code generated by the SmartSoft MDSD Toolchain
  // The SmartSoft Toolchain has been developed by:
  //  
  // Christian Schlegel (schlegel@hs-ulm.de)
  // University of Applied Sciences Ulm
  // Prittwitzstr. 10
  // 89075 Ulm (Germany)
  //
  // Information about the SmartSoft MDSD Toolchain is available at:
  // www.servicerobotik-ulm.de
  //
  // This file is generated once. Modify this file to your needs. 
  // If you want the toolchain to re-generate this file, please 
  // delete it before running the code generator.
  //--------------------------------------------------------------------------
  
  // --------------------------------------------------------------------------
  //
  //  Copyright (C) 2003 Boris Kluge
  //
  //        schlegel@hs-ulm.de
  //
  //        Prof. Dr. Christian Schlegel
  //        University of Applied Sciences
  //        Prittwitzstr. 10
  //        D-89075 Ulm
  //        Germany
  //
  //  This file is part of the "SmartSoft Basic Communication Classes".
  //  It provides basic standardized data types for communication between
  //  different components in the mobile robotics context. These classes
  //  are designed to be used in conjunction with the SmartSoft Communication
  //  Library.
  //
  //  This library is free software; you can redistribute it and/or
  //  modify it under the terms of the GNU Lesser General Public
  //  License as published by the Free Software Foundation; either
  //  version 2.1 of the License, or (at your option) any later version.
  //
  //  This library is distributed in the hope that it will be useful,
  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  //  Lesser General Public License for more details.
  //
  //  You should have received a copy of the GNU Lesser General Public
  //  License along with this library; if not, write to the Free Software
  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  //
  //  (partly based on work by Christian Schlegel and Pablo d'Angelo)
  //
  // --------------------------------------------------------------------------
  
  
  #ifndef COMMBASICOBJECTS_COMMPOSITION3D_H_
  #define COMMBASICOBJECTS_COMMPOSITION3D_H_
  
  #include "CommBasicObjects/CommPosition3dCore.hh"
  
  namespace CommBasicObjects {
  		
  class CommPosition3d : public CommPosition3dCore {
  	public:
  		// default constructors
  		CommPosition3d();
  		
  		/**
  		 * Constructor to set all values.
  		 * NOTE that you have to keep this constructor consistent with the model!
  		 * Use  at your own choice.
  		 *
  		 * The preferred way to set values for initialization is:
  		 *      CommRepository::MyCommObject obj;
  		 *      obj.setX(1).setY(2).setZ(3)...;
  		 */
  		// CommPosition3d(const double &x = 0.0, const double &y = 0.0, const double &z = 0.0);
  		
  		CommPosition3d(const CommPosition3dCore &commPosition3d);
  		CommPosition3d(const DATATYPE &commPosition3d);
  		virtual ~CommPosition3d();
  		
  		// use framework specific getter and setter methods from core (base) class
  		using CommPosition3dCore::get;
  		using CommPosition3dCore::set;
  		
  		//
  		// feel free to add customized methods here
  		//
  		/**
  		 Get the x coordinate of the position.
  		 */
  		inline double get_x(const double unit = 0.001) const {
  			return idl_CommPosition3d.x * 0.001 / unit;
  		}
  		/**
  		 Get the y coordinate of the position.
  		 */
  		inline double get_y(const double unit = 0.001) const {
  			return idl_CommPosition3d.y * 0.001 / unit;
  		}
  		/**
  		 Get the z coordinate of the position.
  		 */
  		inline double get_z(const double unit = 0.001) const {
  			return idl_CommPosition3d.z * 0.001 / unit;
  		}
  
  		/**
  		 Set the x coordinate of the position.
  		 */
  		inline void set_x(double x, const double unit = 0.001) {
  			idl_CommPosition3d.x = x * unit * 1000;
  		}
  		/**
  		 Set the y coordinate of the position.
  		 */
  		inline void set_y(double y, const double unit = 0.001) {
  			idl_CommPosition3d.y = y * unit * 1000;
  		}
  		/**
  		 Set the z coordinate of the position.
  		 */
  		inline void set_z(double z, const double unit = 0.001) {
  			idl_CommPosition3d.z = z * unit * 1000;
  		}
  };
  
  inline std::ostream &operator<<(std::ostream &os, const CommPosition3d &co)
  {
  	co.to_ostream(os);
  	return os;
  }
  	
  } /* namespace CommBasicObjects */
  #endif /* COMMBASICOBJECTS_COMMPOSITION3D_H_ */
  