Commit Graph

51 Commits

Author SHA1 Message Date
Ladislav Michl
3a25a66a05 Base: Do not use else before return 2024-01-21 16:14:12 +01:00
wmayer
a602003747 fix readability-isolate-declarations 2023-11-16 01:22:08 +01:00
wmayer
276bbcad6e fix readability-*:
* readability-uppercase-literal-suffix
* readability-named-parameter
2023-11-16 01:22:08 +01:00
wmayer
bd88162b9d fix readability-*:
* readability-const-return-type
* readability-container-data-pointer
* readability-container-size-empty
* readability-delete-null-pointer
* readability-else-after-return
* readability-inconsistent-declaration-parameter-name
* readability-redundant-member-init
* readability-redundant-smartptr-get
* readability-redundant-string-cstr
* readability-use-anyofallof
* readability-static-definition-in-anonymous-namespace
* readability-static-accessed-through-instance
* readability-simplify-boolean-expr
2023-11-16 01:22:08 +01:00
wmayer
985def3416 Base: apply clang format 2023-11-13 12:01:26 -05:00
wmayer
2265198ffe Base: add overloaded method Matrix4D::isUnity() 2023-10-19 19:25:25 +02:00
Jolbas
31637adaa0 Create rotation from any matrix
To help find a matrix components a decompose method is added to Matrix class
2023-09-28 15:25:29 -05:00
wmayer
455fd3b2e5 Base: use NoArgs in MatrixPy 2023-09-27 17:48:53 +02:00
wmayer
7eff934913 Base: fix incorrect method names of Matrix class about diagonal and trace 2023-09-18 01:21:07 +02:00
wmayer
097d5d6fee Base: C++ core guidelines: init variables 2023-08-24 18:48:52 +02:00
marioalexis
5f838a43bd Base: Fix warnings -Wredundant-move 2023-07-24 14:39:21 +00:00
marioalexis
8c7849f25f Base: Fix undefined behaviour in row/col functions and code clean up 2022-05-31 11:48:04 +02:00
wmayer
4b483807c7 Base: replace several reinterpret_cast 2022-05-11 20:01:40 +02:00
wmayer
e4d1ed8366 Base: rename BaseExceptionFreeCADError to PyExc_FC_GeneralError 2022-03-17 14:45:48 +01:00
wmayer
1f12dca2b4 Py: replace BaseExceptionFreeCADError with more suitable exception types 2022-03-17 13:54:23 +01:00
Uwe
8335466b27 [Base] Parameter and Matrix: remove unused includes 2022-03-02 13:28:34 +01:00
wmayer
0208608b9e Base: fix Matrix4D::hasScale
* If all column vectors of the 3x3 sub-matrix are equal the function incorrectly claims that it's uniform scaling.
* Detect also non-uniform scaling and if was applied from the left or right side
* Replace the int with an enum and expose it to Python
* Add several new unit tests
2022-02-15 21:05:11 +01:00
0penBrain
6030e9aac5 Base: introduce uniform scaling of matrix 2022-02-08 17:18:54 +01:00
0penBrain
1e22d2ea19 Base: fix move+scale Python error cleaning after parsing args 2022-02-08 17:18:54 +01:00
wmayer
a5f0265a43 Base: support of multiplication of a matrix with a scalar, add functions to check whether it's the unit or null matrix 2022-02-04 14:35:27 +01:00
0penBrain
49d628ffb0 Base: fix bug in matrix multiplication (Python API) 2022-02-04 03:50:44 +01:00
wmayer
674871a393 Base: implement some convenience methods to get/set rows/columns of a matrix 2022-01-27 00:24:44 +01:00
wmayer
c563198b35 Base: remove some more deprecated Py2 code
and remove deprecated void from function signature and replace 0 or NULL with nullptr
2021-04-26 10:29:48 +02:00
luz paz
59b7e9fdd0 Base: remove Py2 code 2021-04-26 09:23:58 +02:00
luz paz
01b21e0d06 Base: Fix header uniformity, whitespace, and doxygen
[skip ci]
2020-11-22 18:12:16 +01:00
luz.paz
ae72e2c762 Trivial code formatting for some {.cpp,.h} files 2020-04-06 12:55:27 +02:00
Zheng, Lei
b2ba93c4fc Base: fix __pow__ operator in MatrixPy/PlacementPy/RotationPy 2019-10-07 17:24:30 +02:00
Zheng, Lei
ff3ec0c7fd Base: add Python number protocol support to Placement/Rotation 2019-09-28 15:32:00 +02:00
Zheng, Lei
1efadc928e Base: improve base python object number protocol 2019-09-28 15:30:23 +02:00
wmayer
cc2e507817 fix -Wreturn-std-move 2019-09-07 14:45:03 +02:00
Zheng, Lei
2d9ca92594 Base: misc patches
Convenience macros/function (in Interpreter.h)

