Commit Graph

12380 Commits

Author SHA1 Message Date
Tamito Kajiyama
f38183d6b4 Fixed the subclassing of int to define the IntegrationType type.
Also changed the type of integration type constants from int to IntegrationType.
2009-03-14 13:20:06 +00:00
Tamito Kajiyama
52e289ee3b Fixed StrokeVertex::setPoint() to accept a Blender Vector object as the argument.
Now this method accepts 2D coordinates in the following three forms:
a) Python list of 2 real numbers: setPoint([x, y])
b) Blender Vector of 2 elements: setPoint(Vector(x, y))
c) 2 real numbers: setPoint(x, y)

[The log of Revision 19283 had a wrong message...]
2009-03-14 13:11:34 +00:00
Tamito Kajiyama
c14e91590e Fixed StrokeVertex::setPoint() to accept a Blender Vector object as the argument.
Now this method accepts 2D coordinates in the following three forms:
a) Python list of 2 real numbers: setPoint([x, y])
b) Blender Vector of 2 elements: setPoint(Vector(x, y))
c) 2 real numbers: setPoint(x, y)
2009-03-14 13:06:09 +00:00
Tamito Kajiyama
c8ac7723d6 Fixed memory leaks in passing vectors from Python to C++. 2009-03-13 19:27:00 +00:00
Tamito Kajiyama
2fbcd6c4bd Better error handling in the Python API.
Added error handling to prevent crashes even when errors have occurred in user-defined predicates, stroke shaders, and chaining iterators.
2009-03-13 19:24:05 +00:00
Tamito Kajiyama
838234e5ea Fixed an immediate crash due to execution failure of a style module. 2009-03-08 12:02:23 +00:00
Tamito Kajiyama
cd202bc3b6 Fixed an issue regarding render layers. Now the Freestyle renderer builds a view map based on selected object layers in a render layer, instead of the global selection of object layers. This allows, for example, to have two render layers, one for rendering solid faces in all object layers, and the other for rendering outlines of objects in selected object layers by Freestyle. At the moment, the number of Freestyle-enabled render layers is restricted to one -- a better fix is in the future work. 2009-03-02 03:30:59 +00:00
Maxime Curioni
20496ca644 renamed app_blender/api.cpp FRS_freestyle.cpp 2008-12-10 22:13:23 +00:00
Maxime Curioni
2f460b448b improved Freestyle IO formatting 2008-12-10 22:06:27 +00:00
Maxime Curioni
d15321082e removed AppGLWidget and all related classes
added an AppView class to transfer camera information from Blender to Freestyle
removed unused functions
2008-12-10 21:51:58 +00:00
Maxime Curioni
8b3e4bc069 when Freestyle would execute style modules, a copy of the Python script would end up in the text editor and pollute the text editor file list. This is corrected: executed scripts do not leave trails behind. 2008-12-10 18:36:56 +00:00
Maxime Curioni
eaae4090c1 replaced "Shape loading" message with "Importing triangular meshes into Blender"
handled case when scene is empty
made controller's view map as public variable
2008-12-10 15:30:43 +00:00
Maxime Curioni
12debd47dd corrected crash caused when enabling scene vectors 2008-12-09 17:14:34 +00:00
Maxime Curioni
4a9898308e corrected problems using different filters: Freestyle pixels were being fetched outside of the render result rect. Corrected with a test to make sure that the used pixels are valid. 2008-12-05 11:03:16 +00:00
Tamito Kajiyama
4ae12f3af5 Reverted the changes (in revisions 17517-17519) for the antialiasing based on OpenGL accumulation buffer. 2008-12-04 22:47:26 +00:00
Maxime Curioni
3d07c6c52d fixed OSA and tile rendering problems 2008-12-04 10:57:02 +00:00
Maxime Curioni
89e8fa216f The GL-based renderer was removed. Freestyle now uses Blender's internal renderer to raster strokes.
The render generated from Freestyle's data is currently stored in the original scene's render structure ( as 'freestyle_render'): when the render database is generated, the scene's geometrical data is first imported into Freestyle and strokes are calculated. The generated strokes are used to create a Blender scene, rendered independently. The render result is used in the rendering loop.

The final rendering is performed the same way edge rendering is, in a function ('freestyle_enhance_add') operating on each individual render part. Freestyle strokes are only included if the toggle button "Freestyle" (in the 'Output' panel) is active and if the "Freestyle" render layer is also selected. Freestyle's panel appears when the toggle button 'Freestyle' is active.

IMPORTANT: as of now, rendering ONLY works when OSA is disabled and when Xparts = Yparts = 1. If these settings are not set, a bogus image will be created.

