fix for building with collada and some other warnings
[blender.git] / source / gameengine / Expressions / Operator2Expr.h
1 /*
2  * Operator2Expr.h: interface for the COperator2Expr 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
16 /** \file Operator2Expr.h
17  *  \ingroup expressions
18  */
19
20 #if !defined _OPERATOR2EXPR_H
21 #define _OPERATOR2EXPR_H
22
23
24 #include "Expression.h"
25 #include "Value.h"      // Added by ClassView
26
27 class COperator2Expr : public CExpression  
28 {
29         //PLUGIN_DECLARE_SERIAL_EXPRESSION (COperator2Expr,CExpression)
30
31 public:
32         virtual bool MergeExpression(CExpression* otherexpr);
33         virtual unsigned char GetExpressionID() { return COPERATOR2EXPRESSIONID;};
34         virtual void BroadcastOperators(VALUE_OPERATOR op);
35         CExpression* CheckLink(std::vector<CBrokenLinkInfo*>& brokenlinks);
36         //virtual bool IsInside(float x,float y,float z,bool bBorderInclude=true);
37         //virtual bool IsLeftInside(float x,float y,float z,bool bBorderInclude);
38         //virtual bool IsRightInside(float x,float y,float z,bool bBorderInclude);
39         bool NeedsRecalculated();
40         void    ClearModified() { 
41                 if (m_lhs)
42                         m_lhs->ClearModified();
43                 if (m_rhs)
44                         m_rhs->ClearModified();
45         }
46         virtual CValue* Calculate();
47         COperator2Expr(VALUE_OPERATOR op, CExpression *lhs, CExpression *rhs);
48         COperator2Expr();
49         virtual ~COperator2Expr();
50
51         
52 protected:
53         CExpression * m_rhs;
54         CExpression * m_lhs;
55         CValue* m_cached_calculate; // cached result
56         
57 private:
58         VALUE_OPERATOR m_op;
59
60
61 #ifdef WITH_CXX_GUARDEDALLOC
62 public:
63         void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:COperator2Expr"); }
64         void operator delete( void *mem ) { MEM_freeN(mem); }
65 #endif
66 };
67
68 #endif // !defined _OPERATOR2EXPR_H
69