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:
authorJoseph Gilbert <ascotan@gmail.com>2005-07-23 17:46:40 +0400
committerJoseph Gilbert <ascotan@gmail.com>2005-07-23 17:46:40 +0400
commit6a9e7ab3f22eb0b153c71f33d0cd912641cd2f0c (patch)
treeb4b65280df6e934648e2dcad0f2dfa39858fa29f /source/blender/python/api2_2x/point.h
parent32255b65df00897ea9f5ec960eec0040edd946be (diff)
_new point class and update_
- adds a new point class * point/ vector math (p + v = p, p - p = v, etc.) * points can be transformed by matrices/quats * wraps 'place vector' type vectors that have no magnitude - wrapped toXXX() methods work correctly * toXXX() will NOT wrap data (this is due to the fact that wrapped data cannot be converted) * added a 'wrapped' attribute to mathutils classes to determine wether the object is accessing python or blender data - added the ability to negate vectors/points with "-vec" * deprecated vector.negate() - added the ability to shorhand inverse matrices with "~mat" (tilde) - conversion between vector/point with toXXX() methods
Diffstat (limited to 'source/blender/python/api2_2x/point.h')
-rw-r--r--source/blender/python/api2_2x/point.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/source/blender/python/api2_2x/point.h b/source/blender/python/api2_2x/point.h
new file mode 100644
index 00000000000..3923c2e2f34
--- /dev/null
+++ b/source/blender/python/api2_2x/point.h
@@ -0,0 +1,65 @@
+/*
+ *
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * This is a new part of Blender.
+ *
+ * Contributor(s): Joseph Gilbert
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+*/
+
+#ifndef EXPP_point_h
+#define EXPP_point_h
+
+#include <Python.h>
+
+#define PointObject_Check(v) ((v)->ob_type == &point_Type)
+
+typedef struct {
+ PyObject_VAR_HEAD
+ struct{
+ float *py_data; //python managed
+ float *blend_data; //blender managed
+ }data;
+ float *coord; //1D array of data (alias)
+ int size;
+ int wrapped; //is wrapped data?
+ PyObject *coerced_object;
+} PointObject;
+/*coerced_object is a pointer to the object that it was
+coerced from when a dummy vector needs to be created from
+the coerce() function for numeric protocol operations*/
+
+/*struct data contains a pointer to the actual data that the
+object uses. It can use either PyMem allocated data (which will
+be stored in py_data) or be a wrapper for data allocated through
+blender (stored in blend_data). This is an either/or struct not both*/
+
+//prototypes
+PyObject *Point_Zero( PointObject * self );
+PyObject *Point_toVector(PointObject * self);
+PyObject *newPointObject(float *coord, int size, int type);
+
+#endif /* EXPP_point_h */ \ No newline at end of file