GPv3: Edit Mode #112858

Open
opened 2023-09-25 16:14:40 +02:00 by Matias Mendiola · 19 comments

All operators, tools and special features in Edit Mode will have to be ported to the new grease pencil structure

Selection

Tools

Operators

Overlays

Special features

  • Curve Editing GPENCIL_OT_stroke_enter_editcurve_mode GPENCIL_OT_stroke_editcurve_set_handle_type
  • Multiframe
  • Transform Pivot Point
  • Snap during transform
  • Proportional Editing
  • Undo
All operators, tools and special features in Edit Mode will have to be ported to the new grease pencil structure Selection - [x] ~~Select Mode `GREASE_PENCIL_OT_set_selection_mode`~~ - [x] ~~Select All `grease_pencil.select_all` [#108628: GPv3: Add "(De)select All" operator and keymap](https://projects.blender.org/blender/blender/pulls/108628)~~ - [x] ~~Select None `grease_pencil.select_all` [#108628: GPv3: Add "(De)select All" operator and keymap](https://projects.blender.org/blender/blender/pulls/108628)~~ - [x] ~~Select Invert `grease_pencil.select_all` [#108628: GPv3: Add "(De)select All" operator and keymap](https://projects.blender.org/blender/blender/pulls/108628)~~ - [x] ~~Tweak Select `VIEW3D_OT_select` [#108717: GPv3: "Select pick" operator](https://projects.blender.org/blender/blender/pulls/108717)~~ - [x] ~~Box Select `VIEW3D_OT_select_box` [#108661: GPv3: "Select Box" operator](https://projects.blender.org/blender/blender/pulls/108661)~~ - [x] ~~Circle Select `VIEW3D_OT_select_circle` [#108662: GPv3: Select circle operator](https://projects.blender.org/blender/blender/issues/108662)~~ - [x] ~~Lasso Select `VIEW3D_OT_select_lasso` [#108726: GPv3: "Select lasso" operator](https://projects.blender.org/blender/blender/pulls/108726)~~ - [x] ~~Select Linked `GREASE_PENCIL_OT_select_linked` [#108829: GPv3: "Select Linked" operator](https://projects.blender.org/blender/blender/pulls/108829)~~ - [x] ~~Select Alternated `GREASE_PENCIL_OT_select_alternate` [#109240: GPv3: Select Alternate](https://projects.blender.org/blender/blender/pulls/109240)~~ - [x] ~~Select Random `GREASE_PENCIL_OT_select_random` [#108933: GPv3: Select Random](https://projects.blender.org/blender/blender/issues/108933)~~ - [ ] Select Grouped `GREASE_PENCIL_OT_select_similar` [#111410: WIP: GPv3: Select similar](https://projects.blender.org/blender/blender/pulls/111410) - [x] ~~Select First `GPENCIL_OT_select_first` [#108802: GPv3: "Select First"/"Select Last" operators](https://projects.blender.org/blender/blender/issues/108802)~~ - [x] ~~Select Last `GPENCIL_OT_select_last` [#108802: GPv3: "Select First"/"Select Last" operators](https://projects.blender.org/blender/blender/issues/108802)~~ - [x] ~~Select More `GREASE_PENCIL_OT_select_more` [#108847: GPv3: "Select More" and "Select Less" operators](https://projects.blender.org/blender/blender/pulls/108847)~~ - [x] ~~Select Less `GREASE_PENCIL_OT_select_less` [#108847: GPv3: "Select More" and "Select Less" operators](https://projects.blender.org/blender/blender/pulls/108847)~~ Tools - [x] ~~Move `TRANSFORM_OT_translate` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Rotate `TRANSFORM_OT_rotate` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Scale `TRANSFORM_OT_resize` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Scale Cage~~ - [x] ~~Transform `TRANSFORM_OT_transform` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [ ] Extrude `GPENCIL_OT_extrude_move` - [x] ~~Radius [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Bend` TRANSFORM_OT_bend` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Shear `TRANSFORM_OT_shear` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~To Sphere `TRANSFORM_OT_tosphere` [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [ ] Transform Fill `GPENCIL_OT_transform_fill` (see [#116065](https://projects.blender.org/blender/blender/issues/116065)) - [ ] Interpolate `GPENCIL_OT_interpolate` Operators - [x] ~~Shrink/Fatten [#111836: GPv3: Transform operators](https://projects.blender.org/blender/blender/pulls/111836)~~ - [x] ~~Mirror `TRANSFORM_OT_mirror`~~ - [ ] Snap to Grid `GPENCIL_OT_snap_to_grid` - [ ] Snap to Cursor `GPENCIL_OT_snap_to_cursor` - [ ] Snap Cursor to Selected `GPENCIL_OT_snap_cursor_to_selected` - [x] ~~Active Layer `GPENCIL_OT_layer_active`~~ - [x] ~~Add New Layer `GPENCIL_OT_layer_add`~~ - [x] ~~Insert Blank Keyframe `GPENCIL_OT_blank_frame_add`~~ - [ ] Duplicate Active Keyframe `GPENCIL_OT_frame_duplicate` - [x] ~~Delete Active Keyframe Active Layer `GPENCIL_OT_active_frame_delete`~~ - [x] ~~Delete Active Keyframe All `GPENCIL_OT_active_frame_delete`~~ - [ ] Interpolate Sequence `GPENCIL_OT_interpolate_sequence` - [x] ~~Duplicate `GPENCIL_OT_duplicate` [#115389: GPv3: Duplicate operator (edit mode)](https://projects.blender.org/blender/blender/pulls/115389)~~ - [ ] Split `GPENCIL_OT_stroke_split` - [x] ~~Copy `GPENCIL_OT_copy` [#114145 : GPv3: Copy and Paste operators](https://projects.blender.org/blender/blender/pulls/114145)~~ - [x]~~Paste `GPENCIL_OT_paste` [#114145 : GPv3: Copy and Paste operators](https://projects.blender.org/blender/blender/pulls/114145)~~ - [ ] Generate Weights `GPENCIL_OT_generate_weights` - [x] ~~Show All Layers `GPENCIL_OT_reveal` [#114348: GPv3: Show and hide layers operators](https://projects.blender.org/blender/blender/pulls/114348)~~ - [x] ~~Hide Layer(s) `GPENCIL_OT_hide` [#114348: GPv3: Show and hide layers operators](https://projects.blender.org/blender/blender/pulls/114348)~~ - [x] ~~Separate `GPENCIL_OT_stroke_separate` [#113932: GPv3: Separate](https://projects.blender.org/blender/blender/issues/113932#issuecomment-1094036)~~ - [x] ~~Clean Fill Boundaries `GPENCIL_OT_frame_clean_fill` - (deprecated for GPv3)~~ - [x] ~~Clean Loose Points `GPENCIL_OT_frame_clean_loose`~~ - [ ] Merge by Distance `GPENCIL_OT_stroke_merge_by_distance` - [ ] Delete duplicated frames `GPENCIL_OT_frame_clean_duplicate` - [x] ~~Recalculate Geometry `GPENCIL_OT_recalc_geometry` - (deprecated for GPv3)~~ - [ ] Reproject Strokes `GPENCIL_OT_reproject` - [x] ~~Delete Point/Stroke/Frame `GPENCIL_OT_delete` [#111571: GPv3: Delete operator](https://projects.blender.org/blender/blender/pulls/111571)~~ - [x] ~~Dissolve `GPENCIL_OT_dissolve` [#111079: GPv3: Dissolve Operator](https://projects.blender.org/blender/blender/pulls/111079)~~ - [x] ~~Subdivide Stroke `GPENCIL_OT_stroke_subdivide`~~ - [ ] Simplify Fixed Stroke `GPENCIL_OT_stroke_simplify_fixed` - [x] ~~Simplify Adapted Stroke `GPENCIL_OT_stroke_simplify` [#110266: GPv3: Stroke Simplify operator](https://projects.blender.org/blender/blender/pulls/110266)~~ - [ ] Simplify Sample Stroke `GPENCIL_OT_stroke_sample` - [ ] Trim Stroke `GPENCIL_OT_stroke_trim` - [ ] Convert Stroke to Outline `GPENCIL_OT_stroke_outline` - [ ] Join Strokes `GPENCIL_OT_stroke_join` [#117916: GPv3: Join Operator](https://projects.blender.org/blender/blender/pulls/117916) - [x] ~~Move Stroke to Layer `GPENCIL_OT_move_to_layer` [#117244: GPv3: Move to layer](https://projects.blender.org/blender/blender/pulls/117244)~~ - [x] ~~Assign Material Stroke `GPENCIL_OT_stroke_change_color`~~ - [x] ~~Set Stroke Material as active Material `GPENCIL_OT_set_active_material` [#114188: GPv3: Set selected curve material as active material](https://projects.blender.org/blender/blender/pulls/114188)~~ - [x] ~~Arrange Stroke `GPENCIL_OT_stroke_arrange` [#116682: GPv3: Reorder operator](https://projects.blender.org/blender/blender/pulls/116682)~~ - [ ] Close (Operator macro that closes the stroke and then subdivides the last segment) - [x] ~~Set Cyclical State `GPENCIL_OT_stroke_cyclical_set` [#111904: GPv3: Cyclical set operator](https://projects.blender.org/blender/blender/pulls/111904)~~ - [x] ~~Set Caps Mode `GPENCIL_OT_stroke_caps_set` [#113978: GPv3: Set caps operator](https://projects.blender.org/blender/blender/pulls/113978)~~ - [x] ~~Switch Direction `GPENCIL_OT_stroke_flip` [#114007: GPv3: Switch Direction operator](https://projects.blender.org/blender/blender/pulls/114007)~~ - [ ] Set Start Point `GPENCIL_OT_stroke_start_set` - [x] ~~Normalize Stroke `GPENCIL_OT_stroke_normalize` [#114006: GPv3: Normalize Stroke operator](https://projects.blender.org/blender/blender/pulls/114006)~~ - [ ] Use Scale Thickness `rna_sculpt_paint.cc` - [ ] Reset Fill Transformations `GPENCIL_OT_reset_transform_fill` (see [#116065](https://projects.blender.org/blender/blender/issues/116065)) - [ ] Extrude Stroke Points `GPENCIL_OT_extrude` - [x] ~~Smooth Stroke `GPENCIL_OT_stroke_smooth` [#109635: GPv3: Stroke smoothing operator](https://projects.blender.org/blender/blender/pulls/109635)~~ - [ ] Merge Strokes `GPENCIL_OT_stroke_merge` - [ ] Vertex Group Add `OBJECT_OT_vertex_group_add` - [ ] Vertex Group Assign `GPENCIL_OT_vertex_group_assign` - [ ] Vertex Group Remove `GPENCIL_OT_vertex_group_remove_from` - [ ] Vertex Group Select `GPENCIL_OT_vertex_group_select` - [ ] Vertex Group Deselect `GPENCIL_OT_vertex_group_deselect` Overlays - [ ] Onion Skin - [ ] Canvas - [ ] Fade Inactive Layers - [ ] Fade Inactive Objects - [x] ~~Edit Lines [#115739: GPv3: Overlay: Show edit lines option](https://projects.blender.org/blender/blender/pulls/115739)~~ - [ ] Edit Lines Only in Multiframe - [ ] Stroke Direction - [ ] Material Name - [ ] Vertex Opacity Special features - [ ] Curve Editing `GPENCIL_OT_stroke_enter_editcurve_mode` `GPENCIL_OT_stroke_editcurve_set_handle_type` - [x] ~~Multiframe~~ - [ ] Transform Pivot Point - [ ] Snap during transform - [ ] Proportional Editing - [ ] Undo
Matias Mendiola added the
Type
To Do
label 2023-09-25 16:14:40 +02:00
Falk David added this to the Grease Pencil project 2023-09-25 16:19:47 +02:00

The operator : Recalculate Geometry GPENCIL_OT_recalc_geometry don't need to be converted. This was to fix the old geometry data, but now it's runtime.

The operator : `Recalculate Geometry GPENCIL_OT_recalc_geometry` don't need to be converted. This was to fix the old geometry data, but now it's runtime.
Blender Bot added the
Status
Archived
label 2023-09-26 13:43:46 +02:00
Blender Bot added
Status
Confirmed
and removed
Status
Archived
labels 2023-09-26 13:44:43 +02:00
Author
Member

The operator : Recalculate Geometry GPENCIL_OT_recalc_geometry don't need to be converted. This was to fix the old geometry data, but now it's runtime.

Thanks Antonio. Marked as deprecated for GPv3

> The operator : `Recalculate Geometry GPENCIL_OT_recalc_geometry` don't need to be converted. This was to fix the old geometry data, but now it's runtime. Thanks Antonio. Marked as deprecated for GPv3
Iliya Katushenock removed the
Status
Confirmed
label 2023-09-26 14:08:46 +02:00

One point that should perhaps be considered as part of the Edit is the concept of active curve/selection and active point. The active curve and selection order is already in GPv2 and is used in the interpolation. The active point per curve concept was something we had planned and is very important for operators like merge, and perhaps for some type of snap.

One point that should perhaps be considered as part of the Edit is the concept of active curve/selection and active point. The active curve and selection order is already in GPv2 and is used in the interpolation. The active point per curve concept was something we had planned and is very important for operators like merge, and perhaps for some type of snap.
Author
Member

That's right, and active selection should also help improve transformation operations in edit mode. Now the transformations alter the entire geometry.

image

That's right, and active selection should also help improve transformation operations in edit mode. Now the transformations alter the entire geometry. ![image](/attachments/217b9282-b70e-49c9-9215-11ef9d08d649)
Member

We could have an active element index for both points and curves. Would be no problem.

We could have an active element index for both points and curves. Would be no problem.
Member

Dissolve GPENCIL_OT_dissolve

If I'm not mistaken, this is already implemented: 5bed3ef827

> Dissolve GPENCIL_OT_dissolve If I'm not mistaken, this is already implemented: 5bed3ef827cba3601b7fd7e00de56917481fd10d
Author
Member

Dissolve GPENCIL_OT_dissolve

If I'm not mistaken, this is already implemented: 5bed3ef827

You're right @PratikPB2123 , task checked-off

> > Dissolve GPENCIL_OT_dissolve > > If I'm not mistaken, this is already implemented: 5bed3ef827cba3601b7fd7e00de56917481fd10d You're right @PratikPB2123 , task checked-off
Author
Member

Just noticed that the menu items missed a separator

image

Just noticed that the menu items missed a separator ![image](/attachments/7ec7328c-0139-423c-a5aa-c4a87ce873ec)

Just noticed that the menu items missed a separator

Sorry for that, I also notice that the separator was missing from #111079 It's fixed in #111571

> Just noticed that the menu items missed a separator Sorry for that, I also notice that the separator was missing from #111079 It's fixed in #111571
Member

Delete Active Keyframe All: 5870ffa570
Delete Active Keyframe Active Layer: 5870ffa570
Smooth Stroke: 7cd5e25743
Simplify: 7cd5e25743

Theses operators are already covered, we can ☑️ them :)

