__host__ __device__ BitVoxel<length> BitVoxel<length>::reduce(const BitVoxel<length> voxel, const BitVoxel<length> other_voxel) { BitVoxel<length> res; BitVector<length>& b = res.bitVector(); b = voxel.bitVector() | other_voxel.bitVector(); return res; }
__host__ __device__ bool DefaultCollider::collide(const BitVoxel<length>& v1, const ProbabilisticVoxel& v2) const { return v2.getOccupancy() >= m_threshold2 && !v1.bitVector().isZero(); }
__host__ __device__ bool DefaultCollider::collide(const BitVoxel<length>& v1, const BitVoxel<length>& v2) const { return !v1.bitVector().isZero() && !v2.bitVector().isZero(); }
__host__ __device__ bool SVCollider::collide(const BitVoxel<length>& v1, const BitVoxel<length>& v2, BitVector<length>* collisions, const uint32_t sv_offset) const { return bitMarginCollisionCheck<length>(v1.bitVector(), v2.bitVector(), collisions, m_type_range, sv_offset); }