optionally use guarded alloc for tiles compositor, also replace allocation functions...
[blender.git] / source / gameengine / Expressions / IfExpr.h
1 /*
2  * IfExpr.h: interface for the CIfExpr class.
3  * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
4  *
5  * Permission to use, copy, modify, distribute and sell this software
6  * and its documentation for any purpose is hereby granted without fee,
7  * provided that the above copyright notice appear in all copies and
8  * that both that copyright notice and this permission notice appear
9  * in supporting documentation.  Erwin Coumans makes no
10  * representations about the suitability of this software for any
11  * purpose.  It is provided "as is" without express or implied warranty.
12  *
13  */
14
15 /** \file IfExpr.h
16  *  \ingroup expressions
17  */
18
19 #if !defined(AFX_IFEXPR_H__1F691841_C5C7_11D1_A863_0000B4542BD8__INCLUDED_)
20 #define AFX_IFEXPR_H__1F691841_C5C7_11D1_A863_0000B4542BD8__INCLUDED_
21
22 #if defined(_MSC_VER) && _MSC_VER >= 1000
23 #pragma once
24 #endif // _MSC_VER >= 1000
25
26 #include "Expression.h"
27
28 class CIfExpr : public CExpression  
29 {
30         //PLUGIN_DECLARE_SERIAL_EXPRESSION (CIfExpr,CExpression)
31
32 private:
33         CExpression *m_guard, *m_e1, *m_e2;
34
35 public:
36         virtual bool MergeExpression(CExpression* otherexpr);
37         CIfExpr(CExpression *guard, CExpression *e1, CExpression *e2);
38         CIfExpr();
39         
40         virtual unsigned char GetExpressionID();
41         virtual ~CIfExpr();
42         virtual CValue* Calculate();
43         
44         virtual bool            IsInside(float x,float y,float z,bool bBorderInclude=true);
45         virtual bool            NeedsRecalculated();
46
47
48         virtual CExpression*    CheckLink(std::vector<CBrokenLinkInfo*>& brokenlinks);
49         virtual void                    ClearModified();
50         virtual void                    BroadcastOperators(VALUE_OPERATOR op);
51
52
53 #ifdef WITH_CXX_GUARDEDALLOC
54         MEM_CXX_CLASS_ALLOC_FUNCS("GE:CIfExpr")
55 #endif
56 };
57
58 #endif // !defined(AFX_IFEXPR_H__1F691841_C5C7_11D1_A863_0000B4542BD8__INCLUDED_)
59