You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(153) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(48) |
Feb
(46) |
Mar
(12) |
Apr
(4) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(263) |
Mar
(235) |
Apr
(66) |
May
(42) |
Jun
(270) |
Jul
(65) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Markus R. <rol...@us...> - 2007-06-23 07:28:11
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv15194 Modified Files: Tag: RSGEDIT_SCINTILLA mainframe.cpp sparkedit.cpp Log Message: - use window label to request tab tooltips (otherwise they were also visible in the client area of the tab) Index: sparkedit.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/Attic/sparkedit.cpp,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -C2 -d -r1.1.2.6 -r1.1.2.7 *** sparkedit.cpp 21 Jun 2007 19:32:06 -0000 1.1.2.6 --- sparkedit.cpp 23 Jun 2007 07:28:04 -0000 1.1.2.7 *************** *** 135,139 **** } ! edit->SetToolTip(entry.fname); wxString ext(fn.GetExt().Lower()); --- 135,139 ---- } ! edit->SetLabel(entry.fname); wxString ext(fn.GetExt().Lower()); Index: mainframe.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/mainframe.cpp,v retrieving revision 1.21.2.5 retrieving revision 1.21.2.6 diff -C2 -d -r1.21.2.5 -r1.21.2.6 *** mainframe.cpp 21 Jun 2007 19:27:27 -0000 1.21.2.5 --- mainframe.cpp 23 Jun 2007 07:28:04 -0000 1.21.2.6 *************** *** 186,190 **** mCtrNotebook->RemovePage(0); mCanvas = new SparkGLCanvas(mCtrNotebook, wxID_ANY); ! mCanvas->SetToolTip("simulation window"); mCtrNotebook->AddPage(mCanvas, wxT("Canvas")); --- 186,190 ---- mCtrNotebook->RemovePage(0); mCanvas = new SparkGLCanvas(mCtrNotebook, wxID_ANY); ! mCanvas->SetLabel("simulation window"); mCtrNotebook->AddPage(mCanvas, wxT("Canvas")); |
From: Markus R. <rol...@us...> - 2007-06-23 07:28:11
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit/wxflatnotebook/src/wxflatnotebook In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv15194/wxflatnotebook/src/wxflatnotebook Modified Files: Tag: RSGEDIT_SCINTILLA wxFlatNotebook.cpp Log Message: - use window label to request tab tooltips (otherwise they were also visible in the client area of the tab) Index: wxFlatNotebook.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/wxflatnotebook/src/wxflatnotebook/Attic/wxFlatNotebook.cpp,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** wxFlatNotebook.cpp 21 Jun 2007 17:52:41 -0000 1.1.2.1 --- wxFlatNotebook.cpp 23 Jun 2007 07:28:04 -0000 1.1.2.2 *************** *** 1456,1462 **** if( pWindow ) { ! wxToolTip *pToolTip = pWindow->GetToolTip(); ! if(pToolTip && pToolTip->GetWindow() == pWindow) ! SetToolTip(pToolTip->GetTip()); } } --- 1456,1464 ---- if( pWindow ) { ! wxString label(pWindow->GetLabel()); ! if (! label.IsEmpty()) ! { ! SetToolTip(label); ! } } } |
From: Oliver O. <fr...@us...> - 2007-06-22 14:22:38
|
Update of /cvsroot/simspark/simspark/spark In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv11857 Modified Files: Tag: projectx ChangeLog Log Message: *** empty log message *** Index: ChangeLog =================================================================== RCS file: /cvsroot/simspark/simspark/spark/ChangeLog,v retrieving revision 1.1.2.2.2.6 retrieving revision 1.1.2.2.2.7 diff -C2 -d -r1.1.2.2.2.6 -r1.1.2.2.2.7 *** ChangeLog 17 Jun 2007 21:53:03 -0000 1.1.2.2.2.6 --- ChangeLog 22 Jun 2007 14:22:34 -0000 1.1.2.2.2.7 *************** *** 1,4 **** ! 2007-06-18 Oliver Obst <fr...@us...> * kerosin/renderserver/renderserver.cpp: replaced uint8 by unsigned char --- 1,44 ---- ! 2007-06-23 Oliver Obst <oli...@ne...> ! ! * plugin/collisionperceptor/: ! * plugin/gyrorateperceptor/: ! update from rcssserver3D ! ! * plugin/sparkagent/Makefile.am: ! - avoid version number for module ! ! * spark/spark.rb: ! - some updates from rcssserver3D ! - some changes for new visualisation (conditional) ! ! * kerosin/Makefile.am: ! * kerosin/kerosin.cpp: ! * kerosin/kerosin.h: ! * kerosin/sceneserver/cylinder_c.cpp: ! * kerosin/sceneserver/cylinder.cpp: ! * kerosin/sceneserver/cylinder.h: ! update from rcssserver3D + * kerosin/openglserver/openglwrapper.h: + include GLU on a Mac as well + + + 2007-06-22 Oliver Obst <oli...@ne...> + + * oxygen/physicsserver/recorderhandler.cpp: + * oxygen/physicsserver/recorderhandler.h: + * oxygen/physicsserver/odeobject.h: + * oxygen/physicsserver/odeobject.cpp: + * oxygen/physicsserver/contactjointhandler.cpp: + * oxygen/physicsserver/contactjointhandler.h: + * oxygen/physicsserver/body.cpp: + * oxygen/physicsserver/body.h: + * oxygen/geometryserver/stdmeshimporter.cpp: + * oxygen/geometryserver/stdmeshimporter.h: + * oxygen/gamecontrolserver/gamecontrolserver.cpp: + * oxygen/gamecontrolserver/gamecontrolserver.h: + + 2007-06-18 Oliver Obst <fr...@us...> + * kerosin/renderserver/renderserver.cpp: replaced uint8 by unsigned char |
From: Oliver O. <fr...@us...> - 2007-06-22 14:21:44
|
Update of /cvsroot/simspark/simspark/simulations/soccer In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv11359 Modified Files: Tag: projectx soccersim.rb Log Message: update from rcssserver3D Index: soccersim.rb =================================================================== RCS file: /cvsroot/simspark/simspark/simulations/soccer/Attic/soccersim.rb,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** soccersim.rb 7 Mar 2007 11:37:06 -0000 1.1.2.1 --- soccersim.rb 22 Jun 2007 14:21:20 -0000 1.1.2.2 *************** *** 25,34 **** # the soccer field dimensions in meters ! addSoccerVar('FieldLength', randomServer.uniformRND(100.0,110.9).floor().to_f()) ! addSoccerVar('FieldWidth', randomServer.uniformRND(64.0,75.9).floor().to_f()) addSoccerVar('FieldHeight', 40.0) ! addSoccerVar('GoalWidth', 7.32) addSoccerVar('GoalDepth', 2.0) ! addSoccerVar('GoalHeight', 0.75) # FIFA: 2.44 addSoccerVar('BorderSize', 10.0) addSoccerVar('FreeKickDistance', 9.15) --- 25,39 ---- # the soccer field dimensions in meters ! #addSoccerVar('FieldLength', randomServer.uniformRND(100.0,110.9).floor().to_f()) ! #addSoccerVar('FieldWidth', randomServer.uniformRND(64.0,75.9).floor().to_f()) ! # Joschka: settings for Atlanta ! addSoccerVar('FieldLength', 45.0) ! addSoccerVar('FieldWidth', 30.0) addSoccerVar('FieldHeight', 40.0) ! #addSoccerVar('GoalWidth', 7.32) ! addSoccerVar('GoalWidth', 9.0) addSoccerVar('GoalDepth', 2.0) ! #addSoccerVar('GoalHeight', 2.44) # FIFA: 2.44 ! addSoccerVar('GoalHeight', 4.0) addSoccerVar('BorderSize', 10.0) addSoccerVar('FreeKickDistance', 9.15) *************** *** 38,48 **** # agent parameters addSoccerVar('AgentMass', 75.0) ! addSoccerVar('AgentRadius', 0.22) addSoccerVar('AgentMaxSpeed', 10.0) # ball parameters ! addSoccerVar('BallRadius', 0.7) # FIFA: 68-70 cm ! addSoccerVar('BallDensity',2) ! addSoccerVar('BallMass',0.45) # FIFA: 410-450 g # soccer rule parameters --- 43,53 ---- # agent parameters addSoccerVar('AgentMass', 75.0) ! addSoccerVar('AgentRadius', 3.5) addSoccerVar('AgentMaxSpeed', 10.0) # ball parameters ! addSoccerVar('BallRadius', 0.4) ! #addSoccerVar('BallDensity',2) ! addSoccerVar('BallMass',0.43) # FIFA: 410-450 g # soccer rule parameters *************** *** 51,54 **** --- 56,61 ---- addSoccerVar('RuleHalfTime',5.0 * 60) addSoccerVar('RuleDropBallTime',30) + addSoccerVar('SingleHalfTime', false) + addSoccerVar('UseOffside',false) scene = get($scenePath) *************** *** 59,63 **** gameControlServer.initControlAspect('GameStateAspect') gameControlServer.initControlAspect('BallStateAspect') ! # gameControlServer.initControlAspect('SoccerRuleAspect') # init monitorItems to transmit game state information --- 66,70 ---- gameControlServer.initControlAspect('GameStateAspect') gameControlServer.initControlAspect('BallStateAspect') ! gameControlServer.initControlAspect('SoccerRuleAspect') # init monitorItems to transmit game state information |
From: Oliver O. <fr...@us...> - 2007-06-22 14:17:45
|
Update of /cvsroot/simspark/simspark/spark/plugin/collisionperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv9663 Added Files: Tag: projectx .cvsignore Log Message: --- NEW FILE: .cvsignore --- .deps .libs Makefile Makefile.in *.la *.lo |
From: Oliver O. <fr...@us...> - 2007-06-22 14:17:01
|
Update of /cvsroot/simspark/simspark/spark/plugin/gyrorateperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv9267 Added Files: Tag: projectx .cvsignore Log Message: --- NEW FILE: .cvsignore --- .deps .libs Makefile Makefile.in *.la *.lo |
Update of /cvsroot/simspark/simspark/spark/plugin/gyrorateperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8836 Added Files: Tag: projectx Makefile.am export.cpp gyrorateperceptor.cpp gyrorateperceptor.h gyrorateperceptor_c.cpp Log Message: update from rcssserver3D --- NEW FILE: export.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: export.cpp,v 1.1.2.1 2007/06/22 14:15:59 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "gyrorateperceptor.h" #include <zeitgeist/zeitgeist.h> ZEITGEIST_EXPORT_BEGIN() ZEITGEIST_EXPORT(GyroRatePerceptor); ZEITGEIST_EXPORT_END() --- NEW FILE: Makefile.am --- pkglib_LTLIBRARIES = gyrorateperceptor.la gyrorateperceptor_la_SOURCES = export.cpp \ gyrorateperceptor.h \ gyrorateperceptor.cpp \ gyrorateperceptor_c.cpp # -module tells automake we're not building a library but a loadable module # so we don't need the "lib" prefix in the module name gyrorateperceptor_la_LDFLAGS = -module -avoid-version AM_CPPFLAGS = -I${top_srcdir}/lib @RUBY_CPPFLAGS@ --- NEW FILE: gyrorateperceptor_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: gyrorateperceptor_c.cpp,v 1.1.2.1 2007/06/22 14:15:59 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "gyrorateperceptor.h" using namespace boost; using namespace oxygen; void CLASS(GyroRatePerceptor)::DefineClass() { DEFINE_BASECLASS(oxygen/Perceptor); } --- NEW FILE: gyrorateperceptor.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: gyrorateperceptor.cpp,v 1.1.2.1 2007/06/22 14:15:59 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "gyrorateperceptor.h" #include <zeitgeist/logserver/logserver.h> #include <oxygen/sceneserver/transform.h> #include <oxygen/physicsserver/body.h> #include <salt/vector.h> using namespace oxygen; using namespace boost; using namespace zeitgeist; using namespace salt; GyroRatePerceptor::GyroRatePerceptor() : oxygen::Perceptor() { } GyroRatePerceptor::~GyroRatePerceptor() { } void GyroRatePerceptor::OnLink() { shared_ptr<Transform> transformParent = shared_static_cast<Transform> (FindParentSupportingClass<Transform>().lock()); mBody = shared_static_cast<Body> (transformParent->GetChildOfClass("Body")); } void GyroRatePerceptor::OnUnlink() { mBody.reset(); } bool GyroRatePerceptor::Percept(boost::shared_ptr<PredicateList> predList) { Predicate &predicate = predList->AddPredicate(); predicate.name = "GYR"; predicate.parameter.Clear(); ParameterList &nameElement = predicate.parameter.AddList(); nameElement.AddValue(std::string("n")); nameElement.AddValue(GetName()); Matrix invRot = mBody->GetRotation(); invRot.InvertRotationMatrix(); Vector3f rate = invRot * mBody->GetAngularVelocity(); ParameterList &ratesElement = predicate.parameter.AddList(); ratesElement.AddValue(std::string("rt")); ratesElement.AddValue(gRadToDeg(rate.x())); ratesElement.AddValue(gRadToDeg(rate.y())); ratesElement.AddValue(gRadToDeg(rate.z())); // What should be done when yrotate is around 90? in that case, the parameters of the atan2 are 0! // const dReal* q = dBodyGetQuaternion(mBody->GetODEBody()); // float xrotate = gArcTan2(2*(q[0]*q[1]+q[2]*q[3]), 1-2*(q[1]*q[1]+q[2]*q[2])); // float yrotate = gArcSin(2*(q[0]*q[2] - q[3]*q[1])); // float zrotate = gArcTan2(2*(q[0]*q[3] + q[1]*q[2]), 1-2*(q[2]*q[2]+q[3]*q[3])); // // ParameterList & anglesElement = predicate.parameter.AddList(); // anglesElement.AddValue(std::string("ang")); // anglesElement.AddValue(gRadToDeg(xrotate)); // anglesElement.AddValue(gRadToDeg(yrotate)); // anglesElement.AddValue(gRadToDeg(zrotate)); return true; } --- NEW FILE: gyrorateperceptor.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: gyrorateperceptor.h,v 1.1.2.1 2007/06/22 14:15:59 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef GYRORATEPERCEPTOR_H #define GYRORATEPERCEPTOR_H #include <oxygen/agentaspect/perceptor.h> #include <oxygen/physicsserver/body.h> class GyroRatePerceptor : public oxygen::Perceptor { public: GyroRatePerceptor(); virtual ~GyroRatePerceptor(); //! \return true, if valid data is available and false otherwise. bool Percept(boost::shared_ptr<oxygen::PredicateList> predList); virtual void OnLink(); virtual void OnUnlink(); private: //! reference to the body of which the perceptor is measuring the angle change rate boost::shared_ptr<oxygen::Body> mBody; }; DECLARE_CLASS(GyroRatePerceptor); #endif //GYRORATEPERCEPTOR_H |
Update of /cvsroot/simspark/simspark/spark/plugin/collisionperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8422 Added Files: Tag: projectx Makefile.am collisionperceptor.cpp collisionperceptor.h collisionperceptor_c.cpp export.cpp forceresistanceperceptor.cpp forceresistanceperceptor.h forceresistanceperceptor_c.cpp perceptorhandler.cpp perceptorhandler.h perceptorhandler_c.cpp touchperceptor.cpp touchperceptor.h touchperceptor_c.cpp touchperceptorhandler.cpp touchperceptorhandler.h touchperceptorhandler_c.cpp Log Message: update from rcssserver3D --- NEW FILE: forceresistanceperceptor.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: forceresistanceperceptor.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "forceresistanceperceptor.h" #include <oxygen/physicsserver/odewrapper.h> #include <oxygen/sceneserver/transform.h> using namespace std; using namespace boost; using namespace salt; using namespace oxygen; using namespace zeitgeist; void ForceResistancePerceptor::OnLink() { Perceptor::OnLink(); mBody = shared_static_cast<Transform>(FindParentSupportingClass<Transform>().lock()); if (mBody.get() == 0) GetLog()->Error() << "ForceResistancePerceptor: no suitable parent node found!\n"; } void ForceResistancePerceptor::OnUnlink() { Perceptor::OnUnlink(); mBody.reset(); } void ForceResistancePerceptor::AddTouchInfo(dContact &contact, dJointID contactJointID) { mContactList.push_front(make_pair(contact.geom, contactJointID)); } bool ForceResistancePerceptor::Percept( boost::shared_ptr<oxygen::PredicateList> predList) { if (mContactList.empty()) { return false; } Predicate& predicate = predList->AddPredicate(); predicate.name = "FRP"; predicate.parameter.Clear(); ParameterList& nameElement = predicate.parameter.AddList(); nameElement.AddValue(std::string("n")); nameElement.AddValue(GetName()); Vector3f force(0,0,0); Vector3f pos(0,0,0); float sumLength = 0; for (TContactList::const_iterator i = mContactList.begin(); i!= mContactList.end(); ++i) { dJointFeedback *feedback = dJointGetFeedback(i->second); if (feedback) { Vector3f forceVec(feedback->f1[0], feedback->f1[1], feedback->f1[2]); force += forceVec; pos += Vector3f(i->first.pos[0], i->first.pos[1], i->first.pos[2]) * forceVec.Length(); sumLength += forceVec.Length(); // Sometimes the Percept function is called more than once in a // time step. Double freeing is avoided using this line! dJointSetFeedback(i->second, 0); delete feedback; } } // It should be always true, except when feedback == NULL if (sumLength > 0.001) { mLastPoint = (pos / sumLength ) - mBody->GetLocalTransform().Pos(); mLastForce = force; } ParameterList& posElement = predicate.parameter.AddList(); posElement.AddValue(std::string("c")); posElement.AddValue(mLastPoint.x()); posElement.AddValue(mLastPoint.y()); posElement.AddValue(mLastPoint.z()); ParameterList& forceElement = predicate.parameter.AddList(); forceElement.AddValue(std::string("f")); forceElement.AddValue(mLastForce.x()); forceElement.AddValue(mLastForce.y()); forceElement.AddValue(mLastForce.z()); return true; } void ForceResistancePerceptor::PrePhysicsUpdateInternal(float deltaTime) { mContactList.clear(); } --- NEW FILE: touchperceptorhandler.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: touchperceptorhandler.h,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef TOUCHPERCEPTORHANDLER_H_ #define TOUCHPERCEPTORHANDLER_H_ #include <oxygen/physicsserver/contactjointhandler.h> class ForceResistancePerceptor; /** \class TouchPerceptorHandler is a ContactJointHandler that provides * enough information for the ForceResistancePerceptor */ class TouchPerceptorHandler : public oxygen::ContactJointHandler { public: virtual void HandleCollision(boost::shared_ptr<oxygen::Collider> collidee, dContact& contact); protected: virtual void OnLink(); virtual void OnUnlink(); protected: //! reference to the collision perecptor boost::shared_ptr<ForceResistancePerceptor> mForceResistancePercept; }; DECLARE_CLASS(TouchPerceptorHandler); #endif /*TOUCHPERCEPTORHANDLER_H_*/ --- NEW FILE: touchperceptor.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef TOUCHPERCEPTOR_H #define TOUCHPERCEPTOR_H #include "collisionperceptor.h" /** \class */ class TouchPerceptor: public CollisionPerceptor { public: /** \param predicate set "collidees" as a TLeafList as arguments of predicate \return true if data is available */ bool Percept(boost::shared_ptr<oxygen::PredicateList> predList); }; DECLARE_CLASS(TouchPerceptor); #endif //TOUCHPERCEPTOR_H --- NEW FILE: forceresistanceperceptor.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: forceresistanceperceptor.h,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef FORCERESISTANCEPERCEPTOR_H_ #define FORCERESISTANCEPERCEPTOR_H_ #include <oxygen/agentaspect/perceptor.h> #include <oxygen/physicsserver/odewrapper.h> #include <oxygen/sceneserver/transform.h> #include <salt/vector.h> #include <list> #include <utility> class ForceResistancePerceptor : public oxygen::Perceptor { protected: typedef std::list<std::pair<dContactGeom, dJointID> > TContactList; public: /** adds new touch information */ void AddTouchInfo(dContact &contact, dJointID contactJointID); /** adds touch information to predList \return true if data is available */ bool Percept(boost::shared_ptr<oxygen::PredicateList> predList); protected: virtual void OnLink(); virtual void OnUnlink(); /** removes old information left over from the previous cycles */ virtual void PrePhysicsUpdateInternal(float deltaTime); protected: TContactList mContactList; //! reference to the parent Transform node boost::shared_ptr<oxygen::Transform> mBody; // These are required while the Percept function can be called more than // once in a time step! //! last calculated point salt::Vector3f mLastPoint; //! last calculated force salt::Vector3f mLastForce; }; DECLARE_CLASS(ForceResistancePerceptor); #endif /*FORCERESISTANCEPERCEPTOR_H_*/ --- NEW FILE: touchperceptorhandler_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: touchperceptorhandler_c.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "touchperceptorhandler.h" using namespace oxygen; void CLASS(TouchPerceptorHandler)::DefineClass() { DEFINE_BASECLASS(oxygen/ContactJointHandler); } --- NEW FILE: export.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: export.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "collisionperceptor.h" #include "perceptorhandler.h" #include "touchperceptor.h" #include "touchperceptorhandler.h" #include "forceresistanceperceptor.h" ZEITGEIST_EXPORT_BEGIN() ZEITGEIST_EXPORT(CollisionPerceptor); ZEITGEIST_EXPORT(PerceptorHandler); ZEITGEIST_EXPORT(TouchPerceptor); ZEITGEIST_EXPORT(TouchPerceptorHandler); ZEITGEIST_EXPORT(ForceResistancePerceptor); ZEITGEIST_EXPORT_END() --- NEW FILE: touchperceptor.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "touchperceptor.h" #include <string> using namespace boost; using namespace oxygen; using namespace zeitgeist; bool TouchPerceptor::Percept(shared_ptr<PredicateList> predList) { Predicate& predicate = predList->AddPredicate(); predicate.name = "TCH"; predicate.parameter.Clear(); ParameterList& nameElement = predicate.parameter.AddList(); nameElement.AddValue(std::string("n")); nameElement.AddValue(GetName()); std::string val; if (GetCollidees().size()) val = std::string("1"); else val = std::string("0"); ParameterList & valElement = predicate.parameter.AddList(); valElement.AddValue(std::string("val")); valElement.AddValue(val); return true; } --- NEW FILE: perceptorhandler.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: perceptorhandler.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "perceptorhandler.h" #include "collisionperceptor.h" #include <oxygen/physicsserver/collider.h> #include <oxygen/sceneserver/transform.h> using namespace oxygen; using namespace boost; void PerceptorHandler::OnLink() { // find the first CollisionPerceptor below our closest Transform node shared_ptr<Transform> transformParent = shared_static_cast<Transform> (FindParentSupportingClass<Transform>().lock()); if (transformParent.get() == 0) { return; } //shared_ptr<CollisionPerceptor> perceptor = // shared_static_cast<CollisionPerceptor> // (transformParent->GetChildOfClass("CollisionPerceptor", true)); mColPercept = shared_dynamic_cast<CollisionPerceptor> (transformParent->GetChildSupportingClass("CollisionPerceptor", true)); if (mColPercept.get() == 0) { GetLog()->Error() << "PerceptorHandler: no suitable child node found!\n"; return; } } void PerceptorHandler::OnUnlink() { mColPercept.reset(); } void PerceptorHandler::HandleCollision (boost::shared_ptr<Collider> collidee, dContact& /*contact*/) { if (mColPercept.get() == 0) return; // now find the closest Transform node above the collidee shared_ptr<Transform> colTransformParent = shared_static_cast<Transform> (collidee->FindParentSupportingClass<Transform>().lock()); if (colTransformParent.get() == 0) { return; } // notify the CollisionPerceptor mColPercept->AddCollidee(colTransformParent); } --- NEW FILE: collisionperceptor.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: collisionperceptor.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "collisionperceptor.h" using namespace boost; using namespace oxygen; bool CollisionPerceptor::Percept(shared_ptr<PredicateList> predList) { if (mCollidees.empty()) { return false; } Predicate& predicate = predList->AddPredicate(); predicate.name = "collision"; predicate.parameter.Clear(); for ( TLeafList::const_iterator i = GetCollidees().begin(); i != GetCollidees().end(); ++i ) { predicate.parameter.AddValue(*i); } return true; } void CollisionPerceptor::PrePhysicsUpdateInternal(float /*deltaTime*/) { mCollidees.clear(); } void CollisionPerceptor::AddCollidee(boost::shared_ptr<Node> collidee) { if (collidee.get() == 0) { return; } mCollidees.push_back(collidee); } --- NEW FILE: perceptorhandler_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: perceptorhandler_c.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "perceptorhandler.h" using namespace oxygen; void CLASS(PerceptorHandler)::DefineClass() { DEFINE_BASECLASS(oxygen/CollisionHandler); } --- NEW FILE: perceptorhandler.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: perceptorhandler.h,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef PERCEPTORHANDLER_H #define PERCEPTORHANDLER_H #include <oxygen/physicsserver/collisionhandler.h> class CollisionPerceptor; /** \class PerceptorHandler is a CollisionHandler that passes collision information on to a CollisionPerceptor. */ class PerceptorHandler : public oxygen::CollisionHandler { public: PerceptorHandler() : CollisionHandler() {}; virtual ~PerceptorHandler() {}; /** searches for a CollisionPerceptor below the closest Transform node on the way up the hierarchy and notifies it that a collision has occured. \param collidee is the geom ID of the colliders collision partner \param holds the contact points between the two affected geoms as returned from the ODE dCollide function */ virtual void HandleCollision (boost::shared_ptr<oxygen::Collider> collidee, dContact& contact); protected: virtual void OnLink(); virtual void OnUnlink(); protected: //! reference to the collision perecptor boost::shared_ptr<CollisionPerceptor> mColPercept; }; DECLARE_CLASS(PerceptorHandler); #endif // PERCEPTORHANDLER_H --- NEW FILE: Makefile.am --- pkglib_LTLIBRARIES = collisionperceptor.la collisionperceptor_la_SOURCES = export.cpp \ collisionperceptor.h \ collisionperceptor.cpp \ collisionperceptor_c.cpp \ perceptorhandler.h \ perceptorhandler.cpp \ perceptorhandler_c.cpp \ touchperceptor.h \ touchperceptor.cpp \ touchperceptor_c.cpp \ touchperceptorhandler.h \ touchperceptorhandler.cpp \ touchperceptorhandler_c.cpp \ forceresistanceperceptor.h \ forceresistanceperceptor.cpp \ forceresistanceperceptor_c.cpp # -module tells automake we're not building a library but a loadable module # so we don't need the "lib" prefix in the module name collisionperceptor_la_LDFLAGS = -module -version-info 0:0:0 AM_CPPFLAGS = -I${top_srcdir}/lib @RUBY_CPPFLAGS@ --- NEW FILE: forceresistanceperceptor_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: forceresistanceperceptor_c.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "forceresistanceperceptor.h" using namespace boost; using namespace oxygen; void CLASS(ForceResistancePerceptor)::DefineClass() { DEFINE_BASECLASS(oxygen/Perceptor); } --- NEW FILE: touchperceptorhandler.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: touchperceptorhandler.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "touchperceptorhandler.h" #include <oxygen/physicsserver/collider.h> #include <oxygen/sceneserver/transform.h> #include <oxygen/physicsserver/world.h> #include <oxygen/physicsserver/space.h> #include "forceresistanceperceptor.h" using namespace oxygen; using namespace boost; void TouchPerceptorHandler::OnLink() { ContactJointHandler::OnLink(); // find the first CollisionPerceptor below our closest Transform node shared_ptr<Transform> transformParent = shared_static_cast<Transform> (FindParentSupportingClass<Transform>().lock()); if (transformParent.get() == 0) { return; } mForceResistancePercept = shared_dynamic_cast<ForceResistancePerceptor>( transformParent->GetChildSupportingClass("ForceResistancePerceptor", true)); if (mForceResistancePercept.get() == 0) GetLog()->Error() << "TouchPerceptorHandler: no suitable child node found!\n"; } void TouchPerceptorHandler::OnUnlink() { ContactJointHandler::OnUnlink(); mForceResistancePercept.reset(); } void TouchPerceptorHandler::HandleCollision( boost::shared_ptr<Collider> collidee, dContact& contact) { if (mCollider.get() == 0 || mWorld.get() == 0 || mSpace.get() == 0) return; // to create a contact joint it we must have at least one body to // attach it to. dBodyID myBody = dGeomGetBody(mCollider->GetODEGeom()); dBodyID collideeBody = dGeomGetBody(collidee->GetODEGeom()); if (myBody == 0 && collideeBody == 0) return; shared_ptr<ContactJointHandler> handler = collidee->FindChildSupportingClass<ContactJointHandler>(); if (handler.get() == 0) return; CalcSurfaceParam(contact.surface,handler->GetSurfaceParameter()); dJointID joint = dJointCreateContact(mWorld->GetODEWorld(), mSpace->GetODEJointGroup(), &contact); dJointAttach (joint, myBody, collideeBody); // Can we avoid dynamic allocation to increase performance?! dJointSetFeedback(joint, new dJointFeedback()); if (mForceResistancePercept.get() != 0) mForceResistancePercept->AddTouchInfo(contact, joint); } --- NEW FILE: collisionperceptor_c.cpp --- /* -*- mode: c++; c-basic-indent: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: collisionperceptor_c.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "collisionperceptor.h" using namespace boost; using namespace oxygen; void CLASS(CollisionPerceptor)::DefineClass() { DEFINE_BASECLASS(oxygen/Perceptor); } --- NEW FILE: collisionperceptor.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: collisionperceptor.h,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef COLLISIONPERCEPTOR_H #define COLLISIONPERCEPTOR_H #include <oxygen/agentaspect/perceptor.h> /** \class CollisionPerceptor is used to store collisions as they occur within the scenegraph. It is inteded to be used together with the PerceptorHandler that passes collision information from the physics system on to this perceptor. */ class CollisionPerceptor : public oxygen::Perceptor { public: /** \param predicate set "collidees" as a TLeafList as arguments of predicate \return true if data is available */ virtual bool Percept(boost::shared_ptr<oxygen::PredicateList> predList); /** returns the stored list of collidees */ const zeitgeist::Leaf::TLeafList& GetCollidees() { return mCollidees; } /** stores a new collidee */ void AddCollidee(boost::shared_ptr<zeitgeist::Node> collidee); protected: /** removes old collidees left over from the previous cycles */ virtual void PrePhysicsUpdateInternal(float deltaTime); protected: zeitgeist::Leaf::TLeafList mCollidees; }; DECLARE_CLASS(CollisionPerceptor); #endif //COLLISIONPERCEPTOR_H --- NEW FILE: touchperceptor_c.cpp --- /* -*- mode: c++; c-basic-indent: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: touchperceptor_c.cpp,v 1.1.2.1 2007/06/22 14:14:48 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "touchperceptor.h" using namespace boost; using namespace oxygen; void CLASS(TouchPerceptor)::DefineClass() { DEFINE_BASECLASS(CollisionPerceptor); } |
From: Oliver O. <fr...@us...> - 2007-06-22 14:13:42
|
Update of /cvsroot/simspark/simspark/spark/plugin/collisionperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8006/collisionperceptor Log Message: Directory /cvsroot/simspark/simspark/spark/plugin/collisionperceptor added to the repository --> Using per-directory sticky tag `projectx' |
From: Oliver O. <fr...@us...> - 2007-06-22 14:13:42
|
Update of /cvsroot/simspark/simspark/spark/plugin/gyrorateperceptor In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8006/gyrorateperceptor Log Message: Directory /cvsroot/simspark/simspark/spark/plugin/gyrorateperceptor added to the repository --> Using per-directory sticky tag `projectx' |
From: Oliver O. <fr...@us...> - 2007-06-22 14:11:56
|
Update of /cvsroot/simspark/simspark/spark/spark In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7216/spark Modified Files: Tag: projectx spark.cpp Log Message: whitespace |
From: Oliver O. <fr...@us...> - 2007-06-22 14:11:24
|
Update of /cvsroot/simspark/simspark/spark/plugin/sparkagent In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7177 Modified Files: Tag: projectx Makefile.am Log Message: avoid version number for module Index: Makefile.am =================================================================== RCS file: /cvsroot/simspark/simspark/spark/plugin/sparkagent/Makefile.am,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -C2 -d -r1.3 -r1.3.4.1 *** Makefile.am 6 Jan 2006 13:57:36 -0000 1.3 --- Makefile.am 22 Jun 2007 14:11:21 -0000 1.3.4.1 *************** *** 28,32 **** universaljointperceptor_c.cpp ! sparkagent_la_LDFLAGS = -module -version-info 0:0:0 AM_CPPFLAGS = -I${top_srcdir}/lib -I${top_srcdir}/utility @RUBY_CPPFLAGS@ --- 28,32 ---- universaljointperceptor_c.cpp ! sparkagent_la_LDFLAGS = -module -avoid-version AM_CPPFLAGS = -I${top_srcdir}/lib -I${top_srcdir}/utility @RUBY_CPPFLAGS@ |
From: Oliver O. <fr...@us...> - 2007-06-22 14:10:00
|
Update of /cvsroot/simspark/simspark/spark/spark In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv6379 Modified Files: Tag: projectx spark.rb Log Message: - some updates from rcssserver3D - some changes for new visualisation (conditional) Index: spark.rb =================================================================== RCS file: /cvsroot/simspark/simspark/spark/spark/spark.rb,v retrieving revision 1.5.2.4.2.1 retrieving revision 1.5.2.4.2.2 diff -C2 -d -r1.5.2.4.2.1 -r1.5.2.4.2.2 *** spark.rb 5 Apr 2007 03:53:58 -0000 1.5.2.4.2.1 --- spark.rb 22 Jun 2007 14:09:57 -0000 1.5.2.4.2.2 *************** *** 10,27 **** # ! # the default InputSystem used to read keyboard, mouse and timer input ! $defaultInputSystem = 'InputSystemSDL' ! # the name of the default bundle that contains the default InputSystem ! $defaultInputSystemBundle = 'inputsdl' ! # (OpenGL rendering) ! # ! # the default OpenGLSystem used for rendering ! $defaultOpenGLSystem = 'OpenGLSystemSDL' - # the name of the bundle that contains the default OpenGLSystem - $defaultOpenGLBundle = 'openglsyssdl' # (MonitorControl) constants --- 10,42 ---- # ! rendering = 'SDL' ! #rendering = 'OGRE' ! ! if ( rendering == 'SDL' ) ! # the default InputSystem used to read keyboard, mouse and timer input ! $defaultInputSystem = 'InputSystemSDL' ! # the name of the default bundle that contains the default InputSystem ! $defaultInputSystemBundle = 'inputsdl' ! # (OpenGL rendering) ! # the default OpenGLSystem used for rendering ! $defaultOpenGLSystem = 'OpenGLSystemSDL' ! # the name of the bundle that contains the default OpenGLSystem ! $defaultOpenGLBundle = 'openglsyssdl' ! else ! # the default InputSystem used to read keyboard, mouse and timer input ! $defaultInputSystem = 'InputSystemOIS' ! # the name of the default bundle that contains the default InputSystem ! $defaultInputSystemBundle = 'inputois' ! # (OpenGL rendering) ! # the default OpenGLSystem used for rendering ! $defaultOpenGLSystem = 'OpenGLSystemOGRE' ! # the name of the bundle that contains the default OpenGLSystem ! $defaultOpenGLBundle = 'openglsysogre' ! ! end # (MonitorControl) constants *************** *** 59,62 **** --- 74,80 ---- world.setGravity(0.0, 0.0, $physicsGlobalGravity) world.setCFM($physicsGlobalCFM) + world.setAutoDisableFlag(true) + world.setContactSurfaceLayer(0.001) + new('oxygen/Space', $scenePath+'space') *************** *** 68,71 **** --- 86,93 ---- sceneServer = get($serverPath+'scene') sceneServer.setActiveScene($scenePath) + + # reset simulation time + simulationServer = get($serverPath+'simulation'); + simulationServer.resetTime() end *************** *** 75,79 **** # add the agent control node simulationServer = get($serverPath+'simulation'); ! monitorClient = new('SparkMonitorClient', $serverPath+'simulation/SparkMonitorClient') --- 97,101 ---- # add the agent control node simulationServer = get($serverPath+'simulation'); ! simulationServer.setMultiThreads(false); monitorClient = new('SparkMonitorClient', $serverPath+'simulation/SparkMonitorClient') *************** *** 96,99 **** --- 118,136 ---- end + def sparkSetupMonitorLogPlayer + print "(spark.rb) sparkSetupMonitorLogPlayer\n" + + # add the agent control node + simulationServer = get($serverPath+'simulation'); + simulationServer.setMultiThreads(false); + monitorClient = new('SparkMonitorLogFileServer', + $serverPath+'simulation/SparkMonitorLogFileServer') + monitorClient.setFileName($logPlayerFile) + monitorClient.setStepDelay(33000) + + rubySceneImporter = get($serverPath+'scene/RubySceneImporter') + rubySceneImporter.setUnlinkOnCompleteScenes(true); + end + # # install a class below the SparkMonitorClient that implementes the *************** *** 137,142 **** --- 174,196 ---- # add the agent control node simulationServer = get($serverPath+'simulation'); + simulationServer.setMultiThreads(false); simulationServer.initControlNode('oxygen/AgentControl','AgentControl') + # set port and socket type for agent control + agentControl = get($serverPath+'simulation/AgentControl'); + agentControl.setServerPort($agentPort) + agentControl.setStep($agentStep) + + if ($agentType == 'udp') + agentControl.setServerTypeUDP() + else if ($agentType == 'tcp') + agentControl.setServerTypeTCP() + else + print "(spark.rb) unknown agent socket type " + print $agentType + print "\n" + end + end + monitorControl = new('oxygen/MonitorControl', $serverPath+'simulation/MonitorControl') *************** *** 154,157 **** --- 208,221 ---- end end + + # + # log recording setup + + if ($recordLogfile == true) + print "(spark.rb) recording Logfile as 'sparkmonitor.log'\n" + monitorLogger = new('oxygen/MonitorLogger', + $serverPath+'simulation/MonitorLogger') + monitorLogger.setMonitorLoggerInterval($monitorInterval) + end end *************** *** 161,168 **** # - # setup the GeometryServer - geometryServer = new('oxygen/GeometryServer', $serverPath+'geometry') - - # # setup the kerosin render framework --- 225,228 ---- *************** *** 172,182 **** importBundle($defaultOpenGLBundle) end - openGLServer.init(openGLSystem) ! ! new('kerosin/RenderServer', $serverPath+'render'); new('kerosin/ImageServer', $serverPath+'image'); new('kerosin/TextureServer', $serverPath+'texture'); - # # setup the InputServer --- 232,249 ---- importBundle($defaultOpenGLBundle) end openGLServer.init(openGLSystem) ! ! if (openGLSystem == 'OpenGLSystemOGRE') ! # register ogremeshexporter ! geometryServer.initMeshExporter('OgreMeshExporter') ! materialServer = get($serverPath+'material') ! materialServer.initMaterialExporter("OgreMaterialExporter"); ! new('OgreRenderServer', $serverPath+'render'); ! else ! new('kerosin/RenderServer', $serverPath+'render'); ! end ! new('kerosin/ImageServer', $serverPath+'image'); new('kerosin/TextureServer', $serverPath+'texture'); # # setup the InputServer *************** *** 225,229 **** x = 0.0, y = 0.0, z = 4, maxSpeed = 15.0, ! accel = 40.0, drag = 4, addCollider = false, --- 292,296 ---- x = 0.0, y = 0.0, z = 4, maxSpeed = 15.0, ! accel = 20.0, drag = 4, addCollider = false, *************** *** 340,345 **** # # setup the GeometryServer ! # geometryServer = new('oxygen/GeometryServer', $serverPath+'geometry') ! # use the ruby scene importer to import scenes importBundle 'rubysceneimporter' --- 407,416 ---- # # setup the GeometryServer ! geometryServer = new('oxygen/GeometryServer', $serverPath+'geometry') ! importBundle 'voidmeshimporter' ! geometryServer.initMeshImporter('VoidMeshImporter'); ! importBundle 'objimporter' ! geometryServer.initMeshImporter('ObjImporter'); ! # use the ruby scene importer to import scenes importBundle 'rubysceneimporter' *************** *** 384,396 **** # import the spark perceptors and effector set importBundle "sparkagent" - - - - - - - - - - - --- 455,456 ---- |
From: Oliver O. <fr...@us...> - 2007-06-22 14:06:55
|
Update of /cvsroot/simspark/simspark/spark/kerosin In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5199 Modified Files: Tag: projectx Makefile.am Log Message: update from rcssserver3D Index: Makefile.am =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/Makefile.am,v retrieving revision 1.6.2.2.2.3 retrieving revision 1.6.2.2.2.4 diff -C2 -d -r1.6.2.2.2.3 -r1.6.2.2.2.4 *** Makefile.am 17 Jun 2007 11:04:29 -0000 1.6.2.2.2.3 --- Makefile.am 22 Jun 2007 14:06:52 -0000 1.6.2.2.2.4 *************** *** 75,78 **** --- 75,80 ---- sceneserver/ccylinder.cpp \ sceneserver/ccylinder_c.cpp \ + sceneserver/cylinder.cpp \ + sceneserver/cylinder_c.cpp \ sceneserver/staticmesh.cpp \ sceneserver/staticmesh_c.cpp \ *************** *** 127,130 **** --- 129,133 ---- sceneserver/box.h \ sceneserver/ccylinder.h \ + sceneserver/cylinder.h \ sceneserver/staticmesh.h \ soundserver/soundeffect.h \ |
From: Oliver O. <fr...@us...> - 2007-06-22 14:06:15
|
Update of /cvsroot/simspark/simspark/spark/kerosin In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5141 Modified Files: Tag: projectx kerosin.cpp Log Message: update from rcssserver3D Index: kerosin.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/kerosin.cpp,v retrieving revision 1.1.2.1.2.3 retrieving revision 1.1.2.1.2.4 diff -C2 -d -r1.1.2.1.2.3 -r1.1.2.1.2.4 *** kerosin.cpp 17 Jun 2007 11:02:26 -0000 1.1.2.1.2.3 --- kerosin.cpp 22 Jun 2007 14:06:11 -0000 1.1.2.1.2.4 *************** *** 62,65 **** --- 62,66 ---- zg.GetCore()->RegisterClassObject(new CLASS(Box), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(CCylinder), "kerosin/"); + zg.GetCore()->RegisterClassObject(new CLASS(Cylinder), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(Sphere), "kerosin/"); |
From: Oliver O. <fr...@us...> - 2007-06-22 14:05:49
|
Update of /cvsroot/simspark/simspark/spark/kerosin In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4784 Modified Files: Tag: projectx kerosin.h Log Message: update from rcssserver3D Index: kerosin.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/kerosin.h,v retrieving revision 1.1.2.1.2.2 retrieving revision 1.1.2.1.2.3 diff -C2 -d -r1.1.2.1.2.2 -r1.1.2.1.2.3 *** kerosin.h 17 Jun 2007 11:01:43 -0000 1.1.2.1.2.2 --- kerosin.h 22 Jun 2007 14:05:45 -0000 1.1.2.1.2.3 *************** *** 64,67 **** --- 64,68 ---- #include "sceneserver/sphere.h" #include "sceneserver/ccylinder.h" + #include "sceneserver/cylinder.h" #include "sceneserver/staticmesh.h" |
From: Oliver O. <fr...@us...> - 2007-06-22 14:05:09
|
Update of /cvsroot/simspark/simspark/spark/kerosin/sceneserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4397 Added Files: Tag: projectx cylinder_c.cpp Log Message: update from rcssserver3D --- NEW FILE: cylinder_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri Oct 20 2006 Copyright (C) 2006 RoboCup Soccer Server 3D Maintenance Group This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "cylinder.h" using namespace boost; using namespace kerosin; using namespace salt; FUNCTION(Cylinder,setParams) { float inRadius; float inLength; if ( (in.GetSize() != 2) || (! in.GetValue(in[0], inRadius)) || (! in.GetValue(in[1], inLength)) ) { return false; } obj->SetParams(inRadius,inLength); return true; } FUNCTION(Cylinder,getRadius) { return obj->GetRadius(); } FUNCTION(Cylinder,getLength) { return obj->GetLength(); } void CLASS(Cylinder)::DefineClass() { DEFINE_BASECLASS(kerosin/SingleMatNode); DEFINE_FUNCTION(setParams); DEFINE_FUNCTION(getRadius); DEFINE_FUNCTION(getLength); } |
From: Oliver O. <fr...@us...> - 2007-06-22 14:04:47
|
Update of /cvsroot/simspark/simspark/spark/kerosin/sceneserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4381 Added Files: Tag: projectx cylinder.cpp Log Message: update from rcssserver3D --- NEW FILE: cylinder.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri Oct 20 2006 Copyright (C) 2006 RoboCup Soccer Server 3D Maintenance Group This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "cylinder.h" #include <kerosin/openglserver/openglserver.h> #include <kerosin/materialserver/material.h> using namespace boost; using namespace kerosin; using namespace zeitgeist; using namespace salt; Cylinder::Cylinder() : SingleMatNode() { } Cylinder::~Cylinder() { } void Cylinder::SetParams(float radius, float length) { ParameterList parameter; parameter.AddValue(radius); parameter.AddValue(length); Load("StdUnitCylinder",parameter); mRadius = radius; mLength = length; } void Cylinder::GetParams(float& radius, float& length) const { radius = mRadius; length = mLength; } float Cylinder::GetRadius() { return mRadius; } float Cylinder::GetLength() { return mLength; } |
From: Oliver O. <fr...@us...> - 2007-06-22 14:04:31
|
Update of /cvsroot/simspark/simspark/spark/kerosin/sceneserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv4359 Added Files: Tag: projectx cylinder.h Log Message: update from rcssserver3D --- NEW FILE: cylinder.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri Oct 20 2006 Copyright (C) 2006 RoboCup Soccer Server 3D Maintenance Group This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef KEROSIN_CYLINDER_H #define KEROSIN_CYLINDER_H #include "singlematnode.h" namespace kerosin { class Material; /** Cylinder is a SingleMatNode that creates and renders a flat cylinder mesh with the given length and radius */ class Cylinder : public SingleMatNode { // // Function // public: Cylinder(); virtual ~Cylinder(); /** sets the parameters of the cylinder. \param radius is the radius of the caps, and of the cylinder itself \param length is the height of the cylinder, not counting the caps */ void SetParams(float radius, float length); /** returns the parameters of the cylinder */ void GetParams(float& radius, float& length) const; /** returns the radius of the cylinder */ float GetRadius(); /** returns the length of the cylinder */ float GetLength(); // // Members // protected: /** the radius of the cylinder */ float mRadius; /** the height of the clinder */ float mLength; }; DECLARE_CLASS(Cylinder); } //namespace kerosin #endif //KEROSIN_CYLINDER_H |
From: Oliver O. <fr...@us...> - 2007-06-22 14:02:09
|
Update of /cvsroot/simspark/simspark/spark/kerosin/openglserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv3202 Modified Files: Tag: projectx openglwrapper.h Log Message: include GLU on a Mac as well Index: openglwrapper.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/openglserver/openglwrapper.h,v retrieving revision 1.1.2.2.2.1 retrieving revision 1.1.2.2.2.2 diff -C2 -d -r1.1.2.2.2.1 -r1.1.2.2.2.2 *** openglwrapper.h 17 Jun 2007 10:48:14 -0000 1.1.2.2.2.1 --- openglwrapper.h 22 Jun 2007 14:02:01 -0000 1.1.2.2.2.2 *************** *** 36,39 **** --- 36,40 ---- #include <GL/gl.h> #include <GL/glext.h> + #include <GL/glu.h> #endif |
From: Oliver O. <fr...@us...> - 2007-06-22 13:59:34
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2541 Modified Files: Tag: projectx recorderhandler.cpp Log Message: update from rcssserver3D Index: recorderhandler.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/recorderhandler.cpp,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** recorderhandler.cpp 5 Dec 2005 21:16:49 -0000 1.1 --- recorderhandler.cpp 22 Jun 2007 13:59:30 -0000 1.1.4.1 *************** *** 21,25 **** */ #include "recorderhandler.h" - #include "collider.h" using namespace oxygen; --- 21,24 ---- *************** *** 49,53 **** ) { ! shared_ptr<Collider> collidee = make_shared(*iter); if (collidee.get() == 0) { --- 48,52 ---- ) { ! shared_ptr<Collider> collidee = (*iter).lock(); if (collidee.get() == 0) { *************** *** 64,68 **** } } - - - --- 63,64 ---- |
From: Oliver O. <fr...@us...> - 2007-06-22 13:59:08
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2484 Modified Files: Tag: projectx recorderhandler.h Log Message: update from rcssserver3D Index: recorderhandler.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/recorderhandler.h,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** recorderhandler.h 5 Dec 2005 21:16:49 -0000 1.1 --- recorderhandler.h 22 Jun 2007 13:59:05 -0000 1.1.4.1 *************** *** 24,27 **** --- 24,28 ---- #include "collisionhandler.h" + #include "collider.h" #include <set> *************** *** 66,69 **** --- 67,104 ---- */ void GetParentsSupportingClass(const std::string &name, TParentList &list); + + /** same functionality as GetParentsSupportingClass, but using the + C++ type system instead of string comparisons for improved + performance + + \param CLASS is the template parameter for the name of the class + the parent nodes must support + + \param list is the list that receives the parent nodes + */ + template <class CLASS> + void FindParentsSupportingClass(TParentList &list) + { + for ( + RecorderHandler::TCollisionSet::const_iterator iter = mCollisionSet.begin(); + iter != mCollisionSet.end(); + ++iter + ) + { + boost::shared_ptr<oxygen::Collider> collidee = (*iter).lock(); + if (collidee.get() == 0) + { + continue; + } + + boost::weak_ptr<zeitgeist::Node> parent = + collidee->FindParentSupportingClass<CLASS>(); + + if (! parent.expired()) + { + list.push_back(parent); + } + } + } protected: |
From: Oliver O. <fr...@us...> - 2007-06-22 13:58:18
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv2325 Modified Files: Tag: projectx odeobject.h Log Message: update from rcssserver3D Index: odeobject.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/odeobject.h,v retrieving revision 1.1.2.2.2.1 retrieving revision 1.1.2.2.2.2 diff -C2 -d -r1.1.2.2.2.1 -r1.1.2.2.2.2 *** odeobject.h 17 Jun 2007 08:10:15 -0000 1.1.2.2.2.1 --- odeobject.h 22 Jun 2007 13:58:08 -0000 1.1.2.2.2.2 *************** *** 70,73 **** --- 70,77 ---- dMatrix3 */ void ConvertRotationMatrix(const salt::Matrix& rot, dMatrix3& matrix); + + /** coverts the ODE dMatrix3 to the rotation part of a salt::Matrix */ + void ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const; + }; |
From: Oliver O. <fr...@us...> - 2007-06-22 13:57:45
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1915 Modified Files: Tag: projectx odeobject.cpp Log Message: update from rcssserver3D Index: odeobject.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/odeobject.cpp,v retrieving revision 1.1.2.1.2.1 retrieving revision 1.1.2.1.2.2 diff -C2 -d -r1.1.2.1.2.1 -r1.1.2.1.2.2 *** odeobject.cpp 17 Jun 2007 08:11:00 -0000 1.1.2.1.2.1 --- odeobject.cpp 22 Jun 2007 13:57:35 -0000 1.1.2.1.2.2 *************** *** 145,146 **** --- 145,162 ---- matrix[11] = 0; } + + void ODEObject::ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const + { + rot.m[0] = matrix[0] ; + rot.m[4] = matrix[1] ; + rot.m[8] = matrix[2]; + rot.m[12] = matrix[3]; + rot.m[1] = matrix[4]; + rot.m[5] = matrix[5]; + rot.m[9] = matrix[6]; + rot.m[13] = matrix[7]; + rot.m[2] = matrix[8]; + rot.m[6] = matrix[9]; + rot.m[10] = matrix[10] ; + rot.m[14] = matrix[11]; + } |
From: Oliver O. <fr...@us...> - 2007-06-22 13:56:52
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1804 Modified Files: Tag: projectx contactjointhandler.cpp Log Message: update from rcssserver3D Index: contactjointhandler.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/contactjointhandler.cpp,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -C2 -d -r1.2 -r1.2.4.1 *** contactjointhandler.cpp 12 Feb 2006 11:25:36 -0000 1.2 --- contactjointhandler.cpp 22 Jun 2007 13:56:46 -0000 1.2.4.1 *************** *** 170,174 **** const dSurfaceParameters& ! ContactJointHandler::SetSurfaceParameter() const { return mSurfaceParameter; --- 170,174 ---- const dSurfaceParameters& ! ContactJointHandler::GetSurfaceParameter() const { return mSurfaceParameter; |