Commit Graph

53 Commits

Author SHA1 Message Date
rdb 92bdaed4d4 linmath: Fix regression with LVecBase4 in #1453 / 87b5aa9
LVecBase4 was no longer trivially copyable as of that change
2023-02-20 19:02:54 +01:00
WMOkiishi 87b5aa9d1f Replace "unaligned" linear algebra classes with simple typedefs 2023-02-06 18:35:18 +01:00
Frang 275fe32079
create PY_EXTENSION and friends (#1415) 2023-01-04 20:54:53 +01:00
Cary Sandvig 3247903d7b add more HAVE_PYTHON
Also add some more #endif comments.
2022-12-23 13:38:46 -05:00
rdb cee1de7338 general: Get rid of some coerce constructors where they make no sense 2022-10-20 21:00:05 +02:00
rdb 46c1b887ea Fix heap alignment with SSE2 on 32-bit Windows by inheriting MemoryBase
Fixes #510
2022-03-02 09:57:44 +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 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
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
rdb 9fad3dba60 general: remove macros for compatibility with non-C++11 compilers
Now that we require MSVC 2015, we no longer need all this nonsense, so we can write cleaner code.
2018-05-23 23:33:05 +02:00
rdb 0281f306e1 express: add PointerToArray.count() 2017-12-24 15:09:21 +01:00
rdb 8ed85c80c8 linmath: permit single-argument/fill value for UnalignedLVecBase4 2017-10-06 23:59:17 +02:00
rdb 41d26284d7 Fix various compilation issues on Mac.
Work around bugs in Apple Clang that ships with XCode 4 with C++11 by disabling constexpr
Use move() instead of std::move()
It also looks like we'll have to continue using pystub for tools that use libp3interrogatedb for now.
2017-01-08 17:17:56 -05:00
rdb 245d1241c9 Restore assign() for vector classes 2016-03-28 22:36:31 +02:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
tobspr 8dfef99915 Fix swizzle masks on vector types 2016-02-07 19:45:01 +01:00
tobspr a9e18f9d24 Improve Vector implementations: - Remove unecessary assignment operators - Add normalize() method - Use properties for certain swizzle masks - Add constexpr where appropriate 2016-01-03 22:02:00 +01: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 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 cb66a51bbc fmin and fmax should be const methods 2014-12-18 16:58:03 -05:00
David Rose 5d5150c5aa componentwise_mult() 2014-10-28 21:46:15 +00: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 42e8f806f1 leave lvecbase2/3 and lmatrix3 unaligned; it's so much cleaner 2011-12-19 14:17:26 +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 fd75c89949 whoops, overloaded LINMATH_ALIGN by mistake 2011-12-18 02:03:58 +00:00
David Rose 33b9a1e1cf integrate Eigen 2011-12-16 14:17:48 +00:00
David Rose 8ebd82fbcc support cross-compatibility of 32-bit and 64-bit bam files 2011-10-31 22:24:35 +00:00
rdb c32b599370 Port linmath classes to the new extension system 2011-01-03 09:02:23 +00:00
rdb defc9bf266 Add swizzling/write masks to the Point classes. Also, use the PySequence interface for write masks. Although totally pointless, I can now do v.xy = ['inf', 'nan'] or v.wxzyw = range(5) . 2010-12-23 21:48:50 +00:00
rdb 8cd721b150 Write masks and swizzle masks for all vecbase and vector classes (e.g. ability to do v.xy *= 1.5 or v.wz = Vec2(1, 2) and stuff) 2010-12-21 11:09:43 +00:00
rdb e1347210f6 Swizzle masks for LVecBase* (ability to access components as properties like vec.x, but also like vec.xyz or vec.zyxw in any order). I'll do write masks tomorrow or so 2010-12-20 21:49:29 +00:00
David Rose 816ddc0387 low-level support for python copy and pickle modules 2009-12-10 01:09:06 +00:00
David Rose 12cc0232fc add LVecBase3::project, etc., suggested by nik 2009-04-10 18:32:38 +00:00
David Rose 26d832b486 fix compiler warnings 2008-11-10 20:23:40 +00:00
David Rose 58e0537e3c wide interrogate improvements: sequence protocol, MAKE_SEQ, __setitem__, and parameter coercion 2008-11-07 21:12:42 +00:00
David Rose fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
Zachary Pavlov 220d33e006 okay, this is going to be a big commit. The basic idea here is to add transparent defines to allow for directory based dlls later. This will let us build tau again. ugggg 2007-07-20 23:02:51 +00:00
David Rose 8a78fffd8f multithreading optimizations, tau profiler, related changes 2006-04-05 19:36:05 +00:00
Josh Yelon 947294fe99 Added fmax and fmin operators to vector 2006-02-07 20:18:07 +00:00
David Rose 09878b64b0 use python_repr() to make linmath pickleable 2005-09-14 00:09:18 +00:00
David Rose dbb24d9cc9 phash_map, etc. 2004-10-02 05:07:16 +00:00
David Rose 843c0331ae update license, change remaining local #includes to use quotation marks 2004-02-13 19:27:33 +00:00
Dave Schuyler 078f4c50c5 small changes and added add_x() to vectors 2003-09-05 04:31:19 +00:00
cxgeorge da9b315099 avoid name collisions with stlport 2001-12-10 02:52:47 +00:00
David Rose 2f4e207edb Update copyright header 2001-05-25 21:27:38 +00:00
David Rose fcb24f02ef remove tab characters 2001-05-25 15:56:49 +00:00