clangaction.h

来自「2009 ROBOCUP 仿真2DSERVER 源码」· C头文件 代码 · 共 769 行 · 第 1/2 页

H
769
字号
// -*-c++-*-/***************************************************************************                                clangaction.h                       Abstract base class for CLang Actions                             -------------------    begin                : 28-MAY-2002    copyright            : (C) 2002 by The RoboCup Soccer Server                           Maintenance Group.    email                : sserver-admin@lists.sourceforge.net***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU LGPL as published by the Free Software  * *   Foundation; either version 2 of the License, or (at your option) any  * *   later version.                                                        * *                                                                         * ***************************************************************************/#ifndef CLANGACTION_H#define CLANGACTION_H#include "region.h"#include "clangutil.h"#include <memory>namespace rcss {namespace clang {class ActPos;class ActHome;class ActBallToReg;class ActBallToPlayer;class ActMark;class ActMarkLinePlayer;class ActMarkLineReg;class ActOffsidesLine;class ActHetType;class ActNamed;class ActPassReg;class ActPassUNum;class ActDribble;class ActClear;class ActShoot;class ActHold;class ActIntercept;class ActTackle;class Action {public:    //       typedef util::Visitor20< ActPos*,    //         ActHome*,    //         ActBallToReg*,    //         ActBallToPlayer*,    //         ActMark*,    //         ActMarkLinePlayer*,    //         ActMarkLineReg*,    //         ActOffsidesLine*,    //         ActHetType*,    //         ActNamed*,    //         ActPassReg*,    //         ActPassUNum*,    //         ActDribble*,    //         ActClear*,    //         ActShoot*,    //         ActHold*,    //         ActIntercept*,    //         ActTackle* > Visitor;    //       typedef util::Visitor20< const ActPos*,    //         const ActHome*,    //         const ActBallToReg*,    //         const ActBallToPlayer*,    //         const ActMark*,    //         const ActMarkLinePlayer*,    //         const ActMarkLineReg*,    //         const ActOffsidesLine*,    //         const ActHetType*,    //         const ActNamed*,    //         const ActPassReg*,    //         const ActPassUNum*,    //         const ActDribble*,    //         const ActClear*,    //         const ActShoot*,    //         const ActHold*,    //         const ActIntercept*,    //         const ActTackle* > ConstVisitor;    //       class TypeExtractor    //         : public util::TypeExtractor20< ActPos*,    //         ActHome*,    //         ActBallToReg*,    //         ActBallToPlayer*,    //         ActMark*,    //         ActMarkLinePlayer*,    //         ActMarkLineReg*,    //         ActOffsidesLine*,    //         ActHetType*,    //         ActNamed*,    //         ActPassReg*,    //         ActPassUNum*,    //         ActDribble*,    //         ActClear*,    //         ActShoot*,    //         ActHold*,    //         ActIntercept*,    //         ActTackle* >    //       {    //       protected:    //           virtual    //           ~TypeExtractor()    //           {}    //         virtual    //         void    //         visit( ActPos* act );    //         virtual    //         void    //         visit( ActHome* act );    //         virtual    //         void    //         visit( ActBallToReg* act );    //         virtual    //         void    //         visit( ActBallToPlayer* act );    //         virtual    //         void    //         visit( ActMark* act );    //         virtual    //         void    //         visit( ActMarkLinePlayer* act );    //         virtual    //         void    //         visit( ActMarkLineReg* act );    //         virtual    //         void    //         visit( ActOffsidesLine* act );    //         virtual    //         void    //         visit( ActHetType* act );    //         virtual    //         void    //         visit( ActNamed* act );    //         virtual    //         void    //         visit( ActPassReg* act );    //         virtual    //         void    //         visit( ActPassUNum* act );    //         virtual    //         void    //         visit( ActDribble* act );    //         virtual    //         void    //         visit( ActClear* act );    //         virtual    //         void    //         visit( ActShoot* act );    //         virtual    //         void    //         visit( ActHold* act );    //         virtual    //         void    //         visit( ActIntercept* act );    //         virtual    //         void    //         visit( ActTackle* act );    //       };    //       class ConstTypeExtractor    //         : public util::TypeExtractor20< const ActPos*,    //         const ActHome*,    //         const ActBallToReg*,    //         const ActBallToPlayer*,    //         const ActMark*,    //         const ActMarkLinePlayer*,    //         const ActMarkLineReg*,    //         const ActOffsidesLine*,    //         const ActHetType*,    //         const ActNamed*,    //         const ActPassReg*,    //         const ActPassUNum*,    //         const ActDribble*,    //         const ActClear*,    //         const ActShoot*,    //         const ActHold*,    //         const ActIntercept*,    //         const ActTackle* >    //       {    //       protected:    //           virtual    //           ~ConstTypeExtractor()    //           {}    //         virtual    //         void    //         visit( const ActPos* act );    //         virtual    //         void    //         visit( const ActHome* act );    //         virtual    //         void    //         visit( const ActBallToReg* act );    //         virtual    //         void    //         visit( const ActBallToPlayer* act );    //         virtual    //         void    //         visit( const ActMark* act );    //         virtual    //         void    //         visit( const ActMarkLinePlayer* act );    //         virtual    //         void    //         visit( const ActMarkLineReg* act );    //         virtual    //         void    //         visit( const ActOffsidesLine* act );    //         virtual    //         void    //         visit( const ActHetType* act );    //         virtual    //         void    //         visit( const ActNamed* act );    //         virtual    //         void    //         visit( const ActPassReg* act );    //         virtual    //         void    //         visit( const ActPassUNum* act );    //         virtual    //         void    //         visit( const ActDribble* act );    //         virtual    //         void    //         visit( const ActClear* act );    //         virtual    //         void    //         visit( const ActShoot* act );    //         virtual    //         void    //         visit( const ActHold* act );    //         virtual    //         void    //         visit( const ActIntercept* act );    //         virtual    //         void    //         visit( const ActTackle* act );    //       };    virtual    ~Action();    virtual    std::auto_ptr< Action > deepCopy() const = 0;    //       virtual    //       void    //       accept( Visitor& v ) = 0;    //       virtual    //       void    //       accept( ConstVisitor& v ) const = 0;    virtual    std::ostream & print( std::ostream & out ) const = 0;    virtual    std::ostream & printPretty( std::ostream & out,                                const std::string & line_header ) const = 0;}; // end Actionclass ActPos    : public Action {public:    ActPos();    ActPos( std::auto_ptr< Region > r );    ~ActPos();    virtual    std::auto_ptr< Action > deepCopy() const;    virtual    std::ostream & print( std::ostream & out ) const;    virtual    std::ostream & printPretty( std::ostream & out,                                const std::string & line_header ) const;    const Region * getRegion() const;private:	std::auto_ptr< Region > m_reg;};class ActHome    : public Action {public:    ActHome();    ActHome( std::auto_ptr< Region > r );    ~ActHome();    virtual    std::auto_ptr< Action > deepCopy() const;    virtual    std::ostream & print( std::ostream & out ) const;    virtual    std::ostream & printPretty( std::ostream & out,                                const std::string & line_header ) const;    const Region * getRegion() const;private:	std::auto_ptr< Region > m_reg;};class ActBallToReg    : public Action {public:    ActBallToReg();    ActBallToReg( std::auto_ptr< Region > reg,                  const BallMove & bmtset );    ~ActBallToReg();    virtual    std::auto_ptr< Action > deepCopy() const;    virtual    std::ostream & print( std::ostream & out ) const;    virtual    std::ostream & printPretty( std::ostream & out,                                const std::string & line_header ) const;    const Region * getRegion() const;    BallMove getBallMove() const;    void addBMT( BallMoveToken t );    void removeBMT( BallMoveToken t );    void clearBMTSet();private:	std::auto_ptr< Region > m_reg;	BallMove m_bmtset;

⌨️ 快捷键说明

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