> Delete Active Keyframe All: 5870ffa5707c1795499a8c428521eb8691460b5a > Delete Active Keyframe Active Layer: 5870ffa5707c1795499a8c428521eb8691460b5a > Smooth Stroke: 7cd5e25743cd85fcf3ca907797714aca23196704 > Simplify: 7cd5e25743cd85fcf3ca907797714aca23196704 Theses operators are already covered, we can ☑️ them :)
Member
@PratikPB2123 done!
Author
Member

@PratikPB2123 adjusting the last operation for the Smooth and Simplify operators does not work well, the options are grayed out and cannot be modified

@PratikPB2123 adjusting the last operation for the Smooth and Simplify operators does not work well, the options are grayed out and cannot be modified
Member

@mendio , this is true for all GPv3 operators (in edit mode). Because undo system support is not implemented yet.

@mendio , this is true for all GPv3 operators (in edit mode). Because undo system support is not implemented yet.

I don't know what is the plan, but about Simplify, the new operator only supports RDP algorithm (Adaptive), but not the Fixed and Sample modes. The RPD is good in some cases, but not in all, so not sure it this Simplify operator can be considered as "done".

I don't know what is the plan, but about Simplify, the new operator only supports RDP algorithm (Adaptive), but not the Fixed and Sample modes. The RPD is good in some cases, but not in all, so not sure it this Simplify operator can be considered as "done".
Member

@antoniov There are check-boxes for the other ones.

@antoniov There are check-boxes for the other ones.

I mean this:

image

I just compiled the code.... maybe I'm missing something.

I mean this: ![image](/attachments/1e26b961-4b40-461e-bef4-36f0f0bdf0c2) I just compiled the code.... maybe I'm missing something.
678 KiB
Author
Member

Falk is talking about to the task list @antoniov

image

Falk is talking about to the task list @antoniov ![image](/attachments/21bff3b0-9815-46cc-9002-df38547f044d)

Ah!... I had understood that the 3 operators would be merged in only one with 3 options. Sorry, my mistake!

Ah!... I had understood that the 3 operators would be merged in only one with 3 options. Sorry, my mistake!
Member

That could still be the case. We can add a "Fixed" option to the current operator. I think "Resample" can be a separate operator though. It's not necessarily removing detail/simplifying.

That could still be the case. We can add a "Fixed" option to the current operator. I think "Resample" can be a separate operator though. It's not necessarily removing detail/simplifying.
Matias Mendiola changed title from GPv3: Edit Mode to GPv3: Edit Mode 2023-10-26 17:54:27 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#112858
No description provided.