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
2015-09-04Partial revert of warning cleanupCampbell Barton
These warnings are false-positives
2015-09-04Quiet warningsJulian Eisel
We had too many warnings lately... was awaiting that someone would kill them - didn't happen -> goes to my commit ratio! :P
2015-06-20Transform: UV islands were split by windingCampbell Barton
This meant front/back faces from a projection would be seen as separate islands.
2015-06-01Fix for leak in BM_uv_element_map_createCampbell Barton
Also correct over alloc and redundant alloc.
2015-05-26Cleanup: update commentCampbell Barton
2015-05-21Fix mesh mirror failing on isolated vertsCampbell Barton
2015-05-17BMesh: don't check winding for uv-vert-mapCampbell Barton
Made link-select separate front/back with projected UV's
2015-04-13Cleanup: styleCampbell Barton
2015-04-09Fix part of T44320 selecting islands can fail.Antony Riakiotakis
Issue here is simple and has been fixed in other places such as texpainting: Basically if face has different winding, do not calculate it as adjucent to the other face, even if UV is identical. This allows us to stack islands of symmetrical closed meshes on top of one another and still be able to select the two identical island halfs (provided the normals are correct of course).
2014-11-21Cleanup: typoCampbell Barton
2014-11-17Fix T35170: Undoing edit op on a basis shapekey could generate extra offset ↵Bastien Montagne
on its 'children'. Based on investigation by sergey (Sergey Sharybin) and revzin (Grigory Revzin). Based on patch D460 by revzin (Grigory Revzin). Differential Revision: https://developer.blender.org/D460
2014-11-10Correct last commitCampbell Barton
2014-11-10Fix: Shapekey Basis not updated on editmode exitCampbell Barton
2014-11-06Editmesh: select more/less can now step over adjacent facesCampbell Barton
This keeps a square shaped selection when using grid topology.
2014-08-25Fix T40993: Store selection history for extrudeCampbell Barton
2014-06-06BMesh: avoid OpenMP use for low poly meshes (counting selection)Campbell Barton
also use schedule(static) for simple for loops.
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-27Code cleanup: const args and arraysCampbell Barton
2014-04-26Code cleanup: use 'const' for arrays (editors)Campbell Barton
2014-03-12Mesh API: rename 'octree' to 'spatial' since internally its using kdtreeCampbell Barton
2014-02-28Fix T38872: Crazyspace could use stale derivedMesh data.Campbell Barton
2014-02-28Code cleanup: move edit-derivedmesh free to BKE_editmesh_free_derivedmeshCampbell Barton
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.
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-12Code Cleanup: move mesh mapping functions into their own file/headerCampbell Barton
2013-11-18BMesh Refactor: BKE_bmbvh_new can now be created without an EditMesh.Walid Shouman
This adds BM_bmesh_calc_tessellation() so we can get triangles from a bmesh without having to have an editmesh available.
2013-10-28move bmesh array lookup data and utility functions from editmesh into bmesh,Campbell Barton
since enough bmesh operations can also take advantage of direct index lookups on verts/edges/faces. developers note: - EDBM_index_arrays_init/ensure/free -> BM_mesh_elem_table_ensure/init/free - EDBM_vert/edge/face_at_index -> BM_vert/edge/face_at_index - EDBM_uv_element_map_create/free -> BM_uv_element_map_create/free - ED_uv_element_get -> BM_uv_element_get
2013-09-24allocate bmesh data from known sizes where possible (was still using ↵Campbell Barton
defaults in places), add macros for initializing BMAllocTemplate's, also add assert on invalid use of bmesh_sfme()
2013-08-30Some knife fixes. Avoids duplicating verts; better handling of cut-through ↵Howard Trickey
ortho. Now cut lines detect vertices that they pass (almost) exactly over and snap to them, to avoid making verts vert close to other ones. Added radius arg to BKE_bmbvh_ray_cast so that can detect an obscuring face when the ray might otherwise go exactly between two triangles. Needed an isect_line_tri_epsilon function for similar reason. Fixes last part of bug #35002. Other knife bugs still present but getting this commit in now before continuing bug fixing.
2013-08-03code cleanup: replace bmesh_radial_face_find -> BM_edge_in_faceCampbell Barton
2013-07-28move alloca define into its own header since its not related to BLI_arrayCampbell Barton
2013-07-25triangulate and beauty fill also needed changes to selection handling after ↵Campbell Barton
recent changes.
2013-07-22transform was flushing the selection (inline), now skip this and use the ↵Campbell Barton
selection as-is. flush the selection on entering editmode instead (since the selection mode can be changed with another mesh). is other tools leave the selection incorrectly flushed, those will need to be fixed so transform works as expected.
2013-07-13fix for bad NULL check in bmo_connect_pair, also remove duplicate checks in ↵Campbell Barton
if statements and redundant initialization vars.
2013-07-10draw loopcut display on the deformed mesh when in editmode.Campbell Barton
2013-07-02fix [#35939] [Edit - Vertex mode] [Select]-[Mirror] did not returns right ↵Campbell Barton
result.
2013-06-28Fix #35551: the topology mirror setting affected shape key and vertex group butBrecht Van Lommel
this was confusing as there was no setting visible for it. Now these menus contain an entry to mirror without and with topology mirror.
2013-06-24add api calls for BM_mesh_active_vert/edge_get.Campbell Barton
inspecting the edit-selection inline was cumbersome.
2013-06-20add axis option to EDBM_verts_mirror_cache_beginCampbell Barton
2013-06-19Remove paranoid null checks for editmesh EDBM_vert_at_index and friends (use ↵Campbell Barton
asserts instead). temp set BM_OMP_LIMIT to zero for better testing before release.
2013-06-19internal editmesh api: add an extended version of ↵Campbell Barton
EDBM_verts_mirror_cache_begin which takes arguments to give some more control.
2013-06-05changes to mirror toolsCampbell Barton
- give feedback on how many mirror verts succeed/fail (for select mirror, shape key mirror, weight mirror) ... when a mirror failed it was confusing and not obvious what was going on. - slight change to select mirror, now center vertices will remain selected. - speedup to EDBM_verts_mirror_cache_begin, cache customdata layer offset.
2013-06-03fix [#35555] Collada: export destroys mesh in some casesCampbell Barton
add arguments to calculate normals when converting to bmesh: BM_mesh_bm_from_me, DM_to_bmesh This gives some speedup to undo (which didnt need to re-calculate vertex normals), and array modifier which doesnt need to calculate face normals at all
2013-05-18Fix #35404: crash in file save with python code that accesses mesh from panel.Brecht Van Lommel
On file save the mesh gets loads from the editmesh but the derived mesh caches wer not cleared. This usually happens through the depsgraph but it needs to be done manually here. Most changes are some refactoring to deduplicate derived mesh freeing code.
2013-05-09can't use alloca in inline functions (fills up stack - I thought compiler ↵Campbell Barton
would be smart here). also reserve the exact number of vert/face/edge/loops when creating a bmesh during undo.
2013-04-24fix [#34657] Smoothing will not be updated in object mode, when hiding faces ↵Campbell Barton
in edit mode and changing shape. remove the option to skip hidden faces in BM_mesh_normals_update, use openmp to speedup recalculation for high poly meshes.
2013-04-23fix [#35007] clipping border errorCampbell Barton
add clip option to ED_view3d_win_to_ray(), ED_view3d_win_to_segment()
2013-04-18use modified vertex coords for calculating display thickness and intersections.Campbell Barton
internal improvement to editmesh_bvh.c - optionally pass cage-coords as an arg, rather then calculating the coords in BKE_bmbvh_new(), since all callers already have coords calculated. - de-duplicate coords creation function from knife and bmbvhm, move into own generic function: BKE_editmesh_vertexCos_get()
2013-04-16add distance arg to BKE_bmbvh_ray_cast(). currently unused.Campbell Barton
2013-04-16code cleanup: use BKE naming conventions for functions in BKE_editmesh.h and ↵Campbell Barton
BKE_editmesh_bvh.h