Cleanup: Move several blenkernel headers to C++
Mostly focus on areas where we're already using C++ features, where combining C and C++ APIs is getting in the way. Pull Request: https://projects.blender.org/blender/blender/pulls/114972
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
#include "BLI_math_bits.h"
|
||||
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_armature.hh"
|
||||
|
||||
#include "DNA_action_types.h"
|
||||
#include "DNA_armature_types.h"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_object.hh"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "ANIM_visualkey.hh"
|
||||
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_armature.hh"
|
||||
|
||||
#include "BLI_math_matrix.h"
|
||||
#include "BLI_math_rotation.h"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "AS_asset_representation.hh"
|
||||
|
||||
#include "BKE_asset.h"
|
||||
#include "BKE_asset.hh"
|
||||
|
||||
#include "DNA_asset_types.h"
|
||||
|
||||
|
||||
-8
@@ -51,10 +51,6 @@
|
||||
|
||||
#include "DNA_customdata_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct BMEditMesh;
|
||||
struct CCGElem;
|
||||
struct CCGKey;
|
||||
@@ -254,7 +250,3 @@ void makeDerivedMesh(struct Depsgraph *depsgraph,
|
||||
const struct Scene *scene,
|
||||
struct Object *ob,
|
||||
const struct CustomData_MeshMasks *dataMask);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,705 +0,0 @@
|
||||
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
#pragma once
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
#include "BLI_listbase.h"
|
||||
|
||||
#include "DNA_armature_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AnimationEvalContext;
|
||||
struct BMEditMesh;
|
||||
struct Bone;
|
||||
struct Depsgraph;
|
||||
struct IDProperty;
|
||||
struct ListBase;
|
||||
struct Main;
|
||||
struct Mesh;
|
||||
struct Object;
|
||||
struct PoseTree;
|
||||
struct Scene;
|
||||
struct bAction;
|
||||
struct bArmature;
|
||||
struct bConstraint;
|
||||
struct bGPDstroke;
|
||||
struct bPose;
|
||||
struct bPoseChannel;
|
||||
|
||||
typedef struct EditBone {
|
||||
struct EditBone *next, *prev;
|
||||
/** User-Defined Properties on this Bone */
|
||||
struct IDProperty *prop;
|
||||
/**
|
||||
* Edit-bones have a one-way link (i.e. children refer
|
||||
* to parents. This is converted to a two-way link for
|
||||
* normal bones when leaving edit-mode.
|
||||
*/
|
||||
struct EditBone *parent;
|
||||
/** (64 == MAXBONENAME) */
|
||||
char name[64];
|
||||
/**
|
||||
* Roll along axis. We'll ultimately use the axis/angle method
|
||||
* for determining the transformation matrix of the bone. The axis
|
||||
* is tail-head while roll provides the angle. Refer to Graphics
|
||||
* Gems 1 p. 466 (section IX.6) if it's not already in here somewhere.
|
||||
*/
|
||||
float roll;
|
||||
|
||||
/** Orientation and length is implicit during editing */
|
||||
float head[3];
|
||||
float tail[3];
|
||||
/**
|
||||
* All joints are considered to have zero rotation with respect to
|
||||
* their parents. Therefore any rotations specified during the
|
||||
* animation are automatically relative to the bones' rest positions.
|
||||
*/
|
||||
int flag;
|
||||
int layer;
|
||||
char inherit_scale_mode;
|
||||
|
||||
/* Envelope distance & weight */
|
||||
float dist, weight;
|
||||
/** put them in order! transform uses this as scale */
|
||||
float xwidth, length, zwidth;
|
||||
float rad_head, rad_tail;
|
||||
|
||||
/* Bendy-Bone parameters */
|
||||
short segments;
|
||||
float roll1, roll2;
|
||||
float curve_in_x, curve_in_z;
|
||||
float curve_out_x, curve_out_z;
|
||||
float ease1, ease2;
|
||||
float scale_in[3], scale_out[3];
|
||||
|
||||
/** for envelope scaling */
|
||||
float oldlength;
|
||||
|
||||
/** Mapping of vertices to segments. */
|
||||
eBone_BBoneMappingMode bbone_mapping_mode;
|
||||
/** Type of next/prev bone handles */
|
||||
char bbone_prev_type;
|
||||
char bbone_next_type;
|
||||
/** B-Bone flags. */
|
||||
int bbone_flag;
|
||||
short bbone_prev_flag;
|
||||
short bbone_next_flag;
|
||||
/** Next/prev bones to use as handle references when calculating bbones (optional) */
|
||||
struct EditBone *bbone_prev;
|
||||
struct EditBone *bbone_next;
|
||||
|
||||
/* Used for display */
|
||||
/** in Armature space, rest pos matrix */
|
||||
float disp_mat[4][4];
|
||||
/** in Armature space, rest pos matrix */
|
||||
float disp_tail_mat[4][4];
|
||||
/** in Armature space, rest pos matrix (32 == MAX_BBONE_SUBDIV) */
|
||||
float disp_bbone_mat[32][4][4];
|
||||
|
||||
/** connected child temporary during drawing */
|
||||
struct EditBone *bbone_child;
|
||||
|
||||
BoneColor color; /* MUST be named the same as in bPoseChannel and Bone structs. */
|
||||
ListBase /*BoneCollectionReference*/ bone_collections;
|
||||
|
||||
/* Used to store temporary data */
|
||||
union {
|
||||
struct EditBone *ebone;
|
||||
struct Bone *bone;
|
||||
void *p;
|
||||
int i;
|
||||
} temp;
|
||||
} EditBone;
|
||||
|
||||
typedef struct PoseTarget {
|
||||
struct PoseTarget *next, *prev;
|
||||
|
||||
struct bConstraint *con; /* the constraint of this target */
|
||||
int tip; /* index of tip pchan in PoseTree */
|
||||
} PoseTarget;
|
||||
|
||||
typedef struct PoseTree {
|
||||
struct PoseTree *next, *prev;
|
||||
|
||||
int type; /* type of IK that this serves (CONSTRAINT_TYPE_KINEMATIC or ..._SPLINEIK) */
|
||||
int totchannel; /* number of pose channels */
|
||||
|
||||
struct ListBase targets; /* list of targets of the tree */
|
||||
struct bPoseChannel **pchan; /* array of pose channels */
|
||||
int *parent; /* and their parents */
|
||||
|
||||
float (*basis_change)[3][3]; /* basis change result from solver */
|
||||
int iterations; /* iterations from the constraint */
|
||||
int stretch; /* disable stretching */
|
||||
} PoseTree;
|
||||
|
||||
/* Core armature functionality. */
|
||||
|
||||
struct bArmature *BKE_armature_add(struct Main *bmain, const char *name);
|
||||
struct bArmature *BKE_armature_from_object(struct Object *ob);
|
||||
int BKE_armature_bonelist_count(const struct ListBase *lb);
|
||||
void BKE_armature_bonelist_free(struct ListBase *lb, bool do_id_user);
|
||||
void BKE_armature_editbonelist_free(struct ListBase *lb, bool do_id_user);
|
||||
|
||||
void BKE_armature_copy_bone_transforms(struct bArmature *armature_dst,
|
||||
const struct bArmature *armature_src);
|
||||
|
||||
void BKE_armature_transform(struct bArmature *arm, const float mat[4][4], bool do_props);
|
||||
|
||||
/* Bounding box. */
|
||||
struct BoundBox *BKE_armature_boundbox_get(struct Object *ob);
|
||||
|
||||
/**
|
||||
* Calculate the axis-aligned bounds of `pchan` in world-space,
|
||||
* taking into account custom transform when set.
|
||||
*
|
||||
* `r_min` and `r_max` are expanded to fit `pchan` so the caller must initialize them
|
||||
* (typically using #INIT_MINMAX).
|
||||
*
|
||||
* \note The bounds are calculated based on the head & tail of the bone
|
||||
* or the custom object's bounds (if the bone uses a custom object).
|
||||
* Visual elements such as the envelopes radius & bendy-bone spline segments are *not* included,
|
||||
* making this not so useful for viewport culling.
|
||||
*
|
||||
* \param use_empty_drawtype: When enabled, the draw type of empty custom-objects is taken into
|
||||
* account when calculating the bounds.
|
||||
*/
|
||||
void BKE_pchan_minmax(const struct Object *ob,
|
||||
const struct bPoseChannel *pchan,
|
||||
const bool use_empty_drawtype,
|
||||
float r_min[3],
|
||||
float r_max[3]);
|
||||
/**
|
||||
* Calculate the axis aligned bounds of the pose of `ob` in world-space.
|
||||
*
|
||||
* `r_min` and `r_max` are expanded to fit `ob->pose` so the caller must initialize them
|
||||
* (typically using #INIT_MINMAX).
|
||||
*
|
||||
* \note This uses #BKE_pchan_minmax, see its documentation for details on bounds calculation.
|
||||
*/
|
||||
bool BKE_pose_minmax(
|
||||
struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select);
|
||||
|
||||
/**
|
||||
* Finds the best possible extension to the name on a particular axis.
|
||||
* (For renaming, check for unique names afterwards)
|
||||
* \param strip_number: removes number extensions (TODO: not used).
|
||||
* \param axis: The axis to name on.
|
||||
* \param head: The head co-ordinate of the bone on the specified axis.
|
||||
* \param tail: The tail co-ordinate of the bone on the specified axis.
|
||||
*/
|
||||
bool bone_autoside_name(char name[64], int strip_number, short axis, float head, float tail);
|
||||
|
||||
/**
|
||||
* Find the bone with the given name.
|
||||
*
|
||||
* When doing multiple subsequent calls to this function, consider calling
|
||||
* #BKE_armature_bone_hash_make first to hash the bone names and speed up
|
||||
* queries.
|
||||
*/
|
||||
struct Bone *BKE_armature_find_bone_name(struct bArmature *arm, const char *name);
|
||||
|
||||
void BKE_armature_bone_hash_make(struct bArmature *arm);
|
||||
void BKE_armature_bone_hash_free(struct bArmature *arm);
|
||||
|
||||
bool BKE_armature_bone_flag_test_recursive(const struct Bone *bone, int flag);
|
||||
|
||||
/**
|
||||
* Using `vec` with dist to bone `b1 - b2`.
|
||||
*/
|
||||
float distfactor_to_bone(
|
||||
const float vec[3], const float b1[3], const float b2[3], float rad1, float rad2, float rdist);
|
||||
|
||||
/**
|
||||
* Updates vectors and matrices on rest-position level, only needed
|
||||
* after editing armature itself, now only on reading file.
|
||||
*/
|
||||
void BKE_armature_where_is(struct bArmature *arm);
|
||||
/**
|
||||
* Recursive part, calculates rest-position of entire tree of children.
|
||||
* \note Used when exiting edit-mode too.
|
||||
*/
|
||||
void BKE_armature_where_is_bone(struct Bone *bone,
|
||||
const struct Bone *bone_parent,
|
||||
bool use_recursion);
|
||||
/**
|
||||
* Clear pointers of object's pose
|
||||
* (needed in remap case, since we cannot always wait for a complete pose rebuild).
|
||||
*/
|
||||
void BKE_pose_clear_pointers(struct bPose *pose);
|
||||
void BKE_pose_remap_bone_pointers(struct bArmature *armature, struct bPose *pose);
|
||||
/**
|
||||
* Update the links for the B-Bone handles from Bone data.
|
||||
*/
|
||||
void BKE_pchan_rebuild_bbone_handles(struct bPose *pose, struct bPoseChannel *pchan);
|
||||
void BKE_pose_channels_clear_with_null_bone(struct bPose *pose, bool do_id_user);
|
||||
/**
|
||||
* Only after leave edit-mode, duplicating, validating older files, library syncing.
|
||||
*
|
||||
* \note pose->flag is set for it.
|
||||
*
|
||||
* \param bmain: May be NULL, only used to tag depsgraph as being dirty.
|
||||
*/
|
||||
void BKE_pose_rebuild(struct Main *bmain,
|
||||
struct Object *ob,
|
||||
struct bArmature *arm,
|
||||
bool do_id_user);
|
||||
/**
|
||||
* Ensures object's pose is rebuilt if needed.
|
||||
*
|
||||
* \param bmain: May be NULL, only used to tag depsgraph as being dirty.
|
||||
*/
|
||||
void BKE_pose_ensure(struct Main *bmain,
|
||||
struct Object *ob,
|
||||
struct bArmature *arm,
|
||||
bool do_id_user);
|
||||
/**
|
||||
* \note This is the only function adding poses.
|
||||
* \note This only reads anim data from channels, and writes to channels.
|
||||
*/
|
||||
void BKE_pose_where_is(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob);
|
||||
/**
|
||||
* The main armature solver, does all constraints excluding IK.
|
||||
*
|
||||
* \param pchan: pose-channel - validated, as having bone and parent pointer.
|
||||
* \param do_extra: when zero skips loc/size/rot, constraints and strip modifiers.
|
||||
*/
|
||||
void BKE_pose_where_is_bone(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan,
|
||||
float ctime,
|
||||
bool do_extra);
|
||||
/**
|
||||
* Calculate tail of pose-channel.
|
||||
*/
|
||||
void BKE_pose_where_is_bone_tail(struct bPoseChannel *pchan);
|
||||
|
||||
/**
|
||||
* Evaluate the action and apply it to the pose. If any pose bones are selected, only FCurves that
|
||||
* relate to those bones are evaluated.
|
||||
*/
|
||||
void BKE_pose_apply_action_selected_bones(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context);
|
||||
/**
|
||||
* Evaluate the action and apply it to the pose. Ignore selection state of the bones.
|
||||
*/
|
||||
void BKE_pose_apply_action_all_bones(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context);
|
||||
|
||||
void BKE_pose_apply_action_blend(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context,
|
||||
float blend_factor);
|
||||
|
||||
void vec_roll_to_mat3(const float vec[3], float roll, float r_mat[3][3]);
|
||||
|
||||
/**
|
||||
* Calculates the rest matrix of a bone based on its vector and a roll around that vector.
|
||||
*/
|
||||
void vec_roll_to_mat3_normalized(const float nor[3], float roll, float r_mat[3][3]);
|
||||
/**
|
||||
* Computes vector and roll based on a rotation.
|
||||
* "mat" must contain only a rotation, and no scaling.
|
||||
*/
|
||||
void mat3_to_vec_roll(const float mat[3][3], float r_vec[3], float *r_roll);
|
||||
/**
|
||||
* Computes roll around the vector that best approximates the matrix.
|
||||
* If `vec` is the Y vector from purely rotational `mat`, result should be exact.
|
||||
*/
|
||||
void mat3_vec_to_roll(const float mat[3][3], const float vec[3], float *r_roll);
|
||||
|
||||
/* Common Conversions Between Co-ordinate Spaces */
|
||||
|
||||
/**
|
||||
* Convert World-Space Matrix to Pose-Space Matrix.
|
||||
*/
|
||||
void BKE_armature_mat_world_to_pose(struct Object *ob,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Convert World-Space Location to Pose-Space Location
|
||||
* \note this cannot be used to convert to pose-space location of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_loc_world_to_pose(struct Object *ob, const float inloc[3], float outloc[3]);
|
||||
/**
|
||||
* Convert Pose-Space Matrix to Bone-Space Matrix.
|
||||
* \note this cannot be used to convert to pose-space transforms of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Convert Pose-Space Location to Bone-Space Location
|
||||
* \note this cannot be used to convert to pose-space location of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_loc_pose_to_bone(struct bPoseChannel *pchan,
|
||||
const float inloc[3],
|
||||
float outloc[3]);
|
||||
/**
|
||||
* Convert Bone-Space Matrix to Pose-Space Matrix.
|
||||
*/
|
||||
void BKE_armature_mat_bone_to_pose(struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Remove rest-position effects from pose-transform for obtaining
|
||||
* 'visual' transformation of pose-channel.
|
||||
* (used by the Visual-Keyframing stuff).
|
||||
*/
|
||||
void BKE_armature_mat_pose_to_delta(float delta_mat[4][4],
|
||||
float pose_mat[4][4],
|
||||
float arm_mat[4][4]);
|
||||
|
||||
void BKE_armature_mat_pose_to_bone_ex(struct Depsgraph *depsgraph,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
|
||||
/**
|
||||
* Same as #BKE_object_mat3_to_rot().
|
||||
*/
|
||||
void BKE_pchan_mat3_to_rot(struct bPoseChannel *pchan, const float mat[3][3], bool use_compat);
|
||||
/**
|
||||
* Same as #BKE_object_rot_to_mat3().
|
||||
*/
|
||||
void BKE_pchan_rot_to_mat3(const struct bPoseChannel *pchan, float r_mat[3][3]);
|
||||
/**
|
||||
* Apply a 4x4 matrix to the pose bone,
|
||||
* similar to #BKE_object_apply_mat4().
|
||||
*/
|
||||
void BKE_pchan_apply_mat4(struct bPoseChannel *pchan, const float mat[4][4], bool use_compat);
|
||||
/**
|
||||
* Convert the loc/rot/size to \a r_chanmat (typically #bPoseChannel.chan_mat).
|
||||
*/
|
||||
void BKE_pchan_to_mat4(const struct bPoseChannel *pchan, float r_chanmat[4][4]);
|
||||
|
||||
/**
|
||||
* Convert the loc/rot/size to mat4 (`pchan.chan_mat`),
|
||||
* used in `constraint.cc` too.
|
||||
*/
|
||||
void BKE_pchan_calc_mat(struct bPoseChannel *pchan);
|
||||
|
||||
/**
|
||||
* Simple helper, computes the offset bone matrix:
|
||||
* `offs_bone = yoffs(b-1) + root(b) + bonemat(b)`.
|
||||
*/
|
||||
void BKE_bone_offset_matrix_get(const struct Bone *bone, float offs_bone[4][4]);
|
||||
|
||||
/* Transformation inherited from the parent bone. These matrices apply the effects of
|
||||
* HINGE/NO_SCALE/NO_LOCAL_LOCATION options over the pchan loc/rot/scale transformations. */
|
||||
typedef struct BoneParentTransform {
|
||||
float rotscale_mat[4][4]; /* parent effect on rotation & scale pose channels */
|
||||
float loc_mat[4][4]; /* parent effect on location pose channel */
|
||||
float post_scale[3]; /* additional scale to apply with post-multiply */
|
||||
} BoneParentTransform;
|
||||
|
||||
/* Matrix-like algebra operations on the transform */
|
||||
void BKE_bone_parent_transform_clear(struct BoneParentTransform *bpt);
|
||||
void BKE_bone_parent_transform_invert(struct BoneParentTransform *bpt);
|
||||
void BKE_bone_parent_transform_combine(const struct BoneParentTransform *in1,
|
||||
const struct BoneParentTransform *in2,
|
||||
struct BoneParentTransform *result);
|
||||
|
||||
void BKE_bone_parent_transform_apply(const struct BoneParentTransform *bpt,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
|
||||
/**
|
||||
* Get the current parent transformation for the given pose bone.
|
||||
*
|
||||
* Construct the matrices (rot/scale and loc)
|
||||
* to apply the PoseChannels into the armature (object) space.
|
||||
* I.e. (roughly) the `pose_mat(b-1) * yoffs(b-1) * d_root(b) * bone_mat(b)` in the
|
||||
* `pose_mat(b)= pose_mat(b-1) * yoffs(b-1) * d_root(b) * bone_mat(b) * chan_mat(b)`
|
||||
* ...function.
|
||||
*
|
||||
* This allows to get the transformations of a bone in its object space,
|
||||
* *before* constraints (and IK) get applied (used by pose evaluation code).
|
||||
* And reverse: to find pchan transformations needed to place a bone at a given loc/rot/scale
|
||||
* in object space (used by interactive transform, and snapping code).
|
||||
*
|
||||
* Note that, with the HINGE/NO_SCALE/NO_LOCAL_LOCATION options, the location matrix
|
||||
* will differ from the rotation/scale matrix...
|
||||
*
|
||||
* \note This cannot be used to convert to pose-space transforms of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
* (NOTE(@mont29): I don't understand that, so I keep it :p).
|
||||
*/
|
||||
void BKE_bone_parent_transform_calc_from_pchan(const struct bPoseChannel *pchan,
|
||||
struct BoneParentTransform *r_bpt);
|
||||
/**
|
||||
* Compute the parent transform using data decoupled from specific data structures.
|
||||
*
|
||||
* \param bone_flag: #Bone.flag containing settings.
|
||||
* \param offs_bone: delta from parent to current arm_mat (or just arm_mat if no parent).
|
||||
* \param parent_arm_mat: arm_mat of parent, or NULL.
|
||||
* \param parent_pose_mat: pose_mat of parent, or NULL.
|
||||
* \param r_bpt: OUTPUT parent transform.
|
||||
*/
|
||||
void BKE_bone_parent_transform_calc_from_matrices(int bone_flag,
|
||||
int inherit_scale_mode,
|
||||
const float offs_bone[4][4],
|
||||
const float parent_arm_mat[4][4],
|
||||
const float parent_pose_mat[4][4],
|
||||
struct BoneParentTransform *r_bpt);
|
||||
|
||||
/**
|
||||
* Rotation Mode Conversions - Used for Pose-Channels + Objects.
|
||||
*
|
||||
* Called from RNA when rotation mode changes
|
||||
* - the result should be that the rotations given in the provided pointers have had conversions
|
||||
* applied (as appropriate), such that the rotation of the element hasn't 'visually' changed.
|
||||
*/
|
||||
void BKE_rotMode_change_values(
|
||||
float quat[4], float eul[3], float axis[3], float *angle, short oldMode, short newMode);
|
||||
|
||||
/* B-Bone support */
|
||||
#define MAX_BBONE_SUBDIV 32
|
||||
|
||||
typedef struct Mat4 {
|
||||
float mat[4][4];
|
||||
} Mat4;
|
||||
|
||||
typedef struct BBoneSplineParameters {
|
||||
int segments;
|
||||
float length;
|
||||
|
||||
/* Non-uniform scale correction. */
|
||||
bool do_scale;
|
||||
float scale[3];
|
||||
|
||||
/* Handle control bone data. */
|
||||
bool use_prev, prev_bbone;
|
||||
bool use_next, next_bbone;
|
||||
|
||||
float prev_h[3], next_h[3];
|
||||
float prev_mat[4][4], next_mat[4][4];
|
||||
|
||||
/* Control values. */
|
||||
float ease1, ease2;
|
||||
float roll1, roll2;
|
||||
float scale_in[3], scale_out[3];
|
||||
float curve_in_x, curve_in_z, curve_out_x, curve_out_z;
|
||||
} BBoneSplineParameters;
|
||||
|
||||
/**
|
||||
* Get "next" and "prev" bones - these are used for handle calculations.
|
||||
*/
|
||||
void BKE_pchan_bbone_handles_get(struct bPoseChannel *pchan,
|
||||
struct bPoseChannel **r_prev,
|
||||
struct bPoseChannel **r_next);
|
||||
/**
|
||||
* Compute B-Bone spline parameters for the given channel.
|
||||
*/
|
||||
void BKE_pchan_bbone_spline_params_get(struct bPoseChannel *pchan,
|
||||
bool rest,
|
||||
struct BBoneSplineParameters *r_param);
|
||||
|
||||
/**
|
||||
* Fills the array with the desired amount of bone->segments elements.
|
||||
* This calculation is done within unit bone space.
|
||||
*/
|
||||
void BKE_pchan_bbone_spline_setup(struct bPoseChannel *pchan,
|
||||
bool rest,
|
||||
bool for_deform,
|
||||
Mat4 *result_array);
|
||||
|
||||
/**
|
||||
* Computes the bezier handle vectors and rolls coming from custom handles.
|
||||
*/
|
||||
void BKE_pchan_bbone_handles_compute(const BBoneSplineParameters *param,
|
||||
float h1[3],
|
||||
float *r_roll1,
|
||||
float h2[3],
|
||||
float *r_roll2,
|
||||
bool ease,
|
||||
bool offsets);
|
||||
/**
|
||||
* Fills the array with the desired amount of `bone->segments` elements.
|
||||
* This calculation is done within unit bone space.
|
||||
*/
|
||||
int BKE_pchan_bbone_spline_compute(struct BBoneSplineParameters *param,
|
||||
bool for_deform,
|
||||
Mat4 *result_array);
|
||||
|
||||
/**
|
||||
* Compute and cache the B-Bone shape in the channel runtime struct.
|
||||
*/
|
||||
void BKE_pchan_bbone_segments_cache_compute(struct bPoseChannel *pchan);
|
||||
/**
|
||||
* Copy cached B-Bone segments from one channel to another.
|
||||
*/
|
||||
void BKE_pchan_bbone_segments_cache_copy(struct bPoseChannel *pchan,
|
||||
struct bPoseChannel *pchan_from);
|
||||
|
||||
/**
|
||||
* Calculate index and blend factor for the two B-Bone segment nodes
|
||||
* affecting the specified point along the bone.
|
||||
*
|
||||
* \param pchan: Pose channel.
|
||||
* \param head_tail: head-tail position along the bone (auto-clamped between 0 and 1).
|
||||
* \param r_index: OUTPUT index of the first segment joint affecting the point.
|
||||
* \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
|
||||
*/
|
||||
void BKE_pchan_bbone_deform_clamp_segment_index(const struct bPoseChannel *pchan,
|
||||
float head_tail,
|
||||
int *r_index,
|
||||
float *r_blend_next);
|
||||
|
||||
/**
|
||||
* Calculate index and blend factor for the two B-Bone segment nodes
|
||||
* affecting the specified point in object (pose) space.
|
||||
*
|
||||
* \param pchan: Pose channel.
|
||||
* \param co: Pose space coordinates of the point being deformed.
|
||||
* \param r_index: OUTPUT index of the first segment joint affecting the point.
|
||||
* \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
|
||||
*/
|
||||
void BKE_pchan_bbone_deform_segment_index(const struct bPoseChannel *pchan,
|
||||
const float *co,
|
||||
int *r_index,
|
||||
float *r_blend_next);
|
||||
|
||||
/* like EBONE_VISIBLE, be sure to #include "ANIM_bone_collections.h". */
|
||||
#define PBONE_VISIBLE(arm, bone) ANIM_bone_is_visible(arm, bone)
|
||||
|
||||
#define PBONE_SELECTABLE(arm, bone) \
|
||||
(PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE))
|
||||
|
||||
#define PBONE_SELECTED(arm, bone) (((bone)->flag & BONE_SELECTED) & PBONE_VISIBLE(arm, bone))
|
||||
|
||||
/* context.selected_pose_bones */
|
||||
#define FOREACH_PCHAN_SELECTED_IN_OBJECT_BEGIN(_ob, _pchan) \
|
||||
for (bPoseChannel *_pchan = (bPoseChannel *)(_ob)->pose->chanbase.first; _pchan; \
|
||||
_pchan = _pchan->next) \
|
||||
{ \
|
||||
if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone) && \
|
||||
((_pchan)->bone->flag & BONE_SELECTED)) \
|
||||
{
|
||||
#define FOREACH_PCHAN_SELECTED_IN_OBJECT_END \
|
||||
} \
|
||||
} \
|
||||
((void)0)
|
||||
/* context.visible_pose_bones */
|
||||
#define FOREACH_PCHAN_VISIBLE_IN_OBJECT_BEGIN(_ob, _pchan) \
|
||||
for (bPoseChannel *_pchan = (bPoseChannel *)(_ob)->pose->chanbase.first; _pchan; \
|
||||
_pchan = _pchan->next) \
|
||||
{ \
|
||||
if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone)) {
|
||||
#define FOREACH_PCHAN_VISIBLE_IN_OBJECT_END \
|
||||
} \
|
||||
} \
|
||||
((void)0)
|
||||
|
||||
/* Evaluation helpers */
|
||||
struct bKinematicConstraint;
|
||||
struct bPose;
|
||||
struct bSplineIKConstraint;
|
||||
|
||||
struct bPoseChannel *BKE_armature_ik_solver_find_root(struct bPoseChannel *pchan,
|
||||
struct bKinematicConstraint *data);
|
||||
struct bPoseChannel *BKE_armature_splineik_solver_find_root(struct bPoseChannel *pchan,
|
||||
struct bSplineIKConstraint *data);
|
||||
|
||||
void BKE_pose_splineik_init_tree(struct Scene *scene, struct Object *ob, float ctime);
|
||||
void BKE_splineik_execute_tree(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan_root,
|
||||
float ctime);
|
||||
|
||||
void BKE_pose_pchan_index_rebuild(struct bPose *pose);
|
||||
|
||||
void BKE_pose_eval_init(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object);
|
||||
|
||||
void BKE_pose_eval_init_ik(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object);
|
||||
|
||||
void BKE_pose_eval_bone(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_constraints_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_bone_done(struct Depsgraph *depsgraph, struct Object *object, int pchan_index);
|
||||
|
||||
void BKE_pose_eval_bbone_segments(struct Depsgraph *depsgraph,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_iktree_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int rootchan_index);
|
||||
|
||||
void BKE_pose_splineik_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int rootchan_index);
|
||||
|
||||
void BKE_pose_eval_done(struct Depsgraph *depsgraph, struct Object *object);
|
||||
|
||||
void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object);
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Deform 3D Coordinates by Armature (`armature_deform.cc`)
|
||||
* \{ */
|
||||
|
||||
/* Note that we could have a 'BKE_armature_deform_coords' that doesn't take object data
|
||||
* currently there are no callers for this though. */
|
||||
|
||||
void BKE_armature_deform_coords_with_gpencil_stroke(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
struct bGPDstroke *gps_target);
|
||||
|
||||
void BKE_armature_deform_coords_with_mesh(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
const struct Mesh *me_target);
|
||||
|
||||
void BKE_armature_deform_coords_with_editmesh(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
struct BMEditMesh *em_target);
|
||||
|
||||
/** \} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,20 +1,705 @@
|
||||
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
#ifndef __cplusplus
|
||||
# error This is a C++ only header.
|
||||
#endif
|
||||
|
||||
#include "BKE_armature.h"
|
||||
|
||||
#include "BLI_function_ref.hh"
|
||||
#include "BLI_listbase.h"
|
||||
#include "BLI_set.hh"
|
||||
|
||||
#include "DNA_armature_types.h"
|
||||
|
||||
struct AnimationEvalContext;
|
||||
struct BMEditMesh;
|
||||
struct Bone;
|
||||
struct Depsgraph;
|
||||
struct IDProperty;
|
||||
struct ListBase;
|
||||
struct Main;
|
||||
struct Mesh;
|
||||
struct Object;
|
||||
struct PoseTree;
|
||||
struct Scene;
|
||||
struct bAction;
|
||||
struct bArmature;
|
||||
struct bConstraint;
|
||||
struct bGPDstroke;
|
||||
struct bPose;
|
||||
struct bPoseChannel;
|
||||
|
||||
typedef struct EditBone {
|
||||
struct EditBone *next, *prev;
|
||||
/** User-Defined Properties on this Bone */
|
||||
struct IDProperty *prop;
|
||||
/**
|
||||
* Edit-bones have a one-way link (i.e. children refer
|
||||
* to parents. This is converted to a two-way link for
|
||||
* normal bones when leaving edit-mode.
|
||||
*/
|
||||
struct EditBone *parent;
|
||||
/** (64 == MAXBONENAME) */
|
||||
char name[64];
|
||||
/**
|
||||
* Roll along axis. We'll ultimately use the axis/angle method
|
||||
* for determining the transformation matrix of the bone. The axis
|
||||
* is tail-head while roll provides the angle. Refer to Graphics
|
||||
* Gems 1 p. 466 (section IX.6) if it's not already in here somewhere.
|
||||
*/
|
||||
float roll;
|
||||
|
||||
/** Orientation and length is implicit during editing */
|
||||
float head[3];
|
||||
float tail[3];
|
||||
/**
|
||||
* All joints are considered to have zero rotation with respect to
|
||||
* their parents. Therefore any rotations specified during the
|
||||
* animation are automatically relative to the bones' rest positions.
|
||||
*/
|
||||
int flag;
|
||||
int layer;
|
||||
char inherit_scale_mode;
|
||||
|
||||
/* Envelope distance & weight */
|
||||
float dist, weight;
|
||||
/** put them in order! transform uses this as scale */
|
||||
float xwidth, length, zwidth;
|
||||
float rad_head, rad_tail;
|
||||
|
||||
/* Bendy-Bone parameters */
|
||||
short segments;
|
||||
float roll1, roll2;
|
||||
float curve_in_x, curve_in_z;
|
||||
float curve_out_x, curve_out_z;
|
||||
float ease1, ease2;
|
||||
float scale_in[3], scale_out[3];
|
||||
|
||||
/** for envelope scaling */
|
||||
float oldlength;
|
||||
|
||||
/** Mapping of vertices to segments. */
|
||||
eBone_BBoneMappingMode bbone_mapping_mode;
|
||||
/** Type of next/prev bone handles */
|
||||
char bbone_prev_type;
|
||||
char bbone_next_type;
|
||||
/** B-Bone flags. */
|
||||
int bbone_flag;
|
||||
short bbone_prev_flag;
|
||||
short bbone_next_flag;
|
||||
/** Next/prev bones to use as handle references when calculating bbones (optional) */
|
||||
struct EditBone *bbone_prev;
|
||||
struct EditBone *bbone_next;
|
||||
|
||||
/* Used for display */
|
||||
/** in Armature space, rest pos matrix */
|
||||
float disp_mat[4][4];
|
||||
/** in Armature space, rest pos matrix */
|
||||
float disp_tail_mat[4][4];
|
||||
/** in Armature space, rest pos matrix (32 == MAX_BBONE_SUBDIV) */
|
||||
float disp_bbone_mat[32][4][4];
|
||||
|
||||
/** connected child temporary during drawing */
|
||||
struct EditBone *bbone_child;
|
||||
|
||||
BoneColor color; /* MUST be named the same as in bPoseChannel and Bone structs. */
|
||||
ListBase /*BoneCollectionReference*/ bone_collections;
|
||||
|
||||
/* Used to store temporary data */
|
||||
union {
|
||||
struct EditBone *ebone;
|
||||
struct Bone *bone;
|
||||
void *p;
|
||||
int i;
|
||||
} temp;
|
||||
} EditBone;
|
||||
|
||||
typedef struct PoseTarget {
|
||||
struct PoseTarget *next, *prev;
|
||||
|
||||
struct bConstraint *con; /* the constraint of this target */
|
||||
int tip; /* index of tip pchan in PoseTree */
|
||||
} PoseTarget;
|
||||
|
||||
typedef struct PoseTree {
|
||||
struct PoseTree *next, *prev;
|
||||
|
||||
int type; /* type of IK that this serves (CONSTRAINT_TYPE_KINEMATIC or ..._SPLINEIK) */
|
||||
int totchannel; /* number of pose channels */
|
||||
|
||||
struct ListBase targets; /* list of targets of the tree */
|
||||
struct bPoseChannel **pchan; /* array of pose channels */
|
||||
int *parent; /* and their parents */
|
||||
|
||||
float (*basis_change)[3][3]; /* basis change result from solver */
|
||||
int iterations; /* iterations from the constraint */
|
||||
int stretch; /* disable stretching */
|
||||
} PoseTree;
|
||||
|
||||
/* Core armature functionality. */
|
||||
|
||||
struct bArmature *BKE_armature_add(struct Main *bmain, const char *name);
|
||||
struct bArmature *BKE_armature_from_object(struct Object *ob);
|
||||
int BKE_armature_bonelist_count(const struct ListBase *lb);
|
||||
void BKE_armature_bonelist_free(struct ListBase *lb, bool do_id_user);
|
||||
void BKE_armature_editbonelist_free(struct ListBase *lb, bool do_id_user);
|
||||
|
||||
void BKE_armature_copy_bone_transforms(struct bArmature *armature_dst,
|
||||
const struct bArmature *armature_src);
|
||||
|
||||
void BKE_armature_transform(struct bArmature *arm, const float mat[4][4], bool do_props);
|
||||
|
||||
/* Bounding box. */
|
||||
struct BoundBox *BKE_armature_boundbox_get(struct Object *ob);
|
||||
|
||||
/**
|
||||
* Calculate the axis-aligned bounds of `pchan` in world-space,
|
||||
* taking into account custom transform when set.
|
||||
*
|
||||
* `r_min` and `r_max` are expanded to fit `pchan` so the caller must initialize them
|
||||
* (typically using #INIT_MINMAX).
|
||||
*
|
||||
* \note The bounds are calculated based on the head & tail of the bone
|
||||
* or the custom object's bounds (if the bone uses a custom object).
|
||||
* Visual elements such as the envelopes radius & bendy-bone spline segments are *not* included,
|
||||
* making this not so useful for viewport culling.
|
||||
*
|
||||
* \param use_empty_drawtype: When enabled, the draw type of empty custom-objects is taken into
|
||||
* account when calculating the bounds.
|
||||
*/
|
||||
void BKE_pchan_minmax(const struct Object *ob,
|
||||
const struct bPoseChannel *pchan,
|
||||
const bool use_empty_drawtype,
|
||||
float r_min[3],
|
||||
float r_max[3]);
|
||||
/**
|
||||
* Calculate the axis aligned bounds of the pose of `ob` in world-space.
|
||||
*
|
||||
* `r_min` and `r_max` are expanded to fit `ob->pose` so the caller must initialize them
|
||||
* (typically using #INIT_MINMAX).
|
||||
*
|
||||
* \note This uses #BKE_pchan_minmax, see its documentation for details on bounds calculation.
|
||||
*/
|
||||
bool BKE_pose_minmax(
|
||||
struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select);
|
||||
|
||||
/**
|
||||
* Finds the best possible extension to the name on a particular axis.
|
||||
* (For renaming, check for unique names afterwards)
|
||||
* \param strip_number: removes number extensions (TODO: not used).
|
||||
* \param axis: The axis to name on.
|
||||
* \param head: The head co-ordinate of the bone on the specified axis.
|
||||
* \param tail: The tail co-ordinate of the bone on the specified axis.
|
||||
*/
|
||||
bool bone_autoside_name(char name[64], int strip_number, short axis, float head, float tail);
|
||||
|
||||
/**
|
||||
* Find the bone with the given name.
|
||||
*
|
||||
* When doing multiple subsequent calls to this function, consider calling
|
||||
* #BKE_armature_bone_hash_make first to hash the bone names and speed up
|
||||
* queries.
|
||||
*/
|
||||
struct Bone *BKE_armature_find_bone_name(struct bArmature *arm, const char *name);
|
||||
|
||||
void BKE_armature_bone_hash_make(struct bArmature *arm);
|
||||
void BKE_armature_bone_hash_free(struct bArmature *arm);
|
||||
|
||||
bool BKE_armature_bone_flag_test_recursive(const struct Bone *bone, int flag);
|
||||
|
||||
/**
|
||||
* Using `vec` with dist to bone `b1 - b2`.
|
||||
*/
|
||||
float distfactor_to_bone(
|
||||
const float vec[3], const float b1[3], const float b2[3], float rad1, float rad2, float rdist);
|
||||
|
||||
/**
|
||||
* Updates vectors and matrices on rest-position level, only needed
|
||||
* after editing armature itself, now only on reading file.
|
||||
*/
|
||||
void BKE_armature_where_is(struct bArmature *arm);
|
||||
/**
|
||||
* Recursive part, calculates rest-position of entire tree of children.
|
||||
* \note Used when exiting edit-mode too.
|
||||
*/
|
||||
void BKE_armature_where_is_bone(struct Bone *bone,
|
||||
const struct Bone *bone_parent,
|
||||
bool use_recursion);
|
||||
/**
|
||||
* Clear pointers of object's pose
|
||||
* (needed in remap case, since we cannot always wait for a complete pose rebuild).
|
||||
*/
|
||||
void BKE_pose_clear_pointers(struct bPose *pose);
|
||||
void BKE_pose_remap_bone_pointers(struct bArmature *armature, struct bPose *pose);
|
||||
/**
|
||||
* Update the links for the B-Bone handles from Bone data.
|
||||
*/
|
||||
void BKE_pchan_rebuild_bbone_handles(struct bPose *pose, struct bPoseChannel *pchan);
|
||||
void BKE_pose_channels_clear_with_null_bone(struct bPose *pose, bool do_id_user);
|
||||
/**
|
||||
* Only after leave edit-mode, duplicating, validating older files, library syncing.
|
||||
*
|
||||
* \note pose->flag is set for it.
|
||||
*
|
||||
* \param bmain: May be NULL, only used to tag depsgraph as being dirty.
|
||||
*/
|
||||
void BKE_pose_rebuild(struct Main *bmain,
|
||||
struct Object *ob,
|
||||
struct bArmature *arm,
|
||||
bool do_id_user);
|
||||
/**
|
||||
* Ensures object's pose is rebuilt if needed.
|
||||
*
|
||||
* \param bmain: May be NULL, only used to tag depsgraph as being dirty.
|
||||
*/
|
||||
void BKE_pose_ensure(struct Main *bmain,
|
||||
struct Object *ob,
|
||||
struct bArmature *arm,
|
||||
bool do_id_user);
|
||||
/**
|
||||
* \note This is the only function adding poses.
|
||||
* \note This only reads anim data from channels, and writes to channels.
|
||||
*/
|
||||
void BKE_pose_where_is(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob);
|
||||
/**
|
||||
* The main armature solver, does all constraints excluding IK.
|
||||
*
|
||||
* \param pchan: pose-channel - validated, as having bone and parent pointer.
|
||||
* \param do_extra: when zero skips loc/size/rot, constraints and strip modifiers.
|
||||
*/
|
||||
void BKE_pose_where_is_bone(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan,
|
||||
float ctime,
|
||||
bool do_extra);
|
||||
/**
|
||||
* Calculate tail of pose-channel.
|
||||
*/
|
||||
void BKE_pose_where_is_bone_tail(struct bPoseChannel *pchan);
|
||||
|
||||
/**
|
||||
* Evaluate the action and apply it to the pose. If any pose bones are selected, only FCurves that
|
||||
* relate to those bones are evaluated.
|
||||
*/
|
||||
void BKE_pose_apply_action_selected_bones(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context);
|
||||
/**
|
||||
* Evaluate the action and apply it to the pose. Ignore selection state of the bones.
|
||||
*/
|
||||
void BKE_pose_apply_action_all_bones(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context);
|
||||
|
||||
void BKE_pose_apply_action_blend(struct Object *ob,
|
||||
struct bAction *action,
|
||||
struct AnimationEvalContext *anim_eval_context,
|
||||
float blend_factor);
|
||||
|
||||
void vec_roll_to_mat3(const float vec[3], float roll, float r_mat[3][3]);
|
||||
|
||||
/**
|
||||
* Calculates the rest matrix of a bone based on its vector and a roll around that vector.
|
||||
*/
|
||||
void vec_roll_to_mat3_normalized(const float nor[3], float roll, float r_mat[3][3]);
|
||||
/**
|
||||
* Computes vector and roll based on a rotation.
|
||||
* "mat" must contain only a rotation, and no scaling.
|
||||
*/
|
||||
void mat3_to_vec_roll(const float mat[3][3], float r_vec[3], float *r_roll);
|
||||
/**
|
||||
* Computes roll around the vector that best approximates the matrix.
|
||||
* If `vec` is the Y vector from purely rotational `mat`, result should be exact.
|
||||
*/
|
||||
void mat3_vec_to_roll(const float mat[3][3], const float vec[3], float *r_roll);
|
||||
|
||||
/* Common Conversions Between Co-ordinate Spaces */
|
||||
|
||||
/**
|
||||
* Convert World-Space Matrix to Pose-Space Matrix.
|
||||
*/
|
||||
void BKE_armature_mat_world_to_pose(struct Object *ob,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Convert World-Space Location to Pose-Space Location
|
||||
* \note this cannot be used to convert to pose-space location of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_loc_world_to_pose(struct Object *ob, const float inloc[3], float outloc[3]);
|
||||
/**
|
||||
* Convert Pose-Space Matrix to Bone-Space Matrix.
|
||||
* \note this cannot be used to convert to pose-space transforms of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Convert Pose-Space Location to Bone-Space Location
|
||||
* \note this cannot be used to convert to pose-space location of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
*/
|
||||
void BKE_armature_loc_pose_to_bone(struct bPoseChannel *pchan,
|
||||
const float inloc[3],
|
||||
float outloc[3]);
|
||||
/**
|
||||
* Convert Bone-Space Matrix to Pose-Space Matrix.
|
||||
*/
|
||||
void BKE_armature_mat_bone_to_pose(struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
/**
|
||||
* Remove rest-position effects from pose-transform for obtaining
|
||||
* 'visual' transformation of pose-channel.
|
||||
* (used by the Visual-Keyframing stuff).
|
||||
*/
|
||||
void BKE_armature_mat_pose_to_delta(float delta_mat[4][4],
|
||||
float pose_mat[4][4],
|
||||
float arm_mat[4][4]);
|
||||
|
||||
void BKE_armature_mat_pose_to_bone_ex(struct Depsgraph *depsgraph,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
|
||||
/**
|
||||
* Same as #BKE_object_mat3_to_rot().
|
||||
*/
|
||||
void BKE_pchan_mat3_to_rot(struct bPoseChannel *pchan, const float mat[3][3], bool use_compat);
|
||||
/**
|
||||
* Same as #BKE_object_rot_to_mat3().
|
||||
*/
|
||||
void BKE_pchan_rot_to_mat3(const struct bPoseChannel *pchan, float r_mat[3][3]);
|
||||
/**
|
||||
* Apply a 4x4 matrix to the pose bone,
|
||||
* similar to #BKE_object_apply_mat4().
|
||||
*/
|
||||
void BKE_pchan_apply_mat4(struct bPoseChannel *pchan, const float mat[4][4], bool use_compat);
|
||||
/**
|
||||
* Convert the loc/rot/size to \a r_chanmat (typically #bPoseChannel.chan_mat).
|
||||
*/
|
||||
void BKE_pchan_to_mat4(const struct bPoseChannel *pchan, float r_chanmat[4][4]);
|
||||
|
||||
/**
|
||||
* Convert the loc/rot/size to mat4 (`pchan.chan_mat`),
|
||||
* used in `constraint.cc` too.
|
||||
*/
|
||||
void BKE_pchan_calc_mat(struct bPoseChannel *pchan);
|
||||
|
||||
/**
|
||||
* Simple helper, computes the offset bone matrix:
|
||||
* `offs_bone = yoffs(b-1) + root(b) + bonemat(b)`.
|
||||
*/
|
||||
void BKE_bone_offset_matrix_get(const struct Bone *bone, float offs_bone[4][4]);
|
||||
|
||||
/* Transformation inherited from the parent bone. These matrices apply the effects of
|
||||
* HINGE/NO_SCALE/NO_LOCAL_LOCATION options over the pchan loc/rot/scale transformations. */
|
||||
typedef struct BoneParentTransform {
|
||||
float rotscale_mat[4][4]; /* parent effect on rotation & scale pose channels */
|
||||
float loc_mat[4][4]; /* parent effect on location pose channel */
|
||||
float post_scale[3]; /* additional scale to apply with post-multiply */
|
||||
} BoneParentTransform;
|
||||
|
||||
/* Matrix-like algebra operations on the transform */
|
||||
void BKE_bone_parent_transform_clear(struct BoneParentTransform *bpt);
|
||||
void BKE_bone_parent_transform_invert(struct BoneParentTransform *bpt);
|
||||
void BKE_bone_parent_transform_combine(const struct BoneParentTransform *in1,
|
||||
const struct BoneParentTransform *in2,
|
||||
struct BoneParentTransform *result);
|
||||
|
||||
void BKE_bone_parent_transform_apply(const struct BoneParentTransform *bpt,
|
||||
const float inmat[4][4],
|
||||
float outmat[4][4]);
|
||||
|
||||
/**
|
||||
* Get the current parent transformation for the given pose bone.
|
||||
*
|
||||
* Construct the matrices (rot/scale and loc)
|
||||
* to apply the PoseChannels into the armature (object) space.
|
||||
* I.e. (roughly) the `pose_mat(b-1) * yoffs(b-1) * d_root(b) * bone_mat(b)` in the
|
||||
* `pose_mat(b)= pose_mat(b-1) * yoffs(b-1) * d_root(b) * bone_mat(b) * chan_mat(b)`
|
||||
* ...function.
|
||||
*
|
||||
* This allows to get the transformations of a bone in its object space,
|
||||
* *before* constraints (and IK) get applied (used by pose evaluation code).
|
||||
* And reverse: to find pchan transformations needed to place a bone at a given loc/rot/scale
|
||||
* in object space (used by interactive transform, and snapping code).
|
||||
*
|
||||
* Note that, with the HINGE/NO_SCALE/NO_LOCAL_LOCATION options, the location matrix
|
||||
* will differ from the rotation/scale matrix...
|
||||
*
|
||||
* \note This cannot be used to convert to pose-space transforms of the supplied
|
||||
* pose-channel into its local space (i.e. 'visual'-keyframing).
|
||||
* (NOTE(@mont29): I don't understand that, so I keep it :p).
|
||||
*/
|
||||
void BKE_bone_parent_transform_calc_from_pchan(const struct bPoseChannel *pchan,
|
||||
struct BoneParentTransform *r_bpt);
|
||||
/**
|
||||
* Compute the parent transform using data decoupled from specific data structures.
|
||||
*
|
||||
* \param bone_flag: #Bone.flag containing settings.
|
||||
* \param offs_bone: delta from parent to current arm_mat (or just arm_mat if no parent).
|
||||
* \param parent_arm_mat: arm_mat of parent, or NULL.
|
||||
* \param parent_pose_mat: pose_mat of parent, or NULL.
|
||||
* \param r_bpt: OUTPUT parent transform.
|
||||
*/
|
||||
void BKE_bone_parent_transform_calc_from_matrices(int bone_flag,
|
||||
int inherit_scale_mode,
|
||||
const float offs_bone[4][4],
|
||||
const float parent_arm_mat[4][4],
|
||||
const float parent_pose_mat[4][4],
|
||||
struct BoneParentTransform *r_bpt);
|
||||
|
||||
/**
|
||||
* Rotation Mode Conversions - Used for Pose-Channels + Objects.
|
||||
*
|
||||
* Called from RNA when rotation mode changes
|
||||
* - the result should be that the rotations given in the provided pointers have had conversions
|
||||
* applied (as appropriate), such that the rotation of the element hasn't 'visually' changed.
|
||||
*/
|
||||
void BKE_rotMode_change_values(
|
||||
float quat[4], float eul[3], float axis[3], float *angle, short oldMode, short newMode);
|
||||
|
||||
/* B-Bone support */
|
||||
#define MAX_BBONE_SUBDIV 32
|
||||
|
||||
typedef struct Mat4 {
|
||||
float mat[4][4];
|
||||
} Mat4;
|
||||
|
||||
typedef struct BBoneSplineParameters {
|
||||
int segments;
|
||||
float length;
|
||||
|
||||
/* Non-uniform scale correction. */
|
||||
bool do_scale;
|
||||
float scale[3];
|
||||
|
||||
/* Handle control bone data. */
|
||||
bool use_prev, prev_bbone;
|
||||
bool use_next, next_bbone;
|
||||
|
||||
float prev_h[3], next_h[3];
|
||||
float prev_mat[4][4], next_mat[4][4];
|
||||
|
||||
/* Control values. */
|
||||
float ease1, ease2;
|
||||
float roll1, roll2;
|
||||
float scale_in[3], scale_out[3];
|
||||
float curve_in_x, curve_in_z, curve_out_x, curve_out_z;
|
||||
} BBoneSplineParameters;
|
||||
|
||||
/**
|
||||
* Get "next" and "prev" bones - these are used for handle calculations.
|
||||
*/
|
||||
void BKE_pchan_bbone_handles_get(struct bPoseChannel *pchan,
|
||||
struct bPoseChannel **r_prev,
|
||||
struct bPoseChannel **r_next);
|
||||
/**
|
||||
* Compute B-Bone spline parameters for the given channel.
|
||||
*/
|
||||
void BKE_pchan_bbone_spline_params_get(struct bPoseChannel *pchan,
|
||||
bool rest,
|
||||
struct BBoneSplineParameters *r_param);
|
||||
|
||||
/**
|
||||
* Fills the array with the desired amount of bone->segments elements.
|
||||
* This calculation is done within unit bone space.
|
||||
*/
|
||||
void BKE_pchan_bbone_spline_setup(struct bPoseChannel *pchan,
|
||||
bool rest,
|
||||
bool for_deform,
|
||||
Mat4 *result_array);
|
||||
|
||||
/**
|
||||
* Computes the bezier handle vectors and rolls coming from custom handles.
|
||||
*/
|
||||
void BKE_pchan_bbone_handles_compute(const BBoneSplineParameters *param,
|
||||
float h1[3],
|
||||
float *r_roll1,
|
||||
float h2[3],
|
||||
float *r_roll2,
|
||||
bool ease,
|
||||
bool offsets);
|
||||
/**
|
||||
* Fills the array with the desired amount of `bone->segments` elements.
|
||||
* This calculation is done within unit bone space.
|
||||
*/
|
||||
int BKE_pchan_bbone_spline_compute(struct BBoneSplineParameters *param,
|
||||
bool for_deform,
|
||||
Mat4 *result_array);
|
||||
|
||||
/**
|
||||
* Compute and cache the B-Bone shape in the channel runtime struct.
|
||||
*/
|
||||
void BKE_pchan_bbone_segments_cache_compute(struct bPoseChannel *pchan);
|
||||
/**
|
||||
* Copy cached B-Bone segments from one channel to another.
|
||||
*/
|
||||
void BKE_pchan_bbone_segments_cache_copy(struct bPoseChannel *pchan,
|
||||
struct bPoseChannel *pchan_from);
|
||||
|
||||
/**
|
||||
* Calculate index and blend factor for the two B-Bone segment nodes
|
||||
* affecting the specified point along the bone.
|
||||
*
|
||||
* \param pchan: Pose channel.
|
||||
* \param head_tail: head-tail position along the bone (auto-clamped between 0 and 1).
|
||||
* \param r_index: OUTPUT index of the first segment joint affecting the point.
|
||||
* \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
|
||||
*/
|
||||
void BKE_pchan_bbone_deform_clamp_segment_index(const struct bPoseChannel *pchan,
|
||||
float head_tail,
|
||||
int *r_index,
|
||||
float *r_blend_next);
|
||||
|
||||
/**
|
||||
* Calculate index and blend factor for the two B-Bone segment nodes
|
||||
* affecting the specified point in object (pose) space.
|
||||
*
|
||||
* \param pchan: Pose channel.
|
||||
* \param co: Pose space coordinates of the point being deformed.
|
||||
* \param r_index: OUTPUT index of the first segment joint affecting the point.
|
||||
* \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
|
||||
*/
|
||||
void BKE_pchan_bbone_deform_segment_index(const struct bPoseChannel *pchan,
|
||||
const float *co,
|
||||
int *r_index,
|
||||
float *r_blend_next);
|
||||
|
||||
/* like EBONE_VISIBLE, be sure to #include "ANIM_bone_collections.h". */
|
||||
#define PBONE_VISIBLE(arm, bone) ANIM_bone_is_visible(arm, bone)
|
||||
|
||||
#define PBONE_SELECTABLE(arm, bone) \
|
||||
(PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE))
|
||||
|
||||
#define PBONE_SELECTED(arm, bone) (((bone)->flag & BONE_SELECTED) & PBONE_VISIBLE(arm, bone))
|
||||
|
||||
/* context.selected_pose_bones */
|
||||
#define FOREACH_PCHAN_SELECTED_IN_OBJECT_BEGIN(_ob, _pchan) \
|
||||
for (bPoseChannel *_pchan = (bPoseChannel *)(_ob)->pose->chanbase.first; _pchan; \
|
||||
_pchan = _pchan->next) \
|
||||
{ \
|
||||
if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone) && \
|
||||
((_pchan)->bone->flag & BONE_SELECTED)) \
|
||||
{
|
||||
#define FOREACH_PCHAN_SELECTED_IN_OBJECT_END \
|
||||
} \
|
||||
} \
|
||||
((void)0)
|
||||
/* context.visible_pose_bones */
|
||||
#define FOREACH_PCHAN_VISIBLE_IN_OBJECT_BEGIN(_ob, _pchan) \
|
||||
for (bPoseChannel *_pchan = (bPoseChannel *)(_ob)->pose->chanbase.first; _pchan; \
|
||||
_pchan = _pchan->next) \
|
||||
{ \
|
||||
if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone)) {
|
||||
#define FOREACH_PCHAN_VISIBLE_IN_OBJECT_END \
|
||||
} \
|
||||
} \
|
||||
((void)0)
|
||||
|
||||
/* Evaluation helpers */
|
||||
struct bKinematicConstraint;
|
||||
struct bPose;
|
||||
struct bSplineIKConstraint;
|
||||
|
||||
struct bPoseChannel *BKE_armature_ik_solver_find_root(struct bPoseChannel *pchan,
|
||||
struct bKinematicConstraint *data);
|
||||
struct bPoseChannel *BKE_armature_splineik_solver_find_root(struct bPoseChannel *pchan,
|
||||
struct bSplineIKConstraint *data);
|
||||
|
||||
void BKE_pose_splineik_init_tree(struct Scene *scene, struct Object *ob, float ctime);
|
||||
void BKE_splineik_execute_tree(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct bPoseChannel *pchan_root,
|
||||
float ctime);
|
||||
|
||||
void BKE_pose_pchan_index_rebuild(struct bPose *pose);
|
||||
|
||||
void BKE_pose_eval_init(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object);
|
||||
|
||||
void BKE_pose_eval_init_ik(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object);
|
||||
|
||||
void BKE_pose_eval_bone(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_constraints_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_bone_done(struct Depsgraph *depsgraph, struct Object *object, int pchan_index);
|
||||
|
||||
void BKE_pose_eval_bbone_segments(struct Depsgraph *depsgraph,
|
||||
struct Object *object,
|
||||
int pchan_index);
|
||||
|
||||
void BKE_pose_iktree_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int rootchan_index);
|
||||
|
||||
void BKE_pose_splineik_evaluate(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object,
|
||||
int rootchan_index);
|
||||
|
||||
void BKE_pose_eval_done(struct Depsgraph *depsgraph, struct Object *object);
|
||||
|
||||
void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph,
|
||||
struct Scene *scene,
|
||||
struct Object *object);
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Deform 3D Coordinates by Armature (`armature_deform.cc`)
|
||||
* \{ */
|
||||
|
||||
/* Note that we could have a 'BKE_armature_deform_coords' that doesn't take object data
|
||||
* currently there are no callers for this though. */
|
||||
|
||||
void BKE_armature_deform_coords_with_gpencil_stroke(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
struct bGPDstroke *gps_target);
|
||||
|
||||
void BKE_armature_deform_coords_with_mesh(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
const struct Mesh *me_target);
|
||||
|
||||
void BKE_armature_deform_coords_with_editmesh(const struct Object *ob_arm,
|
||||
const struct Object *ob_target,
|
||||
float (*vert_coords)[3],
|
||||
float (*vert_deform_mats)[3][3],
|
||||
int vert_coords_len,
|
||||
int deformflag,
|
||||
float (*vert_coords_prev)[3],
|
||||
const char *defgrp_name,
|
||||
struct BMEditMesh *em_target);
|
||||
|
||||
/** \} */
|
||||
|
||||
namespace blender::bke {
|
||||
|
||||
struct SelectedBonesResult {
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
|
||||
#include "DNA_asset_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AssetLibraryReference;
|
||||
struct AssetMetaData;
|
||||
struct BlendDataReader;
|
||||
@@ -86,7 +82,3 @@ AssetWeakReference *BKE_asset_weak_reference_copy(AssetWeakReference *weak_ref);
|
||||
void BKE_asset_weak_reference_write(struct BlendWriter *writer,
|
||||
const AssetWeakReference *weak_ref);
|
||||
void BKE_asset_weak_reference_read(struct BlendDataReader *reader, AssetWeakReference *weak_ref);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "BLI_sys_types.h"
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "BLI_math_vector.h"
|
||||
#include "BLI_math_vector.hh"
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
|
||||
namespace blender::bke::attribute_math {
|
||||
|
||||
|
||||
+3
-28
@@ -9,19 +9,12 @@
|
||||
* This header encapsulates necessary code to build a BVH.
|
||||
*/
|
||||
|
||||
#include <mutex>
|
||||
|
||||
#include "BLI_bit_vector.hh"
|
||||
#include "BLI_kdopbvh.h"
|
||||
#include "BLI_threads.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
# include <mutex>
|
||||
|
||||
# include "BLI_bit_vector.hh"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct BMEditMesh;
|
||||
struct MFace;
|
||||
struct Mesh;
|
||||
@@ -98,8 +91,6 @@ typedef enum BVHCacheType {
|
||||
BVHTree *bvhtree_from_editmesh_verts(
|
||||
BVHTreeFromEditMesh *data, struct BMEditMesh *em, float epsilon, int tree_type, int axis);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/**
|
||||
* Builds a BVH-tree where nodes are the vertices of the given `em`.
|
||||
*/
|
||||
@@ -141,8 +132,6 @@ BVHTree *bvhtree_from_editmesh_edges_ex(BVHTreeFromEditMesh *data,
|
||||
int tree_type,
|
||||
int axis);
|
||||
|
||||
# ifdef __cplusplus
|
||||
|
||||
/**
|
||||
* Builds a BVH-tree where nodes are the given edges.
|
||||
* \param vert, vert_allocated: if true, elem freeing will be done when freeing data.
|
||||
@@ -161,8 +150,6 @@ BVHTree *bvhtree_from_mesh_edges_ex(BVHTreeFromMesh *data,
|
||||
int tree_type,
|
||||
int axis);
|
||||
|
||||
# endif
|
||||
|
||||
BVHTree *bvhtree_from_editmesh_looptri(
|
||||
BVHTreeFromEditMesh *data, struct BMEditMesh *em, float epsilon, int tree_type, int axis);
|
||||
|
||||
@@ -191,8 +178,6 @@ BVHTree *bvhtree_from_mesh_looptri_ex(struct BVHTreeFromMesh *data,
|
||||
int tree_type,
|
||||
int axis);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Builds or queries a BVH-cache for the cache BVH-tree of the request type.
|
||||
*
|
||||
@@ -204,8 +189,6 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
|
||||
BVHCacheType bvh_cache_type,
|
||||
int tree_type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/**
|
||||
* Builds or queries a BVH-cache for the cache BVH-tree of the request type.
|
||||
*/
|
||||
@@ -216,8 +199,6 @@ BVHTree *BKE_bvhtree_from_editmesh_get(BVHTreeFromEditMesh *data,
|
||||
struct BVHCache **bvh_cache_p,
|
||||
std::mutex *mesh_eval_mutex);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Frees data allocated by a call to `bvhtree_from_editmesh_*`.
|
||||
*/
|
||||
@@ -247,11 +228,9 @@ typedef struct BVHTreeFromPointCloud {
|
||||
const float (*coords)[3];
|
||||
} BVHTreeFromPointCloud;
|
||||
|
||||
#ifdef __cplusplus
|
||||
[[nodiscard]] BVHTree *BKE_bvhtree_from_pointcloud_get(BVHTreeFromPointCloud *data,
|
||||
const PointCloud *pointcloud,
|
||||
int tree_type);
|
||||
#endif
|
||||
|
||||
void free_bvhtree_from_pointcloud(struct BVHTreeFromPointCloud *data);
|
||||
|
||||
@@ -267,7 +246,3 @@ struct BVHCache *bvhcache_init(void);
|
||||
* Frees a BVH-cache.
|
||||
*/
|
||||
void bvhcache_free(struct BVHCache *bvh_cache);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -11,21 +11,14 @@
|
||||
/* XXX temporary, until AssetHandle is designed properly and queries can return a pointer to it. */
|
||||
#include "DNA_asset_types.h"
|
||||
|
||||
#include "BLI_string_ref.hh"
|
||||
#include "BLI_utildefines.h"
|
||||
#include "BLI_vector.hh"
|
||||
|
||||
#include "DNA_listBase.h"
|
||||
#include "DNA_object_enums.h"
|
||||
#include "RNA_types.hh"
|
||||
|
||||
#ifdef __cplusplus
|
||||
# include "BLI_string_ref.hh"
|
||||
# include "BLI_vector.hh"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct ARegion;
|
||||
struct Base;
|
||||
struct CacheFile;
|
||||
@@ -413,9 +406,7 @@ bool CTX_data_editable_gpencil_layers(const bContext *C, ListBase *list);
|
||||
bool CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list);
|
||||
|
||||
const struct AssetLibraryReference *CTX_wm_asset_library_ref(const bContext *C);
|
||||
#ifdef __cplusplus
|
||||
class blender::asset_system::AssetRepresentation *CTX_wm_asset(const bContext *C);
|
||||
#endif
|
||||
|
||||
bool CTX_wm_interface_locked(const bContext *C);
|
||||
|
||||
@@ -453,7 +444,3 @@ struct Depsgraph *CTX_data_ensure_evaluated_depsgraph(const bContext *C);
|
||||
* Only used by handful of operators which are run on file load.
|
||||
*/
|
||||
struct Depsgraph *CTX_data_depsgraph_on_load(const bContext *C);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -4,15 +4,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Register cpp types and their relations for later use.
|
||||
*/
|
||||
void BKE_cpp_types_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,6 +1,7 @@
|
||||
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
/** \file
|
||||
@@ -11,10 +12,6 @@
|
||||
|
||||
#include "DNA_listBase.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct BMEditMesh;
|
||||
struct BezTriple;
|
||||
struct Curve;
|
||||
@@ -470,7 +467,3 @@ void BKE_curve_deform_co(const struct Object *ob_curve,
|
||||
struct Curve *BKE_curve_new_from_object(struct Object *object,
|
||||
struct Depsgraph *depsgraph,
|
||||
bool apply_modifiers);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
+6
-27
@@ -9,22 +9,17 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "BLI_cpp_type.hh"
|
||||
#include "BLI_implicit_sharing.h"
|
||||
#include "BLI_set.hh"
|
||||
#include "BLI_span.hh"
|
||||
#include "BLI_string_ref.hh"
|
||||
#include "BLI_sys_types.h"
|
||||
#include "BLI_utildefines.h"
|
||||
#ifdef __cplusplus
|
||||
# include "BLI_set.hh"
|
||||
# include "BLI_span.hh"
|
||||
# include "BLI_string_ref.hh"
|
||||
# include "BLI_vector.hh"
|
||||
#endif
|
||||
#include "BLI_vector.hh"
|
||||
|
||||
#include "DNA_customdata_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct BMesh;
|
||||
struct BlendDataReader;
|
||||
struct BlendWriter;
|
||||
@@ -45,7 +40,7 @@ typedef uint64_t eCustomDataMask;
|
||||
|
||||
/**
|
||||
* UV map related customdata offsets into BMesh attribute blocks. See #BM_uv_map_get_offsets.
|
||||
* Defined in #BKE_customdata.h to avoid including bmesh.h in many unrelated areas.
|
||||
* Defined in #BKE_customdata.hh to avoid including bmesh.h in many unrelated areas.
|
||||
* An offset of -1 means that the corresponding layer does not exist.
|
||||
*/
|
||||
typedef struct BMUVOffsets {
|
||||
@@ -611,13 +606,9 @@ bool CustomData_layertype_is_dynamic(eCustomDataType type);
|
||||
*/
|
||||
int CustomData_layertype_layers_max(eCustomDataType type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/** \return The maximum size in bytes needed for a layer name with the given prefix. */
|
||||
int CustomData_name_maxncpy_calc(blender::StringRef name);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Make sure the name of layer at index is unique.
|
||||
*/
|
||||
@@ -773,8 +764,6 @@ void CustomData_data_transfer(const struct MeshPairRemap *me_remap,
|
||||
|
||||
/* .blend file I/O */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
/**
|
||||
* Prepare given custom data for file writing.
|
||||
*
|
||||
@@ -799,8 +788,6 @@ void CustomData_blend_write(BlendWriter *writer,
|
||||
eCustomDataMask cddata_mask,
|
||||
ID *id);
|
||||
|
||||
#endif
|
||||
|
||||
void CustomData_blend_read(struct BlendDataReader *reader, struct CustomData *data, int count);
|
||||
|
||||
size_t CustomData_get_elem_size(const struct CustomDataLayer *layer);
|
||||
@@ -813,15 +800,7 @@ void CustomData_debug_info_from_layers(const struct CustomData *data,
|
||||
struct DynStr *dynstr);
|
||||
#endif /* NDEBUG */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
# include "BLI_cpp_type.hh"
|
||||
|
||||
namespace blender::bke {
|
||||
const CPPType *custom_data_type_to_cpp_type(eCustomDataType type);
|
||||
eCustomDataType cpp_type_to_custom_data_type(const CPPType &type);
|
||||
} // namespace blender::bke
|
||||
#endif
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BLI_compiler_compat.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* \ingroup bke
|
||||
* \brief display list (or rather multi purpose list) stuff.
|
||||
*/
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "DNA_customdata_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -15,10 +15,6 @@
|
||||
#include "DNA_customdata_types.h"
|
||||
#include "bmesh.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct BMLoop;
|
||||
struct BMPartialUpdate;
|
||||
struct BMesh;
|
||||
@@ -122,7 +118,3 @@ const float (*BKE_editmesh_vert_coords_when_deformed(struct Depsgraph *depsgraph
|
||||
|
||||
void BKE_editmesh_lnorspace_update(BMEditMesh *em);
|
||||
struct BoundBox *BKE_editmesh_cage_boundbox_get(struct Object *object, BMEditMesh *em);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
+2
-7
@@ -8,11 +8,10 @@
|
||||
* \ingroup bke
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "DNA_customdata_types.h"
|
||||
|
||||
struct BMEditMesh;
|
||||
|
||||
/**
|
||||
* \see #BKE_mesh_calc_loop_tangent, same logic but used arrays instead of #BMesh data.
|
||||
*
|
||||
@@ -30,7 +29,3 @@ void BKE_editmesh_loop_tangent_calc(BMEditMesh *em,
|
||||
CustomData *dm_loopdata_out,
|
||||
uint dm_loopdata_out_len,
|
||||
short *tangent_mask_curr_p);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -9,10 +9,7 @@
|
||||
*/
|
||||
|
||||
#include "BLI_compiler_attrs.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "BLI_sys_types.h"
|
||||
|
||||
struct BMEditMesh;
|
||||
struct BPoint;
|
||||
@@ -114,7 +111,3 @@ void BKE_lattice_deform_coords_with_editmesh(const struct Object *ob_lattice,
|
||||
struct BMEditMesh *em_target);
|
||||
|
||||
/** \} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "DNA_meshdata_types.h"
|
||||
#include "DNA_object_types.h" /* #BoundBox. */
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
|
||||
struct BMesh;
|
||||
struct BMeshCreateParams;
|
||||
|
||||
@@ -113,7 +113,7 @@ void BKE_main_mesh_legacy_convert_auto_smooth(Main &bmain);
|
||||
|
||||
/* Inlines */
|
||||
|
||||
/* NOTE(@sybren): Instead of -1 that function uses ORIGINDEX_NONE as defined in BKE_customdata.h,
|
||||
/* NOTE(@sybren): Instead of -1 that function uses ORIGINDEX_NONE as defined in BKE_customdata.hh,
|
||||
* but I don't want to force every user of BKE_mesh.h to also include that file. */
|
||||
BLI_INLINE int BKE_mesh_origindex_mface_mpoly(const int *index_mf_to_mpoly,
|
||||
const int *index_mp_to_orig,
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "DNA_modifier_types.h" /* needed for all enum typdefs */
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
|
||||
namespace blender::bke {
|
||||
struct GeometrySet;
|
||||
|
||||
@@ -79,7 +79,7 @@ class bNodeTreeRuntime : NonCopyable, NonMovable {
|
||||
public:
|
||||
/**
|
||||
* Keeps track of what changed in the node tree until the next update.
|
||||
* Should not be changed directly, instead use the functions in `BKE_node_tree_update.h`.
|
||||
* Should not be changed directly, instead use the functions in `BKE_node_tree_update.hh`.
|
||||
* #eNodeTreeChangedFlag.
|
||||
*/
|
||||
uint32_t changed_flag = 0;
|
||||
|
||||
@@ -27,7 +27,7 @@ class bNodeTreeInterfaceRuntime {
|
||||
private:
|
||||
/**
|
||||
* Keeps track of what changed in the node tree until the next update.
|
||||
* Should not be changed directly, instead use the functions in `BKE_node_tree_update.h`.
|
||||
* Should not be changed directly, instead use the functions in `BKE_node_tree_update.hh`.
|
||||
* #NodeTreeInterfaceChangedFlag.
|
||||
*/
|
||||
uint32_t changed_flag_ = 0;
|
||||
|
||||
-8
@@ -16,10 +16,6 @@ struct bNodeLink;
|
||||
struct bNodeSocket;
|
||||
struct bNodeTree;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Tag tree as changed without providing any more information about what has changed exactly.
|
||||
* The update process has to assume that everything may have changed.
|
||||
@@ -97,7 +93,3 @@ void BKE_ntree_update_main(struct Main *bmain, struct NodeTreeUpdateExtraParams
|
||||
void BKE_ntree_update_main_tree(struct Main *bmain,
|
||||
struct bNodeTree *ntree,
|
||||
struct NodeTreeUpdateExtraParams *params);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "DNA_object_enums.h"
|
||||
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_pbvh.h"
|
||||
#include "BKE_pbvh.hh"
|
||||
|
||||
#include "bmesh.h"
|
||||
|
||||
|
||||
@@ -49,20 +49,16 @@ typedef enum PBVHNodeFlags {
|
||||
} PBVHNodeFlags;
|
||||
ENUM_OPERATORS(PBVHNodeFlags, PBVH_TopologyUpdated);
|
||||
|
||||
#ifdef __cplusplus
|
||||
/* A few C++ methods to play nice with sets and maps. */
|
||||
# define PBVH_REF_CXX_METHODS(Class) \
|
||||
bool operator==(const Class b) const \
|
||||
{ \
|
||||
return i == b.i; \
|
||||
} \
|
||||
uint64_t hash() const \
|
||||
{ \
|
||||
return i; \
|
||||
}
|
||||
#else
|
||||
# define PBVH_REF_CXX_METHODS(Class)
|
||||
#endif
|
||||
#define PBVH_REF_CXX_METHODS(Class) \
|
||||
bool operator==(const Class b) const \
|
||||
{ \
|
||||
return i == b.i; \
|
||||
} \
|
||||
uint64_t hash() const \
|
||||
{ \
|
||||
return i; \
|
||||
}
|
||||
|
||||
typedef struct PBVHVertRef {
|
||||
intptr_t i;
|
||||
@@ -25,7 +25,7 @@
|
||||
/* For embedding CCGKey in iterator. */
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_ccg.h"
|
||||
#include "BKE_pbvh.h"
|
||||
#include "BKE_pbvh.hh"
|
||||
|
||||
#include "bmesh.h"
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
# include "DNA_pointcloud_types.h"
|
||||
|
||||
# include "BKE_customdata.h"
|
||||
# include "BKE_customdata.hh"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "RNA_types.hh"
|
||||
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
|
||||
namespace blender::asset_system {
|
||||
class AssetRepresentation;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
/* Shrinkwrap stuff */
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BLI_bitmap.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "BLI_offset_indices.hh"
|
||||
#include "BLI_sys_types.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
|
||||
struct CCGElem;
|
||||
struct CCGFace;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
/* struct DerivedMesh is used directly */
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
|
||||
/* Thread sync primitives used directly. */
|
||||
#include "BLI_ordered_edge.hh"
|
||||
|
||||
-8
@@ -31,10 +31,6 @@ struct LibraryForeachIDData;
|
||||
struct Library;
|
||||
struct IDRemapper;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum ViewerPathEqualFlag {
|
||||
VIEWER_PATH_EQUAL_FLAG_IGNORE_REPEAT_ITERATION = (1 << 0),
|
||||
};
|
||||
@@ -62,7 +58,3 @@ bool BKE_viewer_path_elem_equal(const ViewerPathElem *a,
|
||||
const ViewerPathElem *b,
|
||||
ViewerPathEqualFlag flag = ViewerPathEqualFlag(0));
|
||||
void BKE_viewer_path_elem_free(ViewerPathElem *elem);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -8,9 +8,8 @@
|
||||
* \ingroup bke
|
||||
* \brief Volume data-block.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "BLI_math_vector_types.hh"
|
||||
|
||||
struct BoundBox;
|
||||
struct Depsgraph;
|
||||
@@ -90,7 +89,7 @@ bool BKE_volume_set_velocity_grid_by_name(struct Volume *volume, const char *bas
|
||||
* By default only grid metadata is loaded, for access to the tree and voxels
|
||||
* BKE_volume_grid_load must be called first. */
|
||||
|
||||
typedef enum VolumeGridType {
|
||||
enum VolumeGridType : int8_t {
|
||||
VOLUME_GRID_UNKNOWN = 0,
|
||||
VOLUME_GRID_BOOLEAN,
|
||||
VOLUME_GRID_FLOAT,
|
||||
@@ -102,7 +101,7 @@ typedef enum VolumeGridType {
|
||||
VOLUME_GRID_VECTOR_DOUBLE,
|
||||
VOLUME_GRID_VECTOR_INT,
|
||||
VOLUME_GRID_POINTS,
|
||||
} VolumeGridType;
|
||||
};
|
||||
|
||||
bool BKE_volume_grid_load(const struct Volume *volume, const struct VolumeGrid *grid);
|
||||
void BKE_volume_grid_unload(const struct Volume *volume, const struct VolumeGrid *grid);
|
||||
@@ -154,19 +153,9 @@ bool BKE_volume_save(const struct Volume *volume,
|
||||
struct ReportList *reports,
|
||||
const char *filepath);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* OpenVDB Grid Access
|
||||
*
|
||||
* Access to OpenVDB grid for C++. These will automatically load grids from
|
||||
* file or copy shared grids to make them writeable. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
# include "BLI_math_vector_types.hh"
|
||||
|
||||
bool BKE_volume_min_max(const Volume *volume, blender::float3 &r_min, blender::float3 &r_max);
|
||||
|
||||
#endif
|
||||
+1
-8
@@ -13,12 +13,9 @@
|
||||
|
||||
#include "DNA_volume_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct Volume;
|
||||
struct VolumeGrid;
|
||||
enum VolumeGridType : int8_t;
|
||||
|
||||
/* Dense Voxels */
|
||||
|
||||
@@ -58,7 +55,3 @@ void BKE_volume_grid_selection_surface(const struct Volume *volume,
|
||||
/* Render */
|
||||
|
||||
float BKE_volume_density_scale(const struct Volume *volume, const float matrix[4][4]);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -316,7 +316,7 @@ set(SRC
|
||||
intern/world.cc
|
||||
intern/writeavi.cc
|
||||
|
||||
BKE_DerivedMesh.h
|
||||
BKE_DerivedMesh.hh
|
||||
BKE_action.h
|
||||
BKE_action.hh
|
||||
BKE_addon.h
|
||||
@@ -326,9 +326,8 @@ set(SRC
|
||||
BKE_animsys.h
|
||||
BKE_anonymous_attribute_id.hh
|
||||
BKE_appdir.h
|
||||
BKE_armature.h
|
||||
BKE_armature.hh
|
||||
BKE_asset.h
|
||||
BKE_asset.hh
|
||||
BKE_attribute.h
|
||||
BKE_attribute.hh
|
||||
BKE_attribute_math.hh
|
||||
@@ -348,7 +347,7 @@ set(SRC
|
||||
BKE_boids.h
|
||||
BKE_bpath.h
|
||||
BKE_brush.hh
|
||||
BKE_bvhutils.h
|
||||
BKE_bvhutils.hh
|
||||
BKE_cachefile.h
|
||||
BKE_callbacks.h
|
||||
BKE_camera.h
|
||||
@@ -361,19 +360,19 @@ set(SRC
|
||||
BKE_colortools.h
|
||||
BKE_compute_contexts.hh
|
||||
BKE_constraint.h
|
||||
BKE_context.h
|
||||
BKE_cpp_types.h
|
||||
BKE_context.hh
|
||||
BKE_cpp_types.hh
|
||||
BKE_crazyspace.hh
|
||||
BKE_cryptomatte.h
|
||||
BKE_cryptomatte.hh
|
||||
BKE_curve.h
|
||||
BKE_curve.hh
|
||||
BKE_curve_legacy_convert.hh
|
||||
BKE_curve_to_mesh.hh
|
||||
BKE_curveprofile.h
|
||||
BKE_curves.h
|
||||
BKE_curves.hh
|
||||
BKE_curves_utils.hh
|
||||
BKE_customdata.h
|
||||
BKE_customdata.hh
|
||||
BKE_customdata_file.h
|
||||
BKE_data_transfer.h
|
||||
BKE_deform.h
|
||||
@@ -381,10 +380,10 @@ set(SRC
|
||||
BKE_duplilist.h
|
||||
BKE_dynamicpaint.h
|
||||
BKE_editlattice.h
|
||||
BKE_editmesh.h
|
||||
BKE_editmesh.hh
|
||||
BKE_editmesh_bvh.h
|
||||
BKE_editmesh_cache.hh
|
||||
BKE_editmesh_tangent.h
|
||||
BKE_editmesh_tangent.hh
|
||||
BKE_effect.h
|
||||
BKE_fcurve.h
|
||||
BKE_fcurve_driver.h
|
||||
@@ -415,7 +414,7 @@ set(SRC
|
||||
BKE_kelvinlet.h
|
||||
BKE_key.h
|
||||
BKE_keyconfig.h
|
||||
BKE_lattice.h
|
||||
BKE_lattice.hh
|
||||
BKE_layer.h
|
||||
BKE_lib_id.h
|
||||
BKE_lib_override.hh
|
||||
@@ -458,7 +457,7 @@ set(SRC
|
||||
BKE_node_tree_anonymous_attributes.hh
|
||||
BKE_node_tree_dot_export.hh
|
||||
BKE_node_tree_interface.hh
|
||||
BKE_node_tree_update.h
|
||||
BKE_node_tree_update.hh
|
||||
BKE_node_tree_zones.hh
|
||||
BKE_object.hh
|
||||
BKE_object_types.hh
|
||||
@@ -468,7 +467,7 @@ set(SRC
|
||||
BKE_packedFile.h
|
||||
BKE_paint.hh
|
||||
BKE_particle.h
|
||||
BKE_pbvh.h
|
||||
BKE_pbvh.hh
|
||||
BKE_pbvh_api.hh
|
||||
BKE_pbvh_pixels.hh
|
||||
BKE_pointcache.h
|
||||
@@ -505,10 +504,10 @@ set(SRC
|
||||
BKE_unit.h
|
||||
BKE_vfont.h
|
||||
BKE_vfontdata.h
|
||||
BKE_viewer_path.h
|
||||
BKE_volume.h
|
||||
BKE_viewer_path.hh
|
||||
BKE_volume.hh
|
||||
BKE_volume_openvdb.hh
|
||||
BKE_volume_render.h
|
||||
BKE_volume_render.hh
|
||||
BKE_volume_to_mesh.hh
|
||||
BKE_workspace.h
|
||||
BKE_world.h
|
||||
|
||||
@@ -32,11 +32,11 @@
|
||||
#include "BLI_utildefines.h"
|
||||
#include "BLI_vector.hh"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BKE_colorband.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_editmesh_cache.hh"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_geometry_set_instances.hh"
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_anim_visualization.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_asset.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_asset.hh"
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_fcurve.h"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
|
||||
#include "DEG_depsgraph.hh"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_fcurve_driver.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "BLI_math_vector.h"
|
||||
|
||||
#include "BKE_anim_path.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_object_types.hh"
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lib_id.h"
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_anim_visualization.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_idprop.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
#include "DEG_depsgraph_build.hh"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_anim_path.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_object.hh"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "BLI_string_utils.hh"
|
||||
#include "BLI_uuid.h"
|
||||
|
||||
#include "BKE_asset.h"
|
||||
#include "BKE_asset.hh"
|
||||
#include "BKE_idprop.h"
|
||||
#include "BKE_preview_image.hh"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include "BKE_asset.h"
|
||||
#include "BKE_asset.hh"
|
||||
|
||||
#include "BLI_uuid.h"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "AS_asset_identifier.hh"
|
||||
#include "AS_asset_library.hh"
|
||||
|
||||
#include "BKE_asset.h"
|
||||
#include "BKE_asset.hh"
|
||||
|
||||
#include "BLO_read_write.hh"
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_grease_pencil.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_pointcloud.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <utility>
|
||||
|
||||
#include "BKE_attribute_math.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "BKE_blender_copybuffer.h" /* own include */
|
||||
#include "BKE_blendfile.h"
|
||||
#include "BKE_blendfile_link_append.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "BKE_appdir.h"
|
||||
#include "BKE_blender_undo.h" /* own include */
|
||||
#include "BKE_blendfile.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_undo_system.h"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "BKE_blendfile.h"
|
||||
#include "BKE_bpath.h"
|
||||
#include "BKE_colorband.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_ipo.h"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "BKE_bpath.h"
|
||||
#include "BKE_brush.hh"
|
||||
#include "BKE_colortools.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_gpencil_legacy.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_mesh_runtime.hh"
|
||||
#include "BKE_pointcloud.h"
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_mesh_mapping.hh"
|
||||
#include "BKE_object.hh"
|
||||
#include "BKE_paint.hh"
|
||||
#include "BKE_pbvh.h"
|
||||
#include "BKE_pbvh.hh"
|
||||
|
||||
#include "DNA_curve_types.h" /* for Curve */
|
||||
#include "DNA_mesh_types.h"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "DEG_depsgraph.hh"
|
||||
#include "DEG_depsgraph_query.hh"
|
||||
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BKE_cloth.hh"
|
||||
#include "BKE_effect.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_colortools.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
|
||||
#include "IMB_colormanagement.h"
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_anim_path.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BKE_cachefile.h"
|
||||
#include "BKE_camera.h"
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_fcurve_driver.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idprop.h"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_scene.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "BLI_cpp_type_make.hh"
|
||||
#include "BLI_cpp_types_make.hh"
|
||||
|
||||
#include "BKE_cpp_types.h"
|
||||
#include "BKE_cpp_types.hh"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_instances.hh"
|
||||
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
#include "BLI_math_rotation.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
#include "BKE_crazyspace.hh"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_grease_pencil.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "DNA_vfont_types.h"
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curveprofile.h"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_idtype.h"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "DNA_curveprofile_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curveprofile.h"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_object_types.hh"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_modifier.hh"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "BLI_math_vector.h"
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
|
||||
extern "C" {
|
||||
#include "curve_fit_nd.h"
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "BKE_anim_path.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object_types.hh"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "DNA_curve_types.h"
|
||||
#include "DNA_curves_types.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curve_legacy_convert.hh"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_curves_utils.hh"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "BLI_rect.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curveprofile.h"
|
||||
|
||||
#include "BLO_read_write.hh"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_geometry_fields.hh"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_global.h"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "BKE_attribute_math.hh"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_curves_utils.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_deform.h"
|
||||
|
||||
namespace blender::bke {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* \ingroup bke
|
||||
* Implementation of CustomData.
|
||||
*
|
||||
* BKE_customdata.h contains the function prototypes for this file.
|
||||
* BKE_customdata.hh contains the function prototypes for this file.
|
||||
*/
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "BKE_anonymous_attribute_id.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_customdata_file.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_main.h"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include "BKE_attribute.h"
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_data_transfer.h"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "BKE_customdata.h" /* For cd_datatransfer_interp */
|
||||
#include "BKE_customdata.hh" /* For cd_datatransfer_interp */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_data_transfer.h"
|
||||
#include "BKE_deform.h" /* own include */
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_anim_path.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curve_legacy_convert.hh"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_geometry_set.hh"
|
||||
|
||||
@@ -38,13 +38,13 @@
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_texture_types.h"
|
||||
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_bvhutils.h" /* bvh tree */
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_bvhutils.hh" /* bvh tree */
|
||||
#include "BKE_collection.h"
|
||||
#include "BKE_collision.h"
|
||||
#include "BKE_colorband.h"
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_dynamicpaint.h"
|
||||
#include "BKE_effect.h"
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
#include "BLI_math_geom.h"
|
||||
#include "BLI_math_vector.h"
|
||||
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_DerivedMesh.hh"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_editmesh_cache.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_mesh.hh"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "BLI_math_geom.h"
|
||||
#include "BLI_math_vector.h"
|
||||
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
|
||||
#include "BKE_editmesh_bvh.h" /* own include */
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#include "DNA_mesh_types.h"
|
||||
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_editmesh_cache.hh" /* own include */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
#include "DNA_defs.h"
|
||||
#include "DNA_meshdata_types.h"
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh_tangent.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_editmesh_tangent.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_mesh_tangent.hh" /* for utility functions */
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
#include "PIL_time.h"
|
||||
|
||||
#include "BKE_anim_path.h" /* needed for where_on_path */
|
||||
#include "BKE_bvhutils.h"
|
||||
#include "BKE_bvhutils.hh"
|
||||
#include "BKE_collection.h"
|
||||
#include "BKE_collision.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_effect.h"
|
||||
#include "BKE_fluid.h"
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_fcurve_driver.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_armature.h"
|
||||
#include "BKE_armature.hh"
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_fcurve_driver.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
@@ -54,10 +54,10 @@
|
||||
# include "BLI_threads.h"
|
||||
# include "BLI_voxel.h"
|
||||
|
||||
# include "BKE_bvhutils.h"
|
||||
# include "BKE_bvhutils.hh"
|
||||
# include "BKE_collision.h"
|
||||
# include "BKE_colortools.h"
|
||||
# include "BKE_customdata.h"
|
||||
# include "BKE_customdata.hh"
|
||||
# include "BKE_deform.h"
|
||||
# include "BKE_mesh.hh"
|
||||
# include "BKE_mesh_runtime.hh"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "DNA_curve_types.h"
|
||||
|
||||
#include "BKE_attribute_math.hh"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_geometry_fields.hh"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_volume.h"
|
||||
#include "BKE_volume.hh"
|
||||
|
||||
namespace blender::bke {
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object_types.hh"
|
||||
#include "BKE_pointcloud.h"
|
||||
#include "BKE_volume.h"
|
||||
#include "BKE_volume.hh"
|
||||
|
||||
#include "DNA_collection_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_collection.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_gpencil_curve_legacy.h"
|
||||
#include "BKE_gpencil_geom_legacy.h"
|
||||
#include "BKE_gpencil_legacy.h"
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_context.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_gpencil_curve_legacy.h"
|
||||
#include "BKE_gpencil_geom_legacy.h"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "BKE_gpencil_geom_legacy.h"
|
||||
#include "BKE_gpencil_legacy.h"
|
||||
#include "BKE_gpencil_modifier_legacy.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_material.h"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_curves.hh"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_geometry_set.hh"
|
||||
#include "BKE_grease_pencil.h"
|
||||
#include "BKE_grease_pencil.hh"
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_node.hh"
|
||||
#include "BKE_node_runtime.hh"
|
||||
#include "BKE_node_tree_update.h"
|
||||
#include "BKE_node_tree_update.hh"
|
||||
#include "BKE_packedFile.h"
|
||||
#include "BKE_preview_image.hh"
|
||||
#include "BKE_report.h"
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_main.h"
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_anim_data.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_deform.h"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_main.h"
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
#include "DNA_meshdata_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_curve.hh"
|
||||
#include "BKE_displist.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_lattice.hh"
|
||||
#include "BKE_mesh.hh"
|
||||
#include "BKE_modifier.hh"
|
||||
#include "BKE_object.hh"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "testing/testing.h"
|
||||
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_lattice.hh"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
#include "BLI_array.h"
|
||||
|
||||
#include "BKE_collection.h"
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_editmesh.h"
|
||||
#include "BKE_customdata.hh"
|
||||
#include "BKE_editmesh.hh"
|
||||
#include "BKE_layer.h"
|
||||
|
||||
#include "DNA_ID.h"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user