Commit Graph

44 Commits

Author SHA1 Message Date
Ken Hughes
2e133599da Python API:
Bugfix #5075: make curve.update() recalculate bezier curve handles.  This
would/should be called after changing the handles of a BezTriple.
2006-11-13 21:14:48 +00:00
b3a48fe82e removed some unused vars from Curve and matrix
scn.objects.new(None) - adds a new empty
 - new objects are selected by default now

further stripped down the vector struct, the wrapped state was being stored and 2 places.
2006-10-07 11:49:53 +00:00
dda63a9dde added comparison function to many python types so you can do == and =! 2006-10-06 16:48:28 +00:00
Ken Hughes
81d7cd967d ===Python API===
New API for accessing surface data (SurbNurb type).  Right now it's hooked in
through the Curve API, since Curve.Get() doesn't differentiate between curves
and surfaces.  If the curve object is 2D (pntsv > 1), the SurfNurb object is
created.

It is similar to the CurNurb type but not identical.  There are only
attributes and no methods yet, and the only methods which will be added are
the non-getStuff/setStuff kind.  Read the documentation to see how it works
(sorry, no examples yet).

This is a work in progress.  Don't be surprised if the API changes some more.
2006-08-28 04:44:16 +00:00
8e7095a464 Added __copy__ to armature, material, curve, group 2006-08-15 11:24:08 +00:00
Stephen Swaney
342bb99a19 a little spring cleaning to remove some compiler warnings for
implicit declarations, redundant redeclarations, missing initializers,
nested externs and other cruft.

Cleaned up includes and moved extern _Type decls from Types.h into
Types.c since that is the only place where they are needed now.

Did not touch Ipo.[ch] since work is on-going there.
2006-04-16 15:28:50 +00:00
Ken Hughes
0ae3fe59a3 -- Partial bugfix for #3186. curve.getControlPoint() wasn't DECREF-ing
values added to a list, causing a memory leak.
2005-11-29 01:35:45 +00:00
Ken Hughes
3035625992 - force setResolu() to update all NURBS belonging to a curve 2005-10-11 15:51:27 +00:00
Stephen Swaney
c4b8a431bc fix Curve.update() method to use new DAG features. 2005-09-29 07:05:00 +00:00
Stephen Swaney
24ee7278b9 patch #3011 ] update to curnurb.setFlagU doc, added set and get for Taper
Contributed by Toni Alatalo (antont).

Support for Taper Objects for Curves.
Code for curnurb.setFlagU() method not changed as per discussion on
bf-python mail list.
2005-09-12 06:07:19 +00:00
039a8c95f3 BPython:
- Pontus Lidman contributed a new module: Blender.Key + access to key objects from NMesh, Lattice and Curve + docs (thanks and sorry for taking so long to check/commit the patch!)

- Allowing EVENT spacehandlers to call the file selector (scriptlinks in general are not allowed, but this special case should be able to). Requested by Paolo Colombo (thanks!)

- tiny doc update (Ken Hughes pointed an error in the space handlers example)

I didn't have time to update the Key module to follow the current bpython design, will do that later and also test it better than I did.
2005-09-09 01:31:10 +00:00
5afdfc6ac1 - remove some silly array copying code for nurb displist generation
- converted dl->flag to use consistent defines for cyclic U/V
2005-08-11 22:27:53 +00:00
e60291d39c Header file clean up and warning fixes
- Mostly this cleans up the #includes and header files in the python project.
- Warning fixes are mostly casting issues and misc fixes. General warning clean up.
- #include Python.h MUST come as the first include to avoid the POSIX redefine warning in the unix makefiles
- fno-strict-aliasing flag added to makefile to fix a unavoidable type punning warning in types.c
2005-07-18 03:50:37 +00:00
3929802335 - switch several instances of makeDispList to use more specific version 2005-07-14 18:14:19 +00:00
befc2bbc41 - split makeDispList into makeDispList{Mesh,MBall,CurveTypes}, there is
still a makeDispList that dispatches to the appropriate one.
   makeDispList is on the way out and this makes it easier to track down
   exactly which places use makedispList and for what types of objects.
 - switch calls to makeDispList to appropriate more specific function (if
   the object type is known by caller).
 - added mesh_changed function that invalidates cached mesh data (but does
   not rebuild, mesh data gets rebuilt on access). Most old calls to
   makeDispListMesh use this instead now.
