00001 /* -*- mode: c++ -*- 00002 00003 this file is part of rcssserver3D 00004 Fri May 9 2003 00005 Copyright (C) 2003 Koblenz University 00006 $Id: raycollider.cpp,v 1.2 2004/02/12 14:07:23 fruit Exp $ 00007 00008 This program 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; version 2 of the License. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program; if not, write to the Free Software 00019 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00020 */ 00021 00022 #include "raycollider.h" 00023 00024 using namespace oxygen; 00025 00026 RayCollider::RayCollider() : Collider() 00027 { 00028 } 00029 00030 void 00031 RayCollider::SetParams(salt::Vector3f pos, 00032 salt::Vector3f dir, float length) 00033 { 00034 dGeomRaySet(mODEGeom, pos[0], pos[1], pos[2], dir[0], dir[1], dir[2]); 00035 dGeomRaySetLength(mODEGeom, length); 00036 } 00037 00038 bool 00039 RayCollider::ConstructInternal() 00040 { 00041 if (! Collider::ConstructInternal()) 00042 { 00043 return false; 00044 } 00045 00046 // create a unit ray 00047 mODEGeom = dCreateRay(0, 1.0f); 00048 00049 return (mODEGeom != 0); 00050 }