Commit Graph

31 Commits

Author SHA1 Message Date
rdb 7560a1edd1 Merge branch 'release/1.10.x' 2024-10-30 13:42:21 +01:00
rdb 64454b1c9f Replace direct uses of ob_type, which gives problems in nogil build 2024-10-30 13:17:11 +01:00
rdb ad57762e9f Merge branch 'release/1.10.x' 2024-08-07 22:34:08 +02:00
rdb 8c8cbeea98 linmath: For repr, use as much precision as needed for roundtrip
Will use as few digits as is necessary to ensure that round-tripping the same number with pstrtod will result in the same vector.  This prevents eg. 3.3 formatting as 3.29999995 while still ensuring that two floats that are not equal (other than nan) are guaranteed to have a different string representation.

Uses a hacky pftoa function that can be abandoned as soon as we adopt C++17, which has to_chars that does what we need

Fixes #1671
2024-08-07 17:24:11 +02:00
rdb 73360393df Switch use of Py_INCREF to new Py_NewRef function
This is more idiomatic, simplifies the code, makes it easier to port to eg. HPy later on, and makes it easier to use the limited ABI (where it can be optimized to a tail call) later on

A polyfill is provided for compatibility with Python versions 3.8 and 3.9
2024-01-29 17:57:53 +01:00
rdb a4ea476cce linmath: Implement read-only buffer protocol support for vectors
Fixes #1194
2021-10-27 10:53:35 +02:00
rdb f27e9b2a86 linmath: Add __rmul__ operator for left scalar multiplication
Fixes #1048
2021-07-05 14:16:55 +02:00
rdb 2386e80448 linmath: Backport support for floor division to 1.10
Backport of 8944737844

(Also fixes return type of `__pow__` to always be derived class)
2021-06-01 10:45:56 +02:00
rdb 4e0e945279 linmath: Backport round(), floor(), ceil() support for vectors
See #821
2021-06-01 10:23:58 +02:00
rdb 8944737844 linmath: Support floor division for vector types
Also fix __pow__ so that it returns the derived type, not the base type
2021-02-22 20:01:30 +01:00
rdb a1b2d5b8dc Make use of new function call methods in Python 3.9 2020-12-12 17:28:21 +01:00
rdb d799a09002 cleanup: Remove support for EOL versions of Python
Fixes #905
2020-04-26 20:07:56 +02:00
Leandro (Cerberus1746) Benedet Garcia 12f8363284 linmath: support round(), floor(), ceil() in vector classes
Closes #821
2019-12-30 03:06:00 +01:00
Sam Edwards 7790f8429d general: Fully qualify header references into the std namespace
Closes #341
2018-06-07 10:35:12 +02:00
Sam Edwards e2b4353800 general: Replace NULL (and 0 as pointer) with C++11 nullptr
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
rdb fb78fe6e2a Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code 2016-05-07 00:45:26 +02:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb 18ad6d1543 Replace many int params with size_t params where appropriate, and work towards fixing type conversion warnings 2015-10-07 18:58:26 +02:00
rdb 8ecf6a7b9f Fix getattr() and hasattr() of vector classes when invalid attribute name is used 2015-06-21 15:33:42 +02:00
rdb 3371df8403 Fix tp_compare, better __repr__/__str__ handling 2015-03-25 19:36:35 +01:00
rdb 4dc4c9eb3d Merge branch 'master' into interrogate-overhaul
Conflicts:
	dtool/src/interrogate/functionRemap.cxx
	dtool/src/interrogate/interfaceMakerPythonNative.cxx
	panda/src/event/pythonTask.cxx
	panda/src/express/multifile.h
	panda/src/express/pointerToArray.I
	panda/src/mathutil/config_mathutil.N
	panda/src/putil/config_util.N
	panda/src/putil/doubleBitMask.h
2015-02-11 14:41:58 +01:00
rdb cbd70ad8af Move all Python bindings out of core DLLs into the .pyd files. 2015-02-10 14:30:51 +01:00
rdb 6db5d0dc11 Huge cppparser and interrogate overhaul, bringing:
* Better support for typedefs
* Same code should compile for both 32-bit and 64-bit
* C++11 typed enum support
* Synthesize __setitem__ when operator [] returns reference
* Rewrite coerce system to have better performance
* Change semantics of __getattr__ and __setattr__ to match
  Python's, add __getattribute__, __delattr__ and __delitem__
* Improve performance of slot functions a bit more
* Reduce memory overhead of type system
* Some support for wrapping arrays of numeric types
* C++11 character type support in cppparser
* Chars are handled as strings of length 1
* Template functions for CreatePyInstance that use runtime type map
* More functions from dtool as extension functions
* Code cleanup
2014-12-30 16:43:52 +01:00
rdb 5dae464394 Add integer vectors. Also add __pow__ operator to vectors. 2014-06-11 18:01:50 +00:00
rdb cc3bae7e76 Big interrogate cleanup, new extension system, add __iter__ support, add buffer protocol support 2013-09-17 10:11:43 +00:00
David Rose c5c21a566a UnalignedLVecBase etc, remove lerp etc, moving towards Eigen on win32 2011-12-18 16:30:31 +00:00
David Rose 33b9a1e1cf integrate Eigen 2011-12-16 14:17:48 +00:00
David Rose 4785161374 squelch some more compiler warnings 2011-06-18 00:16:48 +00:00
rdb 61cfd40824 fix an oops 2011-06-03 09:11:12 +00:00
rdb 99ef646132 Remove the treacherous NDEBUG markers 2011-03-11 19:58:48 +00:00
rdb c32b599370 Port linmath classes to the new extension system 2011-01-03 09:02:23 +00:00