Commit Graph

7971 Commits

Author SHA1 Message Date
Tamito Kajiyama
993ded0aff Replaced missing integrateDouble() by integrate() newly implemented
in revision 21954.
2009-07-28 00:34:22 +00:00
Thomas Dinges
09fd0a5e48 2.5 Part 1 of Layout Code Cleanup:
* Again, some layout code cleaning. 
* Made assignments more consistent. 

I started to write code guidelines in the wiki:
http://wiki.blender.org/index.php/LayoutFiles-Code_Guidelines

Matt/William: You are welcome to change them or add new infos, I will continue on improving them as well in the next few days.
2009-07-27 20:39:10 +00:00
Tamito Kajiyama
9f79d8ae67 * freestyle_init.py: Removed all classes for wrapping extension types.
This allows users to test the types of those objects that are returned
by API functions, by means of usual Python idioms such as "type(I) is T"
and "isinstance(I, T)".

* Removed all occurrences of ViewVertex::castToTVertex() in the following
modules and rewrote the code segments using it by means of the "type(I)
is T" idiom mentioned above:

  ChainingIterators.py
  PredicatesU1D.py

* Replaced all occurrences of vector.Vec2, vector.Vec3, Vec2f and Vec3f
by Blender.Mathutils.Vector in the following modules:

  anisotropic_diffusion.py
  Functions0D.py
  shaders.py
  sketchy_topology_broken.py

* shaders.py: Fixed NameError's concerning math.pow().

* shaders.py: Added a Python equivalent of getFEdge function, defined
in source\blender\freestyle\intern\view_map\Functions0D.cpp as follows:

  FEdge* Functions0D::getFEdge(Interface0D& it1, Interface0D& it2) {
    return it1.getFEdge(it2);
  }

* shaders.py: Replaced fe.qi() by fe.viewedge().qi().

* contour.py: Fixed the import statement for freestyle_init.py.
2009-07-27 20:13:47 +00:00
Campbell Barton
eb40d8ef0f render api utility function to initialize a render layer from an image rather then loading through python.
lay = result.layers[0]
	lay.rect_from_file("somefile.png", part.x, part.y)

If the source image is bigger then the render layer x/y offsets can be used to choose the part of the image use.
2009-07-27 18:50:10 +00:00
Campbell Barton
9dc819a56d readonly face normal option eg.
me.faces[0].normal
2009-07-27 18:17:21 +00:00
Andrea Weikert
cbb9dfaab8 2.5 file browser
* operator for create new directory activated (IKEY)
* operator for rename (works on files and directories so far) (CTRL+LMB)

Note: fail to rename is rather quiet, no message popup, just doesn't rename if it can't.
So far checked that (On Windows Vista) rename fails on system directories, which I think acceptable.

Note: I removed the code that (silently) deletes file if I rename file to an existing one. Considered harmful :)
2009-07-26 18:52:27 +00:00
Campbell Barton
4741137fc9 misc py/rna changes
- running a script from a file now uses the PyRun_File(FILE *, ...) rather then PyRun_String("exec(open(r'/somepath.py').read())"...), aparently FILE struct on windows could not ensured to be the same between blender and python, since we use our own python on windows now it should be ok.

- generating docs works again (operator update for py style syntax broke them)

- python operator doc strings was being overwritten

- added rna property attribute "default" to get the default value of a property, not working on arrays currently because variable length arrays are not supported.
2009-07-26 18:18:14 +00:00
Thomas Dinges
b666f55e0e 2.5 Layout files:
* Removed __idname__ from all panels. 
Note: Operator classes still need that id. Don't remove it there.
2009-07-26 16:31:48 +00:00
Joshua Leung
4e024a1e6e 2.5 - 'Reset' buttons for Limit Distance and Stretch To Constraints 2009-07-26 11:57:27 +00:00
Thomas Dinges
3e5f46ebf9 2.5 Various fixes:
* Small code and layout cleanup in 3DView Side Panels.
* Added missing redraw notifier for changing world datablock and cursor location.
2009-07-26 08:53:23 +00:00
Campbell Barton
a934773475 - console scrollback userpref
- copy coperator for the console (Ctrl+C and from the menu)
2009-07-26 04:31:46 +00:00
Campbell Barton
117fdd8072 * projection paint options in the toolbar
* renamed  __no_header__ -> __show_header__
2009-07-26 03:54:17 +00:00
Brecht Van Lommel
756488fbe2 2.5: Painting
Various fixes for painting, sculpting and particle edit, still
much to be done...