2005-07-14 15:48:01 +00:00
5f5844b95e Some of the setattr functions created a tuple to pass to the set* functions and didn't decref'ed it properly, "leaking" memory.
Commit approved by stivs.
2005-06-17 05:10:14 +00:00
Stephen Swaney
769fa6252d Patch from Martin Poirier.
Misc bpy Curve fixes and updates, includes bugs #1687 and #2637
2005-06-13 19:15:02 +00:00
Stephen Swaney
55cf304e99 bugfix: #2254 Curve.appendPoint() gives segfault in PySequence_Check().
Argument tuple not built correctly for CurNurb_appendPointToNurb().
2005-05-12 05:45:13 +00:00
Stephen Swaney
127abda43d New methods for Curve module: getBevOb() and setBevOb()
Adds ability to set, clear and get bevel object for a Curve.
Contributed by Gergely Erdelyi (dyce).
Thanks!
2005-04-17 13:48:16 +00:00
cbbe236f92 - patch submitted by guitargeek
-includes:
*Text3d accessors - ablity to manipulate FONT objects through python
*update to Object.link - calls text_to_curve upon ob_font link for drawing
*update to constant.h - constant type checking define
*update to curve.c - clamp values on getters/setters
*clean up of Text3d module
2005-03-19 03:24:00 +00:00
Stephen Swaney
454041cc4f New Bpy type Text3d for accessing Blender's Font objects.
Contributed by Joilnen Leite (pidhash).
2005-03-06 14:55:00 +00:00
34977b8937 BPython:
- applied Campbell Barton's patch for access to Oops location and selection of materials, mesh data and objects, slightly modified. Thanks, Campbell;
- got rid of warnings in many files, hopefully not introducing any other during the process.  Mostly this was done: 1) new EXPP_incr_ret_True/False functions were added and used instead of "Py_INCREF(Py_True/False); return Py_True/False;".  Currently at least the functions use the fact that PyTrue/False == 1/0 and use 1 and 0 to avoid the warnings. 2) Filling of certain types structs got 0's added for all not defined data and methods.  This is surely Python version specific, since these structs can change size and content at each major version number Python update.
2005-02-09 15:53:35 +00:00
Stephen Swaney
df1acca4c5 New methods: Curve.isCyclic(), CurNurb.isCyclic() for checking if curve is cyclic ( closed ). Both methods are boolean.
Patch contributed by Toni Alatalo.  Thanks.
2005-01-13 03:42:53 +00:00
Stephen Swaney
0fdc0ce297 Another step in the Big Bpy Cleanup.
- move static declarations and data definitions out of headers.
  the BGL module still need cleaning.

- move declarations out of modules.h and into appropriate .h files.
  modules.h still exists as a container for the few modules that
  need to #include almost everything.

- all files now have a $Id tag and have been formatted by indent

there are no changes to executable code.

pre-commit versions are tagged with bpy-cleanup-pre-20041007
for the sake of paranoia.
2004-10-07 19:25:40 +00:00
Stephen Swaney
a509b8adc9 Another round in the Great BPy Cleanup:
Run everything thru indent to cleanup spaces vs tabs.
Clean up some of the comments by hand.
BGL.c was not touched due to all that macro wackyness.

There are no functional changes to the code.
Pre-indent versions of source are tagged with
tag bpy-cleanup-20040925 , just in case.
2004-09-25 20:30:40 +00:00
Stephen Swaney
7ed803f6a8 some code cleanup. minor bug fixage: don't try to free null ptrs.
accidentally ran CurNurb.c thru indent utility  Doh!
2004-07-29 12:00:34 +00:00
Stephen Swaney
bce2c02fdd New Curve method Curve.appendPoint( numcurve, newpoint ) to add
points to a Curve.

New supporting module CurNurb to provide access to the curves in a Curve
and their associated points.

Curve module now supports Python iterator and sequence protocols.
This allows typical python programming idioms using 'for' statement
and the [] operator.

# example 1
for curve in a_curve:
	for point in curve:
		print point

#example 2

curnurb = a_curve[0]
curnurb.append( [1,1,1,1] )

Still under construction.  Epydoc will follow.
2004-07-21 21:01:15 +00:00
Stephen Swaney
a703837179 Replace deprecated methods from old api:
PythonReturnErrorObject
  PythonIncRef

