Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Bernal <jbernalmartinez@gmail.com>2015-07-12 17:55:33 +0300
committerJorge Bernal <jbernalmartinez@gmail.com>2015-07-12 17:58:12 +0300
commit6ffc988ae3aa57822be89e9580146908c938e0a0 (patch)
tree6c9299a519b8d4b1da0780cf0cd2bc4bba108fb8 /source/gameengine/Expressions/EXP_ListValue.h
parent5b0f674e0948d079332718e165b4a42369517ed6 (diff)
BGE Clean-up: New EXP prefix for the BGE Expression module
The expression module now uses an EXP prefix and it follows a distribution similar to blender. Additionally the hash function in EXP_HashedPtr.h was simplified and the files EXP_C-Api.h &.EXP_C-Api.cpp were deleted because were unused. Reviewers: campbellbarton, moguri, sybren, hg1 Projects: #game_engine Differential Revision: https://developer.blender.org/D1221
Diffstat (limited to 'source/gameengine/Expressions/EXP_ListValue.h')
-rw-r--r--source/gameengine/Expressions/EXP_ListValue.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/source/gameengine/Expressions/EXP_ListValue.h b/source/gameengine/Expressions/EXP_ListValue.h
new file mode 100644
index 00000000000..f5421066f62
--- /dev/null
+++ b/source/gameengine/Expressions/EXP_ListValue.h
@@ -0,0 +1,92 @@
+/*
+ * ListValue.h: interface for the CListValue class.
+ * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Erwin Coumans makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ */
+
+/** \file EXP_ListValue.h
+ * \ingroup expressions
+ */
+
+#ifndef __EXP_LISTVALUE_H__
+#define __EXP_LISTVALUE_H__
+
+#include "EXP_Value.h"
+
+class CListValue : public CPropValue
+{
+ Py_Header
+ //PLUGIN_DECLARE_SERIAL (CListValue,CValue)
+
+public:
+ CListValue();
+ virtual ~CListValue();
+
+ void AddConfigurationData(CValue* menuvalue);
+ void Configure(CValue* menuvalue);
+ void Add(CValue* value);
+
+ /** \attention not implemented yet :( */
+ virtual CValue* Calc(VALUE_OPERATOR op,CValue *val);
+ virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype,
+ VALUE_OPERATOR op,
+ CValue* val);
+ virtual double GetNumber();
+ virtual int GetValueType();
+ virtual CValue* GetReplica();
+
+public:
+ void MergeList(CListValue* otherlist);
+ bool RemoveValue(CValue* val);
+ void SetReleaseOnDestruct(bool bReleaseContents);
+ bool SearchValue(CValue* val);
+
+ CValue* FindValue(const STR_String & name);
+ CValue* FindValue(const char *name);
+
+ void ReleaseAndRemoveAll();
+ virtual void SetModified(bool bModified);
+ virtual inline bool IsModified();
+ void Remove(int i);
+ void Resize(int num);
+ void SetValue(int i,CValue* val);
+ CValue* GetValue(int i) { assertd(i < m_pValueArray.size()); return m_pValueArray[i]; }
+ int GetCount() { return m_pValueArray.size(); }
+ virtual const STR_String & GetText();
+
+ bool CheckEqual(CValue* first,CValue* second);
+
+#ifdef WITH_PYTHON
+ virtual PyObject *py_repr(void) {
+ PyObject *py_proxy= this->GetProxy();
+ PyObject *py_list= PySequence_List(py_proxy);
+ PyObject *py_string= PyObject_Repr(py_list);
+ Py_DECREF(py_list);
+ Py_DECREF(py_proxy);
+ return py_string;
+ }
+
+ KX_PYMETHOD_O(CListValue,append);
+ KX_PYMETHOD_NOARGS(CListValue,reverse);
+ KX_PYMETHOD_O(CListValue,index);
+ KX_PYMETHOD_O(CListValue,count);
+ KX_PYMETHOD_VARARGS(CListValue,get);
+ KX_PYMETHOD_O(CListValue,from_id);
+#endif
+
+private:
+
+ std::vector<CValue*> m_pValueArray;
+ bool m_bReleaseContents;
+};
+
+#endif /* __EXP_LISTVALUE_H__ */
+