* Move RNA paint and sculpt structs into rna_sculpt_paint.c,
* Added Particle Edit RNA.
* Some tweaks to existing Paint RNA.

* Put texture paint and particle edit object in context.

* Fix some errors in the brush layout, properly doing None
  checks, fixing some wrong property identifiers.
* Added tool enum for texture paint and particle edit in panels.

* Allow editing brush textures in the texture buttons, still with
  a stupid toggle, ideas for how to make the connection better are
  welcome.
2009-07-25 22:31:02 +00:00
Brecht Van Lommel
5d240af42b 2.5: fix for use background image toggle in 3d view, it didn't
allocate the right data.
2009-07-25 22:22:47 +00:00
Thomas Dinges
c543eca36e 2.5:
* Fixed a typo in User preferences. 

* Add a use_ prefix for some projection paint booleans in RNA.
2009-07-25 21:33:43 +00:00
Brecht Van Lommel
eb80ce4d7f 2.5: Materials
* Diffuse/specular ramps works again.
* Wire is now a material type next to Surface and Halo.
* Removed Volume material type option until it is actually there.
* Some button layout tweaks.
2009-07-25 21:31:17 +00:00
Campbell Barton
1b14243405 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r20937:21899
missing commits from peter 20942, 21165, 21170, 21174, 21597
these files still need manual merging

source/blender/makesdna/DNA_sequence_types.h
source/blender/src/sequence.c
source/blender/src/seqeffects.c
source/blender/src/editseq.c
source/blender/include/BSE_sequence.h
2009-07-25 20:59:09 +00:00
Thomas Dinges
90a08b1c78 2.5: Object Buttons File:
* Renamed the file for consistency.
2009-07-25 19:59:18 +00:00
William Reynish
a13341bed1 Added Ztransp (renamed Z Buffer) option in rna and layout. Also added diffuse and color ramps, although a bug in the RNA prevents these from working unless you load an old file with them already enabled. 2009-07-25 12:22:22 +00:00
Thomas Dinges
5815cfd53b 2.5 Smooth/Flat Shading:
* Added operators in Toolbar for Object Mode too. (Mesh only).
I think it should be there too, going into edit mode and select all just to change the shading of the whole mesh is not good. ;-)
2009-07-25 10:42:23 +00:00
Joshua Leung
020a34b9de 2.5 - Restored most of the remaining Armature/Pose Operators
* Armature:
- added: fill, merge, separate
- renamed: duplicate, align

* Pose:
- added: apply pose

* Armature Edit menu has been converted to use operators/layout now
2009-07-25 05:11:28 +00:00
Campbell Barton
f7b90c0f41 - report header buttons were not drawing.
- shift+b in the console would do border zoom (rather then upper case B), fixed by making v2d's border zoom check if the v2d's zoom is locked.
- blender in debug mode registers all operators, useful for testing.
2009-07-24 23:07:18 +00:00
Thomas Dinges
a93619a8c4 2.5 3DView View Panel:
* Added Lines option.
* Made some settings use alignment. 

