Merge branch 'blender-v2.81-release'
This commit is contained in:
@@ -173,46 +173,8 @@ void ED_widgetgroup_gizmo2d_setup(const struct bContext *C, struct wmGizmoGroup
|
||||
void ED_widgetgroup_gizmo2d_refresh(const struct bContext *C, struct wmGizmoGroup *gzgroup);
|
||||
void ED_widgetgroup_gizmo2d_draw_prepare(const struct bContext *C, struct wmGizmoGroup *gzgroup);
|
||||
|
||||
/* Snapping */
|
||||
|
||||
#define SNAP_MIN_DISTANCE 30
|
||||
#define SNAP_INCREMENTAL_ANGLE DEG2RAD(5.0)
|
||||
|
||||
bool peelObjectsTransform(struct TransInfo *t,
|
||||
const float mval[2],
|
||||
const bool use_peel_object,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3],
|
||||
float *r_thickness);
|
||||
bool peelObjectsSnapContext(struct SnapObjectContext *sctx,
|
||||
const float mval[2],
|
||||
const struct SnapObjectParams *params,
|
||||
const bool use_peel_object,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3],
|
||||
float *r_thickness);
|
||||
|
||||
short snapObjectsTransform(struct TransInfo *t,
|
||||
const float mval[2],
|
||||
float *dist_px,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3]);
|
||||
bool snapNodesTransform(struct TransInfo *t,
|
||||
const int mval[2],
|
||||
/* return args */
|
||||
float r_loc[2],
|
||||
float *r_dist_px,
|
||||
char *r_node_border);
|
||||
void snapFrameTransform(struct TransInfo *t,
|
||||
const short autosnap,
|
||||
const bool is_frame_value,
|
||||
const float delta,
|
||||
/* return args */
|
||||
float *r_val);
|
||||
|
||||
void ED_transform_calc_orientation_from_type(const struct bContext *C, float r_mat[3][3]);
|
||||
void ED_transform_calc_orientation_from_type_ex(const struct bContext *C,
|
||||
float r_mat[3][3],
|
||||
|
||||
@@ -71,6 +71,7 @@ set(SRC
|
||||
|
||||
transform.h
|
||||
transform_convert.h
|
||||
transform_snap.h
|
||||
)
|
||||
|
||||
set(LIB
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_convert.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
/* Disabling, since when you type you know what you are doing,
|
||||
* and being able to set it to zero is handy. */
|
||||
@@ -8959,9 +8960,7 @@ static void headerTimeTranslate(TransInfo *t, char str[UI_MAX_DRAW_STR])
|
||||
outputNumInput(&(t->num), tvec, &t->scene->unit);
|
||||
}
|
||||
else {
|
||||
const Scene *scene = t->scene;
|
||||
const short autosnap = getAnimEdit_SnapMode(t);
|
||||
const double secf = FPS;
|
||||
float val = t->values_final[0];
|
||||
|
||||
float snap_val;
|
||||
|
||||
@@ -935,40 +935,6 @@ void postSelectConstraint(TransInfo *t);
|
||||
|
||||
void setNearestAxis(TransInfo *t);
|
||||
|
||||
/*********************** Snapping ********************************/
|
||||
|
||||
typedef enum {
|
||||
NO_GEARS = 0,
|
||||
BIG_GEARS = 1,
|
||||
SMALL_GEARS = 2,
|
||||
} GearsType;
|
||||
|
||||
bool transformModeUseSnap(const TransInfo *t);
|
||||
|
||||
void snapGridIncrement(TransInfo *t, float *val);
|
||||
void snapGridIncrementAction(TransInfo *t, float *val, GearsType action);
|
||||
|
||||
void snapSequenceBounds(TransInfo *t, const int mval[2]);
|
||||
|
||||
bool activeSnap(const TransInfo *t);
|
||||
bool validSnap(const TransInfo *t);
|
||||
|
||||
void initSnapping(struct TransInfo *t, struct wmOperator *op);
|
||||
void freeSnapping(struct TransInfo *t);
|
||||
void applyProject(TransInfo *t);
|
||||
void applyGridAbsolute(TransInfo *t);
|
||||
void applySnapping(TransInfo *t, float *vec);
|
||||
void resetSnapping(TransInfo *t);
|
||||
eRedrawFlag handleSnapping(TransInfo *t, const struct wmEvent *event);
|
||||
void drawSnapping(const struct bContext *C, TransInfo *t);
|
||||
bool usingSnappingNormal(const TransInfo *t);
|
||||
bool validSnappingNormal(const TransInfo *t);
|
||||
|
||||
void getSnapPoint(const TransInfo *t, float vec[3]);
|
||||
void addSnapPoint(TransInfo *t);
|
||||
eRedrawFlag updateSelectedSnapPoint(TransInfo *t);
|
||||
void removeSnapPoint(TransInfo *t);
|
||||
|
||||
/********************** Mouse Input ******************************/
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
#include "UI_resources.h"
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
static void drawObjectConstraint(TransInfo *t);
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_convert.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
#include "bmesh.h"
|
||||
|
||||
/* Used for both mirror epsilon and TD_MIRROR_EDGE_ */
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_convert.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Node Transform Creation
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_convert.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
/* ************************** Functions *************************** */
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
/* local module include */
|
||||
#include "transform.h"
|
||||
#include "transform_convert.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "transform.h"
|
||||
#include "transform_snap.h"
|
||||
|
||||
/* this should be passed as an arg for use in snap functions */
|
||||
#undef BASACT
|
||||
@@ -1627,6 +1628,9 @@ void snapFrameTransform(TransInfo *t,
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SACTSNAP_OFF: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
*r_val = (float)val;
|
||||
}
|
||||
|
||||
96
source/blender/editors/transform/transform_snap.h
Normal file
96
source/blender/editors/transform/transform_snap.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
* \ingroup editors
|
||||
*/
|
||||
|
||||
#ifndef __TRANSFORM_SNAP_H__
|
||||
#define __TRANSFORM_SNAP_H__
|
||||
|
||||
#define SNAP_MIN_DISTANCE 30
|
||||
|
||||
/* For enum. */
|
||||
#include "DNA_space_types.h"
|
||||
|
||||
bool peelObjectsTransform(struct TransInfo *t,
|
||||
const float mval[2],
|
||||
const bool use_peel_object,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3],
|
||||
float *r_thickness);
|
||||
bool peelObjectsSnapContext(struct SnapObjectContext *sctx,
|
||||
const float mval[2],
|
||||
const struct SnapObjectParams *params,
|
||||
const bool use_peel_object,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3],
|
||||
float *r_thickness);
|
||||
|
||||
short snapObjectsTransform(struct TransInfo *t,
|
||||
const float mval[2],
|
||||
float *dist_px,
|
||||
/* return args */
|
||||
float r_loc[3],
|
||||
float r_no[3]);
|
||||
bool snapNodesTransform(struct TransInfo *t,
|
||||
const int mval[2],
|
||||
/* return args */
|
||||
float r_loc[2],
|
||||
float *r_dist_px,
|
||||
char *r_node_border);
|
||||
void snapFrameTransform(struct TransInfo *t,
|
||||
const eAnimEdit_AutoSnap autosnap,
|
||||
const bool is_frame_value,
|
||||
const float delta,
|
||||
/* return args */
|
||||
float *r_val);
|
||||
|
||||
typedef enum {
|
||||
NO_GEARS = 0,
|
||||
BIG_GEARS = 1,
|
||||
SMALL_GEARS = 2,
|
||||
} GearsType;
|
||||
|
||||
bool transformModeUseSnap(const TransInfo *t);
|
||||
|
||||
void snapGridIncrement(TransInfo *t, float *val);
|
||||
void snapGridIncrementAction(TransInfo *t, float *val, GearsType action);
|
||||
|
||||
void snapSequenceBounds(TransInfo *t, const int mval[2]);
|
||||
|
||||
bool activeSnap(const TransInfo *t);
|
||||
bool validSnap(const TransInfo *t);
|
||||
|
||||
void initSnapping(struct TransInfo *t, struct wmOperator *op);
|
||||
void freeSnapping(struct TransInfo *t);
|
||||
void applyProject(TransInfo *t);
|
||||
void applyGridAbsolute(TransInfo *t);
|
||||
void applySnapping(TransInfo *t, float *vec);
|
||||
void resetSnapping(TransInfo *t);
|
||||
eRedrawFlag handleSnapping(TransInfo *t, const struct wmEvent *event);
|
||||
void drawSnapping(const struct bContext *C, TransInfo *t);
|
||||
bool usingSnappingNormal(const TransInfo *t);
|
||||
bool validSnappingNormal(const TransInfo *t);
|
||||
|
||||
void getSnapPoint(const TransInfo *t, float vec[3]);
|
||||
void addSnapPoint(TransInfo *t);
|
||||
eRedrawFlag updateSelectedSnapPoint(TransInfo *t);
|
||||
void removeSnapPoint(TransInfo *t);
|
||||
|
||||
#endif /* __TRANSFORM_SNAP_H__ */
|
||||
Reference in New Issue
Block a user