4
4
5
5
#include " BvhImpl.cuh"
6
6
#include " BvhImplKernels.cuh"
7
- #include " pbat/common/Eigen.h "
7
+ #include " pbat/gpu/ common/Eigen.cuh "
8
8
9
9
#include < exception>
10
10
#include < string>
@@ -30,7 +30,7 @@ BvhImpl::BvhImpl(std::size_t nPrimitives, std::size_t nOverlaps)
30
30
visits(nPrimitives - 1 ),
31
31
overlaps(nOverlaps)
32
32
{
33
- thrust::fill (thrust::device, parent.Data (), parent. Data () + parent. Size (), GpuIndex{- 1 } );
33
+ parent.SetConstant ( GpuIndex (- 1 ) );
34
34
}
35
35
36
36
void BvhImpl::Build (
@@ -50,7 +50,7 @@ void BvhImpl::Build(
50
50
}
51
51
52
52
// 0. Reset intermediate data
53
- thrust::fill (thrust::device, visits.Raw (), visits. Raw () + visits. Size (), GpuIndex{ 0 } );
53
+ visits.SetConstant ( GpuIndex ( 0 ) );
54
54
55
55
// 1. Construct leaf node (i.e. simplex) bounding boxes
56
56
auto const leafBegin = n - 1 ;
@@ -155,50 +155,42 @@ std::size_t BvhImpl::NumberOfAllocatedBoxes() const
155
155
156
156
Eigen::Matrix<GpuScalar, Eigen::Dynamic, Eigen::Dynamic> BvhImpl::Min () const
157
157
{
158
- using pbat::common::ToEigen;
159
- return ToEigen (b.Get ()).reshaped (b.Size (), b.Dimensions ());
158
+ return common::ToEigen (b);
160
159
}
161
160
162
161
Eigen::Matrix<GpuScalar, Eigen::Dynamic, Eigen::Dynamic> BvhImpl::Max () const
163
162
{
164
- using pbat::common::ToEigen;
165
- return ToEigen (e.Get ()).reshaped (e.Size (), e.Dimensions ());
163
+ return common::ToEigen (e);
166
164
}
167
165
168
166
Eigen::Vector<GpuIndex, Eigen::Dynamic> BvhImpl::SimplexOrdering () const
169
167
{
170
- using pbat::common::ToEigen;
171
- return ToEigen (simplex.Get ());
168
+ return common::ToEigen (simplex);
172
169
}
173
170
174
171
Eigen::Vector<typename BvhImpl::MortonCodeType, Eigen::Dynamic> BvhImpl::MortonCodes () const
175
172
{
176
- using pbat::common::ToEigen;
177
- return ToEigen (morton.Get ());
173
+ return common::ToEigen (morton);
178
174
}
179
175
180
176
Eigen::Matrix<GpuIndex, Eigen::Dynamic, 2 > BvhImpl::Child () const
181
177
{
182
- using pbat::common::ToEigen;
183
- return ToEigen (child.Get ()).reshaped (child.Size (), child.Dimensions ());
178
+ return common::ToEigen (child);
184
179
}
185
180
186
181
Eigen::Vector<GpuIndex, Eigen::Dynamic> BvhImpl::Parent () const
187
182
{
188
- using pbat::common::ToEigen;
189
- return ToEigen (parent.Get ());
183
+ return common::ToEigen (parent);
190
184
}
191
185
192
186
Eigen::Matrix<GpuIndex, Eigen::Dynamic, 2 > BvhImpl::Rightmost () const
193
187
{
194
- using pbat::common::ToEigen;
195
- return ToEigen (rightmost.Get ()).reshaped (rightmost.Size (), rightmost.Dimensions ());
188
+ return common::ToEigen (rightmost);
196
189
}
197
190
198
191
Eigen::Vector<GpuIndex, Eigen::Dynamic> BvhImpl::Visits () const
199
192
{
200
- using pbat::common::ToEigen;
201
- return ToEigen (visits.Get ());
193
+ return common::ToEigen (visits);
202
194
}
203
195
204
196
} // namespace geometry
0 commit comments