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
AgeCommit message (Collapse)Author
2014-03-01Code cleanup: comment unused code in calchandleNurb_internCampbell Barton
Also remove outdated comments.
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-27Curves: save active point to fileKevin Mackay
Changed curve active point from pointer to index. Allows curve active point to be saved to file and retained between modes for free. Also some small optimisations by removing pointer look up code. - Made active point access functions into BKE API calls. - Fixes operators where curve de-selection resulted in unsel-active point. - Split curve delete into 2 functions
2013-12-23Fix for converting unfilled 3d text into a meshCampbell Barton
2013-12-13Curve Handle Recalculate (Ctrl+N)Campbell Barton
T37799 Patch from Simon Repp with added option to recalculate handle lengths.
2013-12-11Move curve's boundbox and texspace calculation out of modifier stackSergey Sharybin
There were several issues with how bounding box and texture space are calculated: - This was done at the same time as applying modifiers, meaning if several objects are sharing the same curve datablock, bounding box and texture space will be calculated multiple times. Further, allocating bounding box wasn't safe for threading. - Bounding box and texture space were evaluated after pre-tessellation modifiers are applied. This means Curve-level data is actually depends on object data, and it's really bad because different objects could have different modifiers and this leads to conflicts (curve's data depends on object evaluation order) and doesn't behave in a predictable way. This commit moves bounding box and texture space evaluation from modifier stack to own utility functions, just like it's was done for meshes. This makes curve objects update thread-safe, but gives some limitations as well. Namely, with such approach it's not so clear how to preserve the same behavior of texture space: before this change texture space and bounding box would match beveled curve as accurate as possible. Old behavior was nice for quick texturing -- in most cases you didn't need to modify texture space at all. But texture space was depending on render/preview settings which could easily lead to situations, when final result would be far different from preview one. Now we're using CV points coordinates and their radius to approximate the bounding box. This doesn't give the same exact texture space, but it helps a lot keeping texture space in a nice predictable way. We could make approximation smarter in the future, but fir now added operator to match texture space to fully tessellated curve called "Match Texture Space". Review link: https://codereview.appspot.com/15410043/ Brief description: http://wiki.blender.org/index.php/User:Nazg-gul/GSoC-2013/Results#Curve_Texture_Space
2013-10-17Patch [#37115] Surface split and separate operatorsKevin Mackay
Added surface support to recent curve split operator, completing quick hack todo Updated nurbs separate operator to make use of new split logic, completing tools todo Added 'Delete segment' option to surfaces and improved surface duplication, used for split/separate
2013-10-01fix for error setting vector handles to free when both vector handles were ↵Campbell Barton
selected but not the mid-point. only one of the handles would be changed to the HD_FREE. effected curves and fcurves.
2013-09-16move editcurve add functions into their own source file editcurve_add.cCampbell Barton
2013-08-29patch [#36336] Split operator for curves and surfacesCampbell Barton
by Kevin Mackay (yakca) The operator follows roughly the same behaviour as the split operator for a mesh (Ykey).
2013-08-21Partial revert of recenr cu->disp merge commitSergey Sharybin
That ended up in tricky code trying to mimic depsgraph branch behavior API-wise preserving texspace and bound box calculation compatible with previous releases. So for now bring cu->disp back to the trunk but keep texpsace and boundbox APIs the same as in the branch. This keeps texpsapce and boundbox behavior fully compatible with previous releases and still makes API the same as for meshes.
2013-08-19Tag object-data level boundbox as invalid rather than freeing itSergey Sharybin
Object update used to free object-data level bounding box to trigger it's re-calculation in the future. Such a freeing performed from object update isn't thread-safe because mesh could be shared between multiple objects. Rather than freeing bounding box, tag it's as invalid, this is safe from threading point of view and also prevents unnecessary memory re-allocation. Object-level bounding box is still reallocating, but think we could change this easily in the future as well. -- svn merge -r58154:58156 -r59258:59259 ^/branches/soc-2013-depsgraph_mt
2013-08-19Made curves almost thread-safeSergey Sharybin
Now modifier stack wouldn't modify original curve's nurbs and will operate on a copy of nurbs. This makes it possible to process curve object update with shared curve datablocks from multiple threads. There's no big overhead for creating a copy of nurbs comparing to old behavior which was allocating original vertex array and apply coordinates on curve after all modifier are applied. The only remained issue with curves is curve's bounding box and texture space. It's not thread-safe, but it wouldn't lead to crashes -- it just could lead to either memory leak or wrong texture coordinates due to difference in modifiers stacks of objects which shares the same curve. -- svn merge -r57959:57961 ^/branches/soc-2013-depsgraph_mt
2013-08-19Remove unused argument from utility curve functionsSergey Sharybin
So far it was harmless, but with upcoming changes having this argument could be confusing from logic point of view -- svn merge -r57958:57959 ^/branches/soc-2013-depsgraph_mt
2013-08-19Move bevel list and path from Curve to Object datablockSergey Sharybin
I know this is not so much nice to have this guys hanging around in a general Object datablock and ideally they better be wrapped around into a structure like DerivedMesh or something like this. But this is pure runtime only stuff and we could re-wrap them around later. Main purpose of this is making curves more thread safe, so no separate threads will ever start freeing the same path or the same bevel list. It also makes sense because path and bevel shall include deformation coming from modifiers which are applying on pre-tesselation point and different objects could have different set of modifiers. This used to be really confusing in the past and now data which depends on object is stored in an object, making things clear for understanding even. This doesn't make curve code fully thread-safe due to pre-tesselation modifiers still modifies actual nurbs and lock is still needed in makeDispListsCurveTypes, but this change makes usage of paths safe for threading. Once modifiers will stop modifying actual nurbs, curves will be fully safe for threading. Actually, this commit also contains wrapping runtime curve members into own structure This allows easier assignment on file loading, keeps curve- specific runtime data grouped and saves couple of bytes in Object for non-curve types. -- svn merge -r57938:57939 ^/branches/soc-2013-depsgraph_mt svn merge -r57957:57958^/branches/soc-2013-depsgraph_mt
2013-08-14add materials.clear() method, matching other python list method.Campbell Barton
2013-07-24- add individual origin support for curves and improve the orientation ↵Campbell Barton
calculations for curve handles, - add support for using the active point's orientation. - add support for creating new custom orientations from curves. - fix error where only the last selected curve handle was taken into account for manipulator orientations.
2013-05-13fix [#35335] Crash when rendering a text object with a remesh modifier and a ↵Campbell Barton
material texture
2013-04-05Fix #34867: cycles viewport render did not respect viewport visibility forBrecht Van Lommel
modifiers with text/curve/surface objects. This is because the code here did not yet support the distinction between generating the tesselated mesh at viewport/render resolution and generating a separate displist/derivedmesh for render that is not stored in the object but created and freed on the fly.
2013-03-20add option to convert grease pencil into poly line directly.Campbell Barton
Without this, bezier curves at 12 resolution are very high detail for many tasks when converted from freehand strokes. so add the option to convert 1:1 grease pencil points to curve polygons. also add use_handles option to curve conversion which is used when converting beziers to poly lines.
2013-03-09code cleanup: was using var named 'in' for output.Campbell Barton
2013-03-09use 'bool' for BLI_/BKE_ functions.Campbell Barton
2013-02-05Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashesSergey Sharybin
Issue was caused by couple of circumstances: - Normal Map node requires tesselated faces to compute tangent space - All temporary meshes needed for Cycles export were adding to G.main - Undo pushes would temporary set meshes tessfaces to NULL - Moving node will cause undo push and tree re-evaluate fr preview All this leads to threading conflict between preview render and undo system. Solved it in way that all temporary meshes are adding to that exact Main which was passed to Cycles via BlendData. This required couple of mechanic changes like adding extra parameter to *_add() functions and adding some *_ex() functions to make it possible RNA adds objects to Main passed to new() RNA function. This was tricky to pass Main to RNA function and IMO that's not so nice to pass main to function, so ended up with such decision: - Object.to_mesh() will add temp mesh to G.main - Added Main.meshes.new_from_object() which does the same as to_mesh, but adds temporary mesh to specified Main. So now all temporary meshes needed for preview render would be added to preview_main which does not conflict with undo pushes. Viewport render shall not be an issue because object sync happens from main thread in this case. It could be some issues with final render, but that's not so much likely to happen, so shall be fine. Thanks to Brecht for review!
2012-10-15code cleanup: define sizes of vectors for function args and use C style commentsCampbell Barton
2012-09-16speedup for vertex parent lookups, were looping over array elements when it ↵Campbell Barton
wasn't needed for lattice and curves, and in some cases meshes. do dirrect array lookups instead where possible.
2012-05-13code cleanup: header cleanup and remove some duplicate defines.Campbell Barton
2012-05-06code cleanup: naming - BKE_mesh_*Campbell Barton
2012-04-28Code and style cleanup in own modules in BKE and also mball moduleSergey Sharybin
- Make sure functions are named in way BKE_<object>_<action> (same way as RNA callbacks) - Make functions which are used by mball.c only static and remove their prototypes from public header file. Further cleanup is coming.
2012-03-11style cleanup, also remove unused externs.Campbell Barton
2012-02-17unify include guard defines, __$FILENAME__Campbell Barton
without the underscores these clogged up the namespace for autocompleation which was annoying.
2011-11-03Fix #29005: Bezier/Surface Datablock switching bug?Sergey Sharybin
This commit updates curve datablock to respect curve dimension flag when setting datablock for curve. Not ideal but this makes behavior quite expected, avoids big changes in curves core stuff which depends on object type and prevents restrictions on changing data datablock which works in general cases.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-09-14resolve bad level calls from blenkenel/ into editors/ & remove editors from ↵Campbell Barton
the include path from CMake & SCons. * ED_curve_editnurbs --> curve_editnurbs * ED_sculpt_modifiers_changed --> object_sculpt_modifiers_changed
2011-07-31fix for material slot removal (r38879)Campbell Barton
- The object ID was being passed to the data_delete_material_index_id() from object_remove_material_slot(), rather then the object data. (so the material slot fix wouldnt run in that case). - add support for fixing text object materials too.
2011-03-28particles & vector-font: floats were being implicitly promoted toCampbell Barton
doubles, adjust to use floats.
2011-02-18doxygen: blenkernel under core as module.Nathan Letwory
2010-11-17use 'const char *' by default with RNA functions except when the value is ↵Campbell Barton
flagged as PROP_THICK_WRAP. Also use const char in many other parts of blenders code. Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
2010-11-11Fix #24643: Nurbs Surface Preview resolution overrides render resolutionSergey Sharybin
NURBS surfaces always used resol{u,v} from spline and never used curve's render resolutions. Now, if curve's render resolution is non-zero then it'll override resolution for all splines when rendering (in needed direction only, ofcource).
2010-09-30rename makeknots to nurbs_knot_calc_u/vCampbell Barton
2010-08-06bugfix [#19525] Curve modifier moves mesh geometry firstCampbell Barton
more of a request then a bug but shows up a strange limitation with curve deform modifier, The mesh bounding box would set the deform axis start/end to map the deformation of the curve to. This means it ignored offset in the object location and object data location (you could use a dummy vertex to trick it). Old files wont change, added an option (next to stretch), called 'Bounds Clamp', old files have this behavior but newly made curves have it disabled. Double checked this gives useful results with stretch on/off and negative axis.
2010-08-03set origin was setting surfaces as 2D curves, added dupli-group support ↵Campbell Barton
using the dupli's offset value.
2010-08-01bugfix'sCampbell Barton
[#23108] bpy.ops.object.origin_set(type='GEOMETRY_ORIGIN') dosen't work in console [#23115] Crash when moving armature origin - setting the armature in editmode would leave editdata in some cases. - transforming selected linked objects to account for the movement of the obdata was only done for meshes, now do for curves and text3d. - added utility functions for getting curve & mesh bounds. - text3d moving center wasn't working at all. - changed drawobject.c to use BLI_math funcs in more places. - remove some unused code from operator object.origin_set.
2010-07-25Shapekeys for curves/surfecesSergey Sharybin
Fix #21498: Edit curve Shape key /252_r 27318 Added full support of shape keys for curves and nurbs surfaces including topology changing in edit mode, undo stuff, updating relative keys when working under basis and so on.
2010-04-21option to use curve point weights to influence particle effectors.Campbell Barton
2010-03-26Fixed incorrect rendering result when bevel object has got modifiersSergey Sharybin
enabled only for realtime display or only for rendering
2010-03-20merge own commits into render branch into trunk since 27560Campbell Barton
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-02-12correct fsf addressCampbell Barton
2009-10-22Shape KeysBrecht Van Lommel
Internal change to not apply the shape keys to the Mesh vertex coordinates, but rather use it as part of the derivedmesh/displist evaluation. This only has one practical advantage right now, which is that you can now make a linked duplicate and pin it's shape key to a different shape than the first object. Further, this makes shape keys correctly fit into the modifier stack design, which will help implement some other features later. Also it means the mesh vertex coordinates are now really the orco's.
2009-09-11svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r23043:23119Campbell Barton
2009-09-10Curve cleanupCampbell Barton
Renamed BevPoint's members * x,y,z -> vec[3]; compatible with other functions. * f1 -> split_tag; used by displist to set the splitting flag. * f2 -> dupe_tag; used in curve.c to remove duplicates. BevList * flag -> dupe_nr; was being used as a counter for duplicate points. * use arithb.c functions where possible. * arrays for coords, tilt and radius were being allocated, then copied into the BevPoint's, now write directly into the values without allocing/freeing arrays.