Blender V4.5
BKE_unit.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BLI_sys_types.h"
8
12
13struct UnitSettings;
14
15/* In all cases the value is assumed to be scaled by the user-preference. */
16
21 int str_maxncpy,
22 double value,
23 int prec,
24 int system,
25 int type,
26 bool split,
27 bool pad);
32size_t BKE_unit_value_as_string(char *str,
33 int str_maxncpy,
34 double value,
35 int prec,
36 int type,
37 const UnitSettings &settings,
38 bool pad);
39
44 int str_maxncpy,
45 double value,
46 int prec,
47 int type,
48 const UnitSettings &settings,
49 bool pad);
50
69 char *str, int str_maxncpy, const char *str_prev, double scale_pref, int system, int type);
70
74bool BKE_unit_string_contains_unit(const char *str, int type);
75
79double BKE_unit_apply_preferred_unit(const UnitSettings &settings, int type, double value);
80
84void BKE_unit_name_to_alt(char *str, int str_maxncpy, const char *orig_str, int system, int type);
85
89double BKE_unit_closest_scalar(double value, int system, int type);
90
94double BKE_unit_base_scalar(int system, int type);
95
99bool BKE_unit_is_valid(int system, int type);
100
105double BKE_unit_value_scale(const UnitSettings &settings, int unit_type, double value);
106
110// double bUnit_Iter(void **unit, char **name, int system, int type);
111
112void BKE_unit_system_get(int system, int type, const void **r_usys_pt, int *r_len);
113int BKE_unit_base_get(const void *usys_pt);
114int BKE_unit_base_of_type_get(int system, int type);
115const char *BKE_unit_name_get(const void *usys_pt, int index);
116const char *BKE_unit_display_name_get(const void *usys_pt, int index);
117const char *BKE_unit_identifier_get(const void *usys_pt, int index);
118double BKE_unit_scalar_get(const void *usys_pt, int index);
119bool BKE_unit_is_suppressed(const void *usys_pt, int index);
120
122enum {
140};
void BKE_unit_name_to_alt(char *str, int str_maxncpy, const char *orig_str, int system, int type)
Definition unit.cc:2441
int BKE_unit_base_of_type_get(int system, int type)
Definition unit.cc:2531
bool BKE_unit_is_valid(int system, int type)
Definition unit.cc:2508
size_t BKE_unit_value_as_string(char *str, int str_maxncpy, double value, int prec, int type, const UnitSettings &settings, bool pad)
Definition unit.cc:1876
double BKE_unit_value_scale(const UnitSettings &settings, int unit_type, double value)
Definition unit.cc:1901
size_t BKE_unit_value_as_string_scaled(char *str, int str_maxncpy, double value, int prec, int type, const UnitSettings &settings, bool pad)
Definition unit.cc:1889
@ B_UNIT_TIME_ABSOLUTE
Definition BKE_unit.hh:130
@ B_UNIT_AREA
Definition BKE_unit.hh:125
@ B_UNIT_FREQUENCY
Definition BKE_unit.hh:138
@ B_UNIT_TYPE_TOT
Definition BKE_unit.hh:139
@ B_UNIT_VOLUME
Definition BKE_unit.hh:126
@ B_UNIT_LENGTH
Definition BKE_unit.hh:124
@ B_UNIT_ROTATION
Definition BKE_unit.hh:128
@ B_UNIT_TEMPERATURE
Definition BKE_unit.hh:135
@ B_UNIT_CAMERA
Definition BKE_unit.hh:133
@ B_UNIT_ACCELERATION
Definition BKE_unit.hh:132
@ B_UNIT_MASS
Definition BKE_unit.hh:127
@ B_UNIT_WAVELENGTH
Definition BKE_unit.hh:136
@ B_UNIT_NONE
Definition BKE_unit.hh:123
@ B_UNIT_POWER
Definition BKE_unit.hh:134
@ B_UNIT_COLOR_TEMPERATURE
Definition BKE_unit.hh:137
@ B_UNIT_TIME
Definition BKE_unit.hh:129
@ B_UNIT_VELOCITY
Definition BKE_unit.hh:131
const char * BKE_unit_identifier_get(const void *usys_pt, int index)
Definition unit.cc:2548
bool BKE_unit_is_suppressed(const void *usys_pt, int index)
Definition unit.cc:2566
void BKE_unit_system_get(int system, int type, const void **r_usys_pt, int *r_len)
Definition unit.cc:2513
const char * BKE_unit_display_name_get(const void *usys_pt, int index)
Definition unit.cc:2542
const char * BKE_unit_name_get(const void *usys_pt, int index)
Definition unit.cc:2536
int BKE_unit_base_get(const void *usys_pt)
Definition unit.cc:2526
bool BKE_unit_replace_string(char *str, int str_maxncpy, const char *str_prev, double scale_pref, int system, int type)
Definition unit.cc:2351
double BKE_unit_apply_preferred_unit(const UnitSettings &settings, int type, double value)
Definition unit.cc:2339
double BKE_unit_scalar_get(const void *usys_pt, int index)
Definition unit.cc:2559
double BKE_unit_closest_scalar(double value, int system, int type)
Definition unit.cc:2482
double BKE_unit_base_scalar(int system, int type)
Definition unit.cc:2498
bool BKE_unit_string_contains_unit(const char *str, int type)
Definition unit.cc:2325
size_t BKE_unit_value_as_string_adaptive(char *str, int str_maxncpy, double value, int prec, int system, int type, bool split, bool pad)
Definition unit.cc:1863
static void split(const char *text, const char *seps, char ***str, int *count)
int pad[32 - sizeof(int)]
#define str(s)