Refactor: arrange transform convert functions in 'TransConvertTypeInfo'

Simplify the transform code by bundling the TransData creation, Data
recalculation, and special updates into a single struct.

So similar functions and parameters can be accessed without special
type checks.

Differential Revision: https://developer.blender.org/D15494
This commit is contained in:
Germano Cavalcante
2022-07-21 23:44:39 -03:00
committed by Germano Cavalcante
parent 185eeeaaac
commit 98bf714b37
31 changed files with 492 additions and 638 deletions

View File

@@ -38,6 +38,7 @@ struct ReportList;
struct Scene;
struct ScrArea;
struct SnapObjectContext;
struct TransConvertTypeInfo;
struct TransDataContainer;
struct TransInfo;
struct TransSnap;
@@ -204,37 +205,6 @@ typedef enum {
HLP_TRACKBALL = 6,
} eTHelpline;
typedef enum {
TC_NONE = 0,
TC_ACTION_DATA,
TC_POSE,
TC_ARMATURE_VERTS,
TC_CURSOR_IMAGE,
TC_CURSOR_SEQUENCER,
TC_CURSOR_VIEW3D,
TC_CURVE_VERTS,
TC_GRAPH_EDIT_DATA,
TC_GPENCIL,
TC_LATTICE_VERTS,
TC_MASKING_DATA,
TC_MBALL_VERTS,
TC_MESH_VERTS,
TC_MESH_EDGES,
TC_MESH_SKIN,
TC_MESH_UV,
TC_MESH_VERT_CDATA,
TC_NLA_DATA,
TC_NODE_DATA,
TC_OBJECT,
TC_OBJECT_TEXSPACE,
TC_PAINT_CURVE_VERTS,
TC_PARTICLE_VERTS,
TC_SCULPT,
TC_SEQ_DATA,
TC_SEQ_IMAGE_DATA,
TC_TRACKING_DATA,
} eTConvertType;
/** \} */
/* -------------------------------------------------------------------- */
@@ -519,7 +489,7 @@ typedef struct TransInfo {
int data_len_all;
/** TODO: It should be a member of #TransDataContainer. */
eTConvertType data_type;
struct TransConvertTypeInfo *data_type;
/** Current context/options for transform. */
eTContext options;