2023-05-31 16:19:06 +02:00
|
|
|
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2020-04-03 11:35:04 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
/** \file
|
|
|
|
* \ingroup bke
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2021-04-08 15:51:08 +02:00
|
|
|
struct CurveCache;
|
2020-04-03 11:35:04 +02:00
|
|
|
struct Object;
|
|
|
|
|
|
|
|
/* ---------------------------------------------------- */
|
|
|
|
/* Curve Paths */
|
|
|
|
|
2021-04-08 15:51:08 +02:00
|
|
|
int BKE_anim_path_get_array_size(const struct CurveCache *curve_cache);
|
|
|
|
float BKE_anim_path_get_length(const struct CurveCache *curve_cache);
|
|
|
|
|
2021-12-07 07:19:15 +01:00
|
|
|
/**
|
2023-11-15 18:46:07 +01:00
|
|
|
* This function populates the 'ob->runtime->curve_cache->anim_path_accum_length' data.
|
2021-04-08 15:51:08 +02:00
|
|
|
* You should never have to call this manually as it should already have been called by
|
|
|
|
* 'BKE_displist_make_curveTypes'. Do not call this manually unless you know what you are doing.
|
|
|
|
*/
|
|
|
|
void BKE_anim_path_calc_data(struct Object *ob);
|
|
|
|
|
2021-12-07 07:19:15 +01:00
|
|
|
/**
|
|
|
|
* Calculate the deformation implied by the curve path at a given parametric position,
|
|
|
|
* and returns whether this operation succeeded.
|
|
|
|
*
|
|
|
|
* \param ctime: Time is normalized range <0-1>.
|
|
|
|
*
|
|
|
|
* \return success.
|
|
|
|
*/
|
2021-04-08 15:51:08 +02:00
|
|
|
bool BKE_where_on_path(const struct Object *ob,
|
|
|
|
float ctime,
|
|
|
|
float r_vec[4],
|
|
|
|
float r_dir[3],
|
|
|
|
float r_quat[4],
|
|
|
|
float *r_radius,
|
|
|
|
float *r_weight);
|
2020-04-03 11:35:04 +02:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|