Listing the "Blender Foundation" as copyright holder implied the Blender Foundation holds copyright to files which may include work from many developers. While keeping copyright on headers makes sense for isolated libraries, Blender's own code may be refactored or moved between files in a way that makes the per file copyright holders less meaningful. Copyright references to the "Blender Foundation" have been replaced with "Blender Authors", with the exception of `./extern/` since these this contains libraries which are more isolated, any changed to license headers there can be handled on a case-by-case basis. Some directories in `./intern/` have also been excluded: - `./intern/cycles/` it's own `AUTHORS` file is planned. - `./intern/opensubdiv/`. An "AUTHORS" file has been added, using the chromium projects authors file as a template. Design task: #110784 Ref !110783.
66 lines
1.6 KiB
C++
66 lines
1.6 KiB
C++
/* SPDX-FileCopyrightText: 2008 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup editors
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
struct Object;
|
|
struct bContext;
|
|
|
|
struct TransVert {
|
|
float *loc;
|
|
float oldloc[3], maploc[3];
|
|
float normal[3];
|
|
int flag;
|
|
};
|
|
|
|
struct TransVertStore {
|
|
TransVert *transverts;
|
|
int transverts_tot;
|
|
int mode;
|
|
};
|
|
|
|
/**
|
|
* \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 Object *obedit, int mode);
|
|
void ED_transverts_update_obedit(TransVertStore *tvs, Object *obedit);
|
|
void ED_transverts_free(TransVertStore *tvs);
|
|
bool ED_transverts_check_obedit(const Object *obedit);
|
|
bool ED_transverts_poll(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),
|
|
};
|