To make the render happen, many modifications had to be made:
- the Canvas::Draw and Operators::create methods no longer render strokes. They only generate shading and locational information. 
- a BlenderStrokeRenderer class was added to turn Freestyle's strokes into a Blender scene. Basically, the scene consists of strokes in their projected image 2D coordinates and an orthographic camera centered in the middle of the corresponding canvas. The scene is rendered using vertex colors, in shadeless mode (therefore, no lamp is needed). BlenderStrokeRenderer uses the old GLTextureManager to load textures (as required by the StrokeRenderer class), even though stroke textures are probably not supported (not tested). After the scene is rendered, it is safely and automatically discarded.
- AppCanvas' code was greatly reduced to the bare minimum. The former AppCanvas would use an OpenGL-based back buffer and z buffer to determine the scene's color and depth information. In the future, this data will be determined from the corresponding render passes. Currently, the integration is not achieved so all style modules using depth/color information are sure to fail.
- before, Freestyle needed an OpenGL context to determine the camera's information and to compute the view map. As of now, the modelview and projection matrices are fully determined using data provided by Blender. This means both perspective and orthographic projections are supported. The AppGLWidget will very soon be removed completely.
2008-12-01 21:30:44 +00:00
Tamito Kajiyama
17555efed7 Added changes to support Python's native iterator protocol in Stroke and StrokeVertexIterator.
freestyle_init.py
* Added a generic getName() method that allows subclasses to omit the method to return their class names.

BPy_Convert.cpp
BPy_Convert.h
* Added to BPy_StrokeVertexIterator_from_StrokeVertexIterator() a second argument to specify the direction (reversed or not) of the iterator to be created.

BPy_Stroke.cpp
* Added support for Python's native iterator protocol.
* Added code to parse the optional argument of strokeVerticesBegin().

BPy_StrokeVertexIterator.cpp
BPy_StrokeVertexIterator.h
* Added support for Python's native iterator protocol.

Stroke.cpp
* Fixed a null pointer reference.

Stroke.h
* Added new method Stroke::strokeVerticeAt(i) that returns the i-th StrokeVertex of the Stroke.
2008-12-01 11:14:33 +00:00
Tamito Kajiyama
a407b65c83 Fixed memory leaks. 2008-12-01 10:49:06 +00:00
Tamito Kajiyama
058b61ecbd Added changes for implementing antialiasing. The OSA settings for the internal
renderer are respected by the Freestyle renderer as well.
2008-11-20 20:42:38 +00:00
Tamito Kajiyama
079de27a8f Renamed arguments rad1 and rad2 in order to avoid name conflicts with symbols
defined in Microsoft SDKs/Windows/v6.1/include/dlgs.h.
2008-11-20 20:41:53 +00:00
Tamito Kajiyama
e77e6dea97 Made changes to enable features line parameters (ridges/valleys and suggestive contours) and add corresponding UI controls to the Freestyle tab in the Scene buttons. 2008-11-09 13:14:41 +00:00
Tamito Kajiyama
c3b12b5066 Fixed a bug in Nature_Type and BPy_Nature_from_Nature() that broke all nature-related functionalities (e.g. pyNatureUP1D() and CurveNatureF1D()). 2008-11-08 23:56:16 +00:00
Maxime Curioni
1db8ac58a3 soc-2008-mxcurioni: merged changes to revision 17246 2008-10-31 20:05:24 +00:00
Kent Mein
25a2753877 This is coverity issue CID: 456
fixes a buffer overrun issue.

Kent
2008-10-31 14:15:35 +00:00
Nathan Letwory
0bd7934be7 * Minimum SCons version is now 1.0.0
- Code has been changed to reflect this (ie. deprecated functions are not anymore used)
* clean up the C and C++ compiler flags mess.
  - in the environment construction of BlenderLib all the compile flag governing options have been split in the *C*, *CC* and *CXX* containing equivalents.
    C is for C compiler only flags. CC is for C and C++ compiler flags and CXX is for C++ compiler only flags.
    All the platform default config files need to be double checked and fixed wherever it looks necessary. Either DIY, or send me a note with needed changes.
  - a start for the BlenderLib parameter list has been made - all the SConscripts need to be checked and modified to hand in flags properly.
* A theeth request: make -jN settable in the config file.
  - I give you BF_NUMJOBS, which is set to 1 by default. In your user-config.py, set BF_NUMJOBS=4 to have 4 parallel jobs handled. Yay.
