Cleanup: Move transform_orientations functions to separate header

Improves the organization and identification of the API.
This commit is contained in:
Germano Cavalcante 2020-10-08 11:42:14 -03:00
parent dba0b84359
commit ea5f2f88b3
9 changed files with 70 additions and 38 deletions

View File

@ -107,6 +107,7 @@ set(SRC
transform_data.h
transform_draw_cursors.h
transform_mode.h
transform_orientations.h
transform_snap.h
)

View File

@ -65,6 +65,7 @@
#include "transform_convert.h"
#include "transform_draw_cursors.h"
#include "transform_mode.h"
#include "transform_orientations.h"
#include "transform_snap.h"
/* Disabling, since when you type you know what you are doing,

View File

@ -692,44 +692,6 @@ void getViewVector(const TransInfo *t, const float coord[3], float vec[3]);
void transform_data_ext_rotate(TransData *td, float mat[3][3], bool use_drot);
/*********************** Transform Orientations ******************************/
short transform_orientation_matrix_get(struct bContext *C,
TransInfo *t,
short orientation,
const float custom[3][3],
float r_spacemtx[3][3]);
const char *transform_orientations_spacename_get(TransInfo *t, const short orient_type);
void transform_orientations_current_set(struct TransInfo *t, const short orient_index);
/* Those two fill in mat and return non-zero on success */
bool createSpaceNormal(float mat[3][3], const float normal[3]);
bool createSpaceNormalTangent(float mat[3][3], const float normal[3], const float tangent[3]);
struct TransformOrientation *addMatrixSpace(struct bContext *C,
float mat[3][3],
const char *name,
const bool overwrite);
void applyTransformOrientation(const struct TransformOrientation *ts,
float r_mat[3][3],
char r_name[64]);
enum {
ORIENTATION_NONE = 0,
ORIENTATION_NORMAL = 1,
ORIENTATION_VERT = 2,
ORIENTATION_EDGE = 3,
ORIENTATION_FACE = 4,
};
#define ORIENTATION_USE_PLANE(ty) ELEM(ty, ORIENTATION_NORMAL, ORIENTATION_EDGE, ORIENTATION_FACE)
int getTransformOrientation_ex(const struct bContext *C,
struct Object *ob,
struct Object *obedit,
float normal[3],
float plane[3],
const short around);
int getTransformOrientation(const struct bContext *C, float normal[3], float plane[3]);
void freeCustomNormalArray(TransInfo *t, TransDataContainer *tc, TransCustomData *custom_data);
/* TODO. transform_query.c */

View File

@ -50,6 +50,7 @@
#include "UI_resources.h"
#include "transform.h"
#include "transform_orientations.h"
#include "transform_snap.h"
/* Own include. */

View File

@ -36,6 +36,7 @@
/* Own include. */
#include "transform_convert.h"
#include "transform_orientations.h"
/* -------------------------------------------------------------------- */
/** \name Curve/Surfaces Transform Creation

View File

@ -50,6 +50,7 @@
/* Own include. */
#include "transform_convert.h"
#include "transform_orientations.h"
#define USE_FACE_SUBSTITUTE

View File

@ -61,6 +61,7 @@
#include "transform.h"
#include "transform_mode.h"
#include "transform_orientations.h"
#include "transform_snap.h"
/* ************************** Functions *************************** */

View File

@ -53,6 +53,7 @@
#include "ED_armature.h"
#include "transform.h"
#include "transform_orientations.h"
/* *********************** TransSpace ************************** */

View File

@ -0,0 +1,63 @@
/*
* 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) 2001-2002 by NaN Holding BV.
* All rights reserved.
*/
/** \file
* \ingroup edtransform
*/
#pragma once
struct TransInfo;
short transform_orientation_matrix_get(struct bContext *C,
struct TransInfo *t,
short orientation,
const float custom[3][3],
float r_spacemtx[3][3]);
const char *transform_orientations_spacename_get(struct TransInfo *t, const short orient_type);
void transform_orientations_current_set(struct TransInfo *t, const short orient_index);
/* Those two fill in mat and return non-zero on success */
bool createSpaceNormal(float mat[3][3], const float normal[3]);
bool createSpaceNormalTangent(float mat[3][3], const float normal[3], const float tangent[3]);
struct TransformOrientation *addMatrixSpace(struct bContext *C,
float mat[3][3],
const char *name,
const bool overwrite);
void applyTransformOrientation(const struct TransformOrientation *ts,
float r_mat[3][3],
char r_name[64]);
enum {
ORIENTATION_NONE = 0,
ORIENTATION_NORMAL = 1,
ORIENTATION_VERT = 2,
ORIENTATION_EDGE = 3,
ORIENTATION_FACE = 4,
};
#define ORIENTATION_USE_PLANE(ty) ELEM(ty, ORIENTATION_NORMAL, ORIENTATION_EDGE, ORIENTATION_FACE)
int getTransformOrientation_ex(const struct bContext *C,
struct Object *ob,
struct Object *obedit,
float normal[3],
float plane[3],
const short around);
int getTransformOrientation(const struct bContext *C, float normal[3], float plane[3]);