Blender  V2.59
Operator1Expr.h
Go to the documentation of this file.
00001 /*
00002  * Operator1Expr.h: interface for the COperator1Expr class.
00003  * $Id: Operator1Expr.h 35063 2011-02-22 10:33:14Z jesterking $
00004  * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
00005  *
00006  * Permission to use, copy, modify, distribute and sell this software
00007  * and its documentation for any purpose is hereby granted without fee,
00008  * provided that the above copyright notice appear in all copies and
00009  * that both that copyright notice and this permission notice appear
00010  * in supporting documentation.  Erwin Coumans makes no
00011  * representations about the suitability of this software for any
00012  * purpose.  It is provided "as is" without express or implied warranty.
00013  *
00014  */
00015 
00020 #if !defined(AFX_OPERATOR1EXPR_H__A1653901_BF41_11D1_A51C_00A02472FC58__INCLUDED_)
00021 #define AFX_OPERATOR1EXPR_H__A1653901_BF41_11D1_A51C_00A02472FC58__INCLUDED_
00022 
00023 #include "Expression.h"
00024 
00025 class COperator1Expr : public CExpression  
00026 {
00027         //PLUGIN_DECLARE_SERIAL_EXPRESSION (COperator1Expr,CExpression)
00028 
00029 
00030 
00031 public:
00032         virtual bool MergeExpression(CExpression* otherexpr);
00033         virtual void BroadcastOperators(VALUE_OPERATOR op);
00034 
00035         virtual unsigned char GetExpressionID() { return COPERATOR1EXPRESSIONID;};
00036         CExpression* CheckLink(std::vector<CBrokenLinkInfo*>& brokenlinks);
00037         //virtual bool IsInside(float x,float y,float z,bool bBorderInclude = true);
00038         virtual bool NeedsRecalculated();
00039         void ClearModified() {
00040                 if (m_lhs)
00041                         m_lhs->ClearModified();
00042         }
00043         virtual CValue* Calculate();
00044         COperator1Expr(VALUE_OPERATOR op, CExpression *lhs);
00045         COperator1Expr();
00046         virtual ~COperator1Expr();
00047         
00048         
00049         
00050 private:
00051         VALUE_OPERATOR m_op;
00052         CExpression * m_lhs;
00053 
00054 
00055 #ifdef WITH_CXX_GUARDEDALLOC
00056 public:
00057         void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:COperator1Expr"); }
00058         void operator delete( void *mem ) { MEM_freeN(mem); }
00059 #endif
00060 };
00061 
00062 #endif // !defined(AFX_OPERATOR1EXPR_H__A1653901_BF41_11D1_A51C_00A02472FC58__INCLUDED_)
00063