You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
806 B
42 lines
806 B
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
|
|
#include "Geometry.h"
|
|
|
|
vector<Vec3f> vertices;
|
|
vector<Vec3u> indices;
|
|
Mesh mesh;
|
|
|
|
AABB::AABB()
|
|
{
|
|
min = Vec3f(1e5, 1e5, 1e5);
|
|
max = Vec3f(0, 0, 0);
|
|
}
|
|
|
|
LineSegment::LineSegment(const Vec3f &s, const Vec3f &e) : start(s), end(e)
|
|
{
|
|
calculate();
|
|
}
|
|
|
|
float LineSegment::getLength() const
|
|
{
|
|
return length;
|
|
}
|
|
|
|
Vec3f LineSegment::getDir() const
|
|
{
|
|
return dir;
|
|
}
|
|
|
|
void LineSegment::calculate()
|
|
{
|
|
Vec3f diff = end - start;
|
|
length = diff.length();
|
|
dir = diff.norm();
|
|
}
|
|
|
|
FaceCenterComparator::FaceCenterComparator(const std::vector<Vec3f> ¢ers, int axis)
|
|
: faceCenters(centers), longAxis(axis) {}
|
|
|
|
bool FaceCenterComparator::operator()(const size_t &a, const size_t &b) const
|
|
{
|
|
return faceCenters[a][longAxis] < faceCenters[b][longAxis];
|
|
}
|
|
|