00001 /* 00002 Sheep - A Rigid Body Dynamics Engine 00003 Copyright (C) 2001-2004 Francois Beaune 00004 Contact: http://toxicengine.sourceforge.net/ 00005 00006 This file is part of Sheep. 00007 00008 Sheep is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2 of the License, or 00011 (at your option) any later version. 00012 00013 Sheep is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with Sheep; if not, write to the Free Software 00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 */ 00022 00023 inline 00024 int Joint::GetDimension() const { 00025 return m_dimension; 00026 } 00027 00028 inline 00029 int Joint::GetBodyCount() const { 00030 return m_body_count; 00031 } 00032 00033 inline 00034 RigidBody *Joint::GetBody(int n) { 00035 assert(n >= 0 && n < m_body_count); 00036 00037 return m_bodies[n]; 00038 } 00039 00040 inline 00041 Matrix *Joint::GetJ(const RigidBody *body) const { 00042 assert(body); 00043 00044 // Number of bodies is usually very small (typically two), 00045 // so that looking for a body with a linear search doesn't 00046 // hurt much. 00047 00048 for(int i = 0; i < m_body_count; i++) { 00049 if(m_bodies[i] == body) 00050 return m_j[i]; 00051 } 00052 00053 return m_zero; 00054 } 00055 00056 inline Vector *Joint::GetC() const { 00057 return m_c; 00058 } 00059 00060 inline 00061 FixedPathJoint::~FixedPathJoint() { 00062 delete [] m_ccp; 00063 }
1.3.6