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
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/windowmanager/manipulators/intern')
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c243
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c559
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c605
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c386
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/geom_arrow_manipulator.c141
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/geom_cube_manipulator.c75
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/geom_dial_manipulator.c813
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_geometry.h51
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_intern.h100
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c171
-rw-r--r--source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c262
-rw-r--r--source/blender/windowmanager/manipulators/intern/wm_manipulator.c101
-rw-r--r--source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h86
-rw-r--r--source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c2
-rw-r--r--source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c26
15 files changed, 25 insertions, 3596 deletions
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
deleted file mode 100644
index 0cec342dd06..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/arrow2d_manipulator.c
- * \ingroup wm
- *
- * \name 2D Arrow Manipulator
- *
- * \brief Simple arrow manipulator which is dragged into a certain direction.
- */
-
-#include "BIF_gl.h"
-
-#include "BKE_context.h"
-
-#include "BLI_listbase.h"
-#include "BLI_math.h"
-#include "BLI_rect.h"
-
-#include "DNA_manipulator_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "ED_screen.h"
-
-#include "GPU_draw.h"
-#include "GPU_immediate.h"
-#include "GPU_matrix.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "RNA_access.h"
-
-#include "WM_types.h"
-
-/* own includes */
-#include "WM_manipulator_api.h"
-#include "WM_manipulator_types.h"
-#include "wm_manipulator_wmapi.h"
-#include "WM_manipulator_library.h"
-#include "wm_manipulator_intern.h"
-#include "manipulator_library_intern.h"
-
-
-typedef struct ArrowManipulator2D {
- struct wmManipulator manipulator;
-
- float angle;
- float line_len;
-} ArrowManipulator2D;
-
-
-static void arrow2d_draw_geom(ArrowManipulator2D *arrow, const float origin[2], const float color[4])
-{
- const float size = 0.11f;
- const float size_h = size / 2.0f;
- const float len = arrow->line_len;
- const float draw_line_ofs = (arrow->manipulator.line_width * 0.5f) / arrow->manipulator.scale;
-
- unsigned int pos = VertexFormat_add_attrib(immVertexFormat(), "pos", COMP_F32, 2, KEEP_FLOAT);
-
- gpuPushMatrix();
- gpuTranslate2fv(origin);
- gpuScaleUniform(arrow->manipulator.scale);
- gpuRotate2D(RAD2DEGF(arrow->angle));
- /* local offset */
- gpuTranslate2f(arrow->manipulator.offset[0] + draw_line_ofs, arrow->manipulator.offset[1]);
-
- immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
-
- immUniformColor4fv(color);
-
- immBegin(PRIM_LINES, 2);
- immVertex2f(pos, 0.0f, 0.0f);
- immVertex2f(pos, 0.0f, len);
- immEnd();
-
- immBegin(PRIM_TRIANGLES, 3);
- immVertex2f(pos, size_h, len);
- immVertex2f(pos, -size_h, len);
- immVertex2f(pos, 0.0f, len + size * 1.7f);
- immEnd();
-
- immUnbindProgram();
-
- gpuPopMatrix();
-}
-
-static void manipulator_arrow2d_draw(const bContext *UNUSED(C), struct wmManipulator *manipulator)
-{
- ArrowManipulator2D *arrow = (ArrowManipulator2D *)manipulator;
- float col[4];
-
- manipulator_color_get(manipulator, manipulator->state & WM_MANIPULATOR_HIGHLIGHT, col);
-
- glLineWidth(manipulator->line_width);
- glEnable(GL_BLEND);
- arrow2d_draw_geom(arrow, manipulator->origin, col);
- glDisable(GL_BLEND);
-
- if (arrow->manipulator.interaction_data) {
- ManipulatorInteraction *inter = arrow->manipulator.interaction_data;
-
- glEnable(GL_BLEND);
- arrow2d_draw_geom(arrow, inter->init_origin, (const float[4]){0.5f, 0.5f, 0.5f, 0.5f});
- glDisable(GL_BLEND);
- }
-}
-
-static void manipulator_arrow2d_invoke(
- bContext *UNUSED(C), struct wmManipulator *manipulator, const wmEvent *UNUSED(event))
-{
- ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__);
-
- copy_v2_v2(inter->init_origin, manipulator->origin);
- manipulator->interaction_data = inter;
-}
-
-static int manipulator_arrow2d_intersect(
- bContext *UNUSED(C), struct wmManipulator *manipulator, const wmEvent *event)
-{
- ArrowManipulator2D *arrow = (ArrowManipulator2D *)manipulator;
- const float mval[2] = {event->mval[0], event->mval[1]};
- const float line_len = arrow->line_len * manipulator->scale;
- float mval_local[2];
-
- copy_v2_v2(mval_local, mval);
- sub_v2_v2(mval_local, manipulator->origin);
-
- float line[2][2];
- line[0][0] = line[0][1] = line[1][0] = 0.0f;
- line[1][1] = line_len;
-
- /* rotate only if needed */
- if (arrow->angle != 0.0f) {
- float rot_point[2];
- copy_v2_v2(rot_point, line[1]);
- rotate_v2_v2fl(line[1], rot_point, arrow->angle);
- }
-
- /* arrow line intersection check */
- float isect_1[2], isect_2[2];
- const int isect = isect_line_sphere_v2(
- line[0], line[1], mval_local, MANIPULATOR_HOTSPOT + manipulator->line_width * 0.5f,
- isect_1, isect_2);
-
- if (isect > 0) {
- float line_ext[2][2]; /* extended line for segment check including hotspot */
- copy_v2_v2(line_ext[0], line[0]);
- line_ext[1][0] = line[1][0] + MANIPULATOR_HOTSPOT * ((line[1][0] - line[0][0]) / line_len);
- line_ext[1][1] = line[1][1] + MANIPULATOR_HOTSPOT * ((line[1][1] - line[0][1]) / line_len);
-
- const float lambda_1 = line_point_factor_v2(isect_1, line_ext[0], line_ext[1]);
- if (isect == 1) {
- return IN_RANGE_INCL(lambda_1, 0.0f, 1.0f);
- }
- else {
- BLI_assert(isect == 2);
- const float lambda_2 = line_point_factor_v2(isect_2, line_ext[0], line_ext[1]);
- return IN_RANGE_INCL(lambda_1, 0.0f, 1.0f) && IN_RANGE_INCL(lambda_2, 0.0f, 1.0f);
- }
- }
-
- return 0;
-}
-
-/* -------------------------------------------------------------------- */
-/** \name 2D Arrow Manipulator API
- *
- * \{ */
-
-struct wmManipulator *MANIPULATOR_arrow2d_new(wmManipulatorGroup *mgroup, const char *name)
-{
- const wmManipulatorType *mpt = WM_manipulatortype_find("MANIPULATOR_WT_arrow_2d", false);
- ArrowManipulator2D *arrow = (ArrowManipulator2D *)WM_manipulator_new(mpt, mgroup, name);
-
- arrow->manipulator.flag |= WM_MANIPULATOR_DRAW_ACTIVE;
-
- arrow->line_len = 1.0f;
-
- return &arrow->manipulator;
-}
-
-void MANIPULATOR_arrow2d_set_angle(struct wmManipulator *manipulator, const float angle)
-{
- ArrowManipulator2D *arrow = (ArrowManipulator2D *)manipulator;
- arrow->angle = angle;
-}
-
-void MANIPULATOR_arrow2d_set_line_len(struct wmManipulator *manipulator, const float len)
-{
- ArrowManipulator2D *arrow = (ArrowManipulator2D *)manipulator;
- arrow->line_len = len;
-}
-
-static void MANIPULATOR_WT_arrow_2d(wmManipulatorType *wt)
-{
- /* identifiers */
- wt->idname = "MANIPULATOR_WT_arrow_2d";
-
- /* api callbacks */
- wt->draw = manipulator_arrow2d_draw;
- wt->invoke = manipulator_arrow2d_invoke;
- wt->intersect = manipulator_arrow2d_intersect;
-
- wt->size = sizeof(ArrowManipulator2D);
-}
-
-void ED_manipulatortypes_arrow_2d(void)
-{
- WM_manipulatortype_append(MANIPULATOR_WT_arrow_2d);
-}
-
-/** \} */ /* Arrow Manipulator API */
-
-
-/* -------------------------------------------------------------------- */
-
-void fix_linking_manipulator_arrow2d(void)
-{
- (void)0;
-}
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
deleted file mode 100644
index 95bd0bd1a45..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2014 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): Blender Foundation
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c
- * \ingroup wm
- *
- * \name Arrow Manipulator
- *
- * 3D Manipulator
- *
- * \brief Simple arrow manipulator which is dragged into a certain direction.
- * The arrow head can have varying shapes, e.g. cone, box, etc.
- */
-
-#include "BIF_gl.h"
-
-#include "BKE_context.h"
-
-#include "BLI_math.h"
-
-#include "DNA_manipulator_types.h"
-#include "DNA_view3d_types.h"
-
-#include "ED_view3d.h"
-#include "ED_screen.h"
-
-#include "GPU_draw.h"
-#include "GPU_immediate.h"
-#include "GPU_immediate_util.h"
-#include "GPU_matrix.h"
-#include "GPU_select.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "RNA_access.h"
-
-#include "WM_types.h"
-#include "WM_api.h"
-
-/* own includes */
-#include "wm_manipulator_wmapi.h"
-#include "wm_manipulator_intern.h"
-#include "manipulator_geometry.h"
-#include "manipulator_library_intern.h"
-
-/* to use custom arrows exported to geom_arrow_manipulator.c */
-//#define USE_MANIPULATOR_CUSTOM_ARROWS
-
-/* ArrowManipulator->flag */
-enum {
- ARROW_UP_VECTOR_SET = (1 << 0),
- ARROW_CUSTOM_RANGE_SET = (1 << 1),
-};
-
-typedef struct ArrowManipulator3D {
- wmManipulator manipulator;
-
- ManipulatorCommonData data;
-
- int style;
- int flag;
-
- float len; /* arrow line length */
- float direction[3];
- float up[3];
- float aspect[2]; /* cone style only */
-} ArrowManipulator3D;
-
-
-/* -------------------------------------------------------------------- */
-
-static void manipulator_arrow_get_final_pos(wmManipulator *manipulator, float r_pos[3])
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- mul_v3_v3fl(r_pos, arrow->direction, arrow->data.offset);
- add_v3_v3(r_pos, arrow->manipulator.origin);
-}
-
-static void arrow_draw_geom(const ArrowManipulator3D *arrow, const bool select, const float color[4])
-{
- unsigned int pos = VertexFormat_add_attrib(immVertexFormat(), "pos", COMP_F32, 3, KEEP_FLOAT);
- bool unbind_shader = true;
-
- immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
-
- if (arrow->style & MANIPULATOR_ARROW_STYLE_CROSS) {
- immUniformColor4fv(color);
-
- immBegin(PRIM_LINES, 4);
- immVertex3f(pos, -1.0f, 0.0f, 0.0f);
- immVertex3f(pos, 1.0f, 0.0f, 0.0f);
- immVertex3f(pos, 0.0f, -1.0f, 0.0f);
- immVertex3f(pos, 0.0f, 1.0f, 0.0f);
- immEnd();
- }
- else if (arrow->style & MANIPULATOR_ARROW_STYLE_CONE) {
- const float unitx = arrow->aspect[0];
- const float unity = arrow->aspect[1];
- const float vec[4][3] = {
- {-unitx, -unity, 0},
- { unitx, -unity, 0},
- { unitx, unity, 0},
- {-unitx, unity, 0},
- };
-
- glLineWidth(arrow->manipulator.line_width);
- wm_manipulator_vec_draw(color, vec, ARRAY_SIZE(vec), pos, PRIM_LINE_STRIP);
- }
- else {
-#ifdef USE_MANIPULATOR_CUSTOM_ARROWS
- wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_arrow, select, color);
-#else
-
- const float vec[2][3] = {
- {0.0f, 0.0f, 0.0f},
- {0.0f, 0.0f, arrow->len},
- };
-
- glLineWidth(arrow->manipulator.line_width);
- wm_manipulator_vec_draw(color, vec, ARRAY_SIZE(vec), pos, PRIM_LINE_STRIP);
-
-
- /* *** draw arrow head *** */
-
- gpuPushMatrix();
-
- if (arrow->style & MANIPULATOR_ARROW_STYLE_BOX) {
- const float size = 0.05f;
-
- /* translate to line end with some extra offset so box starts exactly where line ends */
- gpuTranslate3f(0.0f, 0.0f, arrow->len + size);
- /* scale down to box size */
- gpuScale3f(size, size, size);
-
- /* draw cube */
- immUnbindProgram();
- unbind_shader = false;
- wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_cube, select, color);
- }
- else {
- const float len = 0.25f;
- const float width = 0.06f;
- const bool use_lighting = select == false && ((U.manipulator_flag & V3D_SHADED_MANIPULATORS) != 0);
-
- /* translate to line end */
- gpuTranslate3f(0.0f, 0.0f, arrow->len);
-
- if (use_lighting) {
- immUnbindProgram();
- immBindBuiltinProgram(GPU_SHADER_3D_SMOOTH_COLOR);
- }
-
- imm_draw_circle_fill_3d(pos, 0.0, 0.0, width, 8);
- imm_draw_cylinder_fill_3d(pos, width, 0.0, len, 8, 1);
- }
-
- gpuPopMatrix();
-#endif /* USE_MANIPULATOR_CUSTOM_ARROWS */
- }
-
- if (unbind_shader) {
- immUnbindProgram();
- }
-}
-
-static void arrow_draw_intern(ArrowManipulator3D *arrow, const bool select, const bool highlight)
-{
- const float up[3] = {0.0f, 0.0f, 1.0f};
- float col[4];
- float rot[3][3];
- float mat[4][4];
- float final_pos[3];
-
- manipulator_color_get(&arrow->manipulator, highlight, col);
- manipulator_arrow_get_final_pos(&arrow->manipulator, final_pos);
-
- if (arrow->flag & ARROW_UP_VECTOR_SET) {
- copy_v3_v3(rot[2], arrow->direction);
- copy_v3_v3(rot[1], arrow->up);
- cross_v3_v3v3(rot[0], arrow->up, arrow->direction);
- }
- else {
- rotation_between_vecs_to_mat3(rot, up, arrow->direction);
- }
- copy_m4_m3(mat, rot);
- copy_v3_v3(mat[3], final_pos);
- mul_mat3_m4_fl(mat, arrow->manipulator.scale);
-
- gpuPushMatrix();
- gpuMultMatrix(mat);
-
- gpuTranslate3fv(arrow->manipulator.offset);
-
- glEnable(GL_BLEND);
- arrow_draw_geom(arrow, select, col);
- glDisable(GL_BLEND);
-
- gpuPopMatrix();
-
- if (arrow->manipulator.interaction_data) {
- ManipulatorInteraction *inter = arrow->manipulator.interaction_data;
-
- copy_m4_m3(mat, rot);
- copy_v3_v3(mat[3], inter->init_origin);
- mul_mat3_m4_fl(mat, inter->init_scale);
-
- gpuPushMatrix();
- gpuMultMatrix(mat);
- gpuTranslate3fv(arrow->manipulator.offset);
-
- glEnable(GL_BLEND);
- arrow_draw_geom(arrow, select, (const float [4]){0.5f, 0.5f, 0.5f, 0.5f});
- glDisable(GL_BLEND);
-
- gpuPopMatrix();
- }
-}
-
-static void manipulator_arrow_render_3d_intersect(
- const bContext *UNUSED(C), wmManipulator *manipulator,
- int selectionbase)
-{
- GPU_select_load_id(selectionbase);
- arrow_draw_intern((ArrowManipulator3D *)manipulator, true, false);
-}
-
-static void manipulator_arrow_draw(const bContext *UNUSED(C), wmManipulator *manipulator)
-{
- arrow_draw_intern((ArrowManipulator3D *)manipulator, false, (manipulator->state & WM_MANIPULATOR_HIGHLIGHT) != 0);
-}
-
-/**
- * Calculate arrow offset independent from prop min value,
- * meaning the range will not be offset by min value first.
- */
-static void manipulator_arrow_handler(bContext *C, wmManipulator *manipulator, const wmEvent *event, const int flag)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
- ManipulatorInteraction *inter = manipulator->interaction_data;
- ARegion *ar = CTX_wm_region(C);
- RegionView3D *rv3d = ar->regiondata;
-
- float orig_origin[4];
- float viewvec[3], tangent[3], plane[3];
- float offset[4];
- float m_diff[2];
- float dir_2d[2], dir2d_final[2];
- float facdir = 1.0f;
- bool use_vertical = false;
-
-
- copy_v3_v3(orig_origin, inter->init_origin);
- orig_origin[3] = 1.0f;
- add_v3_v3v3(offset, orig_origin, arrow->direction);
- offset[3] = 1.0f;
-
- /* calculate view vector */
- if (rv3d->is_persp) {
- sub_v3_v3v3(viewvec, orig_origin, rv3d->viewinv[3]);
- }
- else {
- copy_v3_v3(viewvec, rv3d->viewinv[2]);
- }
- normalize_v3(viewvec);
-
- /* first determine if view vector is really close to the direction. If it is, we use
- * vertical movement to determine offset, just like transform system does */
- if (RAD2DEG(acos(dot_v3v3(viewvec, arrow->direction))) > 5.0f) {
- /* multiply to projection space */
- mul_m4_v4(rv3d->persmat, orig_origin);
- mul_v4_fl(orig_origin, 1.0f / orig_origin[3]);
- mul_m4_v4(rv3d->persmat, offset);
- mul_v4_fl(offset, 1.0f / offset[3]);
-
- sub_v2_v2v2(dir_2d, offset, orig_origin);
- dir_2d[0] *= ar->winx;
- dir_2d[1] *= ar->winy;
- normalize_v2(dir_2d);
- }
- else {
- dir_2d[0] = 0.0f;
- dir_2d[1] = 1.0f;
- use_vertical = true;
- }
-
- /* find mouse difference */
- m_diff[0] = event->mval[0] - inter->init_mval[0];
- m_diff[1] = event->mval[1] - inter->init_mval[1];
-
- /* project the displacement on the screen space arrow direction */
- project_v2_v2v2(dir2d_final, m_diff, dir_2d);
-
- float zfac = ED_view3d_calc_zfac(rv3d, orig_origin, NULL);
- ED_view3d_win_to_delta(ar, dir2d_final, offset, zfac);
-
- add_v3_v3v3(orig_origin, offset, inter->init_origin);
-
- /* calculate view vector for the new position */
- if (rv3d->is_persp) {
- sub_v3_v3v3(viewvec, orig_origin, rv3d->viewinv[3]);
- }
- else {
- copy_v3_v3(viewvec, rv3d->viewinv[2]);
- }
-
- normalize_v3(viewvec);
- if (!use_vertical) {
- float fac;
- /* now find a plane parallel to the view vector so we can intersect with the arrow direction */
- cross_v3_v3v3(tangent, viewvec, offset);
- cross_v3_v3v3(plane, tangent, viewvec);
- fac = dot_v3v3(plane, offset) / dot_v3v3(arrow->direction, plane);
-
- facdir = (fac < 0.0) ? -1.0 : 1.0;
- mul_v3_v3fl(offset, arrow->direction, fac);
- }
- else {
- facdir = (m_diff[1] < 0.0) ? -1.0 : 1.0;
- }
-
-
- ManipulatorCommonData *data = &arrow->data;
- const float ofs_new = facdir * len_v3(offset);
- const int slot = ARROW_SLOT_OFFSET_WORLD_SPACE;
-
- /* set the property for the operator and call its modal function */
- if (manipulator->props[slot]) {
- const bool constrained = arrow->style & MANIPULATOR_ARROW_STYLE_CONSTRAINED;
- const bool inverted = arrow->style & MANIPULATOR_ARROW_STYLE_INVERTED;
- const bool use_precision = flag & WM_MANIPULATOR_TWEAK_PRECISE;
- float value = manipulator_value_from_offset(data, inter, ofs_new, constrained, inverted, use_precision);
-
- manipulator_property_value_set(C, manipulator, slot, value);
- /* get clamped value */
- value = manipulator_property_value_get(manipulator, slot);
-
- data->offset = manipulator_offset_from_value(data, value, constrained, inverted);
- }
- else {
- data->offset = ofs_new;
- }
-
- /* tag the region for redraw */
- ED_region_tag_redraw(ar);
- WM_event_add_mousemove(C);
-}
-
-
-static void manipulator_arrow_invoke(
- bContext *UNUSED(C), wmManipulator *manipulator, const wmEvent *event)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
- ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__);
- PointerRNA ptr = manipulator->ptr[ARROW_SLOT_OFFSET_WORLD_SPACE];
- PropertyRNA *prop = manipulator->props[ARROW_SLOT_OFFSET_WORLD_SPACE];
-
- if (prop) {
- inter->init_value = RNA_property_float_get(&ptr, prop);
- }
-
- inter->init_offset = arrow->data.offset;
-
- inter->init_mval[0] = event->mval[0];
- inter->init_mval[1] = event->mval[1];
-
- inter->init_scale = manipulator->scale;
-
- manipulator_arrow_get_final_pos(manipulator, inter->init_origin);
-
- manipulator->interaction_data = inter;
-}
-
-static void manipulator_arrow_prop_data_update(wmManipulator *manipulator, const int slot)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
- manipulator_property_data_update(
- manipulator, &arrow->data, slot,
- (arrow->style & MANIPULATOR_ARROW_STYLE_CONSTRAINED) != 0,
- (arrow->style & MANIPULATOR_ARROW_STYLE_INVERTED) != 0);
-}
-
-static void manipulator_arrow_exit(bContext *C, wmManipulator *manipulator, const bool cancel)
-{
- if (!cancel)
- return;
-
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
- ManipulatorCommonData *data = &arrow->data;
- ManipulatorInteraction *inter = manipulator->interaction_data;
-
- manipulator_property_value_reset(C, manipulator, inter, ARROW_SLOT_OFFSET_WORLD_SPACE);
- data->offset = inter->init_offset;
-}
-
-
-/* -------------------------------------------------------------------- */
-/** \name Arrow Manipulator API
- *
- * \{ */
-
-wmManipulator *MANIPULATOR_arrow_new(wmManipulatorGroup *mgroup, const char *name, const int style)
-{
- const wmManipulatorType *mpt = WM_manipulatortype_find("MANIPULATOR_WT_arrow_3d", false);
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)WM_manipulator_new(mpt, mgroup, name);
-
- int real_style = style;
-
- /* inverted only makes sense in a constrained arrow */
- if (real_style & MANIPULATOR_ARROW_STYLE_INVERTED) {
- real_style |= MANIPULATOR_ARROW_STYLE_CONSTRAINED;
- }
-
- const float dir_default[3] = {0.0f, 0.0f, 1.0f};
-
- arrow->manipulator.flag |= WM_MANIPULATOR_DRAW_ACTIVE;
-
- arrow->style = real_style;
- arrow->len = 1.0f;
- arrow->data.range_fac = 1.0f;
- copy_v3_v3(arrow->direction, dir_default);
-
- return &arrow->manipulator;
-}
-
-/**
- * Define direction the arrow will point towards
- */
-void MANIPULATOR_arrow_set_direction(wmManipulator *manipulator, const float direction[3])
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- copy_v3_v3(arrow->direction, direction);
- normalize_v3(arrow->direction);
-}
-
-/**
- * Define up-direction of the arrow manipulator
- */
-void MANIPULATOR_arrow_set_up_vector(wmManipulator *manipulator, const float direction[3])
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- if (direction) {
- copy_v3_v3(arrow->up, direction);
- normalize_v3(arrow->up);
- arrow->flag |= ARROW_UP_VECTOR_SET;
- }
- else {
- arrow->flag &= ~ARROW_UP_VECTOR_SET;
- }
-}
-
-/**
- * Define a custom arrow line length
- */
-void MANIPULATOR_arrow_set_line_len(wmManipulator *manipulator, const float len)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
- arrow->len = len;
-}
-
-/**
- * Define a custom property UI range
- *
- * \note Needs to be called before WM_manipulator_set_property!
- */
-void MANIPULATOR_arrow_set_ui_range(wmManipulator *manipulator, const float min, const float max)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- BLI_assert(min < max);
- BLI_assert(!(arrow->manipulator.props[0] && "Make sure this function "
- "is called before WM_manipulator_set_property"));
-
- arrow->data.range = max - min;
- arrow->data.min = min;
- arrow->data.flag |= MANIPULATOR_CUSTOM_RANGE_SET;
-}
-
-/**
- * Define a custom factor for arrow min/max distance
- *
- * \note Needs to be called before WM_manipulator_set_property!
- */
-void MANIPULATOR_arrow_set_range_fac(wmManipulator *manipulator, const float range_fac)
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- BLI_assert(!(arrow->manipulator.props[0] && "Make sure this function "
- "is called before WM_manipulator_set_property"));
-
- arrow->data.range_fac = range_fac;
-}
-
-/**
- * Define xy-aspect for arrow cone
- */
-void MANIPULATOR_arrow_cone_set_aspect(wmManipulator *manipulator, const float aspect[2])
-{
- ArrowManipulator3D *arrow = (ArrowManipulator3D *)manipulator;
-
- copy_v2_v2(arrow->aspect, aspect);
-}
-
-static void MANIPULATOR_WT_arrow_3d(wmManipulatorType *wt)
-{
- /* identifiers */
- wt->idname = "MANIPULATOR_WT_arrow_3d";
-
- /* api callbacks */
- wt->draw = manipulator_arrow_draw;
- wt->draw_select = manipulator_arrow_render_3d_intersect;
- wt->position_get = manipulator_arrow_get_final_pos;
- wt->intersect = NULL;
- wt->handler = manipulator_arrow_handler;
- wt->invoke = manipulator_arrow_invoke;
- wt->prop_data_update = manipulator_arrow_prop_data_update;
- wt->exit = manipulator_arrow_exit;
-
- wt->size = sizeof(ArrowManipulator3D);
-}
-
-void ED_manipulatortypes_arrow_3d(void)
-{
- WM_manipulatortype_append(MANIPULATOR_WT_arrow_3d);
-}
-
-/** \} */ /* Arrow Manipulator API */
-
-
-/* -------------------------------------------------------------------- */
-
-void fix_linking_manipulator_arrow(void)
-{
- (void)0;
-}
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
deleted file mode 100644
index 30c24b1c788..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
+++ /dev/null
@@ -1,605 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2014 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): Blender Foundation
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/cage_manipulator.c
- * \ingroup wm
- *
- * \name Cage Manipulator
- *
- * 2D Manipulator
- *
- * \brief Rectangular manipulator acting as a 'cage' around its content.
- * Interacting scales or translates the manipulator.
- */
-
-#include "BIF_gl.h"
-
-#include "BKE_context.h"
-
-#include "BLI_math.h"
-#include "BLI_rect.h"
-
-#include "DNA_manipulator_types.h"
-
-#include "ED_screen.h"
-
-#include "GPU_matrix.h"
-#include "GPU_shader.h"
-#include "GPU_immediate.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "RNA_access.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-/* own includes */
-#include "wm_manipulator_wmapi.h"
-#include "wm_manipulator_intern.h"
-
-
-/* wmManipulator->highlighted_part */
-enum {
- MANIPULATOR_RECT_TRANSFORM_INTERSECT_TRANSLATE = 1,
- MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_LEFT = 2,
- MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_RIGHT = 3,
- MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_UP = 4,
- MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_DOWN = 5
-};
-
-#define MANIPULATOR_RECT_MIN_WIDTH 15.0f
-#define MANIPULATOR_RESIZER_WIDTH 20.0f
-
-typedef struct RectTransformManipulator {
- wmManipulator manipulator;
- float w, h; /* dimensions of manipulator */
- float rotation; /* rotation of the rectangle */
- float scale[2]; /* scaling for the manipulator for non-destructive editing. */
- int style;
-} RectTransformManipulator;
-
-
-/* -------------------------------------------------------------------- */
-
-static void rect_transform_draw_corners(
- const rctf *r, const float offsetx, const float offsety, const float color[3])
-{
- unsigned int pos = VertexFormat_add_attrib(immVertexFormat(), "pos", COMP_F32, 2, KEEP_FLOAT);
-
- immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
- immUniformColor3fv(color);
-
- immBegin(PRIM_LINES, 16);
-
- immVertex2f(pos, r->xmin, r->ymin + offsety);
- immVertex2f(pos, r->xmin, r->ymin);
- immVertex2f(pos, r->xmin, r->ymin);
- immVertex2f(pos, r->xmin + offsetx, r->ymin);
-
- immVertex2f(pos, r->xmax, r->ymin + offsety);
- immVertex2f(pos, r->xmax, r->ymin);
- immVertex2f(pos, r->xmax, r->ymin);
- immVertex2f(pos, r->xmax - offsetx, r->ymin);
-
- immVertex2f(pos, r->xmax, r->ymax - offsety);
- immVertex2f(pos, r->xmax, r->ymax);
- immVertex2f(pos, r->xmax, r->ymax);
- immVertex2f(pos, r->xmax - offsetx, r->ymax);
-
- immVertex2f(pos, r->xmin, r->ymax - offsety);
- immVertex2f(pos, r->xmin, r->ymax);
- immVertex2f(pos, r->xmin, r->ymax);
- immVertex2f(pos, r->xmin + offsetx, r->ymax);
-
- immEnd();
-
- immUnbindProgram();
-}
-
-static void rect_transform_draw_interaction(
- const float col[4], const int highlighted,
- const float half_w, const float half_h,
- const float w, const float h, const float line_width)
-{
- /* Why generate coordinates for 4 vertices, when we only use three? */
- float verts[4][2];
-
- switch (highlighted) {
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_LEFT:
- verts[0][0] = -half_w + w;
- verts[0][1] = -half_h;
- verts[1][0] = -half_w;
- verts[1][1] = -half_h;
- verts[2][0] = -half_w;
- verts[2][1] = half_h;
- verts[3][0] = -half_w + w;
- verts[3][1] = half_h;
- break;
-
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_RIGHT:
- verts[0][0] = half_w - w;
- verts[0][1] = -half_h;
- verts[1][0] = half_w;
- verts[1][1] = -half_h;
- verts[2][0] = half_w;
- verts[2][1] = half_h;
- verts[3][0] = half_w - w;
- verts[3][1] = half_h;
- break;
-
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_DOWN:
- verts[0][0] = -half_w;
- verts[0][1] = -half_h + h;
- verts[1][0] = -half_w;
- verts[1][1] = -half_h;
- verts[2][0] = half_w;
- verts[2][1] = -half_h;
- verts[3][0] = half_w;
- verts[3][1] = -half_h + h;
- break;
-
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_UP:
- verts[0][0] = -half_w;
- verts[0][1] = half_h - h;
- verts[1][0] = -half_w;
- verts[1][1] = half_h;
- verts[2][0] = half_w;
- verts[2][1] = half_h;
- verts[3][0] = half_w;
- verts[3][1] = half_h - h;
- break;
-
- default:
- return;
- }
-
- VertexFormat *format = immVertexFormat();
- unsigned int pos = VertexFormat_add_attrib(format, "pos", COMP_F32, 2, KEEP_FLOAT);
- unsigned int color = VertexFormat_add_attrib(format, "color", COMP_F32, 3, KEEP_FLOAT);
- immBindBuiltinProgram(GPU_SHADER_2D_FLAT_COLOR);
-
- glLineWidth(line_width + 3.0);
-
- immBegin(PRIM_LINE_STRIP, 3);
- immAttrib3f(color, 0.0f, 0.0f, 0.0f);
- immVertex2fv(pos, verts[0]);
- immVertex2fv(pos, verts[1]);
- immVertex2fv(pos, verts[2]);
- immEnd();
-
- glLineWidth(line_width);
-
- immBegin(PRIM_LINE_STRIP, 3);
- immAttrib3fv(color, col);
- immVertex2fv(pos, verts[0]);
- immVertex2fv(pos, verts[1]);
- immVertex2fv(pos, verts[2]);
- immEnd();
-
- immUnbindProgram();
-}
-
-static void manipulator_rect_transform_draw(const bContext *UNUSED(C), wmManipulator *manipulator)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- rctf r;
- float w = cage->w;
- float h = cage->h;
- float aspx = 1.0f, aspy = 1.0f;
- const float half_w = w / 2.0f;
- const float half_h = h / 2.0f;
-
- r.xmin = -half_w;
- r.ymin = -half_h;
- r.xmax = half_w;
- r.ymax = half_h;
-
- gpuPushMatrix();
- gpuTranslate2f(manipulator->origin[0] + manipulator->offset[0],
- manipulator->origin[1] + manipulator->offset[1]);
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM)
- gpuScaleUniform(cage->scale[0]);
- else
- gpuScale2fv(cage->scale);
-
- if (w > h)
- aspx = h / w;
- else
- aspy = w / h;
- w = min_ff(aspx * w / MANIPULATOR_RESIZER_WIDTH, MANIPULATOR_RESIZER_WIDTH / cage->scale[0]);
- h = min_ff(aspy * h / MANIPULATOR_RESIZER_WIDTH, MANIPULATOR_RESIZER_WIDTH /
- ((cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) ? cage->scale[0] : cage->scale[1]));
-
- /* corner manipulators */
- glLineWidth(cage->manipulator.line_width + 3.0f);
-
- rect_transform_draw_corners(&r, w, h, (const float[3]){0, 0, 0});
-
- /* corner manipulators */
- glLineWidth(cage->manipulator.line_width);
- rect_transform_draw_corners(&r, w, h, manipulator->col);
-
- rect_transform_draw_interaction(manipulator->col, manipulator->highlighted_part, half_w, half_h,
- w, h, cage->manipulator.line_width);
-
- glLineWidth(1.0);
- gpuPopMatrix();
-}
-
-static int manipulator_rect_transform_get_cursor(wmManipulator *manipulator)
-{
- switch (manipulator->highlighted_part) {
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_TRANSLATE:
- return BC_HANDCURSOR;
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_LEFT:
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_RIGHT:
- return CURSOR_X_MOVE;
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_DOWN:
- case MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_UP:
- return CURSOR_Y_MOVE;
- default:
- return CURSOR_STD;
- }
-}
-
-static int manipulator_rect_transform_intersect(
- bContext *UNUSED(C), wmManipulator *manipulator, const wmEvent *event)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- const float mouse[2] = {event->mval[0], event->mval[1]};
- //float matrot[2][2];
- float point_local[2];
- float w = cage->w;
- float h = cage->h;
- float half_w = w / 2.0f;
- float half_h = h / 2.0f;
- float aspx = 1.0f, aspy = 1.0f;
-
- /* rotate mouse in relation to the center and relocate it */
- sub_v2_v2v2(point_local, mouse, manipulator->origin);
- point_local[0] -= manipulator->offset[0];
- point_local[1] -= manipulator->offset[1];
- //rotate_m2(matrot, -cage->transform.rotation);
-
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM)
- mul_v2_fl(point_local, 1.0f / cage->scale[0]);
- else {
- point_local[0] /= cage->scale[0];
- point_local[1] /= cage->scale[0];
- }
-
- if (cage->w > cage->h)
- aspx = h / w;
- else
- aspy = w / h;
- w = min_ff(aspx * w / MANIPULATOR_RESIZER_WIDTH, MANIPULATOR_RESIZER_WIDTH / cage->scale[0]);
- h = min_ff(aspy * h / MANIPULATOR_RESIZER_WIDTH, MANIPULATOR_RESIZER_WIDTH /
- ((cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) ? cage->scale[0] : cage->scale[1]));
-
-
- rctf r;
-
- r.xmin = -half_w + w;
- r.ymin = -half_h + h;
- r.xmax = half_w - w;
- r.ymax = half_h - h;
-
- bool isect = BLI_rctf_isect_pt_v(&r, point_local);
-
- if (isect)
- return MANIPULATOR_RECT_TRANSFORM_INTERSECT_TRANSLATE;
-
- /* if manipulator does not have a scale intersection, don't do it */
- if (cage->style & (MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE | MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM)) {
- r.xmin = -half_w;
- r.ymin = -half_h;
- r.xmax = -half_w + w;
- r.ymax = half_h;
-
- isect = BLI_rctf_isect_pt_v(&r, point_local);
-
- if (isect)
- return MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_LEFT;
-
- r.xmin = half_w - w;
- r.ymin = -half_h;
- r.xmax = half_w;
- r.ymax = half_h;
-
- isect = BLI_rctf_isect_pt_v(&r, point_local);
-
- if (isect)
- return MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_RIGHT;
-
- r.xmin = -half_w;
- r.ymin = -half_h;
- r.xmax = half_w;
- r.ymax = -half_h + h;
-
- isect = BLI_rctf_isect_pt_v(&r, point_local);
-
- if (isect)
- return MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_DOWN;
-
- r.xmin = -half_w;
- r.ymin = half_h - h;
- r.xmax = half_w;
- r.ymax = half_h;
-
- isect = BLI_rctf_isect_pt_v(&r, point_local);
-
- if (isect)
- return MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_UP;
- }
-
- return 0;
-}
-
-typedef struct RectTransformInteraction {
- float orig_mouse[2];
- float orig_offset[2];
- float orig_scale[2];
-} RectTransformInteraction;
-
-static bool manipulator_rect_transform_get_prop_value(wmManipulator *manipulator, const int slot, float *value)
-{
- PropertyType type = RNA_property_type(manipulator->props[slot]);
-
- if (type != PROP_FLOAT) {
- fprintf(stderr, "Rect Transform manipulator can only be bound to float properties");
- return false;
- }
- else {
- if (slot == RECT_TRANSFORM_SLOT_OFFSET) {
- if (RNA_property_array_length(&manipulator->ptr[slot], manipulator->props[slot]) != 2) {
- fprintf(stderr, "Rect Transform manipulator offset not only be bound to array float property");
- return false;
- }
- RNA_property_float_get_array(&manipulator->ptr[slot], manipulator->props[slot], value);
- }
- else if (slot == RECT_TRANSFORM_SLOT_SCALE) {
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- *value = RNA_property_float_get(&manipulator->ptr[slot], manipulator->props[slot]);
- }
- else {
- if (RNA_property_array_length(&manipulator->ptr[slot], manipulator->props[slot]) != 2) {
- fprintf(stderr, "Rect Transform manipulator scale not only be bound to array float property");
- return false;
- }
- RNA_property_float_get_array(&manipulator->ptr[slot], manipulator->props[slot], value);
- }
- }
- }
-
- return true;
-}
-
-static void manipulator_rect_transform_invoke(
- bContext *UNUSED(C), wmManipulator *manipulator, const wmEvent *event)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- RectTransformInteraction *data = MEM_callocN(sizeof(RectTransformInteraction), "cage_interaction");
-
- copy_v2_v2(data->orig_offset, manipulator->offset);
- copy_v2_v2(data->orig_scale, cage->scale);
-
- data->orig_mouse[0] = event->mval[0];
- data->orig_mouse[1] = event->mval[1];
-
- manipulator->interaction_data = data;
-}
-
-static void manipulator_rect_transform_handler(
- bContext *C, wmManipulator *manipulator, const wmEvent *event,
- const int UNUSED(flag))
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- RectTransformInteraction *data = manipulator->interaction_data;
- /* needed here as well in case clamping occurs */
- const float orig_ofx = manipulator->offset[0], orig_ofy = manipulator->offset[1];
-
- const float valuex = (event->mval[0] - data->orig_mouse[0]);
- const float valuey = (event->mval[1] - data->orig_mouse[1]);
-
-
- if (manipulator->highlighted_part == MANIPULATOR_RECT_TRANSFORM_INTERSECT_TRANSLATE) {
- manipulator->offset[0] = data->orig_offset[0] + valuex;
- manipulator->offset[1] = data->orig_offset[1] + valuey;
- }
- else if (manipulator->highlighted_part == MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_LEFT) {
- manipulator->offset[0] = data->orig_offset[0] + valuex / 2.0;
- cage->scale[0] = (cage->w * data->orig_scale[0] - valuex) / cage->w;
- }
- else if (manipulator->highlighted_part == MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEX_RIGHT) {
- manipulator->offset[0] = data->orig_offset[0] + valuex / 2.0;
- cage->scale[0] = (cage->w * data->orig_scale[0] + valuex) / cage->w;
- }
- else if (manipulator->highlighted_part == MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_DOWN) {
- manipulator->offset[1] = data->orig_offset[1] + valuey / 2.0;
-
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- cage->scale[0] = (cage->h * data->orig_scale[0] - valuey) / cage->h;
- }
- else {
- cage->scale[1] = (cage->h * data->orig_scale[1] - valuey) / cage->h;
- }
- }
- else if (manipulator->highlighted_part == MANIPULATOR_RECT_TRANSFORM_INTERSECT_SCALEY_UP) {
- manipulator->offset[1] = data->orig_offset[1] + valuey / 2.0;
-
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- cage->scale[0] = (cage->h * data->orig_scale[0] + valuey) / cage->h;
- }
- else {
- cage->scale[1] = (cage->h * data->orig_scale[1] + valuey) / cage->h;
- }
- }
-
- /* clamping - make sure manipulator is at least 5 pixels wide */
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- if (cage->scale[0] < MANIPULATOR_RECT_MIN_WIDTH / cage->h ||
- cage->scale[0] < MANIPULATOR_RECT_MIN_WIDTH / cage->w)
- {
- cage->scale[0] = max_ff(MANIPULATOR_RECT_MIN_WIDTH / cage->h, MANIPULATOR_RECT_MIN_WIDTH / cage->w);
- manipulator->offset[0] = orig_ofx;
- manipulator->offset[1] = orig_ofy;
- }
- }
- else {
- if (cage->scale[0] < MANIPULATOR_RECT_MIN_WIDTH / cage->w) {
- cage->scale[0] = MANIPULATOR_RECT_MIN_WIDTH / cage->w;
- manipulator->offset[0] = orig_ofx;
- }
- if (cage->scale[1] < MANIPULATOR_RECT_MIN_WIDTH / cage->h) {
- cage->scale[1] = MANIPULATOR_RECT_MIN_WIDTH / cage->h;
- manipulator->offset[1] = orig_ofy;
- }
- }
-
- if (manipulator->props[RECT_TRANSFORM_SLOT_OFFSET]) {
- PointerRNA ptr = manipulator->ptr[RECT_TRANSFORM_SLOT_OFFSET];
- PropertyRNA *prop = manipulator->props[RECT_TRANSFORM_SLOT_OFFSET];
-
- RNA_property_float_set_array(&ptr, prop, manipulator->offset);
- RNA_property_update(C, &ptr, prop);
- }
-
- if (manipulator->props[RECT_TRANSFORM_SLOT_SCALE]) {
- PointerRNA ptr = manipulator->ptr[RECT_TRANSFORM_SLOT_SCALE];
- PropertyRNA *prop = manipulator->props[RECT_TRANSFORM_SLOT_SCALE];
-
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- RNA_property_float_set(&ptr, prop, cage->scale[0]);
- }
- else {
- RNA_property_float_set_array(&ptr, prop, cage->scale);
- }
- RNA_property_update(C, &ptr, prop);
- }
-
- /* tag the region for redraw */
- ED_region_tag_redraw(CTX_wm_region(C));
-}
-
-static void manipulator_rect_transform_prop_data_update(wmManipulator *manipulator, const int slot)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
-
- if (slot == RECT_TRANSFORM_SLOT_OFFSET)
- manipulator_rect_transform_get_prop_value(manipulator, RECT_TRANSFORM_SLOT_OFFSET, manipulator->offset);
- if (slot == RECT_TRANSFORM_SLOT_SCALE)
- manipulator_rect_transform_get_prop_value(manipulator, RECT_TRANSFORM_SLOT_SCALE, cage->scale);
-}
-
-static void manipulator_rect_transform_exit(bContext *C, wmManipulator *manipulator, const bool cancel)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- RectTransformInteraction *data = manipulator->interaction_data;
-
- if (!cancel)
- return;
-
- /* reset properties */
- if (manipulator->props[RECT_TRANSFORM_SLOT_OFFSET]) {
- PointerRNA ptr = manipulator->ptr[RECT_TRANSFORM_SLOT_OFFSET];
- PropertyRNA *prop = manipulator->props[RECT_TRANSFORM_SLOT_OFFSET];
-
- RNA_property_float_set_array(&ptr, prop, data->orig_offset);
- RNA_property_update(C, &ptr, prop);
- }
- if (manipulator->props[RECT_TRANSFORM_SLOT_SCALE]) {
- PointerRNA ptr = manipulator->ptr[RECT_TRANSFORM_SLOT_SCALE];
- PropertyRNA *prop = manipulator->props[RECT_TRANSFORM_SLOT_SCALE];
-
- if (cage->style & MANIPULATOR_RECT_TRANSFORM_STYLE_SCALE_UNIFORM) {
- RNA_property_float_set(&ptr, prop, data->orig_scale[0]);
- }
- else {
- RNA_property_float_set_array(&ptr, prop, data->orig_scale);
- }
- RNA_property_update(C, &ptr, prop);
- }
-}
-
-
-/* -------------------------------------------------------------------- */
-/** \name Cage Manipulator API
- *
- * \{ */
-
-wmManipulator *MANIPULATOR_rect_transform_new(wmManipulatorGroup *mgroup, const char *name, const int style)
-{
- const wmManipulatorType *mpt = WM_manipulatortype_find("MANIPULATOR_WT_cage", false);
- RectTransformManipulator *cage = (RectTransformManipulator *)WM_manipulator_new(mpt, mgroup, name);
-
- cage->manipulator.flag |= WM_MANIPULATOR_DRAW_ACTIVE;
- cage->scale[0] = cage->scale[1] = 1.0f;
- cage->style = style;
-
- return &cage->manipulator;
-}
-
-void MANIPULATOR_rect_transform_set_dimensions(wmManipulator *manipulator, const float width, const float height)
-{
- RectTransformManipulator *cage = (RectTransformManipulator *)manipulator;
- cage->w = width;
- cage->h = height;
-}
-
-static void MANIPULATOR_WT_cage(wmManipulatorType *wt)
-{
- /* identifiers */
- wt->idname = "MANIPULATOR_WT_cage";
-
- /* api callbacks */
- wt->draw = manipulator_rect_transform_draw;
- wt->invoke = manipulator_rect_transform_invoke;
- wt->prop_data_update = manipulator_rect_transform_prop_data_update;
- wt->handler = manipulator_rect_transform_handler;
- wt->intersect = manipulator_rect_transform_intersect;
- wt->exit = manipulator_rect_transform_exit;
- wt->cursor_get = manipulator_rect_transform_get_cursor;
-
- wt->prop_len_max = 2;
-
- wt->size = sizeof(RectTransformManipulator);
-}
-
-void ED_manipulatortypes_cage(void)
-{
- WM_manipulatortype_append(MANIPULATOR_WT_cage);
-}
-
-/** \} */ // Cage Manipulator API
-
-
-/* -------------------------------------------------------------------- */
-
-void fix_linking_manipulator_cage(void)
-{
- (void)0;
-}
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
deleted file mode 100644
index aeb1fa76abd..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2014 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): Blender Foundation
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c
- * \ingroup wm
- *
- * \name Dial Manipulator
- *
- * 3D Manipulator
- *
- * \brief Circle shaped manipulator for circular interaction.
- * Currently no own handling, use with operator only.
- */
-
-#include "BIF_gl.h"
-#include "BIF_glutil.h"
-
-#include "BKE_context.h"
-
-#include "BLI_math.h"
-
-#include "DNA_manipulator_types.h"
-
-#include "ED_screen.h"
-#include "ED_view3d.h"
-
-#include "GPU_select.h"
-
-#include "GPU_matrix.h"
-
-#include "GPU_immediate.h"
-#include "GPU_immediate_util.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-/* own includes */
-#include "WM_manipulator_types.h"
-#include "WM_manipulator_library.h"
-#include "wm_manipulator_wmapi.h"
-#include "wm_manipulator_intern.h"
-#include "manipulator_geometry.h"
-#include "manipulator_library_intern.h"
-
-/* to use custom dials exported to geom_dial_manipulator.c */
-// #define USE_MANIPULATOR_CUSTOM_DIAL
-
-typedef struct DialManipulator {
- wmManipulator manipulator;
- int style;
- float direction[3];
-} DialManipulator;
-
-typedef struct DialInteraction {
- float init_mval[2];
-
- /* cache the last angle to detect rotations bigger than -/+ PI */
- float last_angle;
- /* number of full rotations */
- int rotations;
-} DialInteraction;
-
-#define DIAL_WIDTH 1.0f
-#define DIAL_RESOLUTION 32
-
-/* -------------------------------------------------------------------- */
-
-static void dial_geom_draw(
- const DialManipulator *dial, const float col[4], const bool select,
- float axis_modal_mat[4][4], float clip_plane[4])
-{
-#ifdef USE_MANIPULATOR_CUSTOM_DIAL
- UNUSED_VARS(dial, col, axis_modal_mat, clip_plane);
- wm_manipulator_geometryinfo_draw(&wm_manipulator_geom_data_dial, select);
-#else
- const bool filled = (dial->style == MANIPULATOR_DIAL_STYLE_RING_FILLED);
-
- glLineWidth(dial->manipulator.line_width);
-
- VertexFormat *format = immVertexFormat();
- unsigned int pos = VertexFormat_add_attrib(format, "pos", COMP_F32, 2, KEEP_FLOAT);
-
- if (clip_plane) {
- immBindBuiltinProgram(GPU_SHADER_3D_CLIPPED_UNIFORM_COLOR);
- float clip_plane_f[4] = {clip_plane[0], clip_plane[1], clip_plane[2], clip_plane[3]};
- immUniform4fv("ClipPlane", clip_plane_f);
- immUniformMatrix4fv("ModelMatrix", axis_modal_mat);
- }
- else {
- immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
- }
-
- immUniformColor4fv(col);
-
- if (filled) {
- imm_draw_circle_fill(pos, 0, 0, 1.0, DIAL_RESOLUTION);
- }
- else {
- imm_draw_circle_wire(pos, 0, 0, 1.0, DIAL_RESOLUTION);
- }
-
- immUnbindProgram();
-
- UNUSED_VARS(select);
-#endif
-}
-
-/**
- * Draws a line from (0, 0, 0) to \a co_outer, at \a angle.
- */
-static void dial_ghostarc_draw_helpline(const float angle, const float co_outer[3], const float col[4])
-{
- glLineWidth(1.0f);
-
- gpuPushMatrix();
- gpuRotate3f(RAD2DEGF(angle), 0.0f, 0.0f, -1.0f);
-
- unsigned int pos = VertexFormat_add_attrib(immVertexFormat(), "pos", COMP_F32, 3, KEEP_FLOAT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
-
- immUniformColor4fv(col);
-
- immBegin(PRIM_LINE_STRIP, 2);
- immVertex3f(pos, 0.0f, 0.0f, 0.0f);
- immVertex3fv(pos, co_outer);
- immEnd();
-
- immUnbindProgram();
-
- gpuPopMatrix();
-}
-
-static void dial_ghostarc_draw(
- const DialManipulator *dial, const float angle_ofs, const float angle_delta, const float color[4])
-{
- const float width_inner = DIAL_WIDTH - dial->manipulator.line_width * 0.5f / U.manipulator_scale;
-
- VertexFormat *format = immVertexFormat();
- unsigned int pos = VertexFormat_add_attrib(format, "pos", COMP_F32, 2, KEEP_FLOAT);
- immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
- immUniformColor4fv(color);
- imm_draw_disk_partial_fill(
- pos, 0, 0, 0.0, width_inner, DIAL_RESOLUTION, RAD2DEGF(angle_ofs), RAD2DEGF(angle_delta));
- immUnbindProgram();
-}
-
-static void dial_ghostarc_get_angles(
- const DialManipulator *dial, const wmEvent *event, const ARegion *ar,
- float mat[4][4], const float co_outer[3],
- float *r_start, float *r_delta)
-{
- DialInteraction *inter = dial->manipulator.interaction_data;
- const RegionView3D *rv3d = ar->regiondata;
- const float mval[2] = {event->x - ar->winrct.xmin, event->y - ar->winrct.ymin};
- bool inv = false;
-
- /* we might need to invert the direction of the angles */
- float view_vec[3], axis_vec[3];
- ED_view3d_global_to_vector(rv3d, rv3d->twmat[3], view_vec);
- normalize_v3_v3(axis_vec, dial->direction);
- if (dot_v3v3(view_vec, axis_vec) < 0.0f) {
- inv = true;
- }
-
- float co[3], origin2d[2], co2d[2];
- mul_v3_project_m4_v3(co, mat, co_outer);
- /* project 3d coordinats to 2d viewplane */
- ED_view3d_project_float_global(ar, dial->manipulator.origin, origin2d, V3D_PROJ_TEST_NOP);
- ED_view3d_project_float_global(ar, co, co2d, V3D_PROJ_TEST_NOP);
-
- /* convert to manipulator relative space */
- float rel_initmval[2], rel_mval[2], rel_co[2];
- sub_v2_v2v2(rel_initmval, inter->init_mval, origin2d);
- sub_v2_v2v2(rel_mval, mval, origin2d);
- sub_v2_v2v2(rel_co, co2d, origin2d);
-
- /* return angles */
- const float start = angle_signed_v2v2(rel_co, rel_initmval) * (inv ? -1 : 1);
- const float delta = angle_signed_v2v2(rel_initmval, rel_mval) * (inv ? -1 : 1);
-
- /* Change of sign, we passed the 180 degree threshold. This means we need to add a turn
- * to distinguish between transition from 0 to -1 and -PI to +PI, use comparison with PI/2.
- * Logic taken from BLI_dial_angle */
- if ((delta * inter->last_angle < 0.0f) &&
- (fabsf(inter->last_angle) > (float)M_PI_2))
- {
- if (inter->last_angle < 0.0f)
- inter->rotations--;
- else
- inter->rotations++;
- }
- inter->last_angle = delta;
-
- *r_start = start;
- *r_delta = fmod(delta + 2.0f * (float)M_PI * inter->rotations, 2 * (float)M_PI);
-}
-
-static void dial_draw_intern(
- const bContext *C, DialManipulator *dial,
- const bool select, const bool highlight, float clip_plane[4])
-{
- float rot[3][3];
- float mat[4][4];
- const float up[3] = {0.0f, 0.0f, 1.0f};
- float col[4];
-
- BLI_assert(CTX_wm_area(C)->spacetype == SPACE_VIEW3D);
-
- manipulator_color_get(&dial->manipulator, highlight, col);
-
- rotation_between_vecs_to_mat3(rot, up, dial->direction);
- copy_m4_m3(mat, rot);
- copy_v3_v3(mat[3], dial->manipulator.origin);
- mul_mat3_m4_fl(mat, dial->manipulator.scale);
-
- gpuPushMatrix();
- gpuMultMatrix(mat);
- gpuTranslate3fv(dial->manipulator.offset);
-
- /* draw rotation indicator arc first */
- if ((dial->manipulator.flag & WM_MANIPULATOR_DRAW_VALUE) && (dial->manipulator.state & WM_MANIPULATOR_ACTIVE)) {
- wmWindow *win = CTX_wm_window(C);
- const float co_outer[4] = {0.0f, DIAL_WIDTH, 0.0f}; /* coordinate at which the arc drawing will be started */
- float angle_ofs, angle_delta;
-
- dial_ghostarc_get_angles(dial, win->eventstate, CTX_wm_region(C), mat, co_outer, &angle_ofs, &angle_delta);
- /* draw! */
- dial_ghostarc_draw(dial, angle_ofs, angle_delta, (const float [4]){0.8f, 0.8f, 0.8f, 0.4f});
-
- dial_ghostarc_draw_helpline(angle_ofs, co_outer, col); /* starting position */
- dial_ghostarc_draw_helpline(angle_ofs + angle_delta, co_outer, col); /* starting position + current value */
- }
-
- /* draw actual dial manipulator */
- dial_geom_draw(dial, col, select, mat, clip_plane);
-
- gpuPopMatrix();
-}
-
-static void manipulator_dial_render_3d_intersect(const bContext *C, wmManipulator *manipulator, int selectionbase)
-{
- DialManipulator *dial = (DialManipulator *)manipulator;
- float clip_plane_buf[4];
- float *clip_plane = (dial->style == MANIPULATOR_DIAL_STYLE_RING_CLIPPED) ? clip_plane_buf : NULL;
-
- /* enable clipping if needed */
- if (clip_plane) {
- ARegion *ar = CTX_wm_region(C);
- RegionView3D *rv3d = ar->regiondata;
-
- copy_v3_v3(clip_plane, rv3d->viewinv[2]);
- clip_plane[3] = -dot_v3v3(rv3d->viewinv[2], manipulator->origin);
- glEnable(GL_CLIP_DISTANCE0);
- }
-
- GPU_select_load_id(selectionbase);
- dial_draw_intern(C, dial, true, false, clip_plane);
-
- if (clip_plane) {
- glDisable(GL_CLIP_DISTANCE0);
- }
-}
-
-static void manipulator_dial_draw(const bContext *C, wmManipulator *manipulator)
-{
- DialManipulator *dial = (DialManipulator *)manipulator;
- const bool active = manipulator->state & WM_MANIPULATOR_ACTIVE;
- const bool highlight = (manipulator->state & WM_MANIPULATOR_HIGHLIGHT) != 0;
- float clip_plane_buf[4];
- float *clip_plane = (!active && dial->style == MANIPULATOR_DIAL_STYLE_RING_CLIPPED) ? clip_plane_buf : NULL;
-
- /* enable clipping if needed */
- if (clip_plane) {
- ARegion *ar = CTX_wm_region(C);
- RegionView3D *rv3d = ar->regiondata;
-
- copy_v3_v3(clip_plane, rv3d->viewinv[2]);
- clip_plane[3] = -dot_v3v3(rv3d->viewinv[2], manipulator->origin);
- clip_plane[3] -= 0.02 * dial->manipulator.scale;
-
- glEnable(GL_CLIP_DISTANCE0);
- }
-
- glEnable(GL_BLEND);
- dial_draw_intern(C, dial, false, highlight, clip_plane);
- glDisable(GL_BLEND);
-
- if (clip_plane) {
- glDisable(GL_CLIP_DISTANCE0);
- }
-}
-
-static void manipulator_dial_invoke(
- bContext *UNUSED(C), wmManipulator *manipulator, const wmEvent *event)
-{
- DialInteraction *inter = MEM_callocN(sizeof(DialInteraction), __func__);
-
- inter->init_mval[0] = event->mval[0];
- inter->init_mval[1] = event->mval[1];
-
- manipulator->interaction_data = inter;
-}
-
-
-/* -------------------------------------------------------------------- */
-/** \name Dial Manipulator API
- *
- * \{ */
-
-wmManipulator *MANIPULATOR_dial_new(wmManipulatorGroup *mgroup, const char *name, const int style)
-{
- const wmManipulatorType *mpt = WM_manipulatortype_find("MANIPULATOR_WT_dial", false);
- DialManipulator *dial = (DialManipulator *)WM_manipulator_new(mpt, mgroup, name);
-
- const float dir_default[3] = {0.0f, 0.0f, 1.0f};
-
- dial->style = style;
-
- /* defaults */
- copy_v3_v3(dial->direction, dir_default);
-
- return (wmManipulator *)dial;
-}
-
-/**
- * Define up-direction of the dial manipulator
- */
-void MANIPULATOR_dial_set_up_vector(wmManipulator *manipulator, const float direction[3])
-{
- DialManipulator *dial = (DialManipulator *)manipulator;
-
- copy_v3_v3(dial->direction, direction);
- normalize_v3(dial->direction);
-}
-
-static void MANIPULATOR_WT_dial(wmManipulatorType *wt)
-{
- /* identifiers */
- wt->idname = "MANIPULATOR_WT_dial";
-
- /* api callbacks */
- wt->draw = manipulator_dial_draw;
- wt->draw_select = manipulator_dial_render_3d_intersect;
- wt->invoke = manipulator_dial_invoke;
-
- wt->size = sizeof(DialManipulator);
-}
-
-void ED_manipulatortypes_dial(void)
-{
- WM_manipulatortype_append(MANIPULATOR_WT_dial);
-}
-
-/** \} */ // Dial Manipulator API
-
-/* -------------------------------------------------------------------- */
-
-void fix_linking_manipulator_dial(void)
-{
- (void)0;
-}
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_arrow_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_arrow_manipulator.c
deleted file mode 100644
index 0f874e588bc..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_arrow_manipulator.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/geom_arrow_manipulator.c
- * \ingroup wm
- */
-
-#include "manipulator_geometry.h"
-
-static float verts[][3] = {
- {-0.000000, 0.012320, 0.000000},
- {-0.000000, 0.012320, 0.974306},
- {0.008711, 0.008711, 0.000000},
- {0.008711, 0.008711, 0.974306},
- {0.012320, -0.000000, 0.000000},
- {0.012320, -0.000000, 0.974306},
- {0.008711, -0.008711, 0.000000},
- {0.008711, -0.008711, 0.974306},
- {-0.000000, -0.012320, 0.000000},
- {-0.000000, -0.012320, 0.974306},
- {-0.008711, -0.008711, 0.000000},
- {-0.008711, -0.008711, 0.974306},
- {-0.012320, 0.000000, 0.000000},
- {-0.012320, 0.000000, 0.974306},
- {-0.008711, 0.008711, 0.000000},
- {-0.008711, 0.008711, 0.974306},
- {0.000000, 0.072555, 0.974306},
- {0.051304, 0.051304, 0.974306},
- {0.072555, -0.000000, 0.974306},
- {0.051304, -0.051304, 0.974306},
- {-0.000000, -0.072555, 0.974306},
- {-0.051304, -0.051304, 0.974306},
- {-0.072555, 0.000000, 0.974306},
- {-0.051304, 0.051304, 0.974306},
- {0.000000, -0.000000, 1.268098},
-};
-
-static float normals[][3] = {
- {0.000000, 0.776360, -0.630238},
- {0.000000, 0.594348, -0.804163},
- {0.548967, 0.548967, -0.630238},
- {0.420270, 0.420270, -0.804163},
- {0.776360, 0.000000, -0.630238},
- {0.594378, 0.000000, -0.804163},
- {0.548967, -0.548967, -0.630238},
- {0.420270, -0.420270, -0.804163},
- {0.000000, -0.776360, -0.630238},
- {0.000000, -0.594378, -0.804163},
- {-0.548967, -0.548967, -0.630238},
- {-0.420270, -0.420270, -0.804163},
- {-0.776360, 0.000000, -0.630238},
- {-0.594378, 0.000000, -0.804163},
- {-0.548967, 0.548967, -0.630238},
- {-0.420270, 0.420270, -0.804163},
- {0.000000, 0.843226, -0.537492},
- {0.596271, 0.596271, -0.537492},
- {0.843226, 0.000000, -0.537492},
- {0.596271, -0.596271, -0.537492},
- {0.000000, -0.843226, -0.537492},
- {-0.596271, -0.596271, -0.537492},
- {-0.843226, 0.000000, -0.537492},
- {-0.596271, 0.596271, -0.537492},
- {0.000000, 0.000000, 1.000000},
-};
-
-static unsigned short indices[] = {
- 1, 3, 2,
- 3, 5, 4,
- 5, 7, 6,
- 7, 9, 8,
- 9, 11, 10,
- 11, 13, 12,
- 5, 18, 19,
- 15, 1, 0,
- 13, 15, 14,
- 6, 10, 14,
- 11, 21, 22,
- 7, 19, 20,
- 13, 22, 23,
- 3, 17, 18,
- 9, 20, 21,
- 15, 23, 16,
- 1, 16, 17,
- 23, 22, 24,
- 21, 20, 24,
- 19, 18, 24,
- 17, 16, 24,
- 16, 23, 24,
- 22, 21, 24,
- 20, 19, 24,
- 18, 17, 24,
- 0, 1, 2,
- 2, 3, 4,
- 4, 5, 6,
- 6, 7, 8,
- 8, 9, 10,
- 10, 11, 12,
- 7, 5, 19,
- 14, 15, 0,
- 12, 13, 14,
- 14, 0, 2,
- 2, 4, 6,
- 6, 8, 10,
- 10, 12, 14,
- 14, 2, 6,
- 13, 11, 22,
- 9, 7, 20,
- 15, 13, 23,
- 5, 3, 18,
- 11, 9, 21,
- 1, 15, 16,
- 3, 1, 17,
-};
-
-ManipulatorGeomInfo wm_manipulator_geom_data_arrow = {
- .nverts = 25,
- .ntris = 46,
- .verts = verts,
- .normals = normals,
- .indices = indices,
-};
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_cube_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_cube_manipulator.c
deleted file mode 100644
index d0600705258..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_cube_manipulator.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/geom_cube_manipulator.c
- * \ingroup wm
- */
-
-#include "manipulator_geometry.h"
-
-static const float verts[][3] = {
- {1.000000, 1.000000, -1.000000},
- {1.000000, -1.000000, -1.000000},
- {-1.000000, -1.000000, -1.000000},
- {-1.000000, 1.000000, -1.000000},
- {1.000000, 1.000000, 1.000000},
- {0.999999, -1.000001, 1.000000},
- {-1.000000, -1.000000, 1.000000},
- {-1.000000, 1.000000, 1.000000},
-};
-
-static const float normals[][3] = {
- {0.577349, 0.577349, -0.577349},
- {0.577349, -0.577349, -0.577349},
- {-0.577349, -0.577349, -0.577349},
- {-0.577349, 0.577349, -0.577349},
- {0.577349, 0.577349, 0.577349},
- {0.577349, -0.577349, 0.577349},
- {-0.577349, -0.577349, 0.577349},
- {-0.577349, 0.577349, 0.577349},
-};
-
-static const unsigned short indices[] = {
- 1, 2, 3,
- 7, 6, 5,
- 4, 5, 1,
- 5, 6, 2,
- 2, 6, 7,
- 0, 3, 7,
- 0, 1, 3,
- 4, 7, 5,
- 0, 4, 1,
- 1, 5, 2,
- 3, 2, 7,
- 4, 0, 7,
-};
-
-ManipulatorGeomInfo wm_manipulator_geom_data_cube = {
- .nverts = 8,
- .ntris = 12,
- .verts = verts,
- .normals = normals,
- .indices = indices,
-};
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_dial_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_dial_manipulator.c
deleted file mode 100644
index 7f2edbcf60e..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/geom_dial_manipulator.c
+++ /dev/null
@@ -1,813 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/geom_dial_manipulator.c
- * \ingroup wm
- */
-
-#include "manipulator_geometry.h"
-
-static const float verts[][3] = {
- {1.034000, 0.000000, 0.000000},
- {1.017000, 0.000000, 0.029445},
- {0.983000, 0.000000, 0.029445},
- {0.966000, 0.000000, 0.000000},
- {0.983000, 0.000000, -0.029445},
- {1.017000, 0.000000, -0.029445},
- {1.014132, 0.201723, 0.000000},
- {0.997459, 0.198407, 0.029445},
- {0.964112, 0.191774, 0.029445},
- {0.947439, 0.188457, 0.000000},
- {0.964112, 0.191774, -0.029445},
- {0.997459, 0.198407, -0.029445},
- {0.955292, 0.395695, 0.000000},
- {0.939586, 0.389189, 0.029445},
- {0.908174, 0.376178, 0.029445},
- {0.892468, 0.369672, 0.000000},
- {0.908174, 0.376178, -0.029445},
- {0.939586, 0.389189, -0.029445},
- {0.859740, 0.574460, 0.000000},
- {0.845605, 0.565015, 0.029445},
- {0.817335, 0.546126, 0.029445},
- {0.803200, 0.536681, 0.000000},
- {0.817335, 0.546126, -0.029445},
- {0.845605, 0.565015, -0.029445},
- {0.731148, 0.731148, 0.000000},
- {0.719128, 0.719128, 0.029445},
- {0.695086, 0.695086, 0.029445},
- {0.683065, 0.683065, 0.000000},
- {0.695086, 0.695086, -0.029445},
- {0.719128, 0.719128, -0.029445},
- {0.574460, 0.859740, 0.000000},
- {0.565015, 0.845605, 0.029445},
- {0.546125, 0.817335, 0.029445},
- {0.536681, 0.803200, 0.000000},
- {0.546125, 0.817335, -0.029445},
- {0.565015, 0.845605, -0.029445},
- {0.395695, 0.955291, 0.000000},
- {0.389189, 0.939585, 0.029445},
- {0.376178, 0.908173, 0.029445},
- {0.369672, 0.892467, 0.000000},
- {0.376178, 0.908173, -0.029445},
- {0.389189, 0.939585, -0.029445},
- {0.201724, 1.014132, 0.000000},
- {0.198407, 0.997459, 0.029445},
- {0.191774, 0.964112, 0.029445},
- {0.188457, 0.947439, 0.000000},
- {0.191774, 0.964112, -0.029445},
- {0.198407, 0.997459, -0.029445},
- {0.000000, 1.034000, 0.000000},
- {0.000000, 1.017000, 0.029445},
- {0.000000, 0.983000, 0.029445},
- {0.000000, 0.966000, 0.000000},
- {0.000000, 0.983000, -0.029445},
- {0.000000, 1.017000, -0.029445},
- {-0.201723, 1.014132, 0.000000},
- {-0.198407, 0.997459, 0.029445},
- {-0.191774, 0.964112, 0.029445},
- {-0.188457, 0.947439, 0.000000},
- {-0.191774, 0.964112, -0.029445},
- {-0.198407, 0.997459, -0.029445},
- {-0.395695, 0.955291, 0.000000},
- {-0.389189, 0.939585, 0.029445},
- {-0.376178, 0.908174, 0.029445},
- {-0.369672, 0.892468, 0.000000},
- {-0.376178, 0.908174, -0.029445},
- {-0.389189, 0.939585, -0.029445},
- {-0.574459, 0.859740, 0.000000},
- {-0.565015, 0.845605, 0.029445},
- {-0.546125, 0.817335, 0.029445},
- {-0.536681, 0.803200, 0.000000},
- {-0.546125, 0.817335, -0.029445},
- {-0.565015, 0.845605, -0.029445},
- {-0.731149, 0.731148, 0.000000},
- {-0.719128, 0.719127, 0.029445},
- {-0.695086, 0.695086, 0.029445},
- {-0.683065, 0.683065, 0.000000},
- {-0.695086, 0.695086, -0.029445},
- {-0.719128, 0.719127, -0.029445},
- {-0.859740, 0.574460, 0.000000},
- {-0.845604, 0.565015, 0.029445},
- {-0.817335, 0.546126, 0.029445},
- {-0.803200, 0.536681, 0.000000},
- {-0.817335, 0.546126, -0.029445},
- {-0.845604, 0.565015, -0.029445},
- {-0.955291, 0.395695, 0.000000},
- {-0.939585, 0.389189, 0.029445},
- {-0.908173, 0.376178, 0.029445},
- {-0.892468, 0.369672, 0.000000},
- {-0.908173, 0.376178, -0.029445},
- {-0.939585, 0.389189, -0.029445},
- {-1.014132, 0.201723, 0.000000},
- {-0.997459, 0.198407, 0.029445},
- {-0.964112, 0.191774, 0.029445},
- {-0.947439, 0.188457, 0.000000},
- {-0.964112, 0.191774, -0.029445},
- {-0.997459, 0.198407, -0.029445},
- {-1.034000, 0.000000, 0.000000},
- {-1.017000, 0.000000, 0.029445},
- {-0.983000, 0.000000, 0.029445},
- {-0.966000, 0.000000, 0.000000},
- {-0.983000, 0.000000, -0.029445},
- {-1.017000, 0.000000, -0.029445},
- {-1.014132, -0.201723, 0.000000},
- {-0.997459, -0.198407, 0.029445},
- {-0.964112, -0.191774, 0.029445},
- {-0.947439, -0.188457, 0.000000},
- {-0.964112, -0.191774, -0.029445},
- {-0.997459, -0.198407, -0.029445},
- {-0.955292, -0.395694, 0.000000},
- {-0.939586, -0.389189, 0.029445},
- {-0.908174, -0.376177, 0.029445},
- {-0.892468, -0.369672, 0.000000},
- {-0.908174, -0.376177, -0.029445},
- {-0.939586, -0.389189, -0.029445},
- {-0.859740, -0.574460, 0.000000},
- {-0.845604, -0.565015, 0.029445},
- {-0.817335, -0.546126, 0.029445},
- {-0.803200, -0.536681, 0.000000},
- {-0.817335, -0.546126, -0.029445},
- {-0.845604, -0.565015, -0.029445},
- {-0.731149, -0.731148, 0.000000},
- {-0.719128, -0.719127, 0.029445},
- {-0.695086, -0.695086, 0.029445},
- {-0.683065, -0.683065, 0.000000},
- {-0.695086, -0.695086, -0.029445},
- {-0.719128, -0.719127, -0.029445},
- {-0.574460, -0.859739, 0.000000},
- {-0.565015, -0.845604, 0.029445},
- {-0.546126, -0.817334, 0.029445},
- {-0.536681, -0.803199, 0.000000},
- {-0.546126, -0.817334, -0.029445},
- {-0.565015, -0.845604, -0.029445},
- {-0.395695, -0.955291, 0.000000},
- {-0.389189, -0.939585, 0.029445},
- {-0.376178, -0.908174, 0.029445},
- {-0.369672, -0.892468, 0.000000},
- {-0.376178, -0.908174, -0.029445},
- {-0.389189, -0.939585, -0.029445},
- {-0.201724, -1.014132, 0.000000},
- {-0.198407, -0.997459, 0.029445},
- {-0.191774, -0.964112, 0.029445},
- {-0.188458, -0.947438, 0.000000},
- {-0.191774, -0.964112, -0.029445},
- {-0.198407, -0.997459, -0.029445},
- {0.000000, -1.034000, 0.000000},
- {0.000000, -1.017000, 0.029445},
- {0.000000, -0.983000, 0.029445},
- {0.000000, -0.966000, 0.000000},
- {0.000000, -0.983000, -0.029445},
- {0.000000, -1.017000, -0.029445},
- {0.201723, -1.014132, 0.000000},
- {0.198407, -0.997459, 0.029445},
- {0.191773, -0.964112, 0.029445},
- {0.188457, -0.947439, 0.000000},
- {0.191773, -0.964112, -0.029445},
- {0.198407, -0.997459, -0.029445},
- {0.395695, -0.955291, 0.000000},
- {0.389189, -0.939585, 0.029445},
- {0.376178, -0.908173, 0.029445},
- {0.369672, -0.892467, 0.000000},
- {0.376178, -0.908173, -0.029445},
- {0.389189, -0.939585, -0.029445},
- {0.574460, -0.859740, 0.000000},
- {0.565015, -0.845605, 0.029445},
- {0.546125, -0.817335, 0.029445},
- {0.536681, -0.803200, 0.000000},
- {0.546125, -0.817335, -0.029445},
- {0.565015, -0.845605, -0.029445},
- {0.731148, -0.731149, 0.000000},
- {0.719127, -0.719128, 0.029445},
- {0.695086, -0.695086, 0.029445},
- {0.683065, -0.683066, 0.000000},
- {0.695086, -0.695086, -0.029445},
- {0.719127, -0.719128, -0.029445},
- {0.859740, -0.574460, 0.000000},
- {0.845605, -0.565015, 0.029445},
- {0.817335, -0.546126, 0.029445},
- {0.803200, -0.536681, 0.000000},
- {0.817335, -0.546126, -0.029445},
- {0.845605, -0.565015, -0.029445},
- {0.955291, -0.395695, 0.000000},
- {0.939585, -0.389189, 0.029445},
- {0.908173, -0.376178, 0.029445},
- {0.892467, -0.369673, 0.000000},
- {0.908173, -0.376178, -0.029445},
- {0.939585, -0.389189, -0.029445},
- {1.014132, -0.201723, 0.000000},
- {0.997459, -0.198407, 0.029445},
- {0.964112, -0.191774, 0.029445},
- {0.947439, -0.188457, 0.000000},
- {0.964112, -0.191774, -0.029445},
- {0.997459, -0.198407, -0.029445},
-};
-
-static const float normals[][3] = {
- {1.000000, 0.000000, 0.000000},
- {0.522691, 0.000000, 0.852504},
- {-0.475845, 0.000000, 0.879513},
- {-1.000000, 0.000000, 0.000000},
- {-0.475845, 0.000000, -0.879513},
- {0.522691, 0.000000, -0.852504},
- {0.980773, 0.195074, 0.000000},
- {0.512650, 0.101962, 0.852504},
- {-0.466689, -0.092807, 0.879513},
- {-0.980773, -0.195074, 0.000000},
- {-0.466689, -0.092807, -0.879513},
- {0.512650, 0.101962, -0.852504},
- {0.923856, 0.382672, 0.000000},
- {0.482894, 0.200018, 0.852504},
- {-0.439619, -0.182073, 0.879513},
- {-0.923856, -0.382672, 0.000000},
- {-0.439619, -0.182073, -0.879513},
- {0.482894, 0.200018, -0.852504},
- {0.831446, 0.555559, 0.000000},
- {0.434614, 0.290384, 0.852504},
- {-0.395642, -0.264351, 0.879513},
- {-0.831446, -0.555559, 0.000000},
- {-0.395642, -0.264351, -0.879513},
- {0.434614, 0.290384, -0.852504},
- {0.707083, 0.707083, 0.000000},
- {0.369610, 0.369610, 0.852504},
- {-0.336467, -0.336467, 0.879513},
- {-0.707083, -0.707083, 0.000000},
- {-0.336467, -0.336467, -0.879513},
- {0.369610, 0.369610, -0.852504},
- {0.555559, 0.831446, 0.000000},
- {0.290384, 0.434614, 0.852504},
- {-0.264351, -0.395642, 0.879513},
- {-0.555559, -0.831446, 0.000000},
- {-0.264351, -0.395642, -0.879513},
- {0.290384, 0.434614, -0.852504},
- {0.382672, 0.923856, 0.000000},
- {0.200018, 0.482894, 0.852504},
- {-0.182073, -0.439619, 0.879513},
- {-0.382672, -0.923856, 0.000000},
- {-0.182073, -0.439619, -0.879513},
- {0.200018, 0.482894, -0.852504},
- {0.195074, 0.980773, 0.000000},
- {0.101962, 0.512650, 0.852504},
- {-0.092807, -0.466689, 0.879513},
- {-0.195074, -0.980773, 0.000000},
- {-0.092807, -0.466689, -0.879513},
- {0.101962, 0.512650, -0.852504},
- {0.000000, 1.000000, 0.000000},
- {0.000000, 0.522691, 0.852504},
- {0.000000, -0.475845, 0.879513},
- {0.000000, -1.000000, 0.000000},
- {0.000000, -0.475845, -0.879513},
- {0.000000, 0.522691, -0.852504},
- {-0.195074, 0.980773, 0.000000},
- {-0.101962, 0.512650, 0.852504},
- {0.092807, -0.466689, 0.879513},
- {0.195074, -0.980773, 0.000000},
- {0.092807, -0.466689, -0.879513},
- {-0.101962, 0.512650, -0.852504},
- {-0.382672, 0.923856, 0.000000},
- {-0.200018, 0.482894, 0.852504},
- {0.182073, -0.439619, 0.879513},
- {0.382672, -0.923856, 0.000000},
- {0.182073, -0.439619, -0.879513},
- {-0.200018, 0.482894, -0.852504},
- {-0.555559, 0.831446, 0.000000},
- {-0.290384, 0.434614, 0.852504},
- {0.264351, -0.395642, 0.879513},
- {0.555559, -0.831446, 0.000000},
- {0.264351, -0.395642, -0.879513},
- {-0.290384, 0.434614, -0.852504},
- {-0.707083, 0.707083, 0.000000},
- {-0.369610, 0.369610, 0.852504},
- {0.336467, -0.336467, 0.879513},
- {0.707083, -0.707083, 0.000000},
- {0.336467, -0.336467, -0.879513},
- {-0.369610, 0.369610, -0.852504},
- {-0.831446, 0.555559, 0.000000},
- {-0.434614, 0.290384, 0.852504},
- {0.395642, -0.264351, 0.879513},
- {0.831446, -0.555559, 0.000000},
- {0.395642, -0.264351, -0.879513},
- {-0.434614, 0.290384, -0.852504},
- {-0.923856, 0.382672, 0.000000},
- {-0.482894, 0.200018, 0.852504},
- {0.439619, -0.182073, 0.879513},
- {0.923856, -0.382672, 0.000000},
- {0.439619, -0.182073, -0.879513},
- {-0.482894, 0.200018, -0.852504},
- {-0.980773, 0.195074, 0.000000},
- {-0.512650, 0.101962, 0.852504},
- {0.466689, -0.092807, 0.879513},
- {0.980773, -0.195074, 0.000000},
- {0.466689, -0.092807, -0.879513},
- {-0.512650, 0.101962, -0.852504},
- {-1.000000, 0.000000, 0.000000},
- {-0.522691, 0.000000, 0.852504},
- {0.475845, 0.000000, 0.879513},
- {1.000000, 0.000000, 0.000000},
- {0.475845, 0.000000, -0.879513},
- {-0.522691, 0.000000, -0.852504},
- {-0.980773, -0.195074, 0.000000},
- {-0.512650, -0.101962, 0.852504},
- {0.466689, 0.092807, 0.879513},
- {0.980773, 0.195074, 0.000000},
- {0.466689, 0.092807, -0.879513},
- {-0.512650, -0.101962, -0.852504},
- {-0.923856, -0.382672, 0.000000},
- {-0.482894, -0.200018, 0.852504},
- {0.439619, 0.182073, 0.879513},
- {0.923856, 0.382672, 0.000000},
- {0.439619, 0.182073, -0.879513},
- {-0.482894, -0.200018, -0.852504},
- {-0.831446, -0.555559, 0.000000},
- {-0.434614, -0.290384, 0.852504},
- {0.395642, 0.264351, 0.879513},
- {0.831446, 0.555559, 0.000000},
- {0.395642, 0.264351, -0.879513},
- {-0.434614, -0.290384, -0.852504},
- {-0.707083, -0.707083, 0.000000},
- {-0.369610, -0.369610, 0.852504},
- {0.336467, 0.336467, 0.879513},
- {0.707083, 0.707083, 0.000000},
- {0.336467, 0.336467, -0.879513},
- {-0.369610, -0.369610, -0.852504},
- {-0.555559, -0.831446, 0.000000},
- {-0.290384, -0.434614, 0.852504},
- {0.264351, 0.395642, 0.879513},
- {0.555559, 0.831446, 0.000000},
- {0.264351, 0.395642, -0.879513},
- {-0.290384, -0.434614, -0.852504},
- {-0.382672, -0.923856, 0.000000},
- {-0.200018, -0.482894, 0.852504},
- {0.182073, 0.439619, 0.879513},
- {0.382672, 0.923856, 0.000000},
- {0.182073, 0.439619, -0.879513},
- {-0.200018, -0.482894, -0.852504},
- {-0.195074, -0.980773, 0.000000},
- {-0.101962, -0.512650, 0.852504},
- {0.092807, 0.466689, 0.879513},
- {0.195074, 0.980773, 0.000000},
- {0.092807, 0.466689, -0.879513},
- {-0.101962, -0.512650, -0.852504},
- {0.000000, -1.000000, 0.000000},
- {0.000000, -0.522691, 0.852504},
- {0.000000, 0.475845, 0.879513},
- {0.000000, 1.000000, 0.000000},
- {0.000000, 0.475845, -0.879513},
- {0.000000, -0.522691, -0.852504},
- {0.195074, -0.980773, 0.000000},
- {0.101962, -0.512650, 0.852504},
- {-0.092807, 0.466689, 0.879513},
- {-0.195074, 0.980773, 0.000000},
- {-0.092807, 0.466689, -0.879513},
- {0.101962, -0.512650, -0.852504},
- {0.382672, -0.923856, 0.000000},
- {0.200018, -0.482894, 0.852504},
- {-0.182073, 0.439619, 0.879513},
- {-0.382672, 0.923856, 0.000000},
- {-0.182073, 0.439619, -0.879513},
- {0.200018, -0.482894, -0.852504},
- {0.555559, -0.831446, 0.000000},
- {0.290384, -0.434614, 0.852504},
- {-0.264351, 0.395642, 0.879513},
- {-0.555559, 0.831446, 0.000000},
- {-0.264351, 0.395642, -0.879513},
- {0.290384, -0.434614, -0.852504},
- {0.707083, -0.707083, 0.000000},
- {0.369610, -0.369610, 0.852504},
- {-0.336467, 0.336467, 0.879513},
- {-0.707083, 0.707083, 0.000000},
- {-0.336467, 0.336467, -0.879513},
- {0.369610, -0.369610, -0.852504},
- {0.831446, -0.555559, 0.000000},
- {0.434614, -0.290384, 0.852504},
- {-0.395642, 0.264351, 0.879513},
- {-0.831446, 0.555559, 0.000000},
- {-0.395642, 0.264351, -0.879513},
- {0.434614, -0.290384, -0.852504},
- {0.923856, -0.382672, 0.000000},
- {0.482894, -0.200018, 0.852504},
- {-0.439619, 0.182073, 0.879513},
- {-0.923856, 0.382672, 0.000000},
- {-0.439619, 0.182073, -0.879513},
- {0.482894, -0.200018, -0.852504},
- {0.980773, -0.195074, 0.000000},
- {0.512650, -0.101962, 0.852504},
- {-0.466689, 0.092807, 0.879513},
- {-0.980773, 0.195074, 0.000000},
- {-0.466689, 0.092807, -0.879513},
- {0.512650, -0.101962, -0.852504},
-};
-
-static const unsigned short indices[] = {
- 6, 7, 1,
- 7, 8, 2,
- 8, 9, 3,
- 9, 10, 4,
- 10, 11, 5,
- 5, 11, 6,
- 12, 13, 7,
- 13, 14, 8,
- 14, 15, 9,
- 15, 16, 10,
- 16, 17, 11,
- 11, 17, 12,
- 18, 19, 13,
- 13, 19, 20,
- 20, 21, 15,
- 15, 21, 22,
- 22, 23, 17,
- 17, 23, 18,
- 24, 25, 19,
- 19, 25, 26,
- 26, 27, 21,
- 21, 27, 28,
- 28, 29, 23,
- 23, 29, 24,
- 30, 31, 25,
- 25, 31, 32,
- 26, 32, 33,
- 27, 33, 34,
- 34, 35, 29,
- 29, 35, 30,
- 36, 37, 31,
- 31, 37, 38,
- 38, 39, 33,
- 39, 40, 34,
- 40, 41, 35,
- 35, 41, 36,
- 36, 42, 43,
- 43, 44, 38,
- 44, 45, 39,
- 45, 46, 40,
- 46, 47, 41,
- 47, 42, 36,
- 48, 49, 43,
- 49, 50, 44,
- 50, 51, 45,
- 51, 52, 46,
- 52, 53, 47,
- 47, 53, 48,
- 54, 55, 49,
- 49, 55, 56,
- 50, 56, 57,
- 57, 58, 52,
- 58, 59, 53,
- 53, 59, 54,
- 60, 61, 55,
- 55, 61, 62,
- 56, 62, 63,
- 63, 64, 58,
- 64, 65, 59,
- 59, 65, 60,
- 66, 67, 61,
- 61, 67, 68,
- 68, 69, 63,
- 69, 70, 64,
- 70, 71, 65,
- 71, 66, 60,
- 72, 73, 67,
- 73, 74, 68,
- 68, 74, 75,
- 75, 76, 70,
- 76, 77, 71,
- 71, 77, 72,
- 78, 79, 73,
- 79, 80, 74,
- 74, 80, 81,
- 81, 82, 76,
- 82, 83, 77,
- 83, 78, 72,
- 78, 84, 85,
- 85, 86, 80,
- 80, 86, 87,
- 87, 88, 82,
- 82, 88, 89,
- 89, 84, 78,
- 90, 91, 85,
- 91, 92, 86,
- 86, 92, 93,
- 93, 94, 88,
- 88, 94, 95,
- 95, 90, 84,
- 96, 97, 91,
- 97, 98, 92,
- 98, 99, 93,
- 99, 100, 94,
- 100, 101, 95,
- 101, 96, 90,
- 102, 103, 97,
- 103, 104, 98,
- 104, 105, 99,
- 99, 105, 106,
- 106, 107, 101,
- 101, 107, 102,
- 108, 109, 103,
- 103, 109, 110,
- 110, 111, 105,
- 105, 111, 112,
- 112, 113, 107,
- 107, 113, 108,
- 114, 115, 109,
- 115, 116, 110,
- 116, 117, 111,
- 111, 117, 118,
- 112, 118, 119,
- 113, 119, 114,
- 114, 120, 121,
- 121, 122, 116,
- 122, 123, 117,
- 117, 123, 124,
- 124, 125, 119,
- 125, 120, 114,
- 126, 127, 121,
- 121, 127, 128,
- 128, 129, 123,
- 123, 129, 130,
- 130, 131, 125,
- 125, 131, 126,
- 132, 133, 127,
- 133, 134, 128,
- 128, 134, 135,
- 135, 136, 130,
- 136, 137, 131,
- 131, 137, 132,
- 132, 138, 139,
- 133, 139, 140,
- 134, 140, 141,
- 141, 142, 136,
- 142, 143, 137,
- 143, 138, 132,
- 138, 144, 145,
- 139, 145, 146,
- 146, 147, 141,
- 141, 147, 148,
- 148, 149, 143,
- 149, 144, 138,
- 144, 150, 151,
- 151, 152, 146,
- 146, 152, 153,
- 153, 154, 148,
- 154, 155, 149,
- 155, 150, 144,
- 156, 157, 151,
- 151, 157, 158,
- 158, 159, 153,
- 159, 160, 154,
- 160, 161, 155,
- 155, 161, 156,
- 156, 162, 163,
- 163, 164, 158,
- 158, 164, 165,
- 165, 166, 160,
- 160, 166, 167,
- 167, 162, 156,
- 162, 168, 169,
- 169, 170, 164,
- 164, 170, 171,
- 165, 171, 172,
- 166, 172, 173,
- 173, 168, 162,
- 174, 175, 169,
- 175, 176, 170,
- 170, 176, 177,
- 177, 178, 172,
- 172, 178, 179,
- 173, 179, 174,
- 174, 180, 181,
- 181, 182, 176,
- 176, 182, 183,
- 183, 184, 178,
- 178, 184, 185,
- 179, 185, 180,
- 186, 187, 181,
- 187, 188, 182,
- 188, 189, 183,
- 183, 189, 190,
- 190, 191, 185,
- 191, 186, 180,
- 0, 1, 187,
- 1, 2, 188,
- 2, 3, 189,
- 3, 4, 190,
- 190, 4, 5,
- 191, 5, 0,
- 0, 6, 1,
- 1, 7, 2,
- 2, 8, 3,
- 3, 9, 4,
- 4, 10, 5,
- 0, 5, 6,
- 6, 12, 7,
- 7, 13, 8,
- 8, 14, 9,
- 9, 15, 10,
- 10, 16, 11,
- 6, 11, 12,
- 12, 18, 13,
- 14, 13, 20,
- 14, 20, 15,
- 16, 15, 22,
- 16, 22, 17,
- 12, 17, 18,
- 18, 24, 19,
- 20, 19, 26,
- 20, 26, 21,
- 22, 21, 28,
- 22, 28, 23,
- 18, 23, 24,
- 24, 30, 25,
- 26, 25, 32,
- 27, 26, 33,
- 28, 27, 34,
- 28, 34, 29,
- 24, 29, 30,
- 30, 36, 31,
- 32, 31, 38,
- 32, 38, 33,
- 33, 39, 34,
- 34, 40, 35,
- 30, 35, 36,
- 37, 36, 43,
- 37, 43, 38,
- 38, 44, 39,
- 39, 45, 40,
- 40, 46, 41,
- 41, 47, 36,
- 42, 48, 43,
- 43, 49, 44,
- 44, 50, 45,
- 45, 51, 46,
- 46, 52, 47,
- 42, 47, 48,
- 48, 54, 49,
- 50, 49, 56,
- 51, 50, 57,
- 51, 57, 52,
- 52, 58, 53,
- 48, 53, 54,
- 54, 60, 55,
- 56, 55, 62,
- 57, 56, 63,
- 57, 63, 58,
- 58, 64, 59,
- 54, 59, 60,
- 60, 66, 61,
- 62, 61, 68,
- 62, 68, 63,
- 63, 69, 64,
- 64, 70, 65,
- 65, 71, 60,
- 66, 72, 67,
- 67, 73, 68,
- 69, 68, 75,
- 69, 75, 70,
- 70, 76, 71,
- 66, 71, 72,
- 72, 78, 73,
- 73, 79, 74,
- 75, 74, 81,
- 75, 81, 76,
- 76, 82, 77,
- 77, 83, 72,
- 79, 78, 85,
- 79, 85, 80,
- 81, 80, 87,
- 81, 87, 82,
- 83, 82, 89,
- 83, 89, 78,
- 84, 90, 85,
- 85, 91, 86,
- 87, 86, 93,
- 87, 93, 88,
- 89, 88, 95,
- 89, 95, 84,
- 90, 96, 91,
- 91, 97, 92,
- 92, 98, 93,
- 93, 99, 94,
- 94, 100, 95,
- 95, 101, 90,
- 96, 102, 97,
- 97, 103, 98,
- 98, 104, 99,
- 100, 99, 106,
- 100, 106, 101,
- 96, 101, 102,
- 102, 108, 103,
- 104, 103, 110,
- 104, 110, 105,
- 106, 105, 112,
- 106, 112, 107,
- 102, 107, 108,
- 108, 114, 109,
- 109, 115, 110,
- 110, 116, 111,
- 112, 111, 118,
- 113, 112, 119,
- 108, 113, 114,
- 115, 114, 121,
- 115, 121, 116,
- 116, 122, 117,
- 118, 117, 124,
- 118, 124, 119,
- 119, 125, 114,
- 120, 126, 121,
- 122, 121, 128,
- 122, 128, 123,
- 124, 123, 130,
- 124, 130, 125,
- 120, 125, 126,
- 126, 132, 127,
- 127, 133, 128,
- 129, 128, 135,
- 129, 135, 130,
- 130, 136, 131,
- 126, 131, 132,
- 133, 132, 139,
- 134, 133, 140,
- 135, 134, 141,
- 135, 141, 136,
- 136, 142, 137,
- 137, 143, 132,
- 139, 138, 145,
- 140, 139, 146,
- 140, 146, 141,
- 142, 141, 148,
- 142, 148, 143,
- 143, 149, 138,
- 145, 144, 151,
- 145, 151, 146,
- 147, 146, 153,
- 147, 153, 148,
- 148, 154, 149,
- 149, 155, 144,
- 150, 156, 151,
- 152, 151, 158,
- 152, 158, 153,
- 153, 159, 154,
- 154, 160, 155,
- 150, 155, 156,
- 157, 156, 163,
- 157, 163, 158,
- 159, 158, 165,
- 159, 165, 160,
- 161, 160, 167,
- 161, 167, 156,
- 163, 162, 169,
- 163, 169, 164,
- 165, 164, 171,
- 166, 165, 172,
- 167, 166, 173,
- 167, 173, 162,
- 168, 174, 169,
- 169, 175, 170,
- 171, 170, 177,
- 171, 177, 172,
- 173, 172, 179,
- 168, 173, 174,
- 175, 174, 181,
- 175, 181, 176,
- 177, 176, 183,
- 177, 183, 178,
- 179, 178, 185,
- 174, 179, 180,
- 180, 186, 181,
- 181, 187, 182,
- 182, 188, 183,
- 184, 183, 190,
- 184, 190, 185,
- 185, 191, 180,
- 186, 0, 187,
- 187, 1, 188,
- 188, 2, 189,
- 189, 3, 190,
- 191, 190, 5,
- 186, 191, 0,
-};
-
-ManipulatorGeomInfo wm_manipulator_geom_data_dial = {
- .nverts = 192,
- .ntris = 384,
- .verts = verts,
- .normals = normals,
- .indices = indices,
-};
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_geometry.h b/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_geometry.h
deleted file mode 100644
index b3df79834a3..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_geometry.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/manipulator_geometry.h
- * \ingroup wm
- *
- * \name Manipulator Geometry
- *
- * \brief Prototypes for arrays defining the manipulator geometry. The actual definitions can be found in files usually
- * called geom_xxx_manipulator.c
- */
-
-
-#ifndef __MANIPULATOR_GEOMETRY_H__
-#define __MANIPULATOR_GEOMETRY_H__
-
-typedef struct ManipulatorGeomInfo {
- int nverts;
- int ntris;
- const float (*verts)[3];
- const float (*normals)[3];
- const unsigned short *indices;
-} ManipulatorGeomInfo;
-
-/* arrow manipulator */
-extern ManipulatorGeomInfo wm_manipulator_geom_data_arrow;
-
-/* cube manipulator */
-extern ManipulatorGeomInfo wm_manipulator_geom_data_cube;
-
-#endif /* __MANIPULATOR_GEOMETRY_H__ */
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_intern.h b/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_intern.h
deleted file mode 100644
index e432fa1523a..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_intern.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2016 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_intern.h
- * \ingroup wm
- */
-
-
-#ifndef __MANIPULATOR_LIBRARY_INTERN_H__
-#define __MANIPULATOR_LIBRARY_INTERN_H__
-
-/* distance around which manipulators respond to input (and get highlighted) */
-#define MANIPULATOR_HOTSPOT 14.0f
-
-/**
- * Data for common interactions. Used in manipulator_library_utils.c functions.
- */
-typedef struct ManipulatorCommonData {
- int flag;
-
- float range_fac; /* factor for arrow min/max distance */
- float offset;
-
- /* property range for constrained manipulators */
- float range;
- /* min/max value for constrained manipulators */
- float min, max;
-} ManipulatorCommonData;
-
-typedef struct ManipulatorInteraction {
- float init_value; /* initial property value */
- float init_origin[3];
- float init_mval[2];
- float init_offset;
- float init_scale;
-
- /* offset of last handling step */
- float prev_offset;
- /* Total offset added by precision tweaking.
- * Needed to allow toggling precision on/off without causing jumps */
- float precision_offset;
-} ManipulatorInteraction;
-
-/* ManipulatorCommonData->flag */
-enum {
- MANIPULATOR_CUSTOM_RANGE_SET = (1 << 0),
-};
-
-
-float manipulator_offset_from_value(
- ManipulatorCommonData *data, const float value,
- const bool constrained, const bool inverted);
-float manipulator_value_from_offset(
- ManipulatorCommonData *data, ManipulatorInteraction *inter, const float offset,
- const bool constrained, const bool inverted, const bool use_precision);
-
-void manipulator_property_data_update(
- struct wmManipulator *manipulator, ManipulatorCommonData *data, const int slot,
- const bool constrained, const bool inverted);
-
-void manipulator_property_value_set(
- bContext *C, const struct wmManipulator *manipulator,
- const int slot, const float value);
-float manipulator_property_value_get(
- const struct wmManipulator *manipulator, const int slot);
-void manipulator_property_value_reset(
- bContext *C, const struct wmManipulator *manipulator, ManipulatorInteraction *inter,
- const int slot);
-
-
-/* -------------------------------------------------------------------- */
-
-void manipulator_color_get(
- const struct wmManipulator *manipulator, const bool highlight,
- float r_col[]);
-
-#endif /* __MANIPULATOR_LIBRARY_INTERN_H__ */
-
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
deleted file mode 100644
index 0617e9e873b..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2015 Blender Foundation.
- * All rights reserved.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/manipulator_library_utils.c
- * \ingroup wm
- *
- * \name Manipulator Library Utilities
- *
- * \brief This file contains functions for common behaviors of manipulators.
- */
-
-#include "BKE_context.h"
-
-#include "BLI_math.h"
-
-#include "RNA_access.h"
-
-#include "WM_api.h"
-
-/* own includes */
-#include "WM_manipulator_types.h"
-#include "wm_manipulator_wmapi.h"
-#include "wm_manipulator_intern.h"
-#include "manipulator_library_intern.h"
-
-/* factor for precision tweaking */
-#define MANIPULATOR_PRECISION_FAC 0.05f
-
-
-BLI_INLINE float manipulator_offset_from_value_constr(
- const float range_fac, const float min, const float range, const float value,
- const bool inverted)
-{
- return inverted ? (range_fac * (min + range - value) / range) : (range_fac * (value / range));
-}
-
-BLI_INLINE float manipulator_value_from_offset_constr(
- const float range_fac, const float min, const float range, const float value,
- const bool inverted)
-{
- return inverted ? (min + range - (value * range / range_fac)) : (value * range / range_fac);
-}
-
-float manipulator_offset_from_value(
- ManipulatorCommonData *data, const float value, const bool constrained, const bool inverted)
-{
- if (constrained)
- return manipulator_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted);
-
- return value;
-}
-
-float manipulator_value_from_offset(
- ManipulatorCommonData *data, ManipulatorInteraction *inter, const float offset,
- const bool constrained, const bool inverted, const bool use_precision)
-{
- const float max = data->min + data->range;
-
- if (use_precision) {
- /* add delta offset of this step to total precision_offset */
- inter->precision_offset += offset - inter->prev_offset;
- }
- inter->prev_offset = offset;
-
- float ofs_new = inter->init_offset + offset - inter->precision_offset * (1.0f - MANIPULATOR_PRECISION_FAC);
- float value;
-
- if (constrained) {
- value = manipulator_value_from_offset_constr(data->range_fac, data->min, data->range, ofs_new, inverted);
- }
- else {
- value = ofs_new;
- }
-
- /* clamp to custom range */
- if (data->flag & MANIPULATOR_CUSTOM_RANGE_SET) {
- CLAMP(value, data->min, max);
- }
-
- return value;
-}
-
-void manipulator_property_data_update(
- wmManipulator *manipulator, ManipulatorCommonData *data, const int slot,
- const bool constrained, const bool inverted)
-{
- if (!manipulator->props[slot]) {
- data->offset = 0.0f;
- return;
- }
-
- PointerRNA ptr = manipulator->ptr[slot];
- PropertyRNA *prop = manipulator->props[slot];
- float value = manipulator_property_value_get(manipulator, slot);
-
- if (constrained) {
- if ((data->flag & MANIPULATOR_CUSTOM_RANGE_SET) == 0) {
- float step, precision;
- float min, max;
- RNA_property_float_ui_range(&ptr, prop, &min, &max, &step, &precision);
- data->range = max - min;
- data->min = min;
- }
- data->offset = manipulator_offset_from_value_constr(data->range_fac, data->min, data->range, value, inverted);
- }
- else {
- data->offset = value;
- }
-}
-
-void manipulator_property_value_set(
- bContext *C, const wmManipulator *manipulator,
- const int slot, const float value)
-{
- PointerRNA ptr = manipulator->ptr[slot];
- PropertyRNA *prop = manipulator->props[slot];
-
- /* reset property */
- RNA_property_float_set(&ptr, prop, value);
- RNA_property_update(C, &ptr, prop);
-}
-
-float manipulator_property_value_get(const wmManipulator *manipulator, const int slot)
-{
- BLI_assert(RNA_property_type(manipulator->props[slot]) == PROP_FLOAT);
- return RNA_property_float_get(&manipulator->ptr[slot], manipulator->props[slot]);
-}
-
-void manipulator_property_value_reset(
- bContext *C, const wmManipulator *manipulator, ManipulatorInteraction *inter,
- const int slot)
-{
- manipulator_property_value_set(C, manipulator, slot, inter->init_value);
-}
-
-
-/* -------------------------------------------------------------------- */
-
-void manipulator_color_get(
- const wmManipulator *manipulator, const bool highlight,
- float r_col[4])
-{
- if (highlight && !(manipulator->flag & WM_MANIPULATOR_DRAW_HOVER)) {
- copy_v4_v4(r_col, manipulator->col_hi);
- }
- else {
- copy_v4_v4(r_col, manipulator->col);
- }
-}
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
deleted file mode 100644
index c67aeace8d9..00000000000
--- a/source/blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/windowmanager/manipulators/intern/manipulator_library/primitive_manipulator.c
- * \ingroup wm
- *
- * \name Primitive Manipulator
- *
- * 3D Manipulator
- *
- * \brief Manipulator with primitive drawing type (plane, cube, etc.).
- * Currently only plane primitive supported without own handling, use with operator only.
- */
-
-#include "BIF_gl.h"
-
-#include "BKE_context.h"
-
-#include "BLI_math.h"
-
-#include "DNA_view3d_types.h"
-#include "DNA_manipulator_types.h"
-
-#include "GPU_immediate.h"
-#include "GPU_matrix.h"
-#include "GPU_select.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-/* own includes */
-#include "WM_manipulator_types.h"
-#include "WM_manipulator_library.h"
-#include "wm_manipulator_wmapi.h"
-#include "wm_manipulator_intern.h"
-#include "manipulator_library_intern.h"
-
-
-/* PrimitiveManipulator->flag */
-enum {
- PRIM_UP_VECTOR_SET = (1 << 0),
-};
-
-typedef struct PrimitiveManipulator {
- wmManipulator manipulator;
-
- float direction[3];
- float up[3];
- int style;
- int flag;
-} PrimitiveManipulator;
-
-
-static float verts_plane[4][3] = {
- {-1, -1, 0},
- { 1, -1, 0},
- { 1, 1, 0},
- {-1, 1, 0},
-};
-
-
-/* -------------------------------------------------------------------- */
-
-static void manipulator_primitive_draw_geom(
- const float col_inner[4], const float col_outer[4], const int style)
-{
- float (*verts)[3];
- unsigned int vert_count = 0;
-
- if (style == MANIPULATOR_PRIMITIVE_STYLE_PLANE) {
- verts = verts_plane;
- vert_count = ARRAY_SIZE(verts_plane);
- }
-
- if (vert_count > 0) {
- unsigned int pos = VertexFormat_add_attrib(immVertexFormat(), "pos", COMP_F32, 3, KEEP_FLOAT);
- immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
- wm_manipulator_vec_draw(col_inner, verts, vert_count, pos, PRIM_TRIANGLE_FAN);
- wm_manipulator_vec_draw(col_outer, verts, vert_count, pos, PRIM_LINE_LOOP);
- immUnbindProgram();
- }
-}
-
-static void manipulator_primitive_draw_intern(
- PrimitiveManipulator *prim, const bool UNUSED(select),
- const bool highlight)
-{
- float col_inner[4], col_outer[4];
- float rot[3][3];
- float mat[4][4];
-
- if (prim->flag & PRIM_UP_VECTOR_SET) {
- copy_v3_v3(rot[2], prim->direction);
- copy_v3_v3(rot[1], prim->up);
- cross_v3_v3v3(rot[0], prim->up, prim->direction);
- }
- else {
- const float up[3] = {0.0f, 0.0f, 1.0f};
- rotation_between_vecs_to_mat3(rot, up, prim->direction);
- }
-
- copy_m4_m3(mat, rot);
- copy_v3_v3(mat[3], prim->manipulator.origin);
- mul_mat3_m4_fl(mat, prim->manipulator.scale);
-
- gpuPushMatrix();
- gpuMultMatrix(mat);
-
- manipulator_color_get(&prim->manipulator, highlight, col_outer);
- copy_v4_v4(col_inner, col_outer);
- col_inner[3] *= 0.5f;
-
- glEnable(GL_BLEND);
- gpuTranslate3fv(prim->manipulator.offset);
- manipulator_primitive_draw_geom(col_inner, col_outer, prim->style);
- glDisable(GL_BLEND);
-
- gpuPopMatrix();
-
- if (prim->manipulator.interaction_data) {
- ManipulatorInteraction *inter = prim->manipulator.interaction_data;
-
- copy_v4_fl(col_inner, 0.5f);
- copy_v3_fl(col_outer, 0.5f);
- col_outer[3] = 0.8f;
-
- copy_m4_m3(mat, rot);
- copy_v3_v3(mat[3], inter->init_origin);
- mul_mat3_m4_fl(mat, inter->init_scale);
-
- gpuPushMatrix();
- gpuMultMatrix(mat);
-
- glEnable(GL_BLEND);
- gpuTranslate3fv(prim->manipulator.offset);
- manipulator_primitive_draw_geom(col_inner, col_outer, prim->style);
- glDisable(GL_BLEND);
-
- gpuPopMatrix();
- }
-}
-
-static void manipulator_primitive_render_3d_intersect(
- const bContext *UNUSED(C), wmManipulator *manipulator,
- int selectionbase)
-{
- GPU_select_load_id(selectionbase);
- manipulator_primitive_draw_intern((PrimitiveManipulator *)manipulator, true, false);
-}
-
-static void manipulator_primitive_draw(const bContext *UNUSED(C), wmManipulator *manipulator)
-{
- manipulator_primitive_draw_intern(
- (PrimitiveManipulator *)manipulator, false,
- (manipulator->state & WM_MANIPULATOR_HIGHLIGHT));
-}
-
-static void manipulator_primitive_invoke(
- bContext *UNUSED(C), wmManipulator *manipulator, const wmEvent *UNUSED(event))
-{
- ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__);
-
- copy_v3_v3(inter->init_origin, manipulator->origin);
- inter->init_scale = manipulator->scale;
-
- manipulator->interaction_data = inter;
-}
-
-
-/* -------------------------------------------------------------------- */
-/** \name Primitive Manipulator API
- *
- * \{ */
-
-wmManipulator *MANIPULATOR_primitive_new(wmManipulatorGroup *mgroup, const char *name, const int style)
-{
- const wmManipulatorType *mpt = WM_manipulatortype_find("MANIPULATOR_WT_primitive", false);
- PrimitiveManipulator *prim = (PrimitiveManipulator *)WM_manipulator_new(mpt, mgroup, name);
-
- const float dir_default[3] = {0.0f, 0.0f, 1.0f};
-
- prim->manipulator.flag |= WM_MANIPULATOR_DRAW_ACTIVE;
- prim->style = style;
-
- /* defaults */
- copy_v3_v3(prim->direction, dir_default);
-
- return (wmManipulator *)prim;
-}
-
-/**
- * Define direction the primitive will point towards
- */
-void MANIPULATOR_primitive_set_direction(wmManipulator *manipulator, const float direction[3])
-{
- PrimitiveManipulator *prim = (PrimitiveManipulator *)manipulator;
-
- normalize_v3_v3(prim->direction, direction);
-}
-
-/**
- * Define up-direction of the primitive manipulator
- */
-void MANIPULATOR_primitive_set_up_vector(wmManipulator *manipulator, const float direction[3])
-{
- PrimitiveManipulator *prim = (PrimitiveManipulator *)manipulator;
-
- if (direction) {
- normalize_v3_v3(prim->up, direction);
- prim->flag |= PRIM_UP_VECTOR_SET;
- }
- else {
- prim->flag &= ~PRIM_UP_VECTOR_SET;
- }
-}
-
-static void MANIPULATOR_WT_primitive(wmManipulatorType *wt)
-{
- /* identifiers */
- wt->idname = "MANIPULATOR_WT_primitive";
-
- /* api callbacks */
- wt->draw = manipulator_primitive_draw;
- wt->draw_select = manipulator_primitive_render_3d_intersect;
- wt->invoke = manipulator_primitive_invoke;
-
- wt->size = sizeof(PrimitiveManipulator);
-}
-
-void ED_manipulatortypes_primitive(void)
-{
- WM_manipulatortype_append(MANIPULATOR_WT_primitive);
-}
-
-/** \} */ // Primitive Manipulator API
-
-
-/* -------------------------------------------------------------------- */
-
-void fix_linking_manipulator_primitive(void)
-{
- (void)0;
-}
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
index a2d88b35b54..d70822e8c56 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
@@ -58,8 +58,6 @@
#include "wm_manipulator_wmapi.h"
#include "wm_manipulator_intern.h"
-#include "manipulator_library/manipulator_geometry.h"
-
static void wm_manipulator_register(
wmManipulatorGroup *mgroup, wmManipulator *manipulator, const char *name);
@@ -163,91 +161,12 @@ static wmManipulator *wm_manipulator_create(
return mpr;
}
-
-/**
- * Main draw call for ManipulatorGeomInfo data
- */
-void wm_manipulator_geometryinfo_draw(const ManipulatorGeomInfo *info, const bool select, const float color[4])
-{
- /* TODO store the Batches inside the ManipulatorGeomInfo and updated it when geom changes
- * So we don't need to re-created and discard it every time */
-
- const bool use_lighting = true || (!select && ((U.manipulator_flag & V3D_SHADED_MANIPULATORS) != 0));
- VertexBuffer *vbo;
- ElementList *el;
- Batch *batch;
- ElementListBuilder elb = {0};
-
- VertexFormat format = {0};
- unsigned int pos_id = VertexFormat_add_attrib(&format, "pos", COMP_F32, 3, KEEP_FLOAT);
- unsigned int nor_id;
-
- if (use_lighting) {
- nor_id = VertexFormat_add_attrib(&format, "nor", COMP_I16, 3, NORMALIZE_INT_TO_FLOAT);
- }
-
- /* Elements */
- ElementListBuilder_init(&elb, PRIM_TRIANGLES, info->ntris, info->nverts);
- for (int i = 0; i < info->ntris; ++i) {
- const unsigned short *idx = &info->indices[i * 3];
- add_triangle_vertices(&elb, idx[0], idx[1], idx[2]);
- }
- el = ElementList_build(&elb);
-
- vbo = VertexBuffer_create_with_format(&format);
- VertexBuffer_allocate_data(vbo, info->nverts);
-
- VertexBuffer_fill_attrib(vbo, pos_id, info->verts);
-
- if (use_lighting) {
- /* Normals are expected to be smooth. */
- VertexBuffer_fill_attrib(vbo, nor_id, info->normals);
- }
-
- batch = Batch_create(PRIM_TRIANGLES, vbo, el);
- Batch_set_builtin_program(batch, GPU_SHADER_3D_UNIFORM_COLOR);
-
- Batch_Uniform4fv(batch, "color", color);
-
- glEnable(GL_CULL_FACE);
- // glEnable(GL_DEPTH_TEST);
-
- Batch_draw(batch);
-
- glDisable(GL_DEPTH_TEST);
- // glDisable(GL_CULL_FACE);
-
-
- Batch_discard_all(batch);
-}
-
-void wm_manipulator_vec_draw(
- const float color[4], const float (*verts)[3], unsigned int vert_count,
- unsigned int pos, unsigned int primitive_type)
-{
- immUniformColor4fv(color);
- immBegin(primitive_type, vert_count);
- for (int i = 0; i < vert_count; i++) {
- immVertex3fv(pos, verts[i]);
- }
- immEnd();
-}
-
wmManipulator *WM_manipulator_new(const wmManipulatorType *mpt, wmManipulatorGroup *mgroup, const char *name)
{
wmManipulator *mpr = wm_manipulator_create(mpt);
wm_manipulator_register(mgroup, mpr, name);
- /* XXX: never happens */
- if (name[0] == '\n') {
- fix_linking_manipulator_arrow();
- fix_linking_manipulator_arrow2d();
- fix_linking_manipulator_cage();
- fix_linking_manipulator_dial();
- fix_linking_manipulator_primitive();
- }
-
return mpr;
}
@@ -311,13 +230,13 @@ static void wm_manipulator_register(wmManipulatorGroup *mgroup, wmManipulator *m
*/
void WM_manipulator_delete(ListBase *manipulatorlist, wmManipulatorMap *mmap, wmManipulator *manipulator, bContext *C)
{
- if (manipulator->state & WM_MANIPULATOR_HIGHLIGHT) {
+ if (manipulator->state & WM_MANIPULATOR_STATE_HIGHLIGHT) {
wm_manipulatormap_set_highlighted_manipulator(mmap, C, NULL, 0);
}
- if (manipulator->state & WM_MANIPULATOR_ACTIVE) {
+ if (manipulator->state & WM_MANIPULATOR_STATE_ACTIVE) {
wm_manipulatormap_set_active_manipulator(mmap, C, NULL, NULL);
}
- if (manipulator->state & WM_MANIPULATOR_SELECTED) {
+ if (manipulator->state & WM_MANIPULATOR_STATE_SELECT) {
wm_manipulator_deselect(mmap, manipulator);
}
@@ -513,7 +432,7 @@ bool wm_manipulator_deselect(wmManipulatorMap *mmap, wmManipulator *manipulator)
bool changed = false;
/* caller should check! */
- BLI_assert(manipulator->state & WM_MANIPULATOR_SELECTED);
+ BLI_assert(manipulator->state & WM_MANIPULATOR_STATE_SELECT);
/* remove manipulator from selected_manipulators array */
for (int i = 0; i < (*tot_selected); i++) {
@@ -535,7 +454,7 @@ bool wm_manipulator_deselect(wmManipulatorMap *mmap, wmManipulator *manipulator)
(*tot_selected)--;
}
- manipulator->state &= ~WM_MANIPULATOR_SELECTED;
+ manipulator->state &= ~WM_MANIPULATOR_STATE_SELECT;
return changed;
}
@@ -550,7 +469,7 @@ bool wm_manipulator_select(bContext *C, wmManipulatorMap *mmap, wmManipulator *m
wmManipulator ***sel = &mmap->mmap_context.selected_manipulator;
int *tot_selected = &mmap->mmap_context.tot_selected;
- if (!manipulator || (manipulator->state & WM_MANIPULATOR_SELECTED))
+ if (!manipulator || (manipulator->state & WM_MANIPULATOR_STATE_SELECT))
return false;
(*tot_selected)++;
@@ -558,7 +477,7 @@ bool wm_manipulator_select(bContext *C, wmManipulatorMap *mmap, wmManipulator *m
*sel = MEM_reallocN(*sel, sizeof(wmManipulator *) * (*tot_selected));
(*sel)[(*tot_selected) - 1] = manipulator;
- manipulator->state |= WM_MANIPULATOR_SELECTED;
+ manipulator->state |= WM_MANIPULATOR_STATE_SELECT;
if (manipulator->type->select) {
manipulator->type->select(C, manipulator, SEL_SELECT);
}
@@ -617,15 +536,15 @@ bool wm_manipulator_is_visible(wmManipulator *manipulator)
if (manipulator->flag & WM_MANIPULATOR_HIDDEN) {
return false;
}
- if ((manipulator->state & WM_MANIPULATOR_ACTIVE) &&
+ if ((manipulator->state & WM_MANIPULATOR_STATE_ACTIVE) &&
!(manipulator->flag & (WM_MANIPULATOR_DRAW_ACTIVE | WM_MANIPULATOR_DRAW_VALUE)))
{
/* don't draw while active (while dragging) */
return false;
}
if ((manipulator->flag & WM_MANIPULATOR_DRAW_HOVER) &&
- !(manipulator->state & WM_MANIPULATOR_HIGHLIGHT) &&
- !(manipulator->state & WM_MANIPULATOR_SELECTED)) /* still draw selected manipulators */
+ !(manipulator->state & WM_MANIPULATOR_STATE_HIGHLIGHT) &&
+ !(manipulator->state & WM_MANIPULATOR_STATE_SELECT)) /* still draw selected manipulators */
{
/* only draw on mouse hover */
return false;
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h
index ca48b05e786..bf2240e7219 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h
@@ -38,73 +38,6 @@ struct GHashIterator;
/* -------------------------------------------------------------------- */
/* wmManipulator */
-/* manipulators are set per region by registering them on manipulator-maps */
-struct wmManipulator {
- struct wmManipulator *next, *prev;
-
- char idname[MAX_NAME + 4]; /* + 4 for unique '.001', '.002', etc suffix */
-
- /* While we don't have a real type, use this to put type-like vars. */
- const struct wmManipulatorType *type;
-
- /* Overrides 'type->handler' when set. */
- wmManipulatorFnHandler custom_handler;
-
- void *custom_data;
-
- /* pointer back to group this manipulator is in (just for quick access) */
- struct wmManipulatorGroup *parent_mgroup;
-
- int flag; /* flags that influence the behavior or how the manipulators are drawn */
- short state; /* state flags (active, highlighted, selected) */
-
- unsigned char highlighted_part;
-
- /* center of manipulator in space, 2d or 3d */
- float origin[3];
- /* custom offset from origin */
- float offset[3];
- /* runtime property, set the scale while drawing on the viewport */
- float scale;
- /* user defined scale, in addition to the original one */
- float user_scale;
- /* user defined width for line drawing */
- float line_width;
- /* manipulator colors (uses default fallbacks if not defined) */
- float col[4], col_hi[4];
-
- /* data used during interaction */
- void *interaction_data;
-
- /* name of operator to spawn when activating the manipulator */
- const char *opname;
- /* operator properties if manipulator spawns and controls an operator,
- * or owner pointer if manipulator spawns and controls a property */
- PointerRNA opptr;
-
- /* arrays of properties attached to various manipulator parameters. As
- * the manipulator is interacted with, those properties get updated */
- PointerRNA *ptr;
- PropertyRNA **props;
-};
-
-/* wmManipulator.state */
-enum {
- WM_MANIPULATOR_HIGHLIGHT = (1 << 0), /* while hovered */
- WM_MANIPULATOR_ACTIVE = (1 << 1), /* while dragging */
- WM_MANIPULATOR_SELECTED = (1 << 2),
-};
-
-/**
- * \brief Manipulator tweak flag.
- * Bitflag passed to manipulator while tweaking.
- */
-enum {
- /* drag with extra precision (shift)
- * NOTE: Manipulators are responsible for handling this (manipulator->handler callback)! */
- WM_MANIPULATOR_TWEAK_PRECISE = (1 << 0),
-};
-
bool wm_manipulator_deselect(struct wmManipulatorMap *mmap, struct wmManipulator *manipulator);
bool wm_manipulator_select(bContext *C, struct wmManipulatorMap *mmap, struct wmManipulator *manipulator);
@@ -112,13 +45,6 @@ void wm_manipulator_calculate_scale(struct wmManipulator *manipulator, const bCo
void wm_manipulator_update(struct wmManipulator *manipulator, const bContext *C, const bool refresh_map);
bool wm_manipulator_is_visible(struct wmManipulator *manipulator);
-void fix_linking_manipulator_arrow(void);
-void fix_linking_manipulator_arrow2d(void);
-void fix_linking_manipulator_cage(void);
-void fix_linking_manipulator_dial(void);
-void fix_linking_manipulator_facemap(void);
-void fix_linking_manipulator_primitive(void);
-
/* -------------------------------------------------------------------- */
/* wmManipulatorGroup */
@@ -191,14 +117,4 @@ struct wmManipulatorMapType {
void wm_manipulatormap_selected_delete(struct wmManipulatorMap *mmap);
bool wm_manipulatormap_deselect_all(struct wmManipulatorMap *mmap, struct wmManipulator ***sel);
-
-/* -------------------------------------------------------------------- */
-/* Manipulator drawing */
-
-void wm_manipulator_geometryinfo_draw(const struct ManipulatorGeomInfo *info, const bool select, const float color[4]);
-void wm_manipulator_vec_draw(
- const float color[4], const float (*verts)[3], unsigned int vert_count,
- unsigned int pos, unsigned int primitive_type);
-
-#endif /* __WM_MANIPULATOR_INTERN_H__ */
-
+#endif \ No newline at end of file
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
index 18bee2e4457..94e12b88dcd 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c
@@ -240,7 +240,7 @@ static int manipulator_select_invoke(bContext *C, wmOperator *op, const wmEvent
}
if (highlighted) {
- const bool is_selected = (highlighted->state & WM_MANIPULATOR_SELECTED);
+ const bool is_selected = (highlighted->state & WM_MANIPULATOR_STATE_SELECT);
bool redraw = false;
if (toggle) {
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
index 00bc9f2ea56..13900ed8545 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
@@ -288,7 +288,7 @@ static void manipulator_find_active_3D_loop(const bContext *C, ListBase *visible
}
}
-static int manipulator_find_intersected_3D_intern(
+static int manipulator_find_intersected_3d_intern(
ListBase *visible_manipulators, const bContext *C, const int co[2],
const float hotspot)
{
@@ -330,7 +330,7 @@ static int manipulator_find_intersected_3D_intern(
/**
* Try to find a 3D manipulator at screen-space coordinate \a co. Uses OpenGL picking.
*/
-static wmManipulator *manipulator_find_intersected_3D(
+static wmManipulator *manipulator_find_intersected_3d(
bContext *C, const int co[2], ListBase *visible_manipulators,
unsigned char *part)
{
@@ -342,12 +342,12 @@ static wmManipulator *manipulator_find_intersected_3D(
/* set up view matrices */
view3d_operator_needs_opengl(C);
- ret = manipulator_find_intersected_3D_intern(visible_manipulators, C, co, 0.5f * hotspot);
+ ret = manipulator_find_intersected_3d_intern(visible_manipulators, C, co, 0.5f * hotspot);
if (ret != -1) {
LinkData *link;
int retsec;
- retsec = manipulator_find_intersected_3D_intern(visible_manipulators, C, co, 0.2f * hotspot);
+ retsec = manipulator_find_intersected_3d_intern(visible_manipulators, C, co, 0.2f * hotspot);
if (retsec != -1)
ret = retsec;
@@ -383,7 +383,7 @@ wmManipulator *wm_manipulatormap_find_highlighted_manipulator(
}
if (!BLI_listbase_is_empty(&visible_3d_manipulators)) {
- manipulator = manipulator_find_intersected_3D(C, event->mval, &visible_3d_manipulators, part);
+ manipulator = manipulator_find_intersected_3d(C, event->mval, &visible_3d_manipulators, part);
BLI_freelistN(&visible_3d_manipulators);
}
@@ -455,7 +455,7 @@ bool wm_manipulatormap_deselect_all(wmManipulatorMap *mmap, wmManipulator ***sel
return false;
for (int i = 0; i < mmap->mmap_context.tot_selected; i++) {
- (*sel)[i]->state &= ~WM_MANIPULATOR_SELECTED;
+ (*sel)[i]->state &= ~WM_MANIPULATOR_STATE_SELECT;
(*sel)[i] = NULL;
}
wm_manipulatormap_selected_delete(mmap);
@@ -493,10 +493,10 @@ static bool wm_manipulatormap_select_all_intern(
GHASH_ITER_INDEX (gh_iter, hash, i) {
wmManipulator *manipulator_iter = BLI_ghashIterator_getValue(&gh_iter);
- if ((manipulator_iter->state & WM_MANIPULATOR_SELECTED) == 0) {
+ if ((manipulator_iter->state & WM_MANIPULATOR_STATE_SELECT) == 0) {
changed = true;
}
- manipulator_iter->state |= WM_MANIPULATOR_SELECTED;
+ manipulator_iter->state |= WM_MANIPULATOR_STATE_SELECT;
if (manipulator_iter->type->select) {
manipulator_iter->type->select(C, manipulator_iter, action);
}
@@ -598,14 +598,14 @@ void wm_manipulatormap_set_highlighted_manipulator(
(manipulator && part != manipulator->highlighted_part))
{
if (mmap->mmap_context.highlighted_manipulator) {
- mmap->mmap_context.highlighted_manipulator->state &= ~WM_MANIPULATOR_HIGHLIGHT;
+ mmap->mmap_context.highlighted_manipulator->state &= ~WM_MANIPULATOR_STATE_HIGHLIGHT;
mmap->mmap_context.highlighted_manipulator->highlighted_part = 0;
}
mmap->mmap_context.highlighted_manipulator = manipulator;
if (manipulator) {
- manipulator->state |= WM_MANIPULATOR_HIGHLIGHT;
+ manipulator->state |= WM_MANIPULATOR_STATE_HIGHLIGHT;
manipulator->highlighted_part = part;
if (C && manipulator->type->cursor_get) {
@@ -637,7 +637,7 @@ void wm_manipulatormap_set_active_manipulator(
wmManipulatorMap *mmap, bContext *C, const wmEvent *event, wmManipulator *manipulator)
{
if (manipulator && C) {
- manipulator->state |= WM_MANIPULATOR_ACTIVE;
+ manipulator->state |= WM_MANIPULATOR_STATE_ACTIVE;
mmap->mmap_context.active_manipulator = manipulator;
if (manipulator->opname) {
@@ -655,7 +655,7 @@ void wm_manipulatormap_set_active_manipulator(
/* we failed to hook the manipulator to the operator handler or operator was cancelled, return */
if (!mmap->mmap_context.active_manipulator) {
- manipulator->state &= ~WM_MANIPULATOR_ACTIVE;
+ manipulator->state &= ~WM_MANIPULATOR_STATE_ACTIVE;
/* first activate the manipulator itself */
if (manipulator->interaction_data) {
MEM_freeN(manipulator->interaction_data);
@@ -685,7 +685,7 @@ void wm_manipulatormap_set_active_manipulator(
/* deactivate, manipulator but first take care of some stuff */
if (manipulator) {
- manipulator->state &= ~WM_MANIPULATOR_ACTIVE;
+ manipulator->state &= ~WM_MANIPULATOR_STATE_ACTIVE;
/* first activate the manipulator itself */
if (manipulator->interaction_data) {
MEM_freeN(manipulator->interaction_data);