* FC_PY_GetObject/Callable(), look for callables in a python object,
  which will be used in future patch to improve performance in various
  python observer/features.

* pyCall(WithKeywords)(), helper function to invoke the callable

Matrix4D:

* hasScale(), check if there is any scale in the transformation. If so,
  further check if the scale is uniform or not. This will be used in
  future patch for Part::TopoShape to decide which type of transform to
  apply.

Placement:

* translate/rotate(), new convenience API

Rotation:

* isSame/multiVec(), new convenience API

Polygon2d:

* Intersect(), GetCenter(), new convenience API.

FlagToggler:

* New class for exception safe flag toggling, similar to StateLocker
  but with template (actually, FlagToggler is added earlier by me).

BitsetLocker:

* New class for exception manipulation of a std::bitset variable.
2019-08-17 14:52:08 +02:00
wmayer
8345b0c1c3 add method multVec to MatrixPy class for better consistency 2019-01-22 15:57:10 +01:00
wmayer
1106404b1e implement true divide handler of the number protocol for Quantity 2018-10-27 15:27:27 +02:00
wmayer
c2fa8d02b4 fixes #0002419: Matrix rotation and Units compatibility 2017-10-25 13:50:06 +02:00
looooo
2f467da92a py3: base: repair compile-fail 2017-05-21 12:35:41 +02:00
Yorik van Havre
0bc16d353b py3: Base: files I-R ported to python3
PyObjectBase.cpp and PyObjectBase.h not included
issue 0000995
2017-05-18 16:00:05 +02:00
wmayer
39e589a4d7 fix -Wextra in FreeCADBase 2016-09-21 15:02:02 +02:00
wmayer
65f72237d7 Fix element A41 in 4x4 Matrix class 2015-12-10 17:35:54 +01:00
Sebastian Hoogen
af50cbf964 fixes #0001422: Subclass Exception
inherit Base.FreeCADError form RuntimeError
inherit Part.OCCError from Base.FreeCADError
inherit OCCDomainError from Part.OCCError
inherit OCCRangeError from Part.OCCError
inherit OCCConstructionError from OCCDomainError
inherit OCCDimensionError from OCCDomainError
Added PY_CATCH_OCC macro
replace PyExc_Exception
use FreeCADError in makeWireString
catch exception in BSplineCurve.increasedegree
2014-09-17 11:15:56 +02:00
wmayer
fafe85ba86 + fixes #0001418: Base::Matrix4d can't invert rotoinversion 2014-02-17 16:42:28 +01:00
wmayer
ed4729dac1 + extend number protocol 2014-02-14 13:53:47 +01:00
wmayer
8c354c7635 + extend number protocol 2014-02-14 13:45:56 +01:00
wmayer
438b6d4681 + extend number protocol 2014-02-14 12:46:30 +01:00
wmayer
f82628ca35 Make Python API more pythonic 2013-10-09 21:16:04 +02:00
wmayer
a7164046b4 0000856: Wrong inverse of a matrix 2012-10-22 16:21:27 +02:00
wmayer
dcb5ebbd70 Expose Matrix4D::analyse to python 2012-06-13 11:02:24 +02:00
wmayer
74cf9b4521 Return a NotImplemented exception when comparing Matrix or Vector with other types 2012-03-13 08:49:01 +01:00
wmayer
1cffe8429e 0000623: Matrix and Vector API extension 2012-03-12 11:13:58 +01:00
wmayer
9b49861cd6 0000623: Matrix and Vector API extension 2012-03-11 16:32:08 +01:00
wmayer
6e4f689079 0000623: Matrix and Vector API extension 2012-03-11 16:22:17 +01:00