svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r20849:20855
[blender.git] / source / gameengine / Expressions / BoolValue.h
1 /*
2  * BoolValue.h: interface for the CBoolValue class.
3  * $Id$
4  * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
5  *
6  * Permission to use, copy, modify, distribute and sell this software
7  * and its documentation for any purpose is hereby granted without fee,
8  * provided that the above copyright notice appear in all copies and
9  * that both that copyright notice and this permission notice appear
10  * in supporting documentation.  Erwin Coumans makes no
11  * representations about the suitability of this software for any
12  * purpose.  It is provided "as is" without express or implied warranty.
13  *
14  */
15 #if !defined _BOOLVALUE_H
16 #define _BOOLVALUE_H
17
18 #include "Value.h"
19
20 /**
21  *      Smart Boolean Value class.
22  * Is used by parser when an expression tree is build containing booleans.
23  */
24
25 class CBoolValue : public CPropValue  
26 {
27
28         //PLUGIN_DECLARE_SERIAL(CBoolValue,CValue)      
29
30 public:
31         static const STR_String sTrueString;
32         static const STR_String sFalseString;
33
34         CBoolValue();
35         CBoolValue(bool inBool);
36         CBoolValue(bool innie, const char *name, AllocationTYPE alloctype = CValue::HEAPVALUE);
37
38         virtual const STR_String& GetText();
39         virtual double          GetNumber();
40         bool                            GetBool();
41         virtual void            SetValue(CValue* newval);
42         
43         virtual CValue*         Calc(VALUE_OPERATOR op, CValue *val);
44         virtual CValue*         CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val);
45         
46         void                            Configure(CValue* menuvalue);
47         virtual CValue*         GetReplica();
48         virtual PyObject*       ConvertValueToPython();
49
50 private:
51         bool                            m_bool;
52 };
53
54 #endif // !defined _BOOLVALUE_H
55