Commit Graph

53000 Commits

Author SHA1 Message Date
Brecht Van Lommel
b129ccf000 Pose Bone "Local Location" option. This is enabled by default, disabling it
puts the bone location in pose space rather than local bone space.
2009-11-25 14:59:02 +00:00
Brecht Van Lommel
077edbb384 Sculpt: external file storage for multires
* This is experimental, the file format may change still!
* Helps reduce memory usage, keeps .blend files smaller, and makes
  saving quicker when not editing multires.
* This is implemented at the customdata level, currently only the
  multires displacements can be stored externally.

ToDo

* Better integration with object duplication/removal/..
* Memory is not yet freed when exiting sculpt mode.
* Loading only lower levels is not supported yet.
2009-11-25 14:27:50 +00:00
Brecht Van Lommel
436969ce49 Sculpt: Fast Navigate option for multires. This will show the lowest multires
level when rotating/panning/zooming the viewport, and only draw the full thing
at the end, to make the viewport more interactive.
2009-11-25 14:13:43 +00:00
Brecht Van Lommel
fffce6c554 Sculpt: Multires
* Displacement coordinates are now stored differently, as a grid per
  face corner. This means there is duplication of coordinates, especially
  at low subdivision levels, but the simpler implementation justifies it
  I think.
* ToDo: conversion of existing multires files (2.4x or 2.5x), loading them
  may even crash now.
* Editmode preservation/interpolation code also has not been updated yet.

* Multires now works on the CCGDerivedMesh grids instead of CDDerivedMesh,
  which should be more memory efficient.
