// Copyright (C) 2019 by Joseph Mirabel, LAAS-CNRS.
//
// This file is part of the hpp-corbaserver.
//
// This software is provided "as is" without warranty of any kind,
// either expressed or implied, including but not limited to the
// implied warranties of fitness for a particular purpose.
//
// See the COPYING file for more information.

#ifndef HPP_CORE_DISTANCES_IDL
#define HPP_CORE_DISTANCES_IDL
#include <hpp/common.idl>

module hpp
{
  module core_idl {

  interface Distance
  {
    HPP_EXPOSE_MEMORY_DEALLOCATION(Error)

    value_type call (in floatSeq q1, in floatSeq q2) raises (Error);
    //-> operator()
  }; // interface Distance

  /// \brief To define and solve a path planning problem.
  interface WeighedDistance : Distance
  {
    floatSeq getWeights() raises (Error);
    //-> weights
    void setWeights(in floatSeq weights) raises (Error);
    //-> weights
  }; // interface WeighedDistance

  }; // module core
}; // module hpp
//* #include <hpp/core/distance.hh>
//* #include <hpp/core/weighed-distance.hh>

#endif // HPP_CORE_DISTANCES_IDL
