7#ifndef btReducedVectors_h
8#define btReducedVectors_h
61 for (
int i = 0;
i < old_indices.
size(); ++
i)
183 return !(*
this == other);
229 return this->
dot(*
this);
259 std::vector<TwoInts> tuples;
265 tuples.push_back(ti);
267 std::sort(tuples.begin(), tuples.end());
270 for (
int i = 0;
i < tuples.size(); ++
i)
283 for (
int i = 0;
i <
v.m_indices.size(); ++
i)
285 ret.m_indices.push_back(
v.m_indices[
i]);
286 ret.m_vecs.push_back(s*
v.m_vecs[
i]);
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE btReducedVector & operator/=(btReducedVector &v, btScalar s)
SIMD_FORCE_INLINE btReducedVector & operator+=(btReducedVector &v1, const btReducedVector &v2)
SIMD_FORCE_INLINE btReducedVector operator*(const btReducedVector &v, btScalar s)
bool operator<(const TwoInts &A, const TwoInts &B)
SIMD_FORCE_INLINE btReducedVector & operator-=(btReducedVector &v1, const btReducedVector &v2)
SIMD_FORCE_INLINE btReducedVector operator/(const btReducedVector &v, btScalar s)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define SIMD_FORCE_INLINE
SIMD_FORCE_INLINE int size() const
return the number of elements in the array
SIMD_FORCE_INLINE void push_back(const T &_Val)
btAlignedObjectArray< int > m_indices
btReducedVector operator-(const btReducedVector &other)
btReducedVector proj(const btReducedVector &other) const
btReducedVector operator+(const btReducedVector &other)
bool operator==(const btReducedVector &other) const
btReducedVector(int sz, const btAlignedObjectArray< int > &indices, const btAlignedObjectArray< btVector3 > &vecs)
btScalar dot(const btAlignedObjectArray< btVector3 > &other) const
btAlignedObjectArray< btVector3 > m_vecs
btReducedVector operator-()
bool operator!=(const btReducedVector &other) const
btScalar dot(const btReducedVector &other) const
bool testMultiply() const
btReducedVector & operator=(const btReducedVector &other)