Blender V4.3
transform_convert.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10#pragma once
11
12#include "RE_engine.h"
13
14#include "BKE_curves.hh"
15
16#include "BLI_index_mask.hh"
17
18struct BMEditMesh;
19struct BMesh;
20struct BezTriple;
21struct ListBase;
22struct Object;
23struct TransData;
25struct TransInfo;
26struct bContext;
27struct Sequence;
28
30 int flags; /* #eTFlag. */
31
36
41
46};
47
54 blender::float3 dir_side[2]; /* Directional vectors on the sides. */
55 float edge_len; /* Distance between vectors. */
56 int loop_nr; /* Number that identifies the group of connected edges. */
57
58 const float *v_co_orig() const
59 {
60 return this->td->iloc;
61 }
62};
63
72
73 const float *co_orig_3d() const
74 {
75 return this->td->iloc;
76 }
77
79 {
80 return this->co_link_orig_3d[this->co_link_curr];
81 }
82};
83
104
105/* `transform_convert.cc` */
106
110void transform_autoik_update(TransInfo *t, short mode);
118void clipUVData(TransInfo *t);
119void transform_convert_flush_handle2D(TransData *td, TransData2D *td2d, float y_fac);
123void recalc_data(TransInfo *t);
124
125/* `transform_convert_mesh.cc` */
126
128
129/* `transform_convert_sequencer.cc` */
130
132
133/********************* intern **********************/
134
135/* `transform_convert.cc` */
136
142void transform_around_single_fallback_ex(TransInfo *t, int data_len_all);
152void calc_distanceCurveVerts(TransData *head, TransData *tail, bool cyclic);
164bool FrameOnMouseSide(char side, float frame, float cframe);
170
171/* `transform_convert_curves.cc` */
172
179 const blender::float4x4 &transform,
180 std::optional<blender::MutableSpan<float>> value_attribute,
181 const blender::Span<blender::IndexMask> points_to_transform_indices,
182 const blender::IndexMask &affected_curves,
183 bool use_connected_only,
184 const blender::IndexMask &bezier_curves);
185
187
189 const TransCustomData &custom_data,
190 const int layer,
192
193/* `transform_convert_action.cc` */
194
196
197/* `transform_convert_armature.cc` */
198
201
206void transform_convert_pose_transflags_update(Object *ob, int mode, short around);
207
208/* `transform_convert_cursor.cc` */
209
213
214/* `transform_convert_curve.cc` */
215
217
218/* `transform_convert_curves.cc` */
219
221
222/* `transform_convert_graph.cc` */
223
225
226/* `transform_convert_gpencil_legacy.cc` */
227
229
230/* `transform_convert_greasepencil.cc` */
231
233
234/* `transform_convert_lattice.cc` */
235
237
238/* `transform_convert_mask.cc` */
239
241
242/* `transform_convert_mball.cc` */
243
245
246/* `transform_convert_mesh.cc` */
247
249
256
258 int index;
259 int flag;
260};
261
266
271
273 bool calc_single_islands,
274 bool calc_island_center,
275 bool calc_island_axismtx,
276 TransIslandData *r_island_data);
284 const float mtx[3][3],
285 float *dists,
286 int *index);
288 bool use_select,
289 bool use_topology,
290 const bool mirror_axis[3],
291 TransMirrorData *r_mirror_data);
299 BMEditMesh *em,
300 TransMeshDataCrazySpace *r_crazyspace_data);
301void transform_convert_mesh_crazyspace_transdata_set(const float mtx[3][3],
302 const float smtx[3][3],
303 const float defmat[3][3],
304 const float quat[4],
305 TransData *r_td);
307
309 const TransDataContainer *tc, blender::Vector<blender::float3> &r_loc_dst_buffer);
310
312 const TransDataContainer *tc, int *r_group_len);
313
314/* `transform_convert_mesh_edge.cc` */
315
317
318/* `transform_convert_mesh_skin.cc` */
319
321
322/* `transform_convert_mesh_uv.cc` */
323
325
327 const TransInfo *t,
329 blender::Vector<blender::float3> &r_loc_dst_buffer);
330
332 const TransInfo *t, TransDataContainer *tc, int *r_group_len);
333
334/* `transform_convert_mesh_vert_cdata.cc` */
335
337
338/* `transform_convert_nla.cc` */
339
341
342/* `transform_convert_node.cc` */
343
345
346/* `transform_convert_object.cc` */
347
349
350/* `transform_convert_object_texspace.cc` */
351
353
354/* `transform_convert_paintcurve.cc` */
355
357
358/* `transform_convert_particle.cc` */
359
361
362/* `transform_convert_sculpt.cc` */
363
365
366/* `transform_convert_sequencer.cc` */
367
369
371
372/* `transform_convert_sequencer_image.cc` */
373
375
376/* `transform_convert_sequencer_retiming.cc` */
377
379
380/* `transform_convert_tracking.cc` */
381
383
384/* `transform_convert_tracking_curves.cc` */
385
Low-level operations for curves.
#define C
Definition RandGen.cpp:29
ATTR_WARN_UNUSED_RESULT BMesh * bm
draw_view in_light_buf[] float
blender::IndexMaskMemory memory
blender::Vector< int > layer_offsets
blender::Array< blender::float3 > positions
blender::Vector< blender::IndexMask > selection_by_layer
Definition DNA_ID.h:413
void(* create_trans_data)(bContext *C, TransInfo *t)
void(* special_aftertrans_update)(bContext *C, TransInfo *t)
void(* recalc_data)(TransInfo *t)
const float * v_co_orig() const
blender::float3 dir_side[2]
const blender::float3 & co_dest_3d() const
const float * co_orig_3d() const
blender::Span< blender::float3 > co_link_orig_3d
float(* axismtx)[3][3]
blender::Array< blender::float3x3, 0 > defmats
MirrorDataVert * vert_map
void calc_distanceCurveVerts(TransData *head, TransData *tail, bool cyclic)
void transform_autoik_update(TransInfo *t, short mode)
TransConvertTypeInfo TransConvertType_Action
void special_aftertrans_update(bContext *C, TransInfo *t)
void transform_convert_clip_mirror_modifier_apply(TransDataContainer *tc)
void transform_convert_flush_handle2D(TransData *td, TransData2D *td2d, float y_fac)
void transform_convert_mesh_crazyspace_transdata_set(const float mtx[3][3], const float smtx[3][3], const float defmat[3][3], const float quat[4], TransData *r_td)
void curve_populate_trans_data_structs(TransDataContainer &tc, blender::bke::CurvesGeometry &curves, const blender::float4x4 &transform, std::optional< blender::MutableSpan< float > > value_attribute, const blender::Span< blender::IndexMask > points_to_transform_indices, const blender::IndexMask &affected_curves, bool use_connected_only, const blender::IndexMask &bezier_curves)
TransConvertTypeInfo TransConvertType_CursorImage
TransConvertTypeInfo TransConvertType_GPencil
void transform_convert_pose_transflags_update(Object *ob, int mode, short around)
TransConvertTypeInfo TransConvertType_MeshSkin
TransConvertTypeInfo TransConvertType_GreasePencil
blender::Array< TransDataEdgeSlideVert > transform_mesh_edge_slide_data_create(const TransDataContainer *tc, int *r_group_len)
TransConvertTypeInfo TransConvertType_TrackingCurves
blender::Array< TransDataVertSlideVert > transform_mesh_vert_slide_data_create(const TransDataContainer *tc, blender::Vector< blender::float3 > &r_loc_dst_buffer)
void transform_convert_mesh_mirrordata_calc(BMEditMesh *em, bool use_select, bool use_topology, const bool mirror_axis[3], TransMirrorData *r_mirror_data)
void sort_trans_data_dist(TransInfo *t)
void transform_convert_mesh_islands_calc(BMEditMesh *em, bool calc_single_islands, bool calc_island_center, bool calc_island_axismtx, TransIslandData *r_island_data)
TransConvertTypeInfo TransConvertType_MeshVertCData
bool FrameOnMouseSide(char side, float frame, float cframe)
TransConvertTypeInfo TransConvertType_Cursor3D
void transform_around_single_fallback(TransInfo *t)
void transform_convert_mesh_customdatacorrect_init(TransInfo *t)
bool seq_transform_check_overlap(blender::Span< Sequence * > transformed_strips)
TransConvertTypeInfo TransConvertType_Mask
blender::Array< TransDataVertSlideVert > transform_mesh_uv_vert_slide_data_create(const TransInfo *t, TransDataContainer *tc, blender::Vector< blender::float3 > &r_loc_dst_buffer)
void transform_convert_mesh_crazyspace_detect(TransInfo *t, TransDataContainer *tc, BMEditMesh *em, TransMeshDataCrazySpace *r_crazyspace_data)
TransConvertTypeInfo TransConvertType_NLA
void clipUVData(TransInfo *t)
CurvesTransformData * create_curves_transform_custom_data(TransCustomData &custom_data)
void animrecord_check_state(TransInfo *t, ID *id)
TransConvertTypeInfo TransConvertType_Particle
TransConvertTypeInfo TransConvertType_PaintCurve
TransConvertTypeInfo TransConvertType_Sequencer
void recalc_data(TransInfo *t)
TransConvertTypeInfo TransConvertType_MeshUV
void transform_convert_sequencer_channel_clamp(TransInfo *t, float r_val[2])
TransDataCurveHandleFlags * initTransDataCurveHandles(TransData *td, BezTriple *bezt)
TransConvertTypeInfo TransConvertType_CursorSequencer
void transform_around_single_fallback_ex(TransInfo *t, int data_len_all)
TransConvertTypeInfo TransConvertType_MeshEdge
void transform_convert_mesh_connectivity_distance(BMesh *bm, const float mtx[3][3], float *dists, int *index)
TransConvertTypeInfo TransConvertType_Sculpt
void transform_convert_mesh_mirrordata_free(TransMirrorData *mirror_data)
TransConvertTypeInfo TransConvertType_ObjectTexSpace
TransConvertTypeInfo TransConvertType_Tracking
bool transform_mode_use_local_origins(const TransInfo *t)
TransConvertTypeInfo TransConvertType_MBall
int special_transform_moving(TransInfo *t)
TransConvertTypeInfo TransConvertType_Graph
bool constraints_list_needinv(TransInfo *t, ListBase *list)
TransConvertTypeInfo TransConvertType_Curve
void transform_convert_mesh_islanddata_free(TransIslandData *island_data)
TransConvertTypeInfo TransConvertType_Node
void copy_positions_from_curves_transform_custom_data(const TransCustomData &custom_data, const int layer, blender::MutableSpan< blender::float3 > positions_dst)
TransConvertTypeInfo TransConvertType_Lattice
TransConvertTypeInfo TransConvertType_SequencerRetiming
void create_trans_data(bContext *C, TransInfo *t)
TransConvertTypeInfo TransConvertType_EditArmature
blender::Array< TransDataEdgeSlideVert > transform_mesh_uv_edge_slide_data_create(const TransInfo *t, TransDataContainer *tc, int *r_group_len)
TransConvertTypeInfo TransConvertType_SequencerImage
char transform_convert_frame_side_dir_get(TransInfo *t, float cframe)
TransConvertTypeInfo TransConvertType_Curves
TransConvertTypeInfo TransConvertType_Mesh
TransConvertTypeInfo TransConvertType_Pose
void transform_convert_mesh_crazyspace_free(TransMeshDataCrazySpace *r_crazyspace_data)
TransConvertTypeInfo TransConvertType_Object