~ubuntu-branches/ubuntu/natty/plee-the-bear/natty

« back to all changes in this revision

Viewing changes to bear-engine/core/src/engine/expr/boolean_function.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Julien Jorge, Julien Jorge
  • Date: 2010-11-17 20:13:34 UTC
  • mfrom: (6.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20101117201334-o4dp7uq437to7oxb
Tags: 0.5.1-1
[ Julien Jorge ]
* New upstream release (Closes: #565062, #546514).
* Add armhf architecture (Closes: #604689).
* Remove patches integrated upstream: rpath-editors.diff, rpath-game.diff,
  editors-menu-section.diff.
* Bump the Standard-Version, no changes.
* Update my email address.
* Set build dependency of libclaw to 1.6.0.
* Add the missing ${misc:Depends} in debian/control.
* List gettext translations in bear-factory.install and plee-the-bear.install.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
  Bear Engine
3
 
 
4
 
  Copyright (C) 2005-2009 Julien Jorge, Sebastien Angibaud
5
 
 
6
 
  This program is free software; you can redistribute it and/or modify it
7
 
  under the terms of the GNU General Public License as published by the
8
 
  Free Software Foundation; either version 2 of the License, or (at your
9
 
  option) any later version.
10
 
 
11
 
  This program is distributed in the hope that it will be useful, but WITHOUT
12
 
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
 
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14
 
  more details.
15
 
 
16
 
  You should have received a copy of the GNU General Public License along
17
 
  with this program; if not, write to the Free Software Foundation, Inc.,
18
 
  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 
 
20
 
  contact: plee-the-bear@gamned.org
21
 
 
22
 
  Please add the tag [Bear] in the subject of your mails.
23
 
*/
24
 
/**
25
 
 * \file boolean_function.hpp
26
 
 * \brief An expression returning the result of a call of a function on any
27
 
 *        class instance.
28
 
 * \author Julien Jorge
29
 
 */
30
 
#ifndef __ENGINE_BOOLEAN_FUNCTION_HPP__
31
 
#define __ENGINE_BOOLEAN_FUNCTION_HPP__
32
 
 
33
 
#include "engine/expr/base_boolean_expression.hpp"
34
 
 
35
 
namespace bear
36
 
{
37
 
  namespace engine
38
 
  {
39
 
    /**
40
 
     * \brief An expression returning the result of a call of a function on any
41
 
     *        class instance.
42
 
     *
43
 
     * The evaluation of this expression is m(*inst), where \a m is the function
44
 
     * passed to the constructor, and \a inst the pointer passed to the
45
 
     * constructor.
46
 
     *
47
 
     * \author Julien Jorge
48
 
     */
49
 
    template<typename FunctionType, typename PointerType>
50
 
    class boolean_function:
51
 
      public base_boolean_expression
52
 
    {
53
 
    public:
54
 
      boolean_function();
55
 
      boolean_function( const PointerType& inst, FunctionType m );
56
 
 
57
 
      base_boolean_expression* clone() const;
58
 
      bool evaluate() const;
59
 
 
60
 
      void set_function( FunctionType m );
61
 
 
62
 
    private:
63
 
      /** \brief The class on which we call the function. */
64
 
      const PointerType m_value;
65
 
 
66
 
      /** \brief The member function to call. */
67
 
      FunctionType m_function;
68
 
 
69
 
    }; // class boolean_function
70
 
 
71
 
    /**
72
 
     * \brief An expression returning the result of a call of a function.
73
 
     *
74
 
     * The evaluation of this expression is m(), where \a m is the function
75
 
     * passed to the constructor.
76
 
     *
77
 
     * \author Julien Jorge
78
 
     */
79
 
    template<typename FunctionType>
80
 
    class boolean_function<FunctionType, void>:
81
 
      public base_boolean_expression
82
 
    {
83
 
    public:
84
 
      boolean_function();
85
 
      boolean_function( FunctionType m );
86
 
 
87
 
      base_boolean_expression* clone() const;
88
 
      bool evaluate() const;
89
 
 
90
 
      void set_function( FunctionType m );
91
 
 
92
 
    private:
93
 
      /** \brief The member function to call. */
94
 
      FunctionType m_function;
95
 
 
96
 
    }; // class boolean_function
97
 
 
98
 
    template<typename FunctionType, typename PointerType>
99
 
    boolean_function<FunctionType, PointerType>
100
 
    boolean_function_maker( const PointerType& inst, FunctionType m);
101
 
 
102
 
    template<typename FunctionType>
103
 
    boolean_function<FunctionType, void>
104
 
    boolean_function_maker( FunctionType m);
105
 
 
106
 
  } // namespace engine
107
 
} // namespace bear
108
 
 
109
 
#include "engine/expr/impl/boolean_function.tpp"
110
 
 
111
 
#endif // __ENGINE_BOOLEAN_FUNCTION_HPP__