|
|
|
@ -17,7 +17,6 @@ |
|
|
|
|
|
|
|
|
|
|
|
#include <QtTest/QTest> |
|
|
|
#include <QtTest/QTest> |
|
|
|
|
|
|
|
|
|
|
|
#include "MeshBuilder.h" |
|
|
|
|
|
|
|
#include "Primitives/Icosphere.h" |
|
|
|
#include "Primitives/Icosphere.h" |
|
|
|
#include "MeshTools/Clean.h" |
|
|
|
#include "MeshTools/Clean.h" |
|
|
|
#include "MeshTools/Subdivide.h" |
|
|
|
#include "MeshTools/Subdivide.h" |
|
|
|
@ -28,50 +27,47 @@ namespace Magnum { namespace MeshTools { namespace Test { |
|
|
|
|
|
|
|
|
|
|
|
void SubdivideCleanBenchmark::subdivide() { |
|
|
|
void SubdivideCleanBenchmark::subdivide() { |
|
|
|
QBENCHMARK { |
|
|
|
QBENCHMARK { |
|
|
|
MeshBuilder<Vector4> builder; |
|
|
|
Primitives::Icosphere<0> icosphere; |
|
|
|
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Subdivide 5 times */ |
|
|
|
/* Subdivide 5 times */ |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void SubdivideCleanBenchmark::subdivideAndCleanMeshAfter() { |
|
|
|
void SubdivideCleanBenchmark::subdivideAndCleanMeshAfter() { |
|
|
|
QBENCHMARK { |
|
|
|
QBENCHMARK { |
|
|
|
MeshBuilder<Vector4> builder; |
|
|
|
Primitives::Icosphere<0> icosphere; |
|
|
|
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Subdivide 5 times */ |
|
|
|
/* Subdivide 5 times */ |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
|
|
|
|
|
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void SubdivideCleanBenchmark::subdivideAndCleanMeshBetween() { |
|
|
|
void SubdivideCleanBenchmark::subdivideAndCleanMeshBetween() { |
|
|
|
QBENCHMARK { |
|
|
|
QBENCHMARK { |
|
|
|
MeshBuilder<Vector4> builder; |
|
|
|
Primitives::Icosphere<0> icosphere; |
|
|
|
builder.setData(Primitives::Icosahedron::vertices, Primitives::Icosahedron::indices, 12, 60); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Subdivide 5 times */ |
|
|
|
/* Subdivide 5 times */ |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
MeshTools::subdivide(builder, interpolator); |
|
|
|
MeshTools::subdivide(*icosphere.indices(), *icosphere.vertices(0), interpolator); |
|
|
|
MeshTools::clean(builder); |
|
|
|
MeshTools::clean(*icosphere.indices(), *icosphere.vertices(0)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|