28 : export_object_eval_(curve_object)
31 export_curve_ =
static_cast<Curve *
>(export_object_eval_->data);
35void OBJCurve::set_world_axes_transform(
const eIOAxis forward,
const eIOAxis up)
37 float axes_transform[3][3];
41 mul_m4_m3m4(world_axes_transform_, axes_transform, export_object_eval_->object_to_world().ptr());
44 world_axes_transform_[3], axes_transform, export_object_eval_->object_to_world().location());
45 world_axes_transform_[3][3] = export_object_eval_->object_to_world()[3][3];
50 return export_object_eval_->
id.
name + 2;
60 return static_cast<Nurb *
>(
BLI_findlink(&export_curve_->nurb, spline_index));
70 const int vertex_index,
71 const float global_scale)
const
75 const BPoint &bpoint = nurb->
bp[vertex_index];
77 mul_m4_v3(world_axes_transform_, r_coord);
125 knot_buffer.
resize(knot_count);
Low-level operations for curves.
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void unit_m3(float m[3][3])
void mul_m4_v3(const float M[4][4], float r[3])
void mul_v3_m3v3(float r[3], const float M[3][3], const float a[3])
void mul_m4_m3m4(float R[4][4], const float A[3][3], const float B[4][4])
bool mat3_from_axis_conversion(int src_forward, int src_up, int dst_forward, int dst_up, float r_mat[3][3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
T * DEG_get_evaluated(const Depsgraph *depsgraph, T *id)
BPy_StructRNA * depsgraph
void resize(const int64_t new_size)
int total_spline_vertices(int spline_index) const
const Nurb * get_spline(int spline_index) const
short get_nurbs_flagu(int spline_index) const
float3 vertex_coordinates(int spline_index, int vertex_index, float global_scale) const
int get_nurbs_degree_u(int spline_index) const
int num_control_points_u(int spline_index) const
const char * get_curve_name() const
int get_nurbs_degree_v(int spline_index) const
int total_splines() const
Span< float > get_knots_u(int spline_index, Vector< float > &buffer) const
int num_control_points_v(int spline_index) const
OBJCurve(const Depsgraph *depsgraph, const OBJExportParams &export_params, Object *curve_object)
void calculate_knots(int points_num, KnotsMode mode, int8_t order, bool cyclic, MutableSpan< float > knots)
int knots_num(int points_num, int8_t order, bool cyclic)
KnotsMode knots_mode_from_legacy(short flag)
VecBase< float, 3 > float3