/// <summary>
 ///Clones ObstacleAvoidanceDriveState
 ///</summary>
 ///<returns>cloned value</returns>
 public virtual object Clone()
 {
     global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState target0 = new global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState();
     this.CopyTo(target0);
     return(target0);
 }
 public static object Microsoft_Robotics_Services_ObstacleAvoidanceDrive_ObstacleAvoidanceDriveState_TO_Microsoft_Robotics_Services_ObstacleAvoidanceDrive_Proxy_ObstacleAvoidanceDriveState(object transformFrom)
 {
     global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState target = new global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState();
     global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.ObstacleAvoidanceDriveState       from   = ((global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.ObstacleAvoidanceDriveState)(transformFrom));
     target.RobotWidth       = from.RobotWidth;
     target.MaxPowerPerWheel = from.MaxPowerPerWheel;
     target.MinRotationSpeed = from.MinRotationSpeed;
     global::Microsoft.Robotics.PhysicalModel.Vector3 tmp = from.DepthCameraPosition;
     target.DepthCameraPosition = ((global::Microsoft.Robotics.PhysicalModel.Proxy.Vector3)(Microsoft_Robotics_PhysicalModel_Proxy_Vector3_TO_Microsoft_Robotics_PhysicalModel_Proxy_Vector30(tmp)));
     global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.PIDController tmp0 = from.Controller;
     if ((tmp0 != null))
     {
         target.Controller = ((global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.PIDController)(Microsoft_Robotics_Services_ObstacleAvoidanceDrive_PIDController_TO_Microsoft_Robotics_Services_ObstacleAvoidanceDrive_Proxy_PIDController(tmp0)));
     }
     target.MaxDeltaPower = from.MaxDeltaPower;
     return(target);
 }
 /// <summary>
 ///Copies the data member values of the current ObstacleAvoidanceDriveState to the specified target object
 ///</summary>
 ///<param name="target">target object (must be an instance of)</param>
 public virtual void CopyTo(Microsoft.Dss.Core.IDssSerializable target)
 {
     global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState typedTarget = ((global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.ObstacleAvoidanceDriveState)(target));
     typedTarget._RobotWidth          = this._RobotWidth;
     typedTarget._MaxPowerPerWheel    = this._MaxPowerPerWheel;
     typedTarget._MinRotationSpeed    = this._MinRotationSpeed;
     typedTarget._DepthCameraPosition = this._DepthCameraPosition;
     if ((this._Controller != null))
     {
         global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.PIDController tmp = new global::Microsoft.Robotics.Services.ObstacleAvoidanceDrive.Proxy.PIDController();
         ((Microsoft.Dss.Core.IDssSerializable)(this._Controller)).CopyTo(((Microsoft.Dss.Core.IDssSerializable)(tmp)));
         typedTarget._Controller = tmp;
     }
     typedTarget._MaxDeltaPower = this._MaxDeltaPower;
 }