<commit_before>/**
 * @file Pose3D.h
 * Contains class Pose3D
 *
 * @author <a href="mailto:<EMAIL>"><NAME></a>
 * @author <NAME>
 */

#ifndef _Pose3D_h_
#define _Pose3D_h_

#include "RotationMatrix.h"
#include "Pose2D.h"
#include "Tools/Debug/NaoTHAssert.h"

/**
 * @class Pose3T
 * Represents a 3D Transformation (Location + Orientation)
 */
template<typename DATATYPE>
class Pose3T
{
protected:

  public:

  /** rotation as a RotationMatrix*/
  RotationMatrixT<DATATYPE> rotation;

  /** translation as a Vector3*/
  Vector3<DATATYPE> translation;

  /** constructor*/
  Pose3T() {}

  /** constructor from rotation and translation
   * \param rot Rotation
   * \param trans Translation
   */
  Pose3T(const RotationMatrix& rot, const Vector3<DATATYPE>& trans): rotation(rot), translation(trans){}

  /** constructor from rotation
   * \param rot Rotation
   */
  Pose3T(const RotationMatrix& rot): rotation(rot) {}

  /** constructor from translation
   * \param trans Translation
   */
  Pose3T(const Vector3<DATATYPE>& trans): translation(trans) {}

  /** constructor from three translation values
   * \param x translation x component
   * \param y translation y component
   * \param z translation z component
   */
  Pose3T(const DATATYPE x, const DATATYPE y, const DATATYPE z) : translation(x,y,z) {}

  /** Assignment operator
  *\param other The other Pose3D that is assigned to this one
  *\return A reference to this object after the assignment.
  */
  Pose3T& operator=(const Pose3T& other)
  {
    rotation=other.rotation;
    translation=other.translation;
    
    return *this;
  }

  /** Copy constructor
  *\param other The other vector that is copied to this one
  */
  Pose3T(const Pose3T& other) {*this = other;}

  /** Multiplication with Point
  *\param point (Vector3&lt;double&gt;)
  */<commit_msg>Add missing virtual destructor for Pose3D<commit_after>/**
 * @file Pose3D.h
 * Contains class Pose3D
 *
 * @author <a href="mailto:<EMAIL>"><NAME></a>
 * @author <NAME>
 */

#ifndef _Pose3D_h_
#define _Pose3D_h_

#include "RotationMatrix.h"
#include "Pose2D.h"
#include "Tools/Debug/NaoTHAssert.h"

/**
 * @class Pose3T
 * Represents a 3D Transformation (Location + Orientation)
 */
template<typename DATATYPE>
class Pose3T
{
protected:

  public:

  /** rotation as a RotationMatrix*/
  RotationMatrixT<DATATYPE> rotation;

  /** translation as a Vector3*/
  Vector3<DATATYPE> translation;

  /** constructor*/
  Pose3T() {}

  /** constructor from rotation and translation
   * \param rot Rotation
   * \param trans Translation
   */
  Pose3T(const RotationMatrix& rot, const Vector3<DATATYPE>& trans): rotation(rot), translation(trans){}

  /** constructor from rotation
   * \param rot Rotation
   */
  Pose3T(const RotationMatrix& rot): rotation(rot) {}

  /** constructor from translation
   * \param trans Translation
   */
  Pose3T(const Vector3<DATATYPE>& trans): translation(trans) {}

  /** constructor from three translation values
   * \param x translation x component
   * \param y translation y component
   * \param z translation z component
   */
  Pose3T(const DATATYPE x, const DATATYPE y, const DATATYPE z) : translation(x,y,z) {}

  /** Assignment operator
  *\param other The other Pose3D that is assigned to this one
  *\return A reference to this object after the assignment.
  */
  Pose3T& operator=(const Pose3T& other)
  {
    rotation=other.rotation;
    translation=other.translation;
    
    return *this;
  }

  /** Copy constructor
  *\param other The other vector that is copied to this one
  */
  Pose3T(const Pose3T& other) {*this = other;}

  virtual ~Pose3T() {}

  /** Multiplication with Point
  *\param point (Vector3&lt;double&gt;)
  */
{'fraction_non_alphanumeric': 0.12007555315704263, 'fraction_numerical': 0.012951969778737183, 'mean_word_length': 3.668765743073048, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1359213', 'n_tokens_mistral': 1239, 'n_tokens_neox': 1189, 'n_words': 351}