Fix some compiler warnings about missing initializers
in method tables.
2004-06-06 22:42:51 +00:00
Stephen Swaney
2b7e35b8e7 bugfix #1345. Curve.isNurb() segfault fixed. 2004-06-03 16:23:51 +00:00
Stephen Swaney
f3feb77918 General housekeeping and cleanup. Move static declarations and
data definitions from .h files into corresponding .c files.
Blame zr for this since he's the one who pointed out that our
bpy headers were a mish-mash of stuff that belonged in the .c files!

In a nutshell, the headers should contain the declarations necessary
to use a module or class.  The implementation files ( .c in this case )
should contain statements that allocate storage ( definitions in
the C sense ) and executable code.

When used at file scope, the keyword 'static' means "don't tell
anyone else about this".  Since headers describe a public
interface, static declarations and definitions belong in the
implementation files.

The net result of all this is that after stuff has moved out
into the .c files, the .h files are empty or mostly empty.
I didn't delete them since there seem to be some public
declarations and because I did not want to cause too much
disruption at one time. Time enough for that later!
2004-03-29 08:16:18 +00:00
Stephen Swaney
011203c45f fixed the bug Joseph Gilbert found in numerous python files.
newly created data objs had incorrect user counts.
2003-11-11 10:13:04 +00:00
679a44d2c6 Modification of the GetControlPoint function by Stephen, who is now responsible for this module
slight bug fixes (Steph.)
2003-09-02 20:11:11 +00:00
4cf1470b99 change the values of the functions get/set size/loc/rot to lists.
added the attributes loc, rot, size
changed the parameters of getControlPoint to int int list
cosmetic changes in names
2003-07-09 21:18:34 +00:00
6fe633aef3 added what needed to link a curve to an object (modification of Object_link
added 2 functions Curve_CheckPyObject and Curve_FromPyObject
that I had forgotten
2003-07-09 12:25:27 +00:00
19ac604c47 deleted print function, which caused crashes.
Objects are printed with the repr function.
2003-07-04 16:09:34 +00:00
eaf1cdd383 - More renaming all around to follow our conventions
- Implemented partially Blender.Sys
- Worked on issues related to sys, path
- Took away most "debug" printfs
2003-06-28 07:38:21 +00:00
13d7bb920b some cleanup; naming conventions 2003-06-27 07:35:55 +00:00
9392d5662a several bug fixes 2003-06-21 20:44:44 +00:00
6cc45538ef * Small changes in many files:
-  Trying to fix linking problems in OSX;
-  Making module .Get functions behave like the ones in Blender 2.25 - 2.27
   (Guignot pointed the incompatibility);
-  Included more types to Blender.Types;
-  Found by luck and corrected two bugs that were making Blender crash;
-  Added/updated some simple functions.
2003-06-12 04:51:50 +00:00
864e5640f7 * Applied a small fix to a bug reported by Guignot:
When a script that used setAttr for Camera Data objs (the bug also
    affected some other modules) was executed multiple times, Blender
    would crash after, let's say, the first 5 or 6 tries.  Problem, as
    Guignot pointed, was with reference counting.  Should be ok now, all
    affected modules were fixed.
* The Scene module is now "complete" (= 2.25).
* Made some necessary updates to Object and NMesh.
2003-06-09 04:01:48 +00:00
a127b38760 * Fix compilation errors on Windows hopefully. Implemented the suggestion done
by Aphex - thanks.
* Added the doc strings to the Object module.
* Added more functionality to the Object module.
2003-06-02 20:15:50 +00:00
b13c0705d3 * Module Curve updated:
Jacques Guignot (guignot) sent updated files for his Curve module.
* Module Armature (and its submodule Bone) added:
    Jordi Rovira i Bonet (bandoler) contributed both modules, which
    are NEW additions to Blender Python, not available in Blender 2.27.
* Added function to NMesh.c:
    Jordi again.  He added the function NMesh_getVertexInfluence().
2003-05-29 04:00:35 +00:00
1a87f3a4aa Guignot implemented 3 functions needed by the Object Module 2003-05-20 03:53:30 +00:00
d03323b1c3 * Added Blender.Curve submodule, written by Jacques Guignot (guignot):
Jacques contributed a new module to exppython, one that isn't available
    in the current 2.27 API.  Welcome, guignot : ).
2003-05-17 07:08:08 +00:00