reflex2q3/include/planes.h

32 lines
833 B
C++

#ifndef __PLANES_H__
#define __PLANES_H__
#include "worldspawn.h"
#include <Eigen/Core>
#include <Eigen/Geometry>
struct TPlanePoints {
Eigen::Vector3f m_A;
Eigen::Vector3f m_B;
Eigen::Vector3f m_C;
std::string m_material;
float hscale, hshift; // horizontal
float vscale, vshift; // vertical
float rotation;
};
Eigen::Vector3f get_polygon_normal(const Eigen::Vector3f*, const size_t);
Eigen::Vector3f get_center(const Eigen::Vector3f*, const size_t);
float get_width(const Eigen::Vector3f*, const size_t, const Eigen::Vector3f);
Eigen::Vector3f get_tangent(const Eigen::Vector3f*, float);
Eigen::Vector3f get_bitangent(const Eigen::Vector3f&, const Eigen::Vector3f&, float);
TPlanePoints GetPlanePoints(const Eigen::Vector3f*, const size_t);
std::vector<TPlanePoints> GetBrushPlanes(const TBrush&);
#endif