| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // Copyright Contributors to the OpenVDB Project | ||
| 2 | // SPDX-License-Identifier: MPL-2.0 | ||
| 3 | |||
| 4 | #include <openvdb/openvdb.h> | ||
| 5 | #include <openvdb/points/PointAttribute.h> | ||
| 6 | #include <openvdb/points/PointConversion.h> | ||
| 7 | #include <openvdb/points/PointSample.h> | ||
| 8 | |||
| 9 | #include <gtest/gtest.h> | ||
| 10 | |||
| 11 | #include "util.h" | ||
| 12 | #include <string> | ||
| 13 | #include <vector> | ||
| 14 | |||
| 15 | using namespace openvdb; | ||
| 16 | |||
| 17 | 2 | class TestPointSample: public ::testing::Test | |
| 18 | { | ||
| 19 | public: | ||
| 20 | 2 | void SetUp() override { initialize(); } | |
| 21 | 2 | void TearDown() override { uninitialize(); } | |
| 22 | }; // class TestPointSample | ||
| 23 | |||
| 24 | |||
| 25 | namespace | ||
| 26 | { | ||
| 27 | |||
| 28 | /// Utility function to quickly create a very simple grid (with specified value type), set a value | ||
| 29 | /// at its origin and then create and sample to an attribute | ||
| 30 | /// | ||
| 31 | template <typename ValueType> | ||
| 32 | typename points::AttributeHandle<ValueType>::Ptr | ||
| 33 | 14 | testAttribute(points::PointDataGrid& points, const std::string& attributeName, | |
| 34 | const math::Transform::Ptr xform, const ValueType& val) | ||
| 35 | { | ||
| 36 | using TreeT = typename tree::Tree4<ValueType, 5, 4, 3>::Type; | ||
| 37 | using GridT = Grid<TreeT>; | ||
| 38 | |||
| 39 | 4 | typename GridT::Ptr grid = GridT::create(); | |
| 40 | |||
| 41 |
2/4✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
|
28 | grid->setTransform(xform); |
| 42 |
1/2✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
|
14 | grid->tree().setValue(Coord(0,0,0), val); |
| 43 | |||
| 44 |
1/2✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
|
14 | points::boxSample(points, *grid, attributeName); |
| 45 | |||
| 46 | return(points::AttributeHandle<ValueType>::create( | ||
| 47 |
2/6✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
28 | points.tree().cbeginLeaf()->attributeArray(attributeName))); |
| 48 | } | ||
| 49 | |||
| 50 | } // anonymous namespace | ||
| 51 | |||
| 52 | |||
| 53 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestPointSample, testPointSample) |
| 54 | { | ||
| 55 | using points::PointDataGrid; | ||
| 56 | using points::NullCodec; | ||
| 57 | |||
| 58 | const float voxelSize = 0.1f; | ||
| 59 | 1 | math::Transform::Ptr transform(math::Transform::createLinearTransform(voxelSize)); | |
| 60 | |||
| 61 | { | ||
| 62 | // check that all supported grid types can be sampled. | ||
| 63 | // This check will use very basic grids with a point at a cell-centered positions | ||
| 64 | |||
| 65 | // create test point grid with a single point | ||
| 66 | |||
| 67 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.0f, 0.0f, 0.0f)}; |
| 68 | PointDataGrid::Ptr points = points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>( | ||
| 69 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | pointPositions, *transform); |
| 70 | |||
| 71 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 72 | |||
| 73 | // bool | ||
| 74 | |||
| 75 | points::AttributeHandle<bool>::Ptr boolHandle = | ||
| 76 |
4/10✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
3 | testAttribute<bool>(*points, "test_bool", transform, true); |
| 77 | |||
| 78 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(boolHandle->get(0)); |
| 79 | |||
| 80 | // int16 | ||
| 81 | |||
| 82 | #if (defined _MSC_VER) || (defined __INTEL_COMPILER) || (defined __clang__) | ||
| 83 | // GCC warns warns of narrowing conversions from int to int16_t, | ||
| 84 | // and GCC 4.8, at least, ignores the -Wconversion suppression pragma. | ||
| 85 | // So for now, skip this test if compiling with GCC. | ||
| 86 | points::AttributeHandle<int16_t>::Ptr int16Handle = | ||
| 87 | testAttribute<int16_t>(*points, "test_int16", transform, int16_t(10)); | ||
| 88 | |||
| 89 | EXPECT_EQ(int16Handle->get(0), int16_t(10)); | ||
| 90 | #endif | ||
| 91 | |||
| 92 | // int32 | ||
| 93 | |||
| 94 | points::AttributeHandle<Int32>::Ptr int32Handle = | ||
| 95 |
4/10✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
3 | testAttribute<Int32>(*points, "test_Int32", transform, Int32(3)); |
| 96 | |||
| 97 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(Int32(3), int32Handle->get(0)); |
| 98 | |||
| 99 | // int64 | ||
| 100 | |||
| 101 | points::AttributeHandle<Int64>::Ptr int64Handle = | ||
| 102 |
4/10✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
3 | testAttribute<Int64>(*points, "test_Int64", transform, Int64(2)); |
| 103 | |||
| 104 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(Int64(2), int64Handle->get(0)); |
| 105 | |||
| 106 | // double | ||
| 107 | |||
| 108 | points::AttributeHandle<double>::Ptr doubleHandle = | ||
| 109 |
4/10✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
3 | testAttribute<double>(*points, "test_double", transform, 4.0); |
| 110 | |||
| 111 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(4.0, doubleHandle->get(0)); |
| 112 | |||
| 113 | // Vec3i | ||
| 114 | |||
| 115 | points::AttributeHandle<math::Vec3i>::Ptr vec3iHandle = | ||
| 116 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
3 | testAttribute<Vec3i>(*points, "test_vec3i", transform, math::Vec3i(9, 8, 7)); |
| 117 | |||
| 118 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(vec3iHandle->get(0), math::Vec3i(9, 8, 7)); |
| 119 | |||
| 120 | // Vec3f | ||
| 121 | |||
| 122 | points::AttributeHandle<Vec3f>::Ptr vec3fHandle = | ||
| 123 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
3 | testAttribute<Vec3f>(*points, "test_vec3f", transform, Vec3f(111.0f, 222.0f, 333.0f)); |
| 124 | |||
| 125 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(vec3fHandle->get(0), Vec3f(111.0f, 222.0f, 333.0f)); |
| 126 | |||
| 127 | // Vec3d | ||
| 128 | |||
| 129 | points::AttributeHandle<Vec3d>::Ptr vec3dHandle = | ||
| 130 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
3 | testAttribute<Vec3d>(*points, "test_vec3d", transform, Vec3d(1.0, 2.0, 3.0)); |
| 131 | |||
| 132 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(Vec3d(1.0, 2.0, 3.0), vec3dHandle->get(0))); |
| 133 | } | ||
| 134 | |||
| 135 | { | ||
| 136 | // empty source grid | ||
| 137 | |||
| 138 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.0f, 0.0f, 0.0f)}; |
| 139 | |||
| 140 | PointDataGrid::Ptr points = points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>( | ||
| 141 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | pointPositions, *transform); |
| 142 | |||
| 143 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<Vec3f>(points->tree(), "test"); |
| 144 | |||
| 145 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | VectorGrid::Ptr testGrid = VectorGrid::create(); |
| 146 | |||
| 147 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid, "test"); |
| 148 | |||
| 149 | points::AttributeHandle<Vec3f>::Ptr handle = | ||
| 150 | points::AttributeHandle<Vec3f>::create( | ||
| 151 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("test")); |
| 152 | |||
| 153 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(Vec3f(0.0f, 0.0f, 0.0f), handle->get(0))); |
| 154 | } | ||
| 155 | |||
| 156 | { | ||
| 157 | // empty point grid | ||
| 158 | |||
| 159 | std::vector<Vec3f> pointPositions; | ||
| 160 | PointDataGrid::Ptr points = points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>( | ||
| 161 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | pointPositions, *transform); |
| 162 | |||
| 163 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 164 | |||
| 165 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | FloatGrid::Ptr testGrid = FloatGrid::create(1.0); |
| 166 | |||
| 167 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | points::appendAttribute<float>(points->tree(), "test"); |
| 168 | |||
| 169 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
|
2 | EXPECT_NO_THROW(points::boxSample(*points, *testGrid, "test")); |
| 170 | } | ||
| 171 | |||
| 172 | { | ||
| 173 | // exception if one tries to sample to "P" attribute | ||
| 174 | |||
| 175 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.0f, 0.0f, 0.0f)}; |
| 176 | |||
| 177 | PointDataGrid::Ptr points = points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>( | ||
| 178 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | pointPositions, *transform); |
| 179 | |||
| 180 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 181 | |||
| 182 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr testGrid = FloatGrid::create(1.0); |
| 183 | |||
| 184 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
2 | EXPECT_THROW(points::boxSample(*points, *testGrid, "P"), RuntimeError); |
| 185 | |||
| 186 | // name of the grid is used if no attribute is provided | ||
| 187 | |||
| 188 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | testGrid->setName("test_grid"); |
| 189 | |||
| 190 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
2 | EXPECT_TRUE(!points->tree().cbeginLeaf()->hasAttribute("test_grid")); |
| 191 | |||
| 192 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid); |
| 193 | |||
| 194 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(points->tree().cbeginLeaf()->hasAttribute("test_grid")); |
| 195 | |||
| 196 | // name fails if the grid is called "P" | ||
| 197 | |||
| 198 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | testGrid->setName("P"); |
| 199 | |||
| 200 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
2 | EXPECT_THROW(points::boxSample(*points, *testGrid), RuntimeError); |
| 201 | } | ||
| 202 | |||
| 203 | { | ||
| 204 | // test non-cell centered points with scalar data and matching transform | ||
| 205 | // use various sampling orders | ||
| 206 | |||
| 207 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.03f, 0.0f, 0.0f), Vec3f(0.11f, 0.03f, 0.0f)}; |
| 208 | |||
| 209 | PointDataGrid::Ptr points = points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>( | ||
| 210 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | pointPositions, *transform); |
| 211 | |||
| 212 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 213 | |||
| 214 | FloatGrid::Ptr testGrid = FloatGrid::create(); | ||
| 215 | |||
| 216 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | testGrid->setTransform(transform); |
| 217 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(-1,0,0), -1.0f); |
| 218 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(0,0,0), 1.0f); |
| 219 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(1,0,0), 2.0f); |
| 220 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(2,0,0), 4.0f); |
| 221 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testGrid->tree().setValue(Coord(0,1,0), 3.0f); |
| 222 | |||
| 223 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<float>(points->tree(), "test"); |
| 224 | points::AttributeHandle<float>::Ptr handle = | ||
| 225 | points::AttributeHandle<float>::create( | ||
| 226 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("test")); |
| 227 | |||
| 228 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(handle.get()); |
| 229 | |||
| 230 | FloatGrid::ConstAccessor testGridAccessor = testGrid->getConstAccessor(); | ||
| 231 | |||
| 232 | // check nearest-neighbour sampling | ||
| 233 | |||
| 234 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::pointSample(*points, *testGrid, "test"); |
| 235 | |||
| 236 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | float expected = tools::PointSampler::sample(testGridAccessor, Vec3f(0.3f, 0.0f, 0.0f)); |
| 237 | |||
| 238 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(0), 1e-6); |
| 239 | |||
| 240 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::PointSampler::sample(testGridAccessor, Vec3f(1.1f, 0.3f, 0.0f)); |
| 241 | |||
| 242 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(1), 1e-6); |
| 243 | |||
| 244 | // check tri-linear sampling | ||
| 245 | |||
| 246 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid, "test"); |
| 247 | |||
| 248 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::BoxSampler::sample(testGridAccessor, Vec3f(0.3f, 0.0f, 0.0f)); |
| 249 | |||
| 250 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(0), 1e-6); |
| 251 | |||
| 252 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::BoxSampler::sample(testGridAccessor, Vec3f(1.1f, 0.3f, 0.0f)); |
| 253 | |||
| 254 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(1), 1e-6); |
| 255 | |||
| 256 | // check tri-quadratic sampling | ||
| 257 | |||
| 258 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::quadraticSample(*points, *testGrid, "test"); |
| 259 | |||
| 260 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::QuadraticSampler::sample(testGridAccessor, Vec3f(0.3f, 0.0f, 0.0f)); |
| 261 | |||
| 262 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(0), 1e-6); |
| 263 | |||
| 264 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | expected = tools::QuadraticSampler::sample(testGridAccessor, Vec3f(1.1f, 0.3f, 0.0f)); |
| 265 | |||
| 266 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(1), 1e-6); |
| 267 | } | ||
| 268 | |||
| 269 | { | ||
| 270 | // staggered grid and mismatching transforms | ||
| 271 | |||
| 272 | std::vector<Vec3f> pointPositions{Vec3f(0.03f, 0.0f, 0.0f), Vec3f(0.0f, 0.03f, 0.0f), | ||
| 273 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | Vec3f(0.0f, 0.0f, 0.03f),}; |
| 274 | |||
| 275 | PointDataGrid::Ptr points = | ||
| 276 | points::createPointDataGrid<points::NullCodec, PointDataGrid, Vec3f>(pointPositions, | ||
| 277 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | *transform); |
| 278 | |||
| 279 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 280 | |||
| 281 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | VectorGrid::Ptr testGrid = VectorGrid::create(); |
| 282 | |||
| 283 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testGrid->setGridClass(GRID_STAGGERED); |
| 284 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testGrid->tree().setValue(Coord(0,0,0), Vec3f(1.0f, 2.0f, 3.0f)); |
| 285 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testGrid->tree().setValue(Coord(0,1,0), Vec3f(1.5f, 2.5f, 3.5f)); |
| 286 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | testGrid->tree().setValue(Coord(0,0,1), Vec3f(2.0f, 3.0f, 4.0)); |
| 287 | |||
| 288 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<Vec3f>(points->tree(), "test"); |
| 289 | |||
| 290 | points::AttributeHandle<Vec3f>::Ptr handle = | ||
| 291 | points::AttributeHandle<Vec3f>::create( | ||
| 292 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("test")); |
| 293 | |||
| 294 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(handle.get()); |
| 295 | |||
| 296 | Vec3fGrid::ConstAccessor testGridAccessor = testGrid->getConstAccessor(); | ||
| 297 | |||
| 298 | // nearest-neighbour staggered sampling | ||
| 299 | |||
| 300 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::pointSample(*points, *testGrid, "test"); |
| 301 | |||
| 302 | Vec3f expected = tools::StaggeredPointSampler::sample(testGridAccessor, | ||
| 303 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | Vec3f(0.03f, 0.0f, 0.0f)); |
| 304 | |||
| 305 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(0))); |
| 306 | |||
| 307 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::StaggeredPointSampler::sample(testGridAccessor, Vec3f(0.0f, 0.03f, 0.0f)); |
| 308 | |||
| 309 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(1))); |
| 310 | |||
| 311 | // tri-linear staggered sampling | ||
| 312 | |||
| 313 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid, "test"); |
| 314 | |||
| 315 | expected = tools::StaggeredBoxSampler::sample(testGridAccessor, | ||
| 316 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | Vec3f(0.03f, 0.0f, 0.0f)); |
| 317 | |||
| 318 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(0))); |
| 319 | |||
| 320 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::StaggeredBoxSampler::sample(testGridAccessor, Vec3f(0.0f, 0.03f, 0.0f)); |
| 321 | |||
| 322 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(1))); |
| 323 | |||
| 324 | // tri-quadratic staggered sampling | ||
| 325 | |||
| 326 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::quadraticSample(*points, *testGrid, "test"); |
| 327 | |||
| 328 | expected = tools::StaggeredQuadraticSampler::sample(testGridAccessor, | ||
| 329 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | Vec3f(0.03f, 0.0f, 0.0f)); |
| 330 | |||
| 331 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(0))); |
| 332 | |||
| 333 | expected = tools::StaggeredQuadraticSampler::sample(testGridAccessor, | ||
| 334 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | Vec3f(0.0f, 0.03f, 0.0f)); |
| 335 | |||
| 336 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(math::isApproxEqual(expected, handle->get(1))); |
| 337 | } | ||
| 338 | |||
| 339 | { | ||
| 340 | // value type of grid and attribute type don't match | ||
| 341 | |||
| 342 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.3f, 0.0f, 0.0f)}; |
| 343 | |||
| 344 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr transform2(math::Transform::createLinearTransform(1.0f)); |
| 345 | PointDataGrid::Ptr points = | ||
| 346 | points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>(pointPositions, | ||
| 347 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | *transform2); |
| 348 | |||
| 349 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 350 | |||
| 351 | FloatGrid::Ptr testFloatGrid = FloatGrid::create(); | ||
| 352 | |||
| 353 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | testFloatGrid->setTransform(transform2); |
| 354 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testFloatGrid->tree().setValue(Coord(0,0,0), 1.1f); |
| 355 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testFloatGrid->tree().setValue(Coord(1,0,0), 2.8f); |
| 356 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testFloatGrid->tree().setValue(Coord(0,1,0), 3.4f); |
| 357 | |||
| 358 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | points::appendAttribute<int>(points->tree(), "testint"); |
| 359 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testFloatGrid, "testint"); |
| 360 | points::AttributeHandle<int>::Ptr handle = points::AttributeHandle<int>::create( | ||
| 361 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("testint")); |
| 362 | |||
| 363 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(handle.get()); |
| 364 | |||
| 365 | FloatGrid::ConstAccessor testFloatGridAccessor = testFloatGrid->getConstAccessor(); | ||
| 366 | |||
| 367 | // check against box sampler values | ||
| 368 | |||
| 369 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | const float sampledValue = tools::BoxSampler::sample(testFloatGridAccessor, |
| 370 | Vec3f(0.3f, 0.0f, 0.0f)); | ||
| 371 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const int expected = static_cast<int>(math::Round(sampledValue)); |
| 372 | |||
| 373 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_EQ(expected, handle->get(0)); |
| 374 | |||
| 375 | // check mismatching grid type using vector types | ||
| 376 | |||
| 377 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Vec3fGrid::Ptr testVec3fGrid = Vec3fGrid::create(); |
| 378 | |||
| 379 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | testVec3fGrid->setTransform(transform2); |
| 380 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testVec3fGrid->tree().setValue(Coord(0,0,0), Vec3f(1.0f, 2.0f, 3.0f)); |
| 381 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testVec3fGrid->tree().setValue(Coord(1,0,0), Vec3f(1.5f, 2.5f, 3.5f)); |
| 382 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | testVec3fGrid->tree().setValue(Coord(0,1,0), Vec3f(2.0f, 3.0f, 4.0f)); |
| 383 | |||
| 384 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<Vec3d>(points->tree(), "testvec3d"); |
| 385 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testVec3fGrid, "testvec3d"); |
| 386 | points::AttributeHandle<Vec3d>::Ptr handle2 = points::AttributeHandle<Vec3d>::create( | ||
| 387 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("testvec3d")); |
| 388 | |||
| 389 | Vec3fGrid::ConstAccessor testVec3fGridAccessor = testVec3fGrid->getConstAccessor(); | ||
| 390 | 1 | const Vec3d expected2 = static_cast<Vec3d>(tools::BoxSampler::sample(testVec3fGridAccessor, | |
| 391 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | Vec3f(0.3f, 0.0f, 0.0f))); |
| 392 | |||
| 393 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(math::isExactlyEqual(expected2, handle2->get(0))); |
| 394 | |||
| 395 | // check implicit casting of types for sampling using sampleGrid() | ||
| 396 | |||
| 397 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<Vec3d>(points->tree(), "testvec3d2"); |
| 398 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::sampleGrid(/*linear*/1, *points, *testVec3fGrid, "testvec3d2"); |
| 399 | points::AttributeHandle<Vec3d>::Ptr handle3 = points::AttributeHandle<Vec3d>::create( | ||
| 400 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("testvec3d2")); |
| 401 | |||
| 402 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(math::isExactlyEqual(expected2, handle3->get(0))); |
| 403 | |||
| 404 | // check explicit casting of types for sampling using sampleGrid() | ||
| 405 | |||
| 406 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::sampleGrid<PointDataGrid, Vec3SGrid, Vec3d>( |
| 407 | /*linear*/1, *points, *testVec3fGrid, "testvec3d3"); | ||
| 408 | points::AttributeHandle<Vec3d>::Ptr handle4 = points::AttributeHandle<Vec3d>::create( | ||
| 409 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("testvec3d3")); |
| 410 | |||
| 411 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(math::isExactlyEqual(expected2, handle4->get(0))); |
| 412 | |||
| 413 | // check invalid casting of types | ||
| 414 | |||
| 415 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | points::appendAttribute<float>(points->tree(), "testfloat"); |
| 416 | |||
| 417 | try { | ||
| 418 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | points::boxSample(*points, *testVec3fGrid, "testfloat"); |
| 419 |
1/12✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
|
1 | FAIL() << "expected exception not thrown:" |
| 420 | ✗ | " cannot sample a vec3s grid on to a float attribute"; | |
| 421 | 1 | } catch (std::exception&) { | |
| 422 | ✗ | } catch (...) { | |
| 423 | ✗ | FAIL() << "expected std::exception or derived"; | |
| 424 | } | ||
| 425 | |||
| 426 | // check invalid existing attribute type (Vec4s attribute) | ||
| 427 | |||
| 428 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | points::TypedAttributeArray<Vec4s>::registerType(); |
| 429 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendAttribute<Vec4s>(points->tree(), "testv4f"); |
| 430 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
2 | EXPECT_THROW(points::boxSample(*points, *testVec3fGrid, "testv4f"), TypeError); |
| 431 | } | ||
| 432 | |||
| 433 | { // sample a non-standard grid type (a Vec4<float> grid) | ||
| 434 | using Vec4STree = tree::Tree4<Vec4s, 5, 4, 3>::Type; | ||
| 435 | using Vec4SGrid = Grid<Vec4STree>; | ||
| 436 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Vec4SGrid::registerGrid(); |
| 437 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | points::TypedAttributeArray<Vec4s>::registerType(); |
| 438 | |||
| 439 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | std::vector<Vec3f> pointPositions{Vec3f(0.3f, 0.0f, 0.0f)}; |
| 440 | |||
| 441 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr transform2(math::Transform::createLinearTransform(1.0f)); |
| 442 | PointDataGrid::Ptr points = | ||
| 443 | points::createPointDataGrid<NullCodec, PointDataGrid, Vec3f>(pointPositions, | ||
| 444 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | *transform2); |
| 445 | |||
| 446 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | auto testVec4fGrid = Vec4SGrid::create(); |
| 447 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | testVec4fGrid->setTransform(transform2); |
| 448 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testVec4fGrid->tree().setValue(Coord(0,0,0), Vec4s(1.0f, 2.0f, 3.0f, 4.0f)); |
| 449 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testVec4fGrid->tree().setValue(Coord(1,0,0), Vec4s(1.5f, 2.5f, 3.5f, 4.5f)); |
| 450 | 1 | testVec4fGrid->tree().setValue(Coord(0,1,0), Vec4s(2.0f, 3.0f, 4.0f, 5.0f)); | |
| 451 | |||
| 452 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testVec4fGrid, "testvec4f"); |
| 453 | points::AttributeHandle<Vec4s>::Ptr handle2 = points::AttributeHandle<Vec4s>::create( | ||
| 454 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("testvec4f")); |
| 455 | |||
| 456 | Vec4SGrid::ConstAccessor testVec4fGridAccessor = testVec4fGrid->getConstAccessor(); | ||
| 457 | const Vec4s expected2 = static_cast<Vec4s>(tools::BoxSampler::sample(testVec4fGridAccessor, | ||
| 458 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | Vec3f(0.3f, 0.0f, 0.0f))); |
| 459 | |||
| 460 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(math::isExactlyEqual(expected2, handle2->get(0))); |
| 461 | } | ||
| 462 | } | ||
| 463 | |||
| 464 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestPointSample, testPointSampleWithGroups) |
| 465 | { | ||
| 466 | using points::PointDataGrid; | ||
| 467 | |||
| 468 | std::vector<Vec3f> pointPositions{Vec3f(0.03f, 0.0f, 0.0f), Vec3f(0.0f, 0.03f, 0.0f), | ||
| 469 | 1 | Vec3f(0.0f, 0.0f, 0.0f)}; | |
| 470 | |||
| 471 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr transform(math::Transform::createLinearTransform(0.1f)); |
| 472 | PointDataGrid::Ptr points = points::createPointDataGrid<points::NullCodec, | ||
| 473 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | PointDataGrid, Vec3f>(pointPositions, *transform); |
| 474 | |||
| 475 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(points); |
| 476 | |||
| 477 | DoubleGrid::Ptr testGrid = DoubleGrid::create(); | ||
| 478 | |||
| 479 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | testGrid->setTransform(transform); |
| 480 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(0,0,0), 1.0); |
| 481 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | testGrid->tree().setValue(Coord(1,0,0), 2.0); |
| 482 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | testGrid->tree().setValue(Coord(0,1,0), 3.0); |
| 483 | |||
| 484 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | points::appendGroup(points->tree(), "group1"); |
| 485 | |||
| 486 | auto leaf = points->tree().beginLeaf(); | ||
| 487 | |||
| 488 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | points::GroupWriteHandle group1Handle = leaf->groupWriteHandle("group1"); |
| 489 | |||
| 490 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | group1Handle.set(0, true); |
| 491 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | group1Handle.set(1, false); |
| 492 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | group1Handle.set(2, true); |
| 493 | |||
| 494 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | points::appendAttribute<double>(points->tree(), "test_include"); |
| 495 | |||
| 496 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
3 | std::vector<std::string> includeGroups({"group1"}); |
| 497 | 1 | std::vector<std::string> excludeGroups; | |
| 498 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | points::MultiGroupFilter filter1(includeGroups, excludeGroups, leaf->attributeSet()); |
| 499 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid, "test_include", filter1); |
| 500 | |||
| 501 | points::AttributeHandle<double>::Ptr handle = | ||
| 502 | points::AttributeHandle<double>::create( | ||
| 503 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("test_include")); |
| 504 | |||
| 505 | DoubleGrid::ConstAccessor testGridAccessor = testGrid->getConstAccessor(); | ||
| 506 | |||
| 507 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | double expected = tools::BoxSampler::sample(testGridAccessor, Vec3f(0.3f, 0.0f, 0.0f)); |
| 508 | |||
| 509 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(0), 1e-6); |
| 510 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(0.0, handle->get(1), 1e-6); |
| 511 | |||
| 512 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | expected = tools::BoxSampler::sample(testGridAccessor, Vec3f(0.0f, 0.0f, 0.0f)); |
| 513 | |||
| 514 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle->get(2), 1e-6); |
| 515 | |||
| 516 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
2 | points::appendAttribute<double>(points->tree(), "test_exclude"); |
| 517 | |||
| 518 | // test with group treated as "exclusion" group | ||
| 519 | |||
| 520 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | points::MultiGroupFilter filter2(excludeGroups, includeGroups, leaf->attributeSet()); |
| 521 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | points::boxSample(*points, *testGrid, "test_exclude", filter2); |
| 522 | |||
| 523 | points::AttributeHandle<double>::Ptr handle2 = | ||
| 524 | points::AttributeHandle<double>::create( | ||
| 525 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
2 | points->tree().cbeginLeaf()->attributeArray("test_exclude")); |
| 526 | |||
| 527 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(0.0, handle2->get(0), 1e-6); |
| 528 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(0.0, handle2->get(2), 1e-6); |
| 529 | |||
| 530 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | expected = tools::BoxSampler::sample(testGridAccessor, Vec3f(0.0f, 0.3f, 0.0f)); |
| 531 | |||
| 532 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_NEAR(expected, handle2->get(1), 1e-6); |
| 533 | 1 | } | |
| 534 |