Eliminating some differences from the cubiquity-version branch.
This commit is contained in:
@ -37,6 +37,7 @@ namespace PolyVox
|
||||
int32_t roundToInteger(float r);
|
||||
template <typename Type>
|
||||
Type clamp(const Type& value, const Type& low, const Type& high);
|
||||
uint32_t upperPowerOfTwo(uint32_t v);
|
||||
|
||||
inline int32_t roundTowardsNegInf(float r)
|
||||
{
|
||||
|
@ -365,7 +365,7 @@ namespace PolyVox
|
||||
void SurfaceMesh<VertexType>::removeUnusedVertices(void)
|
||||
{
|
||||
std::vector<bool> isVertexUsed(m_vecVertices.size());
|
||||
fill(isVertexUsed.begin(), isVertexUsed.end(), false);
|
||||
std::fill(isVertexUsed.begin(), isVertexUsed.end(), false);
|
||||
|
||||
for(uint32_t triCt = 0; triCt < m_vecTriangleIndices.size(); triCt++)
|
||||
{
|
||||
|
@ -653,7 +653,10 @@ namespace PolyVox
|
||||
inline void Vector<Size, StorageType, OperationType>::normalise(void)
|
||||
{
|
||||
float fLength = this->length();
|
||||
if(fLength <= 0.0)
|
||||
|
||||
// We could wait until the NAN occurs before throwing, but then we'd have to add some roll-back code.
|
||||
// This seems like a lot of overhead for a common operation which should rarely go wrong.
|
||||
if(fLength <= 0.0001)
|
||||
{
|
||||
POLYVOX_THROW(invalid_operation, "Cannot normalise a vector with a length of zero");
|
||||
}
|
||||
|
@ -56,4 +56,17 @@ namespace PolyVox
|
||||
else
|
||||
return ((uInput & (uInput-1)) == 0);
|
||||
}
|
||||
|
||||
// http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
|
||||
uint32_t upperPowerOfTwo(uint32_t v)
|
||||
{
|
||||
v--;
|
||||
v |= v >> 1;
|
||||
v |= v >> 2;
|
||||
v |= v >> 4;
|
||||
v |= v >> 8;
|
||||
v |= v >> 16;
|
||||
v++;
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user