2008-10-30 23:55:07 +00:00
Nathan Letwory
dca18fc332 * Build aborts when giving options on command-line when WITH_BF_DOCS=True
- make sure epydoc generation doesn't get a fit over options given on scons command-line -> don't use arguments from command-line.
2008-10-30 18:56:20 +00:00
Martin Poirier
00f3021b68 Build fix (C90): Declaration after statement 2008-10-30 16:38:32 +00:00
Brecht Van Lommel
baf98b098c Fix for dependency graph cycle print, regular "Parent" relation was
incorrectly printed as "Curve Parent".
2008-10-30 16:03:38 +00:00
Daniel Genrich
4f39255759 Bugfix for [#17879] Speed vectors/velocity data not working on ALL fluids. 2008-10-30 11:51:15 +00:00
Martin Poirier
35680bbda6 EditVert hash *is* used elsewhere in the code, so just to be safe, use a scratch array instead.
This is actually much safer than juggling values in the tmp union all the time.
2008-10-29 18:57:28 +00:00
Kent Mein
4cee77b822 This is a fix for coverity issue CID: 517
Basically the code was referencing var[-1] it wasn't using it
but also did not need to be set in those cases.  So I moved
the assignments so it skips the -1 case.

Kent
2008-10-29 17:45:02 +00:00
Campbell Barton
22bcbc5742 fix for more disable python defines,
FTOCHAR didnt have brackets around the value. FTOCHAR(a+b) didnt work, FTOCHAR((a+b)) did.
2008-10-29 16:49:51 +00:00
Martin Poirier
481831bd27 merging harmonic-skeleton branch into trunk. All changes are hidden behind a disabled define, nothing to see here 2008-10-28 22:53:48 +00:00
Martin Poirier
4baa2d7800 merge 17206:17211 2008-10-28 20:26:38 +00:00
Campbell Barton
07a1971ced error in DISABLE_PYTHON defines 2008-10-28 20:19:25 +00:00
Campbell Barton
ac4ff83ca6 added scons option BF_WITH_PYTHON (defined as DISABLE_PYTHON) 2008-10-28 18:47:13 +00:00
Martin Poirier
025e4b046a merge 17122:17206 2008-10-28 18:47:01 +00:00
Martin Poirier
d1e90606c7 Add compile time define to disable skeleton generation and retargetting UI (disabled by default).
This is done to make merging make in trunk painless.
2008-10-28 18:33:53 +00:00
Kent Mein
705a248c75 Updated cmake so it has the option to use WITH_DDS
Kent
2008-10-28 18:33:34 +00:00
Campbell Barton
c71430d072 bpy access to image premul was missing. 2008-10-28 02:03:13 +00:00
Ken Hughes
5cd569ed0e Python API
----------
Bugfix #17911: Mesh.getFromObject() incorrectly decremented the mesh's
material user refcount when the material was linked to the object.
2008-10-28 00:01:20 +00:00
Campbell Barton
2e96728843 face transp option CLIP wasnt added to the py api.
added gameObject.replaceMesh(meshname)  - needed this for an automatically generated scene where 100's of objects would have needed logic bricks automatically added. Quicker to run replace mesh on all of them from 1 script.
2008-10-27 15:47:58 +00:00
Brecht Van Lommel
71260b6603 Fix for crash reading a peach file, chubbychestnut.blend. A do_versions
conversion was reading the mtex array in a library linked material. It
is however not guaranteed that direct_link_* was called  on the material
yet, so the array pointer is not always valid and it can crash.
2008-10-27 15:22:55 +00:00
Joshua Leung
780a5438a2 Bugfixes:
* #17900 - IK Constraint was not included regardless of what Visual-Keying method was used
* Deleting a Bone Group now corrects indices of those groups that occurred after the one that was deleted
* No more click-a-mania - Delete all vertex groups from a Mesh (Ctrl-Shift-G menu)
2008-10-26 09:41:59 +00:00
Campbell Barton
0dc22dc65e fix for [#17895] Python-generated Curves can't be beveled
radius and weight's values were not initialized for nurbs curves

for 2.48a just use set radius from curve specials menu to work around this.
2008-10-26 08:06:48 +00:00
Ton Roosendaal
f005bb1a2a Missing NULL check causes crash on Ikey when no active object.
Error is bad enough to go for a retag... hrmf!

Report from Ernesto (der|kunstler) Mndez in irc. Thanks a lot!
2008-10-22 16:13:30 +00:00
Ton Roosendaal
fbecf0cadc New splash c file (now gimp png) and bumped version to 2.48.1 to make it
even a bit more clear.

After this commit we'll tag svn (gasp!) and then go build!
2008-10-22 11:50:12 +00:00
Nathan Letwory
2ecf987dc6 * Minor cleanup of SCons files
- cleanup of boolean usage - use True and False now instead of 'true'/'false' or 0/1
- changed SConscripts accordingly
2008-10-22 11:28:10 +00:00
Campbell Barton
688cc11302 added an option for python Draw.UIBlock(func, mouse_exit) so moving the mouse outside the popup wont close it.
Stops FBX Export and OBJ I/O from flickering a lot.
2008-10-22 08:21:43 +00:00