2019-10-29 00:45:05 +11:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#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);
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
bool transformModeUseSnap(const TransInfo *t);
|
|
|
|
|
2021-01-10 20:24:46 -03:00
|
|
|
bool transform_snap_increment_ex(TransInfo *t, bool use_local_space, float *r_val);
|
2020-08-31 10:14:40 -03:00
|
|
|
bool transform_snap_increment(TransInfo *t, float *val);
|
|
|
|
bool transform_snap_grid(TransInfo *t, float *val);
|
2019-10-29 00:45:05 +11:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
2020-06-22 09:07:51 -03:00
|
|
|
float transform_snap_distance_len_squared_fn(TransInfo *t, const float p1[3], const float p2[3]);
|