Program Listing for File utilities.hxx

Return to documentation for file (src/acme/utilities.hxx)

/*
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *                                                                     *
 * The ACME project                                                    *
 *                                                                     *
 * Copyright (c) 2020, Davide Stocco and Enrico Bertolazzi.            *
 *                                                                     *
 * The ACME project and its components are supplied under the terms of *
 * the open source BSD 2-Clause License. The contents of the ACME      *
 * project and its components may not be copied or disclosed except in *
 * accordance with the terms of the BSD 2-Clause License.              *
 *                                                                     *
 * URL: https://opensource.org/licenses/BSD-2-Clause                   *
 *                                                                     *
 *    Davide Stocco                                                    *
 *    Department of Industrial Engineering                             *
 *    University of Trento                                             *
 *    e-mail: davide.stocco@unitn.it                                   *
 *                                                                     *
 *    Enrico Bertolazzi                                                *
 *    Department of Industrial Engineering                             *
 *    University of Trento                                             *
 *    e-mail: enrico.bertolazzi@unitn.it                               *
 *                                                                     *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/


#pragma once
#ifndef INCLUDE_ACME_UTILS_HXX
#define INCLUDE_ACME_UTILS_HXX

#include "aabb.hxx"
#include "ball.hxx"
#include "disk.hxx"
#include "line.hxx"
#include "plane.hxx"
#include "point.hxx"
#include "ray.hxx"
#include "segment.hxx"
#include "triangle.hxx"

namespace acme
{
  /*\
   |   _   _ _   _ _
   |  | | | | |_(_) |___
   |  | | | | __| | / __|
   |  | |_| | |_| | \__ \
   |   \___/ \__|_|_|___/
   |
  \*/

  out_stream &
  operator<<(
    out_stream       & os,
    vec3       const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    point      const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    line       const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    ray        const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    plane      const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    segment    const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    aabb       const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    triangle   const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    disk       const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    ball       const & obj
  );

  out_stream &
  operator<<(
    out_stream       & os,
    affine     const & obj
  );

} // namespace acme

#endif