* There are still bad memory peaks (if you're using 32bit) when subdividing
  or propagating displacements. Though at least there should be no huge
  memory blocks allocated, which windows is now to have trouble with.
* Still found some weird spike artifacts at lower multires levels, some also
  happening before this commit. Perhaps computation of tangents needs to be
  tweaked more.

* Multires modifier now has viewport, sculpt and render levels. Also the
  levels have been made consistent with subsurf, previously the same level
  of subdivision was one less for multires.
* Both multires and subsurf modifier now can have their subdivision level
  set to 0 for no subdivision.
2009-11-25 14:07:12 +00:00
Brecht Van Lommel
134935a8db Sculpt: Grid based PBVH
* PBVH can now be created contain both from face grids or standard
  meshes. The former is much quicker to build for high res meshes.
* Moved some drawing code into pbvh (mostly for the frustum test).
* Moved ray intersection code into pbvh.
* GPU buffers also can be built from either mesh or grids now.
* Updated sculpt code to work with this. The ugly part is that there
  is now a macro for iterating over vertices, to handle both cases,
  and some duplicated code for e.g. undo.
* Smooth brush does not work yet with grids.
2009-11-25 13:40:43 +00:00
Brecht Van Lommel
a1bf207be3 Sculpt: Subsurf
* Now uses the CCG DerivedMesh also in object mode, used to be edit mode only.
* Create CD_ORIGINDEX layer on demand, to save memory.
* Removed ss_to_cdderivedmesh function, and instead create ccgdm and then
  convert that to cddm, to avoid code duplication.
* Added and implement DerivedMesh interface functions to obtain face grids.
* Store edge/face flags more memory efficient.
* Export CCGDerivedMesh struct in BKE_subsurf.h
2009-11-25 13:11:44 +00:00
Brecht Van Lommel
90cc7c8abd Sculpt: CCGSubsurf new functions to update normals, update subdivision
levels, copy coordinates from face grids, and stitch together face grids.
2009-11-25 12:27:21 +00:00
Brecht Van Lommel
9a31f37d19 Sculpt: math lib functions
* swap v2/v3
* multiply-and-add (madd) v3
* inline v3 short/float conversion
2009-11-25 12:04:11 +00:00
Joshua Leung
6c881a7a6d AnimSys - Transform Locks + RNA:
The Animation System now respects the Transform Locks too (i.e. lock x-location, etc.) when writing settings. This means that it is no longer necessary to set up "constant drivers" to make sure some values don't get accidentally animated. 

Internally, added a new callback for properties in RNA, which is responsible for checking if the item at some array-index is editable. This needs to be manually called for each place which uses rna to set settings for arrays (see the code changes in anim_sys.c for changes how to do this; the same thing needs to be done in the UI code too, and probably in py-api too)
2009-11-25 12:00:31 +00:00
Campbell Barton
4c5b430520 ED_armature_edit_bone_remove wasnt clearing references from other bones, only affects rna api access 2009-11-25 11:47:53 +00:00
Campbell Barton
b40307df16 add access to bone add/remove from rna. eg.
bone = arm.edit_bones.new("SomeBone")
 arm.edit_bones.remove(bone)

regify (WIP)
2009-11-25 11:05:11 +00:00
Brecht Van Lommel
50e3bb7f5f RNA: FModifier generator coefficients wrapped, implemented by Campbell. 2009-11-25 10:39:02 +00:00
Campbell Barton
c410a0e855 rna py api,
generic rna function driver_add(), now returns the driver added (or a list of drivers if all channels are set)
2009-11-25 10:13:24 +00:00
Joshua Leung
802779eb2d Assorted fixes - compile + drivers:
* Fixed a few compile warnings for scons+mingw
* Driver variables are now added with the ID-type set to ID_OB (objects) by default since this is more convenient
2009-11-25 09:25:58 +00:00
Matt Ebb
ce4b63aa3f Fix for [#20008] In the Graph Editor, clicking on the eye doesn't update the GUI
As part of this, fixed a typo in rna flags which was causing some strange behaviour with icons earlier. Reverted the workaround for this, too.
2009-11-25 08:28:57 +00:00
Guillermo S. Romero
7b6bc0225d Add guardealloc for RAS_MeshObject.cpp (and clean whitespace). 2009-11-24 23:24:56 +00:00
Benoit Bolsee
5b722b1e87 BGE: replace mesh works for Soft Body (including reinstantiation of physics soft body mesh).
Even a static mesh can be used as replacement: the mesh
will be instantiated with the soft body settings of the
object. The position and orientation of the soft body
is preserved after the replacement.

Known limitation: the velocity of the soft body is reset
aftet the replacement. This is because soft body don't
have a well defined velocity.
2009-11-24 22:44:29 +00:00
Campbell Barton
6c55047b40 disallow dynamic sized rna arrays to be returned as mathutils types since it gives unpradictable results if in one case it returns a vector and another a rna float array. 2009-11-24 20:15:24 +00:00
Campbell Barton
dcd1642121 RNA api
- EditBone was missing 'selected'
- renamed 'selectable' to --> 'restrict_select', matching object mode.
- renamed 'active_pchan' --> 'active_pose_bone'
2009-11-24 17:12:32 +00:00
Campbell Barton
f28975dbc4 avoid operator type lookups when its known 2009-11-24 16:19:15 +00:00
William Reynish
d2c999020c Updated icons. Thanks to jendrzych.
Adds icon entries to the force fields.

Also reverted last menu naming commit - this is apparently due to a bug in the Python API that will be fixed.
2009-11-24 15:40:56 +00:00
Campbell Barton
89f9d3873d bugfix [#19983] clicking onto normal input of a material node crash
actually happened when clicking on any input
2009-11-24 14:03:29 +00:00
Brecht Van Lommel
284f66acf7 Fix for last commit, forgot to update collada. 2009-11-24 12:35:06 +00:00
Campbell Barton
ff5276b0ce - use a generic bone class so all 3 bone types (Edit/Pose/Armature) - can have the same utility functions, length, parent_recursive, parent_index(), etc
- change the wiki url to avoid redirects (from Luka)
- removed pose prefix from pose_head/pose_tail/pose_matrix
2009-11-24 11:58:49 +00:00
Brecht Van Lommel
2e7dbdf025 Depsgraph/Drivers
* Removed ED_anim_dag_flush_update and ED_anim_object_flush_update. These
  were wrapping DAG_* calls and were intended be used instead of them when
  doing a DAG update from editors. That goes against the design in my opinion,
  no matter who calls the DAG, that should update the editors correctly, so
  any special checks in such functions for editors should be avoided.

* Driver RNA properties now do updates again, including DAG scene sorting,
  text buttons no longer update as you type anymore, so this should be
  safe I think.

* Remove scene.update() RNA function, all properties/functions should do this
  automatically, if changing some property or calling a function/operator
  does not do the correct update, that should be fixed.
2009-11-24 11:48:16 +00:00
William Reynish
397b52bdc7 Removed split region operator. This was only for tests, and was not recoverable. 2009-11-24 11:40:35 +00:00
William Reynish
96b6f32c54 Made render quality settings proper percentages. 2009-11-24 10:55:52 +00:00
Joshua Leung
0f280e631f Spline IK Bugfix:
"Y Stretch" option was broken in UI due to mismatch between RNA and scripts.
2009-11-24 09:55:41 +00:00
Campbell Barton
d55ac4da2b - added rna api function scene.update(), needed for rig generation to update driver deps
- removed some warnings
2009-11-24 09:24:32 +00:00
Joshua Leung
85301a57bf Bugfix for Parenting to Bones:
Reshuffled the code a bit so that the parent-type gets set before the parent inverse matrices are calculated.

Thanks to Claas Eicke Kuhnen (cekuhnen) on Blender Artists for catching this.
2009-11-24 05:57:47 +00:00
Martin Poirier
2597d49664 Extend handler return values to distinguish between events that have been handled and passed through and those that haven't been handled at all.
This also solves a bug with Click event (not visible with keymaps that use Click in default)
2009-11-24 05:03:44 +00:00
Martin Poirier
4dd78dcbdf Made select operator return FINISHED only when it did something (only PASSTHROUGH otherwise) 2009-11-24 04:59:52 +00:00
Martin Poirier
1c4599522c Add CLICK to keymap RNA 2009-11-24 04:30:24 +00:00
Joshua Leung
04c68559bb Keyframing Operator Tweaks for Durian:
* Insert Keyframe (IKEY) now only shows the menu requesting to choose a KeyingSet to use if there is no active KeyingSet. To get the old behaviour, the "always_prompt" boolean property for the "ANIM_OT_insert_keyframe_menu" operator should be supplied.

* After inserting/deleting keyframes without the menu, a popup menu confirming that the keyframes have been modified is shown. Please note that you do not need to click on this popup.

TODO:
Make the confirmation popup fade out after a fixed time.
2009-11-24 04:21:32 +00:00
Roland Hess
d594320c7f RNA update -- added RNA and functions for dealing with the clone UV layer for projection painting. This is just the guts -- someone smart can hook up the UI. 2009-11-24 00:56:52 +00:00
Campbell Barton
e968017951 - new pyrna api functions srna & prop path_to_id(), useful when setting driver target paths.
This means you can have a pose bone for eg and get the path...
   pose.bones["Bone"]
 uses rna internal functions, so will work for sequence strips etc.

- StructRNA.get(), used for getting ID props without exceptions...
 val = C.object["someKey"]
 or..
 val = C.object.get("someKey", "defaultValue") # wont raise an error

- change rna property for testing if rna props are editable, test the flag rather then calling the function since the function depends on blenders state.

- fix a python exception with the ID-Property popup UI (when editing in more then 1 step)
2009-11-23 23:17:23 +00:00
Campbell Barton
b7d717cead added a function to duplicate bPoseChannel's internal data - constraints, id-props etc.
duplicate_pose_channel_data(), the code to do this was inline in editarmature.c

duplicating editbones now duplicates posebone id-props

also removed an if test for &channew->constraints since it will always be true.
2009-11-23 23:03:04 +00:00
Brecht Van Lommel
af1f542367 2.5 bugfix: splash would crash when .Blog contained file names without a
slash in them. Also removed the ctrl+alt+f1 shortcut key, was for testing.
2009-11-23 20:06:09 +00:00
Campbell Barton
052290d2b3 fixed some error reporting issues with calling operators 2009-11-23 18:08:42 +00:00
Campbell Barton
4c03ce9100 fix for crashes displaying long strings in menu's 2009-11-23 17:55:52 +00:00
Campbell Barton
1c806f6bb4 workaround for an error with BKE_reportf (actually BLI_dynstr_vappendf)
fixes a crash that happens when formatting a python exception into a report. - for now use pythons string formatting function.

happens when running the simple operator template so not sure if its worth re-tagging :S
2009-11-23 17:36:44 +00:00
Martin Poirier
2dac330ac0 Remove forced sse compile flags on render for linux. This is very bad.
Use user flags instead.
2009-11-23 17:12:15 +00:00
Brecht Van Lommel
53667cc693 2.5 bugfix: 3d view zoom operator delta had wrong range. 2009-11-23 17:07:30 +00:00
Campbell Barton
4cac7c88aa bugfix: uninitialized values 2009-11-23 16:58:24 +00:00
Brecht Van Lommel
fe14b6d544 2.5 bugfix: transformation constraint values did not have correct range. 2009-11-23 16:53:29 +00:00
Martin Poirier
d1f314a217 New CLICK event value. If RELEASE is not handled and last event was PRESS of same type, redo handlers with CLICK value (this means you can "click" key events too).
Leftmouse+Ctrl to extrude now mapped to Click instead of Release. Release was used to avoid conflict with lasso, but it isn't safe with modal operators that use Press to confirm (subsequent Release then extruded). Click is semantically closer to what we want here.
2009-11-23 16:24:28 +00:00
Campbell Barton
190de2b664 remove F7 for running test.py, was useful when we had a py api but not text editor :)
this gets rid of F7 next to all the presets
2009-11-23 15:22:23 +00:00
Campbell Barton
f4d3ce197b links to Python API docs from splash and help menu 2009-11-23 15:20:56 +00:00
Campbell Barton
a2c0f3dac4 missing include for memset() 2009-11-23 15:08:42 +00:00
Ton Roosendaal
6b56738089 2.5 alpha0 splash image, by david revoy!
Now will check if we can call for ahoy...
2009-11-23 14:51:50 +00:00