Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright 2008 Blender Foundation. All rights reserved. */
|
|
|
|
/** \file
|
|
* \ingroup editors
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct Object;
|
|
struct bContext;
|
|
|
|
typedef struct TransVert {
|
|
float *loc;
|
|
float oldloc[3], maploc[3];
|
|
float normal[3];
|
|
int flag;
|
|
} TransVert;
|
|
|
|
typedef struct TransVertStore {
|
|
struct TransVert *transverts;
|
|
int transverts_tot;
|
|
int mode;
|
|
} TransVertStore;
|
|
|
|
/**
|
|
* \param obedit: When `mode` has the #TM_CALC_MAPLOC flag set, `obedit` must be evaluated,
|
|
* to access evaluated vertices.
|
|
*/
|
|
void ED_transverts_create_from_obedit(TransVertStore *tvs, const struct Object *obedit, int mode);
|
|
void ED_transverts_update_obedit(TransVertStore *tvs, struct Object *obedit);
|
|
void ED_transverts_free(TransVertStore *tvs);
|
|
bool ED_transverts_check_obedit(const struct Object *obedit);
|
|
bool ED_transverts_poll(struct bContext *C);
|
|
|
|
/* currently only used for bmesh index values */
|
|
enum {
|
|
/** Tag to make trans verts. */
|
|
TM_INDEX_ON = 1,
|
|
/** Don't make verts. */
|
|
TM_INDEX_OFF = 0,
|
|
/** Don't make verts (when the index values point to trans-verts). */
|
|
TM_INDEX_SKIP = -1,
|
|
};
|
|
|
|
/* mode flags: */
|
|
enum {
|
|
/** all joints (for bones only) */
|
|
TM_ALL_JOINTS = (1 << 0),
|
|
/** skip handles when control point is selected (for curves only) */
|
|
TM_SKIP_HANDLES = (1 << 1),
|
|
/** fill in normals when available */
|
|
TM_CALC_NORMALS = (1 << 2),
|
|
/** Calculates #TransVert.maploc where possible. */
|
|
TM_CALC_MAPLOC = (1 << 2),
|
|
};
|
|
|
|
enum {
|
|
/* SELECT == (1 << 0) */
|
|
/** Calculated when #TM_CALC_MAPLOC is set. */
|
|
TX_VERT_USE_MAPLOC = (1 << 1),
|
|
/** Calculated when #TM_CALC_NORMALS is set, avoid nonzero check. */
|
|
TX_VERT_USE_NORMAL = (1 << 2),
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|