⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 space.h

📁 robocup rcssserver 运行防真机器人足球比赛所用的服务器端
💻 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: space.h,v 1.8 2008/02/22 07:52:14 hedayat 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 OXYGEN_SPACE_H#define OXYGEN_SPACE_H#include "odeobject.h"namespace oxygen{class Transform;class Body;class Collider;/** Space encapsulates an ODE space object. A space is a non-placeable    geometry object ('geom') that can contain other geoms. It is    similar to the rigid body concept of the `world', except that it    applies to collision instead of dynamics.*/class Space : public ODEObject{    //    // Functions    //public:    Space();    virtual ~Space();    /** returns the ID of the managed ODE space */    dSpaceID GetODESpace() const;    /** retuns the ID of joint group for all created contact joints */    dJointGroupID GetODEJointGroup() const;    /** starts ODE's collision culling system. ODE will quickly        identify which pairs of geoms are potentially        intersecting. Those pairs will be passed to the callback        function HandleCollide, which in turn will notify the        responsible collider classes.    */    void Collide();    /** destroy the managed ODE object */    virtual void DestroyODEObject();    /** returns the ODE handle ID of the containing parent space */    virtual dSpaceID GetParentSpaceID();    /** returns true if this is the top global, i.e. top level space object */    bool IsGlobalSpace();protected:    static void collisionNearCallback (void *data, dGeomID obj1, dGeomID obj2);    /** registers the managed space to the containing parent space */    virtual void OnLink();    /** callback to handle a potential collision between two contained        geoms. It will look up and notify the corresponding colliders        for a potential collision.    */    void HandleCollide(dGeomID obj1, dGeomID obj2);    /** handle the collision between two geoms from which at least one        is a space geom    */    void HandleSpaceCollide(dGeomID obj1, dGeomID obj2);    /** creates them managed ODE space and a contact joint group */    virtual bool ConstructInternal();    /** updates internal state after physics calculation */    virtual void PostPhysicsUpdateInternal();    /** destroys the ODE bodies managed by all Body objects that are        registered to this Space    */    void DestroySpaceObjects();    //    // Members    //private:    /** the managed ODE space */    dSpaceID mODESpace;    /** the ODE group for all created contact joints */    dJointGroupID mODEContactGroup;};DECLARE_CLASS(Space);} //namespace oxygen#endif // OXYGEN_SPACE_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -