Blender V4.3
grease_pencil_primitive.cc File Reference
#include <fmt/format.h>
#include <cstring>
#include "BKE_attribute.hh"
#include "BKE_brush.hh"
#include "BKE_colortools.hh"
#include "BKE_context.hh"
#include "BKE_curves.hh"
#include "BKE_grease_pencil.hh"
#include "BKE_material.h"
#include "BKE_paint.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "DEG_depsgraph_query.hh"
#include "DNA_material_types.h"
#include "ED_grease_pencil.hh"
#include "ED_screen.hh"
#include "ED_space_api.hh"
#include "ED_view3d.hh"
#include "BLI_array_utils.hh"
#include "BLI_string.h"
#include "BLI_vector.hh"
#include "BLT_translation.hh"
#include "GPU_immediate.hh"
#include "GPU_state.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"

Go to the source code of this file.

Classes

struct  blender::ed::greasepencil::PrimitiveToolOperation
 

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::greasepencil
 

Enumerations

enum class  blender::ed::greasepencil::PrimitiveType : int8_t {
  blender::ed::greasepencil::Line = 0 , blender::ed::greasepencil::Polyline = 1 , blender::ed::greasepencil::Arc = 2 , blender::ed::greasepencil::Curve = 3 ,
  blender::ed::greasepencil::Box = 4 , blender::ed::greasepencil::Circle = 5
}
 
enum class  blender::ed::greasepencil::OperatorMode : int8_t {
  blender::ed::greasepencil::Idle = 0 , blender::ed::greasepencil::Extruding = 1 , blender::ed::greasepencil::Grab = 2 , blender::ed::greasepencil::Drag = 3 ,
  blender::ed::greasepencil::DragAll = 4 , blender::ed::greasepencil::RotateAll = 5 , blender::ed::greasepencil::ScaleAll = 6
}
 
enum class  blender::ed::greasepencil::ControlPointType : int8_t { blender::ed::greasepencil::JoinPoint = 0 , blender::ed::greasepencil::HandlePoint = 1 }
 
enum class  blender::ed::greasepencil::ModalKeyMode : int8_t {
  blender::ed::greasepencil::Cancel = 1 , blender::ed::greasepencil::Confirm , blender::ed::greasepencil::Extrude , blender::ed::greasepencil::Panning ,
  blender::ed::greasepencil::Grab , blender::ed::greasepencil::Rotate , blender::ed::greasepencil::Scale , blender::ed::greasepencil::IncreaseSubdivision ,
  blender::ed::greasepencil::DecreaseSubdivision
}
 

Functions

static int blender::ed::greasepencil::control_points_per_segment (const PrimitiveToolOperation &ptd)
 
static ControlPointType blender::ed::greasepencil::get_control_point_type (const PrimitiveToolOperation &ptd, const int point)
 
static void blender::ed::greasepencil::control_point_colors_and_sizes (const PrimitiveToolOperation &ptd, MutableSpan< ColorGeometry4f > colors, MutableSpan< float > sizes)
 
static void blender::ed::greasepencil::draw_control_points (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_draw (const bContext *, ARegion *, void *arg)
 
static void blender::ed::greasepencil::grease_pencil_primitive_save (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_load (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::primitive_calulate_curve_positions (PrimitiveToolOperation &ptd, Span< float2 > control_points, MutableSpan< float2 > new_positions)
 
static float2 blender::ed::greasepencil::primitive_local_to_screen (const PrimitiveToolOperation &ptd, const float3 &point)
 
static void blender::ed::greasepencil::primitive_calulate_curve_positions_2d (PrimitiveToolOperation &ptd, MutableSpan< float2 > new_positions)
 
static int blender::ed::greasepencil::grease_pencil_primitive_curve_points_number (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_update_curves (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_init_curves (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_undo_curves (PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_status_indicators (bContext *C, wmOperator *op, PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_update_view (bContext *C, PrimitiveToolOperation &ptd)
 
static int blender::ed::greasepencil::grease_pencil_primitive_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_exit (bContext *C, wmOperator *op)
 
static float2 blender::ed::greasepencil::snap_diagonals (float2 p)
 
static float2 blender::ed::greasepencil::snap_diagonals_box (float2 p)
 
static float2 blender::ed::greasepencil::snap_8_angles (float2 p)
 
static void blender::ed::greasepencil::grease_pencil_primitive_extruding_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_drag_all_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_grab_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_drag_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static float2 blender::ed::greasepencil::primitive_center_of_mass (const PrimitiveToolOperation &ptd)
 
static void blender::ed::greasepencil::grease_pencil_primitive_rotate_all_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_scale_all_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static int blender::ed::greasepencil::primitive_check_ui_hover (const PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_cursor_update (bContext *C, PrimitiveToolOperation &ptd, const wmEvent *event)
 
static int blender::ed::greasepencil::grease_pencil_primitive_event_modal_map (bContext *C, wmOperator *op, PrimitiveToolOperation &ptd, const wmEvent *event)
 
static int blender::ed::greasepencil::grease_pencil_primitive_mouse_event (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_operator_update (PrimitiveToolOperation &ptd, const wmEvent *event)
 
static int blender::ed::greasepencil::grease_pencil_primitive_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void blender::ed::greasepencil::grease_pencil_primitive_cancel (bContext *C, wmOperator *op)
 
static void blender::ed::greasepencil::grease_pencil_primitive_common_props (wmOperatorType *ot, const int default_subdiv, const PrimitiveType default_type)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_line (wmOperatorType *ot)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_polyline (wmOperatorType *ot)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_arc (wmOperatorType *ot)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_curve (wmOperatorType *ot)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_box (wmOperatorType *ot)
 
static void blender::ed::greasepencil::GREASE_PENCIL_OT_primitive_circle (wmOperatorType *ot)
 
void ED_operatortypes_grease_pencil_primitives ()
 
void ED_primitivetool_modal_keymap (wmKeyConfig *keyconf)
 

Variables

static constexpr float blender::ed::greasepencil::ui_primary_point_draw_size_px = 8.0f
 
static constexpr float blender::ed::greasepencil::ui_secondary_point_draw_size_px = 5.0f
 
static constexpr float blender::ed::greasepencil::ui_tertiary_point_draw_size_px = 3.0f
 
static constexpr float blender::ed::greasepencil::ui_point_hit_size_px = 20.0f
 
static constexpr float blender::ed::greasepencil::ui_point_max_hit_size_px = 600.0f
 
static constexpr int blender::ed::greasepencil::control_point_first = 0
 
static constexpr int blender::ed::greasepencil::control_point_center = 1
 
static constexpr int blender::ed::greasepencil::control_point_last = 2
 

Detailed Description

Operators for creating new Grease Pencil primitives (boxes, circles, ...).

Definition in file grease_pencil_primitive.cc.

Function Documentation

◆ ED_operatortypes_grease_pencil_primitives()

void ED_operatortypes_grease_pencil_primitives ( )

Definition at line 1503 of file grease_pencil_primitive.cc.

References WM_operatortype_append().

Referenced by ED_operatortypes_grease_pencil().

◆ ED_primitivetool_modal_keymap()

void ED_primitivetool_modal_keymap ( wmKeyConfig * keyconf)