Logs: Of course i meant 4-Split in last commit message ;-)
2009-07-24 22:33:09 +00:00
Thomas Dinges
a1403f7fbb 2.5 3DView Properties Panel:
* Some Code cleanup.
* Added 3-Split Operator into the panel and some options (which don't work yet)
* Added RNA for RegionView3D lock and box options.
2009-07-24 22:09:30 +00:00
Thomas Dinges
4f3ee918c1 2.5 3DView Toolbar:
* Some Code and tiny layout cleanup.
2009-07-24 21:01:41 +00:00
Brecht Van Lommel
f24bcac43e 2.5: Various Fixes
* Fix crash loading particle AnimData. This crashed many BBB
  files. If you have a .blend file that crashes when loading
  it in 2.5, please mail me, I'd like to know.

* Image window zoom ratio did not work correct with py 2.x.
* Other minor fixes for image window RNA.

* Buttons window now remembers the tab that was last clicked
  by the user, even if that tab is no longer available due
  to context, and then enable the tab again if the context
  for it is back.
* Cleaned up buttons space DNA a bit, removing unused vars.

* Armature bone rename outside edit mode did not call right
  function yet.
* Armature layers are now editable even if lib linked. This
  is useful for proxies. For this purpose a PROP_LIB_EXCEPTION
  flag was added. Need to think over proxy / RNA a bit though,
  not sure what the requirements are yet.
* Parent to Armature Deform now has options to create vertex
  groups, instead of always creating them.
2009-07-24 16:41:12 +00:00
William Reynish
ad6aaeb319 Resized the preferences window to 800 px. This makes proper space for the header button text. Merged File Paths and Autosave preference tabs to one 'File' item. This makes the number of items inside the tabs more even and makes text in the tabs easier to read when the window is narrower.
Also added weight paint ramp.
2009-07-24 14:30:40 +00:00
Arystanbek Dyussenov
d63d703842 - added operator for OBJ importer plus some python 3 conversions 2009-07-24 14:26:47 +00:00
Ton Roosendaal
2f8a19e5bc 2.5
Related to previous commit:
- new file menu option "user prefs"
- removed 'save user pref' confirmation menu
2009-07-24 12:45:25 +00:00
William Reynish
bd628d9c0c UI
Added cursor location to the view panel in 3D view. 

Removed the Shade Smooth/Flat buttons from mesh data for two reasons:  

These kinds of tools are more appropriate in the tools area, and the context would not always match the selected datablock, if you have multiple objects selected, or if you're viewing the mesh data tab in 'pinned' mode.
The shade smooth/flat buttons are in the edit mode tools area now.
2009-07-24 11:48:45 +00:00
William Reynish
87f3ba8a80 Toolbar
Improved the brush tools UI and added a bunch of brush controls. There seems to be some RNA magic missing for texture paint to work, so that's empty for now. Added tablet pressure buttons, which needs a new icon.

Added a bunch of tools in a categorized fashion for all edit modes. Need to figure out what to do for vert/edge/face specific tools - perhaps it could detect the mode setting and show most appropriate tools for each mode.
2009-07-24 11:14:59 +00:00
Brecht Van Lommel
366a64959c 2.5: Render/Game Engine
An engine to use for output can now be selected an influences what
shows in the buttons window, only showing relevant data. The idea
behind this is to make it more clear what is supported where, make
the system more pluggable for external render/game engines, and save
space hiding stuff that is not relevant anyway.

* Top header now has an engine menu, to choose between the blender
  render engine, game engine, and other future external engines.
* If the game engine is enabled, the buttons window should show
  only properties that work in the game engine, and similarly for
  the render engine.
* Moved panels from the logic space and game tabs to the physics,
  scene and world tabs instead, and removed the game tab.
* Materials and textures tabs should eventually become game
  specific too, to better show what is supported.
2009-07-23 21:50:40 +00:00
Brecht Van Lommel
1ee8038e41 2.5: Top Menu
* Clean up File menu, added back recover last session op.
* .blend compress now behaves a bit different, previously
  it would only respect the user preference. Now it saves
  existing files the same way they are saved, and new files
  following the user preference. The save operator has a
  Compress toggle in the file browser left panels now.

* Add menu working again, some fixes to make these operators
  work outside the 3d view were needed.
* Timeline menu removed, its contents will be moved to the
  timeline header menus.
* Game menu can now start game, changed the start game op
  to choose another 3d view if none is available.
* Render menu has a few items now.
* Help menu contains a few links again.
2009-07-23 21:35:11 +00:00
Brecht Van Lommel
062b1b88ad 2.5: Various
* Buttons header: made tab buttons bigger, remove view menu,
  replaced by RMB menu in main region.
* Timeline header: tweak button placement and alignment, added
  a play reverse icon.
* Window type chooser menu: removed audio and scripts windows,
  change console and logic icons.
* Node space: disable the channel region until it is used.
2009-07-23 20:40:51 +00:00
Arystanbek Dyussenov
d8f4ab2d59 API:
- freeing strings returned by RNA struct functions in RNA_parameter_list_free

Unit tests:
- check that BKE_export_image actually creates a file. This test is becoming dangerous: it creates and deletes files under /tmp.

Having written this complicated test function I now realize it's much easier to write tests in a scripted language, which gives more 
freedom in expressions and need not be compiled.
2009-07-23 15:57:30 +00:00
William Reynish
580b527854 Various layout tweaks. Improved game buttons, made minor adjustments to lamp, scene and fluids. 2009-07-23 14:35:20 +00:00
Arystanbek Dyussenov
c96041628e API:
- replaced BKE_copy_images with BKE_export_image, now it handles only one image at a time, this is better since for exporters it is 
easier to export one image at a time writing new image path to a file
- exposing BKE_export_image in RNA as Image.export, interestingly, RNA allowed me to define a function with PROP_STRING return type 
although it doesn't free memory, will fix that in the next commit
- removed bpy.util.copy_images

Unit tests:
- re-wrote a test for BKE_export_image, it's more compact now
- moved unit tests to the creator module to avoid another executable, now running tests with `blender --test`
- as before, unit tests are built only if WITH_BF_UNIT_TEST is non 0
2009-07-23 12:55:26 +00:00
Campbell Barton
712298abd2 autocomplete wasn't working 2009-07-23 12:31:45 +00:00
Janne Karhu
17a9b3e44c External cache
Particle point cache can now be loaded from external files.
- Activated by "external" checkbox in cache panel and giving proper folder path and file name identifier.
- External cache panel has controls for particle emission start, end, lifetime and random lifetime. These should be set according to the external data for correct playback.
- External files should be named "identifier_frame_index.bphys" or "identifier_frame.bphys" where:
	* "identifier" is a freely choseable name.
	* "frame" is the cached frame number.
		** Six digits padded with zeros!, for example "000024".
	* "index" can be used to tell caches with the same identifier apart.
		** Two digits starting from zero.
		** The index and the underscore before are optional. If no index is present the index number in ui should be set to -1.
- Cache file format is pure floating point numbers (in binary, not text!) with each particle's data one after the other with the following data members:
	* 3 floats: particle's location vector
	* 3 floats: particle's velocity vector (per second)
	* 4 floats: particle's rotation quaternion
	* 3 floats: particle's angular velocity vector (per second)
	* 1 float: frame of the actual data (this can be non-integer for particles that are born or die between two integer frames, but otherwise should be the same as the "frame" in the file name)
- Cache files don't have to exist for each frame.
	* Frames without actual data are interpolated from surrounding frames that have data (extrapolation is not supported).
- Cache file formats with extended (or reduced even) data members are in future plans for easier usage.
- Current code only does particles, don't yet know if it's applicable to cloth or sb.
- Known issue: endianness can't yet be handled in any way.

Other changes:

New hard limits for many particle parameters. Some examples:
- Maximum amount of particles: 10M particles :) And before you all go and crash your Blender trying this out remember that this limit is only for those freaks who really have the machine power to handle it. 10M particles alone take around 2.2 Gb of memory / disk space in saved file and each cached frame takes around 0.5 Gb of memory / disk space depending on cache mode.
	* Known issue: To actually use this many particles they most likely need to be allocated in parts as taking hold of a 2.2Gb chunk of memory at once is probably not ok with any operating system.
