]>
git.tdb.fi Git - libs/math.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Mikko Rasa [Fri, 21 Nov 2014 12:38:55 +0000 (14:38 +0200)]
Convert the geometry part to use the new vector slicing API
Everything being templates makes catching subtle compilation errors a bit
hard.
Mikko Rasa [Thu, 13 Nov 2014 21:18:47 +0000 (23:18 +0200)]
Clearer API for slicing and dicing vectors, and also matrices
Mikko Rasa [Fri, 31 Oct 2014 08:08:04 +0000 (10:08 +0200)]
Always pivot rows when inverting for better numerical stability
Mikko Rasa [Wed, 15 Oct 2014 21:04:53 +0000 (00:04 +0300)]
Add an empty flag to BoundingSphere
Useful for distinguishing a bounding sphere that has nothing in it from
one that contains a single point.
Mikko Rasa [Wed, 11 Sep 2013 07:15:02 +0000 (10:15 +0300)]
Add a bounding sphere class
Shapes don't produce bounding spheres yet, but it can be used for other
purposes.
Mikko Rasa [Thu, 5 Sep 2013 15:24:19 +0000 (18:24 +0300)]
Add missing return statements
Mikko Rasa [Sat, 25 May 2013 23:14:45 +0000 (02:14 +0300)]
Negation contains a pointer and needs copy c'tor and operator=
Mikko Rasa [Fri, 24 May 2013 06:06:29 +0000 (09:06 +0300)]
Put ray and bounding box transformations in AffineTransformation
This makes them easier to use elsewhere, in cases where creating a
TransformedShape would be overkill.
Mikko Rasa [Thu, 23 May 2013 19:26:28 +0000 (22:26 +0300)]
Take care not to count initialization values when finding min/max
Mikko Rasa [Thu, 23 May 2013 09:12:54 +0000 (12:12 +0300)]
Add testcases for BoundingBox
Mikko Rasa [Thu, 23 May 2013 09:01:07 +0000 (12:01 +0300)]
Some bounding box logic fixes
Mikko Rasa [Wed, 22 May 2013 20:03:07 +0000 (23:03 +0300)]
Make CompositeShape::get_intersections work with null points
This was a bit tricky, since it's necessary to inspect the points returned
by component shapes to see if they're actually on the composite surface.
To that end, a temporary buffer is allocated. This is most likely used in
interactive point-and-pick situations, so the performance loss should not
be significant.
Mikko Rasa [Wed, 22 May 2013 20:02:00 +0000 (23:02 +0300)]
Implement the missing assignment operator in CompositeShape
Also rewrite the copy constructor in a slightly different way.
Mikko Rasa [Wed, 22 May 2013 19:56:21 +0000 (22:56 +0300)]
Put the common #includes in shape.h
Almost every shape needs these, so it's not worth it to try and avoid
unnecessary headers in the base class.
Mikko Rasa [Wed, 22 May 2013 19:48:45 +0000 (22:48 +0300)]
Fix a case in ExtrudedShape with certain ray parameters
A ray starting outside of the length of the shape and pointing away from
it caused a local ray with a negative limit to be constructed.
Mikko Rasa [Wed, 22 May 2013 17:34:01 +0000 (20:34 +0300)]
Implement bounding boxes with a separate class
This solves several problems with them, including positioning off the
origin and bounding boxes of negated shapes.
Mikko Rasa [Wed, 22 May 2013 13:14:16 +0000 (16:14 +0300)]
Rewrite composite shape vector constructors with iterator ranges
Besides the issue of favoring one container type over others, constness
of the contents causes it to be a different, incompatible type. Iterators
solve this in an elegant way.
Mikko Rasa [Wed, 22 May 2013 12:31:57 +0000 (15:31 +0300)]
Add a HalfSpace shape
Mikko Rasa [Tue, 21 May 2013 18:41:15 +0000 (21:41 +0300)]
Make the check_intersection function non-virtual
Almost all shapes were implementing it with a call to get_intersections,
so might as well make the base class do that. Performance loss is likely
negligible.
Mikko Rasa [Tue, 21 May 2013 17:53:09 +0000 (20:53 +0300)]
Properly sort intersection points for complex shapes
Code structure in simpler shapes have been adjusted to keep it similar.
Mikko Rasa [Tue, 21 May 2013 15:39:37 +0000 (18:39 +0300)]
Add shapes representing set operations
Mikko Rasa [Tue, 21 May 2013 13:40:04 +0000 (16:40 +0300)]
Miscellaneous fixes, mostly stylistic
Mikko Rasa [Tue, 21 May 2013 13:35:40 +0000 (16:35 +0300)]
Verify that parameters make sense
Mikko Rasa [Tue, 21 May 2013 13:32:49 +0000 (16:32 +0300)]
Math function usage fixes
Add using declarations and #includes where needed, and clean up some
unnecessary ones. abs() is particularly annoying, as the int version
easily gets into the global namespace and doesn't give a warning if
used with floats or doubles.
Mikko Rasa [Tue, 21 May 2013 13:19:56 +0000 (16:19 +0300)]
Transform normals correctly
Mikko Rasa [Mon, 20 May 2013 20:12:04 +0000 (23:12 +0300)]
Add a class for extruded shapes
Mikko Rasa [Mon, 20 May 2013 16:35:31 +0000 (19:35 +0300)]
Add a distance limit to Ray
Mikko Rasa [Mon, 20 May 2013 16:33:20 +0000 (19:33 +0300)]
Record distance in SurfacePoint
Mikko Rasa [Mon, 20 May 2013 16:12:24 +0000 (19:12 +0300)]
Give Vector constructors from one higher/lower dimension
These replace the augment/reduce_vector functions, which were in a rather
odd place.
Mikko Rasa [Sun, 19 May 2013 19:14:39 +0000 (22:14 +0300)]
Add basic description for all classes
Mikko Rasa [Sun, 19 May 2013 18:32:09 +0000 (21:32 +0300)]
Add more collision check functions for shapes
Mikko Rasa [Sun, 19 May 2013 18:25:47 +0000 (21:25 +0300)]
Use a cached inverse transformation in TransformedShape
Mikko Rasa [Sun, 19 May 2013 18:14:28 +0000 (21:14 +0300)]
Add multiplication and inversion operations to AffineTransformation
Mikko Rasa [Sun, 19 May 2013 18:08:13 +0000 (21:08 +0300)]
Some more member mis-use fixes
Mikko Rasa [Sun, 19 May 2013 17:38:22 +0000 (20:38 +0300)]
Don't qualify potentially overloaded functions with the std namespace
Instead put a using std::func before the call. This makes things work if
the template argument is a user-defined type with these functions defined
in another namespace.
Mikko Rasa [Sun, 19 May 2013 16:27:22 +0000 (19:27 +0300)]
TransformedShape should derive from Shape
Mikko Rasa [Sat, 18 May 2013 18:33:37 +0000 (21:33 +0300)]
Add four-component members and constructor to Vector
Mikko Rasa [Sat, 18 May 2013 18:32:52 +0000 (21:32 +0300)]
Fix AffineTransformation::translate
Translation coordinates go in the last column, not in the last row.
Mikko Rasa [Sat, 18 May 2013 18:31:41 +0000 (21:31 +0300)]
Fix Matrix template copy constructor
A different version of the template is a different class, so the data
member can't be accessed directly.
Mikko Rasa [Fri, 17 May 2013 11:12:38 +0000 (14:12 +0300)]
Improvements to the Angle class
Add comparison operators and wrapping functions.
Use turn instead of circle in the factory functions and provide an
interface to and from turns.
Mikko Rasa [Fri, 17 May 2013 10:55:57 +0000 (13:55 +0300)]
Redesign the Vector interface
The constructors from two and three components are now provided directly
by the Vector template, so Vector2 and Vector3 are no longer needed. In
addition, two- and three-component vectors now have named members.
Mikko Rasa [Wed, 15 May 2013 07:28:00 +0000 (10:28 +0300)]
Some basic test cases
Mikko Rasa [Wed, 15 May 2013 07:27:06 +0000 (10:27 +0300)]
Beginnings of a geometry library
Mikko Rasa [Tue, 14 May 2013 20:11:38 +0000 (23:11 +0300)]
Add a Vector2 class
Mikko Rasa [Tue, 14 May 2013 18:53:55 +0000 (21:53 +0300)]
Use the correct multiplication operator
Mikko Rasa [Tue, 14 May 2013 18:53:05 +0000 (21:53 +0300)]
Move some simple function definitions inside the class declarations
Mikko Rasa [Mon, 13 May 2013 21:11:38 +0000 (00:11 +0300)]
Another big batch of stuff
This includes most of the missing things.
Mikko Rasa [Sat, 27 Apr 2013 17:05:11 +0000 (20:05 +0300)]
Minor fixes
Mikko Rasa [Sat, 27 Apr 2013 16:51:08 +0000 (19:51 +0300)]
Rename the library to mspmath and make linal a sublibrary
Mikko Rasa [Thu, 30 Aug 2012 20:41:33 +0000 (23:41 +0300)]
Basic vector and matrix classes
Some classes are still incomplete