Program Listing for File types.h#

Return to documentation for file (public/types.h)

#ifndef f3d_types_h
#define f3d_types_h

#include "export.h"

#include <array>
#include <string>
#include <vector>

namespace f3d
{
struct F3D_EXPORT point3_t : std::array<double, 3>
{
  template<typename... Args>
  point3_t(Args&&... args)
    : array({ double(std::forward<Args>(args))... })
  {
  }
};

struct F3D_EXPORT vector3_t : std::array<double, 3>
{
  template<typename... Args>
  vector3_t(Args&&... args)
    : array({ double(std::forward<Args>(args))... })
  {
  }
};

using angle_deg_t = double;

struct mesh_t
{
  std::vector<float> points;
  std::vector<float> normals;
  std::vector<float> texture_coordinates;
  std::vector<unsigned int> face_sides;
  std::vector<unsigned int> face_indices;

  F3D_EXPORT std::pair<bool, std::string> isValid() const;
};
}

#endif