void multMatInv (const std::vector<Math::DiagMatrix3<ctype> >& matrix, const std::vector<ctype>& vector, std::vector<ctype>& result) const { ASSERT (matrix.size () == dipoleGeometry ().materials ().size ()); ASSERT (vector.size () == vecSize ()); ASSERT (result.size () == vecSize ()); for (size_t i = 0; i < cnvCount (); i++) set (result, i, matrix[dipoleGeometry ().getMaterialIndex (i)].inverse () * get (vector, i)); }
CollisionBox::CollisionBox( const glm::vec2 &position, float size ) { glm::vec2 vecSize(size,size); glm::vec2 altVecSize(size, -size); quad[0] = position - vecSize; quad[1] = position + altVecSize; quad[2] = position + vecSize; quad[3] = position + altVecSize * -1.0f; }
boost::shared_ptr<std::vector<ctype> > multMat (const std::vector<Math::DiagMatrix3<ctype> >& matrix, const std::vector<ctype>& vector) const { boost::shared_ptr<std::vector<ctype> > result = boost::make_shared<std::vector<ctype> > (vecSize ()); multMat (matrix, vector, *result); return result; }