git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@161 92aac97c-a6ce-11dd-a772-7fcde58d38e6
This commit is contained in:
parent
6089f8ef4b
commit
04e9964ae8
35
sources/reactphysics3d/constraint/Constraint.cpp
Normal file
35
sources/reactphysics3d/constraint/Constraint.cpp
Normal file
|
@ -0,0 +1,35 @@
|
|||
/****************************************************************************
|
||||
* Copyright (C) 2009 Daniel Chappuis *
|
||||
****************************************************************************
|
||||
* This file is part of ReactPhysics3D. *
|
||||
* *
|
||||
* ReactPhysics3D is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as published *
|
||||
* by the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* ReactPhysics3D is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with ReactPhysics3D. If not, see <http://www.gnu.org/licenses/>. *
|
||||
***************************************************************************/
|
||||
|
||||
// Libraries
|
||||
#include "Constraint.h"
|
||||
|
||||
// We want ot use the ReactPhysics3D namespace
|
||||
using namespace reactphysics3d;
|
||||
|
||||
// Constructor
|
||||
Constraint::Constraint(Body& body1, Body& body2)
|
||||
:body1(body1), body2(body2) {
|
||||
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Constraint::~Constraint() {
|
||||
|
||||
}
|
61
sources/reactphysics3d/constraint/Constraint.h
Normal file
61
sources/reactphysics3d/constraint/Constraint.h
Normal file
|
@ -0,0 +1,61 @@
|
|||
/****************************************************************************
|
||||
* Copyright (C) 2009 Daniel Chappuis *
|
||||
****************************************************************************
|
||||
* This file is part of ReactPhysics3D. *
|
||||
* *
|
||||
* ReactPhysics3D is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as published *
|
||||
* by the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* ReactPhysics3D is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with ReactPhysics3D. If not, see <http://www.gnu.org/licenses/>. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CONSTRAINT_H
|
||||
#define CONSTRAINT_H
|
||||
|
||||
// Libraries
|
||||
#include "../body/Body.h"
|
||||
|
||||
// ReactPhysics3D namespace
|
||||
namespace reactphysics3d {
|
||||
|
||||
/* -------------------------------------------------------------------
|
||||
Class Constraint :
|
||||
This class represents a constraint in the physics engine.
|
||||
A constraint can be a collision contact or a joint for
|
||||
instance.
|
||||
-------------------------------------------------------------------
|
||||
*/
|
||||
class Constraint {
|
||||
private :
|
||||
Body& body1; // Reference to the first body of the constraint
|
||||
Body& body2; // Reference to the second body of the constraint
|
||||
|
||||
public :
|
||||
Constraint(Body& body1, Body& body2); // Constructor
|
||||
virtual ~Constraint(); // Destructor
|
||||
|
||||
Body& getBody1() const; // Return the reference to the body 1
|
||||
Body& getBody2() const; // Return the reference to the body 2
|
||||
};
|
||||
|
||||
// Return the reference to the body 1
|
||||
inline Body& Constraint::getBody1() const {
|
||||
return body1;
|
||||
}
|
||||
|
||||
// Return the reference to the body 2
|
||||
inline Body& Constraint::getBody2() const {
|
||||
return body2;
|
||||
}
|
||||
|
||||
} // End of the ReactPhysics3D namespace
|
||||
|
||||
#endif
|
35
sources/reactphysics3d/constraint/Contact.cpp
Normal file
35
sources/reactphysics3d/constraint/Contact.cpp
Normal file
|
@ -0,0 +1,35 @@
|
|||
/****************************************************************************
|
||||
* Copyright (C) 2009 Daniel Chappuis *
|
||||
****************************************************************************
|
||||
* This file is part of ReactPhysics3D. *
|
||||
* *
|
||||
* ReactPhysics3D is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as published *
|
||||
* by the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* ReactPhysics3D is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with ReactPhysics3D. If not, see <http://www.gnu.org/licenses/>. *
|
||||
***************************************************************************/
|
||||
|
||||
// Libraries
|
||||
#include "Contact.h"
|
||||
|
||||
// We want to use the ReactPhysics3D namespace
|
||||
using namespace reactphysics3d;
|
||||
|
||||
// Constructor
|
||||
Contact::Contact(Body& body1, Body& body2, const Vector3D& normalVector)
|
||||
:Constraint(body1, body2), normalVector(normalVector) {
|
||||
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Contact::~Contact() {
|
||||
|
||||
}
|
58
sources/reactphysics3d/constraint/Contact.h
Normal file
58
sources/reactphysics3d/constraint/Contact.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
/****************************************************************************
|
||||
* Copyright (C) 2009 Daniel Chappuis *
|
||||
****************************************************************************
|
||||
* This file is part of ReactPhysics3D. *
|
||||
* *
|
||||
* ReactPhysics3D is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as published *
|
||||
* by the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* ReactPhysics3D is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with ReactPhysics3D. If not, see <http://www.gnu.org/licenses/>. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CONTACT_H
|
||||
#define CONTACT_H
|
||||
|
||||
// Libraries
|
||||
#include "Constraint.h"
|
||||
#include "../mathematics/mathematics.h"
|
||||
|
||||
// ReactPhysics3D namespace
|
||||
namespace reactphysics3d {
|
||||
|
||||
/* -------------------------------------------------------------------
|
||||
Class Contact :
|
||||
This class represents a collision contact between two bodies in
|
||||
the physics engine. The contact class inherits from the
|
||||
Constraint class. The collision detection systems compute
|
||||
contact informations that will be used to perform the collision
|
||||
response.
|
||||
-------------------------------------------------------------------
|
||||
*/
|
||||
class Contact : public Constraint {
|
||||
private :
|
||||
Vector3D normalVector; // Normal vector of the contact
|
||||
|
||||
public :
|
||||
Contact(Body& body1, Body& body2, const Vector3D& normalVector); // Constructor
|
||||
virtual ~Contact(); // Destructor
|
||||
|
||||
Vector3D getNormalVector() const; // Return the normal vector of the contact
|
||||
|
||||
};
|
||||
|
||||
// Return the normal vector of the contact
|
||||
inline Vector3D Contact::getNormalVector() const {
|
||||
return normalVector;
|
||||
}
|
||||
|
||||
} // End of the ReactPhysics3D namespace
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user