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-02-05Code cleanup: use bool for static methodsCampbell Barton
2014-02-04Fix T38411: Free keyframe handles do not snap to frames when duplicatingSergey Sharybin
2014-02-04Fix T38469: Strip delimiter handlers don't move strip correctly with ↵Bastien Montagne
keyboard input Issue was in fact in strip update code when transforming, in case we move both left and right handles the strip is handled twice in the loop, but it was always updated at the end of the first loop only...
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-02-02Fix T38435: Crash when pressing MMB in walk modeBastien Montagne
Snap code may be called with a NULL region, add check about this and assume ray_start is OK in this case!
2014-02-02Code cleanup: suffix vars to make obvious they are squaredCampbell Barton
2014-02-01Math lib: add axis_angle_normalized_to_quat, use when length is knownCampbell Barton
2014-01-31Code cleanup: be less vague checking invalid index valuesCampbell Barton
2014-01-30More snapping fixes (this is ridiculous).Bastien Montagne
I hope this time we are done!
2014-01-30Fix T38409: Snapping BugBastien Montagne
Issue partially caused by own errors (glicth in new BKE_boundbox_ray_hit_check() code causing segfault in volume snapping, and we have to treat ortho and persp differently in case of face snapping, because in persp our ray_start might very well already be *inside* the boundbox of the checked object), and partly due to the fact that ED_view3d_win_to_vector() was returning wrong vector (negated one) for ortho views (see previous commit).
2014-01-30Fix T38358: typo in own rB77089a3bf203.Bastien Montagne
Also allowed me to fine another potential issue, hit.dist was no more initialized correctly - and I had forgotten to take into account Brecht's remark about normalize_v3() also returning the vector's previous length.
2014-01-29Fix T38358: Face snapping fails on Orthographic viewBastien Montagne
Issue is caused by start point of ray used to detect faces under the mouse is set rather far away in ortho 3dviews. The loss of precision on the ray location induced by this can lead to face snapping failures. Solution is to do the raycasting with a temp start point, much closer to the object we check, and add back to the found distance the diff to the real start point once detection is done (as we need all hit distances from all tested objects to be relative to a common point!). Note this commit only addresses the "face snapping on mesh" case, other kind of snapping do not seem to suffer from this issue. Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D268
2014-01-29Fix bone transform issue where the bone roll depends on intermediate mouse ↵Brecht Van Lommel
positions. It computed the roll compatible with the previous mouse position roll value, now it uses the initial roll value.
2014-01-29Fix T38393: bone roll not restored properly after cancelling rotation of bones.Brecht Van Lommel
2014-01-27Code cleanup: use booleans where appropriateCampbell 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
2014-01-26Fix T38354: Excess memory allocation when projecting onto object with multiresBastien Montagne
Found three cases where created bvhtree was not freed...
2014-01-21Fix T38128: snapping to node border uses node centers.Lukas Tönne
This was caused by recent change to transform locations being changed to the upper-left corner of nodes (rBa857a6f).
2014-01-21Code Cleanup: styleCampbell Barton
2014-01-18Make it possible to hide/unhide a node during node transform operations.Monique Dewanchand
During drag the H key can be used to toggle the hide flag of the selected nodes. This makes it easier to 'attach' nodes to available links in narrow places.
2014-01-17Code Cleanup: spellingCampbell Barton
2014-01-16Code Cleanup: no need to pass empty strings as default valuesCampbell Barton
2014-01-16Code Cleanup: avoid using G_PICKSEL for transform manipulatorCampbell Barton
2014-01-16Code Cleanup: style and redundant castsCampbell Barton
2014-01-16User Prefs: Manipulator unit and tooltip fixesAndrew Buttery
removal of x5 hardcoded size multiplier
2014-01-15Only check OB_RECALC_ALL flags of the object in transform codeSergey Sharybin
Because of the issue of how simplification works, there could be more flags in on->recalc bitfield which are ignored by object anyway. Would save some update calls after simplificating the scene.
2014-01-15Followup to the previous commitSergey Sharybin
It was actually rather simple to make sure depsgraph is up to date before calling BKE_object_handle_update() in the transform code by just moving DAG_scene_relations_update() to the beginning of the function. Wouldn't expect any side effects for other cases since DAG is not used bu the code between new location of the call and old one.
2014-01-15Fix T38166: Vertex slide C key doesn't workCampbell Barton
2014-01-15Code Cleanup: use iroundfCampbell Barton
also increase precision of rctf print functions
2014-01-15fixed wrong commentgaiaclary
2014-01-13Fix T38054: High CPU usage with many objectsSergey Sharybin
This is a regression since threaded dependency graph landed to master. Root of the issue goes to the loads of graph preparation being done even if there's nothing to be updated. The idea of this change is to use ID type recalc bits to determine whether there're objects to be updated. Generally speaking, we now check object and object data datablocks with DAG_id_type_tagged() and if there's no such IDs tagged we skip the whole task pool creation and so, The only difficult aspect was that in some circumstances it was possible that there are tagged objects but nothing in ID recalc bit fields. There were several different circumstances when it was possible: * When one assigns object->recalc flag directly DAG flush didn't set corresponding bits to ID recalc bits. Partially it is fixed by making it so flush will set bitfield, but also for object types there's no reason to assign recalc flag directly. Using generic DAG_id_type_tag works almost the same fast as direct assignment, ensures all the bitflags are set properly and for the long run it seems it's what we would actually want to. * DAG_on_visible_update() didn't set recalc bits at all. * Some areas were checking for object->recalc != 0, however it is was possible that object recalc flag contains PSYS_RECALC_CHILD which was never cleaned from there. No idea why would we need to assign such a flag when enabling scene simplification, this is to be investigated separately. * It is possible that scene_update_post and frame_update_post handlers will modify objects. The issue is that DAG_ids_clear_recalc is called just after callbacks, which leaves objects with recalc flags but no corresponding bit in ID recalc bitfield. This leads to some kind of regression when using ID type tag fields to check whether there objects to be updated internally comparing threaded DAG with legacy one. For now let's have a workaround which will preserve tag for ID_OB if there're objects with OB_RECALC_ALL bits. This keeps behavior unchanged comparing with 2.69 release.
2014-01-12Style Cleanup: whitespaceCampbell Barton
2014-01-09Fix T38077: Scaling bones in EditMode drawn using envelope display mode ↵Joshua Leung
scales joint radii instead When trying to scale bones in EditMode and the bones were drawn using envelope display mode, this resulted in the joint radii (i.e. the inner part of envelopes) being adjusted instead. It turns out that this was due to an old hack that was put in place back in 2.4x (see the tracker logs for full details of the problem here). This commit introduces the following fixes: 1) Removed the old hack. Scaling (S) works normally now. 2) Ctrl-Alt-S (i.e. "Scale Envelopes/BBones") is as-is. That is, it is used to adjust the size falloff-region around a bone (i.e. the "dist" property) 3) Added Alt-S hotkey in EditMode for armatures for adjusting the radii of bones. This change just means that the "TFM_BONE_ENVELOPE" mode is now able to be accessed from the UI as a tool on its own right (instead of being accessible via the old undocumented hack). This tool adjusts the radii of the bone joints, which define the actual full-influence region of the envelopes.
2014-01-04UI: Use bool rather then int/short's where possibleCampbell Barton
2014-01-02Fix "Flipped" drawn in edgeslide header text even when Even is disabled.Bastien Montagne
2014-01-02Fix T38019: Edge/Vertex Slide recognises Even and Flipped as if they were ↵Bastien Montagne
numerical values Further tweaked/simplified events handling in transform code, hope this time it works OK...
2013-12-30Fix T37970: Node scale/rotate use incorrect pivorCampbell Barton
note: added code to use real node center, but ifdef'd for now since it doesnt work well with absolute snapping.
2013-12-30Node Editor: enable transform helper lineCampbell Barton
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-12-25Motion tracking curves: correct some operator's poll functionsSergey Sharybin
Curve selection and transform were allowed in cases track's motion curve wasn't visible.
2013-12-21Support units in modal numinputBastien Montagne
Summary: This completly changes the way modal numinput is handled. Now, edited expression is a string, which then gets unit- and py-evaluated to get a float value. We gain many power and flexibility, but lose a few "shortcuts" like '-' to negate, or '/' to inverse (if they are really needed, we still can add them with modifiers, like e.g. ctrl-/ or so). Features: - units (cm, ", deg, etc.). - basic operations from python/BKE_unit (+, *, **, etc.), and math constants and functions (pi, sin, etc.). - you can navigate in edited value (left/right key, ctrl to move by block) and insert/delete chars, e.g. to fix a typo without having to rewrite everything. - you can go to next/previous value with (ctrl-)TAB key. - As before, hitting backspace after having deleted all leading chars will first reset the edited value to init state, and on second press, the whole "modal numinput" editing will be cancelled, going back to usual transform with mouse. Notes: - Did not touch to how values are shown in header when modal numinput is not enabled (would do that in another commit), so this is still quite inconsistent. - Added back radian support in BKE_unit. - Added arcminute/arcsecond to BKE_unit. (those unit changes affect all angle UI controls, btw, so you can now enter radians or longitude/latitude values when in degrees units). Related to T37600. Reviewers: brecht, campbellbarton, carter2422 Reviewed By: brecht, campbellbarton, carter2422 Thanks everybody! Differential Revision: http://developer.blender.org/D61
2013-12-18Revert svn r55587, fix for T34698 (Disable snap when transform axis is ↵Campbell Barton
constrained) Currently we don't properly support snapping + axis-constraints, but there are cases where its handy to project-snap for eg, and constraint to an axis so re-enable this.
2013-12-12Fix T37757: MCE - Mask Pivot Point individual origins doesnt workSergey Sharybin
Simple wasn't implemented.
2013-12-12Code Cleanup: move mesh mapping functions into their own file/headerCampbell Barton
2013-12-11Fix T37755: Autokey doesn't work for local Z-Axis in Camera view with ↵Joshua Leung
MotionPaths enabled The problem here was that the hack used to fix T24551 in r32863 would cause the camera to jump back to its pre-transform position after motionpaths were recalculated. This made it seem like a keyframe wasn't inserted by AutoKeying (even though it was).
2013-12-11Fix incorrect comment - copy and paste errorJoshua Leung
2013-12-03Code Cleanup: use BLI_strncpy when copying into fixed sized buffersCampbell Barton
2013-12-02Fix T37671: Edit Texture Space on Skin Resize crashSergey Sharybin
Texture space editing from TFM_SKIN_RESIZE is not supported, so hide the option and don't use it for such a transform.
2013-12-02Blender Font (BLF): add length argument to string width/height functionsCampbell Barton
This also fixes a crash editing buttons longer then UI_MAX_DRAW_STR
2013-12-01Code Cleanup: replace ABS() with fabsf() when used with float expressions.Campbell Barton