- Maximum amount of children: 100k children/particle (1T childparticles here we come :D)
- Kink frequency: -100k to 100k half-rotations (really strange the previous limit was only from zero upwards)
- Path draw steps: 10 (power of 2 remember)
- Path render steps: 20 (power of 2 also!! If over 1M segments doesn't get you smooth paths then I think nothing will!)
2009-07-23 00:19:01 +00:00
Arystanbek Dyussenov
00e219d8e9 FBX exporter:
- made an operator with props for UI. UI is still "raw"
- ran 2to3 on export_fbx.py to make it python 3-compatible

Next: testing/fixing.
2009-07-22 13:35:02 +00:00
Joseph Eagar
69327f2ebd merge with trunk at r21785, and also fixed stupid ngon normals bug 2009-07-22 02:57:40 +00:00
Brecht Van Lommel
c354ea0ef1 2.5: Render
This adds a RenderEngine type to RNA, which can be subclassed
in python (c++ will follow once we support subclassing there).
It's very basic, but plugs into the pipeline nicely. Two example
scripts:

http://www.pasteall.org/6635/python
http://www.pasteall.org/6636/python

Issues:
* Render runs in a separate thread, and there is unrestricted
  access, so it's possible to crash blender with unsafe access.
* Save buffers and full sample are not supported yet.
2009-07-21 20:28:32 +00:00
Campbell Barton
e4b7997277 py console wasnt working since r21743 2009-07-21 15:52:15 +00:00
Brecht Van Lommel
0b49dc77de 2.5: Bump Mapping
Patch by Alfredo de Greef. Considerably improves the quality of bump
mapping, and texture filtering for displacement and warp too. Mainly
this is achieved by getting the texture derivatives just right in
various cases, many thanks to Alfredo for figuring this one out, works
great.


This is enabled by default now, but disabled still for existing
textures to preserve backwards compatibility. Can be enabled with
the "New Bump" option in the material texture slot in the outliner.

Also, I made the range for the normal factor a bit smaller since this
gives stronger effects, but note that you can still type in larger
values than the slider allows.
2009-07-21 13:46:49 +00:00
Brecht Van Lommel
e3c6ae9b89 2.5: Texture Filtering
Patch by Alfredo de Greef with high quality image texture filters.
This adds 3 new filters:

* SAT: Summed Area Tables. This is like mipmaps, but using somewhat
  more memory avoids some artifacts.
* EWA: Ellipitical Weighted Average, anisotropic filter.
* FELINE: Fast elliptical lines for anisotropic texture mapping.

The one change I made to this was to try to fix an alpha/premul
problem, hopefully I didn't break anything, it looks compatible
with the existing filter now for me.
2009-07-21 13:20:35 +00:00
Brecht Van Lommel
e56287bfc9 2.5: Texture Buttons
* World and Lamp previews now working here too.
* Experiment with list template, showing only icons. Unfortunately
  texture icon render crashes combined with preview render so it
  shows all icons the same.
* Influence panels updated, with slider for each option. The values
  are still linked though, will fix that later.
* Image texture controls a bit more complete, still WIP.
* Color ramp back.
2009-07-21 12:57:55 +00:00
Joshua Leung
7284eb6d91 2.5 - More work on Bone Groups
* Added a new UI Template for the 3-colour picker used to visualise + select the custom colours for a bone group.

* Finished wrapping the colour properties for Bone Groups in RNA. Although changing the colour-set used will change the displayed/cached colours, changing the colours via the colour wells will not change the colour set to 'custom' (as per 2.4x) yet. This needs a nice solution...

* Fixed context-related bugs with the Assign/Remove operators for bone groups. These were using context-iterators for selected posechannels, but that was only defined/valid for the 3d view (but not for the buttons window), hence a failure in that case.
2009-07-21 12:38:01 +00:00
Arystanbek Dyussenov
122d392fef Merge with 2.5 -r 21619:21756. 2009-07-21 12:13:56 +00:00
Joshua Leung
6d074526f2 2.5 - Restoring Bone Groups
* Added Bone Groups UI to 'Armature' context buttons for now. Later, it may be more convenient to have these with bones instead?

* Added operators for the operations that can be performed on these groups. Moved the core adding/removing functions to blenkernel so that they can be used elsewhere in future if need be.

* Properly wrapped bone groups in RNA. Copied the way that Vertex Groups are wrapped, since they share some similarities. Setting colours for bone groups still needs more work though.
2009-07-21 10:18:08 +00:00
William Reynish
5cd5e85143 Cleaned up logic buttons in logic space slightly.
Moved Shade Smooth/Flat from Mesh obdata panel to tools area. These kinds of operator tools aren't really allowed in the buttons window anymore - whole point of new tools area :)
The only operators that are allowed in buttons window are things that act on the RNA fields, like add/remove buttons for adding vertex groups etc.
2009-07-21 09:35:39 +00:00