bofdahof
1155f0d752
Base: simplify UnitsSchemas management
...
Fixes: Maintaining schemas is difficult and error-prone
- Facilitate easy schemas add, remove, change, etc.
- Remove 14 files containing approx 2,190 lines of if/else code and data
- Place data in one file (UnitsSchemasData.h) using a normalized structure (including special functions)
- Isolate and simplify data operations (code)
- Remove schemas enum to keep data independent of code
- Separate responsibilities: Specifications, data, schemas, schema
- Add schema data 'isDefault'
- Add schema data name
- Prefer algorithms to raw loops
- Add schemas unit tests
- Tweak quantity unit tests
2025-04-27 00:45:54 +02:00
bofdahof
7c5ce9d256
Base: cleanup Quantity class
2025-04-27 00:42:47 +02:00
Ladislav Michl
ed00a6673c
Base: Quantity: rename lexer and parser files
...
Rename files according 7d233dc ("Gui: Rename generated lexer files
to match core naming pattern"). Note that C space errors (space
before tabs, spaces on blank lines, etc.) still need to be fixed
manually after regenerating lexer file.
2025-04-08 11:09:36 +02:00
Benjamin Nauck
d9af862627
Base: Add #include <limits> where used
2025-03-31 23:50:30 +02:00
Benjamin Nauck
ae686942a7
Base: Use std::numeric_limits and std::numbers instead of defines
2025-03-29 13:32:37 +01:00
Ladislav Michl
c0f0376ac6
Base: Quantity: use std::nan
2024-12-23 17:48:42 +01:00
Ladislav Michl
4d6ed9d531
Base: UnitsSchema: return std::string
2024-12-23 17:48:42 +01:00
Ladislav Michl
2ea8a633ac
Base: Quantity: return std::string
2024-12-23 17:48:42 +01:00
Ladislav Michl
0907c7bfda
Base: Units: return std::string
2024-12-23 17:48:42 +01:00
wmayer
8210e99b0c
Base: Fix memory leak in Quantity::parse
...
If an exception is thrown then the allocated buffer won't be cleaned up. To make this exception-safe the class
StringBufferCleaner is added using the RAII idiom
2024-04-25 14:34:02 +02:00
Adrián Insaurralde Avalos
9c3ab15ecb
Base: escape quotes in Quantity::getSafeUserString
...
fix #12204 and fix #12206
2024-02-12 12:09:30 -06:00
Chris Hennes
fa65438556
Core: Enable compiling with MSVC /permissive- ( #11014 )
...
* Base: Fixes for MSVC permissive-
* App: Fixes for MSVC permissive-
* Gui: Fixes for MSVC permissive-
* Main: Fixes for MSVC permissive-
* Fem: Fixes for MSVC permissive-
* Material: Fixes for MSVC permissive-
* Part: Fixes for MSVC permissive-
* Mesh: Fixes for MSVC permissive-
* Points: Fixes for MSVC permissive-
* Robot: Fixes for MSVC permissive-
* TechDraw: Fixes for MSVC permissive-
* Path: Fixes for MSVC permissive-
* Core; Changes per review comments
* TD: Revision from wandererfan
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-27 17:37:29 +01:00
wmayer
e85c383bff
Base: apply clang format
2023-11-13 12:01:26 -05:00
mosfet80
d453672ab8
[BASE] Removed dead code ( #10330 )
2023-08-28 10:41:20 -05:00
Daniel-Khodabakhsh
827af464e3
Add various matrix related expression functions ( #8603 )
...
Adds a few new Expression functions with the goal to:
- Simplify Placement, Rotation, Vector and Matrix object creation.
- Add new matrix functions for rotation and translation.
2023-03-11 20:13:23 -06:00
wmayer
ea866c755b
Base: fix/ignore some clang-tidy warnings
2023-02-28 15:17:06 +01:00
wmayer
315a1158a9
Base: make static const predefined quantities
2023-02-28 15:17:06 +01:00
wmayer
31a01d3c23
Base: fix Lint warnings in Quantity
2023-02-28 15:17:06 +01:00
wmayer
b0b52cda32
Base: fix pow() of Quantity
2023-02-27 22:13:08 +01:00
wmayer
e0d054d6bc
Base: handle several Lint warnings
2023-02-27 20:07:01 +01:00
wmayer
7204be47f2
Base: add missing != operator to Quantity
2023-02-27 20:07:01 +01:00
0penBrain
569154b73f
Base: introduce 'getSafeUserUnit' that fallbacks to full precision and internal unit ...
...
... in case unit schema would zero a non-zero quantity
For example, using '1 mil' with UnitsSchemaImperialDecimal schema
2023-02-23 15:22:07 +01:00
Uwe
b41776d077
[Core] disable the the unit Oersted
...
- is not feasible for practical usage and (was up to now not used, thus no consequence)
moreover, Oersted is a cgs unit while we use SI units, thus also not suitable for FEM, only makes problems for magnetization
2023-02-08 19:59:36 +01:00
luzpaz
729685316e
Fix trailing whitespace, typos, headers
...
Fix trailing whitespace, typos, and header uniformity.
2023-01-23 00:34:37 +01:00
wmayer
ad1cccdd27
Gui/Mod: handle several compiler warnings:
...
* ignore -Wfree-nonheap-object for generated code
* replace 0 with Qt::NoModifier when creating a QKeyEvent
* in Qt 5.14 QCombobox::activated(QString) is deprecated, use textActivated
* don't mix QCheckBox::setChecked() with tristate API
2022-11-29 10:36:02 +01:00
0penBrain
65822ec2f8
Base: fix quantity construction when unit as string is empty
2022-04-02 18:09:35 +02:00
Chris Hennes
3b42d4afac
Base: PR6497 move return statement to new line
2022-03-29 12:34:34 -05:00
wmayer
e4435cdcba
Base/App: fix warnings from code analysers:
...
* convert old-style-casts to explicit C++ casts where possible
* make some implicit conversions explicit
2022-03-06 23:49:30 +01:00
Uwe
f20840442f
[Base] Quantity, Rotation, Stream: remove unused includes
2022-03-01 11:27:54 +01:00
wmayer
4d87039635
Base: modernize C++11
...
* remove redundant void-arg
* use nullptr
* replace deprecated headers
2022-01-25 20:21:30 +01:00
wmayer
88ded38ca1
Base: only handle Base::ParserError exceptions for quantity expressions
2022-01-22 01:15:12 +01:00
0penBrain
2fef77e267
[Core] Fix Quantity construction with value as double + unit as string
2022-01-21 14:56:11 +01:00
Preslav
4ab37fc0ca
Added stiffness units to FreeCAD [mN/m, N/m, kN/m, MN/m]
2021-08-16 12:27:41 +01:00
wmayer
cd9319f125
Base: add convenience functions to create a QString from quantity or double
2021-04-20 14:07:20 +02:00
donovaly
bcc669b930
[Base] add electrical conductivity
...
- this is necessary to perform electrodynamics simulations. Since the typical values are in the range of 1e6 S/m, we need the new units kS and MS
- since this is for simulations, also add electrical conductivity to the FEM material cards
2021-03-25 17:13:52 +01:00
David Carter
5edd7d01a0
Base: fixes #0004586 : Conversion error for PoundForce (lbf)
2021-03-03 12:39:49 +01:00
luz paz
d5f6c096b8
Base: Fix header uniformity, whitespace, and doxygen
...
[skip ci]
2020-11-22 18:12:16 +01:00
Cyril Waechter
7b897e06fd
Fix comment in Quantity.cpp
2020-07-11 19:37:47 +02:00
luz.paz
d36c3ebe57
Trivial code formatting for some {.cpp,.h} files
2020-04-06 12:55:27 +02:00
donovaly
66354b3c58
add units Gauss, Weber and Oersted
2020-01-07 07:36:22 -03:00
donovaly
b4f9e3c88b
Quantity.cpp: fix spacing
2020-01-05 15:00:46 +01:00
donovaly
05dadb4c75
add the units Ohm and Siemens
2020-01-05 15:00:46 +01:00
luz.paz
6f11ed298a
src/Base: [skip ci] fix header uniformity
...
This PR fixes header uniformity across all `src/Base` files
2019-12-25 11:38:58 +01:00
donovaly
cd8b63028c
missing parts from from commit d9d903faea
...
- also add keV and MeV since these are the units used in practice
2019-12-24 13:31:00 +01:00
wmayer
d9d903faea
Units: extend parser to accept mph, sqft and cft. Fix a bug in imperial civil schema
2019-12-23 19:55:21 +01:00
donovaly
9c707479a6
also add unit THz as requested
2019-12-23 16:49:45 +01:00
donovaly
63bc9c5683
add units Mpsi, cal and kcal
...
- also ass missing parts from commit d7ca604c
2019-12-23 16:49:45 +01:00
wmayer
98dfe7c387
add posibility to use a unit schema other then the system schema to represent a quantity
2019-12-21 13:35:14 +01:00
donovaly
2949afb55b
add mJ and kW
...
- also some fixes
- add conversions for forces
2019-12-19 13:31:12 +01:00
donovaly
1ffaaf100a
generate QuantityLexer.c
...
- also set proper unit conversions
- fix MilliWatt and MilliMole
2019-12-19 13:31:12 +01:00