diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-09-09 09:11:02 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-09-10 07:35:04 +0300 |
commit | 20634fd433b07bbd90358a625792292e9581a0f6 (patch) | |
tree | b6be45ddf341ce7d2dc8c85a67480e6815d4a6e6 /source/blender/editors/include | |
parent | 2b5d4d426a9b8483539d14b6e9ab90da262c2ecb (diff) |
Tool System: use preselect highlight w/ poly-build
- Poly build now uses a new gizmo for pre-selection
which has the same behavior as loop-cut.
This replaces hack where mouse-move set the active element
which was no longer working properly because of missing
depsgraph updates.
- Multi-object support for poly-build.
- Support for deformed cage.
- Fix error where changing active object wasn't properly
refreshing the preselect gizmo (for loopcut too).
Currently holding Alt to select non-boundary element's isn't working.
Diffstat (limited to 'source/blender/editors/include')
-rw-r--r-- | source/blender/editors/include/ED_mesh.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index c084033bbb6..92338aa508f 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -52,6 +52,7 @@ struct Mesh; struct UvVertMap; struct UvMapVert; struct BMEditMesh; +struct BMElem; struct BMesh; struct BMVert; struct BMLoop; @@ -177,6 +178,14 @@ bool EDBM_unified_findnearest( struct BMEdge **r_eed, struct BMFace **r_efa); +bool EDBM_unified_findnearest_from_raycast( + struct ViewContext *vc, + bool use_boundary, + struct Base **r_base, + struct BMVert **r_eve, + struct BMEdge **r_eed, + struct BMFace **r_efa); + bool EDBM_select_pick(struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle); void EDBM_selectmode_set(struct BMEditMesh *em); @@ -210,6 +219,16 @@ void EDBM_preselect_edgering_update_from_edge( struct EditMesh_PreSelEdgeRing *psel, struct BMesh *bm, struct BMEdge *eed_start, int previewlines, const float (*coords)[3]); +/* editmesh_preselect_elem.c */ +struct EditMesh_PreSelElem; +struct EditMesh_PreSelElem *EDBM_preselect_elem_create(void); +void EDBM_preselect_elem_destroy(struct EditMesh_PreSelElem *psel); +void EDBM_preselect_elem_clear(struct EditMesh_PreSelElem *psel); +void EDBM_preselect_elem_draw(struct EditMesh_PreSelElem *psel, const float matrix[4][4]); +void EDBM_preselect_elem_update_from_single( + struct EditMesh_PreSelElem *psel, + struct BMesh *bm, struct BMElem *ele, const float (*coords)[3]); + /* mesh_ops.c */ void ED_operatortypes_mesh(void); void ED_operatormacros_mesh(void); |