5#include "Resources/VertexFormats.h"
6#include "Resources/Mesh.h"
28 int refinementLevel(
int samples,
int levels,
int maxSamples)
30 samples = std::max(1, samples);
31 int la = int(std::floor(levels * (std::log2(
float(samples)) / std::log(
float(maxSamples))) + 0.5f));
33 return std::min(std::min(la, lb), levels - 1);
49 int samplesFromLevel(
int level,
int levels,
int maxSamples)
51 int sa = std::min(maxSamples,
int(std::floor(std::pow(maxSamples,
float(level) /
float(levels)))));
53 return std::max(sa, sb);
57 template<
typename VectorIterator>
58 Cogs::Geometry::BoundingBox computeBoundingBoxFromVertexFormat(VectorIterator start, VectorIterator end)
60 Cogs::Geometry::BoundingBox box;
62 while (start != end) {
63 box.expand(start->position);
73 auto & s = definition.size;
75 std::vector<PositionColorVertex> vertexData = {
76 { glm::vec4(0.f, 0.f, 0.f, 1.f), glm::vec4(1.f, 0.f, 0.f, 1.f) },
77 { glm::vec4(s.x, 0.f, 0.f, 1.f), glm::vec4(1.f, 0.f, 0.f, 1.f) },
79 { glm::vec4(0.f, 0.f, 0.f, 1.f), glm::vec4(0.f, 1.f, 0.f, 1.f) },
80 { glm::vec4(0.f, s.y, 0.f, 1.f), glm::vec4(0.f, 1.f, 0.f, 1.f) },
82 { glm::vec4(0.f, 0.f, 0.f, 1.f), glm::vec4(0.f, 0.f, 1.f, 1.f) },
83 { glm::vec4(0.f, 0.f, s.z, 1.f), glm::vec4(0.f, 0.f, 1.f, 1.f) },
88 mesh->
setBounds(computeBoundingBoxFromVertexFormat(vertexData.begin(), vertexData.end()));
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Meshes contain streams of vertex data in addition to index data and options defining geometry used fo...
void setBounds(Geometry::BoundingBox box)
Set custom bounds for the mesh.
void setVertexData(Element *elements, size_t count)
Set vertex data.
Defines creation values for a unique shape.