Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 624 lines (430 sloc) 21.264 kB
ab34563 @TheRiver Can now update the pitch/roll/yaw conventions.
authored
1 2012-07-06 Rudy Neeser <rudy.neeser@gmail.com>
2
7a137ed @TheRiver Added argument checking to SPLINE-INTERPOLATION
authored
3 * spline-interpolation.lisp (spline-interpolation): Added some
4 error checking for unwanted lists.
5
ab34563 @TheRiver Can now update the pitch/roll/yaw conventions.
authored
6 * rotations.lisp (rotation-z): Renamed ROLL-MATRIX.
7 (roll-matrix): A synonym for ROTATION-Z
8 (rotation-y): Renamed YAW-MATRIX
9 (yaw-matrix): A synonym for ROTATION-Y
10 (rotation-x): Renamed PITCH-MATRIX
11 (pitch-matrix): A synonym for ROTATION-X
12 (*rotation-naming-conventions*): Provides various mappings between
13 the roll/pitch/yaw functions, and rotations.
14 (set-rotation-naming-convention): Rebinds the roll/pitch/yaw
15 functions to the different axes.
16
accef20 @TheRiver Converted repository to git.
authored
17 2012-06-11 Rudy Neeser <rudy.neeser@gmail.com>
18
19 * README: Renamed to README.md
20
21 * all: Converted repository to git.
22
ebc34f7 @TheRiver * transform.lisp (summation-transformer): Returns a function
authored
23 2011-09-20 Rudy Neeser <rudy.neeser@gmail.com>
24
25 * transform.lisp (summation-transformer): Returns a function
26 that will its arguments together.
27
28 2011-09-17 Rudy Neeser <rudy.neeser@gmail.com>
29
30 * transform.lisp: Added a file for code handling transformations
31 of other objects.
32 (transform): A generic method for transforming objects. Have added
33 a version to handle lists, functions as transformers, vectors and
34 splines.
35
92e106a @TheRiver * package.lisp (#:l-math): Export B-SPLINE-POINTS symbol.
authored
36 2011-09-16 Rudy Neeser <rudy.neeser@gmail.com>
37
38 * package.lisp (#:l-math): Export B-SPLINE-POINTS symbol.
39
a3b40e8 @TheRiver Speed updates for interpolation.
authored
40 2011-08-30 Rudy Neeser <rudy.neeser@gmail.com>
41
42 * spline.lisp (print-object): Better print out splines.
43
a908b67 @TheRiver * spline-interpolation.lisp (spline-interpolation): Now allows for
authored
44 2011-08-02 Rudy Neeser <rudy.neeser@gmail.com>
45
46 * spline-interpolation.lisp (spline-interpolation): Now allows for
47 closing curves.
48
49 * spline.lisp (initialize-instance): Added some better error
50 reporting.
51
57c7f94 @TheRiver * spline-interpolation.lisp (spline-interpolation): Took out a
authored
52 2011-08-01 Rudy Neeser <rudy.neeser@gmail.com>
53
54 * spline-interpolation.lisp (spline-interpolation): Took out a
55 constant of proportionality which Farin says to use but makes the
56 interpolation not converge.
57
58 * spline.lisp (initialize-instance): Added a centripetal
59 parameterisation option to the b-spline initialiser.
60
61 * basis.lisp (ratio-parameterisation): Have abstracted away
62 chord-length parameterisation into a general function that can
63 take an arbitrary distance metric.
64 (centripetal-parameterisation): Have provided a new
65 parametrisation method based on the square root of distance
66 ratios.
67
9684243 @TheRiver * spline-interpolation.lisp (spline-interpolation): Added a method
authored
68 2011-07-30 Rudy Neeser <rudy.neeser@gmail.com>
69
a74a269 @TheRiver Added chord length parameterisation.
authored
70 * spline.lisp (initialize-instance): Added chord length
71 parameterisation, a non-uniform parameterisation.
72
73 * basis.lisp: Moved the b-spline basis code into basis.lisp from
74 utility.lisp.
75
9684243 @TheRiver * spline-interpolation.lisp (spline-interpolation): Added a method
authored
76 * spline-interpolation.lisp (spline-interpolation): Added a method
77 that will take a series of points and return a b-spline that
78 interpolates all of the points.
79
80 * l-math.asd (:l-math): bumped the version number in preparation
81 for a release.
82
27980d8 @TheRiver A working non-uniform b-spline implementation.
authored
83 2011-07-29 Rudy Neeser <rudy.neeser@gmail.com>
84
8367626 @TheRiver Some simple speedup work.
authored
85 * utility.lisp (b-spline-knots): The knot data structure now
86 has a boolean to indicate whether there are multiplicities or not.
87 (get-ith-knot): Has an easy speedup for when there are no
88 multiplicities.
89
27980d8 @TheRiver A working non-uniform b-spline implementation.
authored
90 * spline.lisp (b-spline): Added a B-SPLINE class, which represents
91 non-uniform b-splines, although it has much code to speed up the
92 uniform cubic and quadratic cases.
93
b4e6a1a @TheRiver 2011-07-05 Rudy Neeser <rudy.neeser@gmail.com>
authored
94 2011-07-05 Rudy Neeser <rudy.neeser@gmail.com>
95
96 * spline.lisp (cubic-bezier-curve): Renamed BEZIER-CURVE to
97 CUBIC-BEZIER-CURVE.
98 (bezier-curve): Created a new BEZIER-CURVE class which uses
99 bernstein polynomials directly to calculate the curve. It is also
100 much faster than the matrix form, CUBIC-BEZIER-CURVE.
101
102 * utility.lisp (evaluate-bernstein-polygnomial): A way to evaluate
103 the bernstein polynomials.
104 (create-bernstein-polynomial): A function for creating an instance
105 of a bernstein polynomial.
106
107 * generics.lisp (zerop): Added an instance for numbers.
108
109 2011-07-04 Rudy Neeser <rudy.neeser@gmail.com>
110
111 * utility.lisp (#:l-math): Added a file for utility functions.
112 (factorial): Added a factorial function.
113 (binomial-coefficient): Calculates binomial-coefficients using
114 the slower factorial definition.
115
56b7a3f @TheRiver Added some better error reporting.
authored
116 2011-06-20 Rudy Neeser <rudy.neeser@gmail.com>
117 * spline.lisp (evaluate): Some better error reporting.
b73cfda @TheRiver * interpolate.lisp (linear-interpolation): Modified this to use a
authored
118
96b0ec2 @TheRiver Merging changes.
authored
119 2011-06-11 Rudy Neeser <rudy.neeser@gmail.com>
b73cfda @TheRiver * interpolate.lisp (linear-interpolation): Modified this to use a
authored
120 * interpolate.lisp (linear-interpolation): Modified this to use a
96b0ec2 @TheRiver Merging changes.
authored
121 more standard linear interpolation form between points.
b73cfda @TheRiver * interpolate.lisp (linear-interpolation): Modified this to use a
authored
122
bbb9fb7 @TheRiver * spline.lisp (coefficient-matrix): Made an easy way to find the
authored
123 2011-06-09 Rudy Neeser <rudy.neeser@gmail.com>
124
125 * spline.lisp (coefficient-matrix): Made an easy way to find the
126 polynomial coefficients that control the shape of the splines /
127 curves.
128
a1d6b83 @TheRiver * spline.lisp (evaluate): Performs some error checking to ensure
authored
129 2011-06-08 Rudy Neeser <rudy.neeser@gmail.com>
130
131 * spline.lisp (evaluate): Performs some error checking to ensure
132 that evaluate is not called on a spline with no geometry.
133
41d82ed @TheRiver * spline.lisp (matrix-spline): Added a class for splines
authored
134 2011-06-07 Rudy Neeser <rudy.neeser@gmail.com>
135
136 * spline.lisp (matrix-spline): Added a class for splines
137 represented using a basis matrix.
138 (evaluate): Added a generic method for evaluating splines.
139 (spline-geometry): Added a generic method for accessing the
140 geometry making up a spline.
141 (set-spline-geometry): Sets the geometry making up a spline
142 (last-shared-spline): A class that represents splines for which
143 each segment shares the last geometry of the previous segment.
144 (three-shared-spline): A class that represents splines for which
145 each segment shares the last three bits of geometry from the
146 previous segment.
147 (hermite-curve): A hermite curve class.
148 (bezier-curve): A Bézier curve class.
149 (unrbs-spline): a uniform, non-rational b-spline class.
150 (catmull-rom-spline): A catmull-rom class.
84aa137 @TheRiver Fixed some minor bugs.
authored
151 (maximum-parameter): A method that will return the maximum value
152 that a parameter may take.
41d82ed @TheRiver * spline.lisp (matrix-spline): Added a class for splines
authored
153
154 * vector.lisp (length): Allowed LENGTH to work on simple arrays.
155
156 * conditions.lisp (spline-geometry-error): Added an error
157 condition for spline geometry data.
158
be6f0d8 @TheRiver Updated copyright date.
authored
159 2011-06-06 Rudy Neeser <rudy.neeser@gmail.com>
521cac8 @TheRiver Working on a spline framework.
authored
160
161 * spline.lisp (spline): Added a class for managing parametric
162 curves.
163
164 * basis.lisp: Added a file and some functions for producing
165 standard basis matrices for various parametric curves and splines.
be6f0d8 @TheRiver Updated copyright date.
authored
166
167 * *.lisp: Updated copyright date.
168
24de6e5 @TheRiver vector.lisp (vector=): Changing the user of lm:- to cl:- speeds
authored
169 2010-11-04 Rudy Neeser <rudy.neeser@gmail.com>
170
171 * vector.lisp (vector=): Changing the user of lm:- to cl:- speeds
172 up code.
173
60e0f96 @TheRiver tests.lisp (test-dimensions): Added the missing
authored
174 2010-11-02 Rudy Neeser <rudy.neeser@gmail.com>
175
690a888 @TheRiver operations.lisp (c+): Added a method so that scalar values can
authored
176 * operations.lisp (c+): Added a method so that scalar values can
177 be added to a matrix (it is added to each element).
178 (c-): Added a method so that scalar values can be subtracted from
179 a matrix, and a method to allow a matrix to be "subtracted" from a
180 scalar value.
181 (c*): Added a method to allow a matrix to be multiplied by a
182 scalar value.
183 (c/): Added a method to allow a matrix to be divided by a scalar,
184 and vice versa.
185
60e0f96 @TheRiver tests.lisp (test-dimensions): Added the missing
authored
186 * tests.lisp (test-dimensions): Added the missing
187 &allow-other-keys argument.
188
189 * operations.lisp (c*): Ensure that dimensions are tested properly
190 when using non-square matrices.
191
4fcb7f7 @TheRiver matrix.lisp (make-matrix): Ensure that the initial-elements are
authored
192 2010-10-29 Rudy Neeser <rudy.neeser@gmail.com>
193
194 * matrix.lisp (make-matrix): Ensure that the initial-elements are
195 converted to double-floats as needed.
196
278197b @TheRiver random.lisp (make-random-vector): Ensure that the type placed
authored
197 2010-10-20 Rudy Neeser <rudy.neeser@gmail.com>
198
199 * random.lisp (make-random-vector): Ensure that the type placed
200 into the created vector is a double-float.
201
98d8350 @TheRiver * vector.lisp (print-object): Have vectors print their identity in
authored
202 2010-10-16 Rudy Neeser <rudy.neeser@gmail.com>
203
204 * vector.lisp (print-object): Have vectors print their identity in
205 PRINT-OBJECT.
206
30100df @TheRiver * operations.lisp (c-): Added the ability to subtract a constant
authored
207 2010-09-16 Rudy Neeser <rudy.neeser@gmail.com>
208
629a587 @TheRiver * rotations.lisp (roll-by, yaw-by, pitch-by): Added functions to
authored
209 * rotations.lisp (roll-by, yaw-by, pitch-by): Added functions to
210 easily rotate vectors without explicitly creating rotation
211 matrices.
212
30100df @TheRiver * operations.lisp (c-): Added the ability to subtract a constant
authored
213 * operations.lisp (c-): Added the ability to subtract a constant
214 to a vector, or to "subtract" a vector from a constant.
215
22577cf @TheRiver * operations.lisp (c+): Added the ability to add a constant to a
authored
216 2010-09-15 Rudy Neeser <rudy.neeser@gmail.com>
217
218 * operations.lisp (c+): Added the ability to add a constant to a
219 vector.
220
9fd505b @TheRiver Added a bilinear-interpolation function.
authored
221 2010-09-14 Rudy Neeser <rudy.neeser@gmail.com>
222
223 * interpolate.lisp (bilinear-interpolation): Added a method to
224 perform bilinear-interpolation.
225
5ab9832 @TheRiver * vector.lisp (elt): Coerces the new value to a double in the
authored
226 2010-05-20 Rudy Neeser <rudy.neeser@gmail.com>
227
b7bfbd3 @TheRiver Version bump.
authored
228 * l-math.asd (:l-math): Version bump.
229
888c38b @TheRiver * vector.lisp (x,y,z,w): Ensure that the setf-expanders for these
authored
230 * vector.lisp (x,y,z,w): Ensure that the setf-expanders for these
231 forms coerce the new value to a double.
232
e026823 @TheRiver Fixed matrix-elt
authored
233 * matrix.lisp (matrix-elt): Ensured that new elements are coerced
234 to double in the setf-expander.
235
5ab9832 @TheRiver * vector.lisp (elt): Coerces the new value to a double in the
authored
236 * vector.lisp (elt): Coerces the new value to a double in the
237 setf-expander.
238 (initialise-data): Ensure that the vector's elements are
239 initialised and set to double.
240 (make-vector): Ensure the the initial-elements are coerced to a
241 double.
242
243 * matrix.lisp (initialise-data): Ensure that the matrix elements
244 are initialised, and that the matrix is an appropriate type.
245
246 * generics.lisp (equivalent): Added an IGNORE statement to fix a
247 warning in CLISP
248
0a2e553 @TheRiver * scale.lisp (create-scale-matrix): Created a method to create
authored
249 2010-05-11 Rudy Neeser <rudy.neeser@gmail.com>
250
c96f223 @TheRiver * vector.lisp (to-homogenous): Added an implementation to
authored
251 * vector.lisp (to-homogenous): Added an implementation to
252 transform vectors represented as lists into homogenous
253 coordinates.
254 (to-homogenous): ditto for VECTOR objects
255
256 * generics.lisp (to-homogenous): Added a method for lifting
257 something into homogenous space.
258
61495a5 @TheRiver * vector.lisp (to-list): Added an implementation that will
authored
259 * vector.lisp (to-list): Added an implementation that will
260 transform vectors into lists.
261
262 * generics.lisp: Created a generic method that will transform
263 objects into lists.
264
265 * translation.lisp: Added a file for managing translation
266 matrices.
267
0a2e553 @TheRiver * scale.lisp (create-scale-matrix): Created a method to create
authored
268 * scale.lisp (create-scale-matrix): Created a method to create
269 non-uniform scales.
270 (create-uniform-scale-matrix): Returns a matrix that performs
271 uniform scaling.
272
273 * matrix.lisp (make-diagonal): A function that returns diagonal
274 matrices.
275
276 * scale.lisp: Added a new file to manage scale matrices.
277
d8dd691 @TheRiver Speed additions for vector arithmatic.
authored
278 2010-04-13 Rudy Neeser <rudy.neeser@gmail.com>
279
280 * operations.lisp (create-vector-operation-method): Updated so
281 that vector operations are performed using loops.
282
b56eee1 Updating VECTOR= performance.
Rudy Neeser authored
283 2010-04-12 Rudy Neeser <rudy.neeser@gmail.com>
284
c7662af @TheRiver Added ZEROP predicate.
authored
285 * matrix.lisp (zerop): Returns T iff all members of the matrix are
286 EQUIVALENT to zero.
287
b56eee1 Updating VECTOR= performance.
Rudy Neeser authored
288 * vector.lisp (vector=): Performed some optimisations to make
289 vector comparision quicker.
c7662af @TheRiver Added ZEROP predicate.
authored
290 (zerop): Added a method to test VECTORs and LISTs to see if all
291 their components are zero.
b56eee1 Updating VECTOR= performance.
Rudy Neeser authored
292
2b71597 Added a UNIFORM random number genarator.
Rudy Neeser authored
293 2010-04-06 Rudy Neeser <rudy.neeser@gmail.com>
294
295 * random.lisp (uniform): Added a method to create uniformly
296 distributed values.
297
8ce3d0c @TheRiver Fixed some bugs in the noise output.
authored
298 2010-03-06 Rudy Neeser <rudy.neeser@gmail.com>
299
300 * random.lisp (noise3): Fixed a bug: added absolute values to the
301 interpolation sub-function. Also, changed the use of TRUNCATE to
302 FLOOR to properly allow for negative values.
303
dc7de64 @TheRiver * vector-operations.lisp (centre-of-mass): Added a generic
authored
304 2010-03-05 Rudy Neeser <rudy.neeser@gmail.com>
305
306 * vector-operations.lisp (centre-of-mass): Added a generic
307 function to calculate the average of a group of points.
308
4207c35 @TheRiver random.lisp (noise3): A 3D perlin noise implementation.
authored
309 2010-02-27 Rudy Neeser <rudy.neeser@gmail.com>
310
4335ddc @TheRiver * random.lisp (noise3): Updated to test the given argument to
authored
311 * random.lisp (noise3): Updated to test the given argument to
312 ensure that it is a 3-vector.
313
314 * tests.lisp (etest-needed-vector-dimension): A helper macro for
315 testing required dimension sizes.
316 (test-dimensions): Added two methods that will test a lm:vector
317 and list to ensure that they have the required dimension.
318
4207c35 @TheRiver random.lisp (noise3): A 3D perlin noise implementation.
authored
319 * random.lisp (noise3): A 3D perlin noise implementation.
320 (initialize-noise3): Added a method to initialise the data used by
321 NOISE3.
322 (*perlin-gradients*, *perlin-permutations*): These store the data
323 needed for the perlin noise generator.
324 (draw-noise3-output): A functio that allows the user to output an
325 image of the perlin noise function.
326
327 * conditions.lisp (required-dimension-error): Added a new subclass
328 of dimension-error. Allows operations requiring specific
329 dimensions to report errors.
330
0754750 Fixed a bug with linear-interpolation.
Rudy Neeser authored
331 2010-02-23 Rudy Neeser <rudy.neeser@gmail.com>
332
333 * interpolate.lisp (between): Modifed to take numbers as
334 arguments.
335 (linear-interpolation): Fixed a bug in the method accepting
336 numbers as arguments.
337
c85c541 * random.lisp (normal): Added a function to create normally
Rudy Neeser authored
338 2010-02-22 Rudy Neeser <rudy.neeser@gmail.com>
339
340 * random.lisp (normal): Added a function to create normally
341 distributed values.
342 (make-random-vector): Added a function to create a vector filled
343 with random values.
344 (make-random-matrix): Added a function to create a matrix filled
345 with random data.
346
457ed0a interpolate.lisp (linear-interpolation): Added a method so that
Rudy Neeser authored
347 2010-02-19 Rudy Neeser <rudy.neeser@gmail.com>
348
dc094a7 @TheRiver Update to README file.
authored
349 * README (If): Updated the README file to discuss the changes to
350 LINEAR-INTERPOLATION
351
457ed0a interpolate.lisp (linear-interpolation): Added a method so that
Rudy Neeser authored
352 * interpolate.lisp (linear-interpolation): Added a method so that
353 this function can operate on numbers.
354
fe53af9 @TheRiver Made some minor updates to how the license is explained.
authored
355 2010-01-30 Rudy Neeser <rudy.neeser@gmail.com>
356
357 * LICENSE: Updated to ensure that the license is "GPL, version 3,
358 and later versions". This was originally intended, and is is the
359 text in each individual source file.
360
361 * README: Some minor updates relating to how the LICENSE is
362 explained.
363
aced12e @TheRiver Preparing for the first release. Have added a README file and various…
authored
364 2010-01-27 Rudy Neeser <rudy.neeser@gmail.com>
365
366 * matrix.lisp (matrix=): Added a function to compare matrix
367 objects.
6801e72 @TheRiver Added a DIMENSION implementation for matrices.
authored
368 (dimension): Added an implementation for MATRIX objects.
aced12e @TheRiver Preparing for the first release. Have added a README file and various…
authored
369
370 * generics.lisp (copy): Added an implementation that copies lists.
371 (equivalent): Added a generic function to test for equivalence
6801e72 @TheRiver Added a DIMENSION implementation for matrices.
authored
372 between two objects.
aced12e @TheRiver Preparing for the first release. Have added a README file and various…
authored
373
374 * vector.lisp (dimension): Renamed LENGTH to DIMENSION.
375 (length): Created a new LENGTH function that is an alias to
376 DIMENSION.
377 (negate!): Added this for lists.
378
1819536 Have provided licensing information.
Rudy Neeser authored
379 2010-01-26 Rudy Neeser <rudy.neeser@gmail.com>
380
381 * COPYING: Added a copy of the GPLv3.
382
383 * LICENSE: Added the beginnings of a file discussing licensing.
384
385 * README: Added the beginnings of a README file.
386
387 * vector-operations.lisp (dot-product): Dot product can now
388 operate on lists.
389 (euclidean-distance): Updated to work with lists.
390
d7b384f vector.lisp (normalise): Provided a version that operates on lists.
Rudy Neeser authored
391 2010-01-22 Rudy Neeser <rudy.neeser@gmail.com>
392
393 * vector.lisp (normalise): Provided a version that operates on
394 lists.
395 (normalise!): Provided a version that operates on lists.
396
b771b18 Added *equivalence-tolerance* global variable.
Rudy Neeser authored
397 2009-12-18 Rudy Neeser <rudy.neeser@gmail.com>
398
ceccc18 Fixed some small details: ChangeLog, and exported variable.
Rudy Neeser authored
399 * package.lisp (#:l-math): Exported *equivalence-tolerance*.
400
b771b18 Added *equivalence-tolerance* global variable.
Rudy Neeser authored
401 * tests.lisp (test-nonzero): Updated to
402 use *equivalence-tolerance*.
403
404 * vector.lisp (vector=): Updated to use *equivalence-tolerance*.
405
ceccc18 Fixed some small details: ChangeLog, and exported variable.
Rudy Neeser authored
406 * generics.lisp (*equivalence-tolerance*): Added a variable that
b771b18 Added *equivalence-tolerance* global variable.
Rudy Neeser authored
407 defines how similar objects should be before they are considered
408 equal.
409
80193bb Updated precision of ANGLE-BETWEEN.
Rudy Neeser authored
410 2009-12-16 Rudy Neeser <rudy.neeser@gmail.com>
411
282afba Modifed vector= to allow lists.
Rudy Neeser authored
412 * vector.lisp (vector=): Modifed to allow lists.
413
414 * matrix.lisp (matrix): Changed precision to double-float.
415
416 * vector.lisp (vector): Changed precision to double-float.
417
80193bb Updated precision of ANGLE-BETWEEN.
Rudy Neeser authored
418 * vector-operations.lisp (angle-between): Increased precision in
419 this function to use double-floats. Now the angle between 90
420 degree vectors is reported as exactly 90 degrees.
421
7876af8 * vector.lisp (norm): Added a version of NORM to operate on lists.
Rudy Neeser authored
422 2009-12-15 Rudy Neeser <rudy.neeser@gmail.com>
423
424 * vector.lisp (norm): Added a version of NORM to operate on lists.
425
426 * tests.lisp (test-nonzero): A test for methods to easily signal a
427 condition when its argument has a zero norm.
428
429 * conditions.lisp (zero-norm-error): Added a condition for
430 singaling when a vector argument is zero.
431
432 * vector-operations.lisp (angle-between): Added a function to
433 return the angle between two vectors.
434
57e366e Added MAKE-LOAD-FORM to the vector and matrix classes. Updated
Rudy Neeser authored
435 2009-11-04 Rudy Neeser <rudy.neeser@gmail.com>
436
8c9fb60 Updated TO-VECTOR.
Rudy Neeser authored
437 * vector.lisp (to-vector): Speed up TO-VECTOR by falling through
438 if the asked for dimension is the same as that of the given
439 object.
440
57e366e Added MAKE-LOAD-FORM to the vector and matrix classes. Updated
Rudy Neeser authored
441 * matrix.lisp (matrix): Updated the matrix to not store row and
442 column information separately. Added separate MATRIX-ROWS and
443 MATRIX-COLS methods to return these values.
444
445 * vector.lisp (vector): Added an :initarg and :type for the vector
446 DATA slot.
447
448 * matrix.lisp (make-load-form): Created a method for serialising
449 matrix object.
450
451 * vector.lisp (vector): Added a documentation string.
452 (make-load-form): Created a method for serialising vector objects.
453
1d60097 Minor change to let lists work better.
Rudy Neeser authored
454 2009-09-11 Rudy Neeser <rudy.neeser@gmail.com>
455
456 * vector.lisp (elt): Returns the element of a list, as though it
457 were an array.
458
b3bcbcb Updated TO-VECTOR so that it can convert vectors between different di…
Rudy Neeser authored
459 2009-09-10 Rudy Neeser <rudy.neeser@gmail.com>
460
e579587 Added the BETWEEN function.
Rudy Neeser authored
461 * interpolate.lisp (between): Added a method to calculate the
462 point between two vectors.
463 (linear-interpolation): Modified so that it accepts lists as
464 arguments as well.
465
b3bcbcb Updated TO-VECTOR so that it can convert vectors between different di…
Rudy Neeser authored
466 * vector.lisp (to-vector): Added a key to specify the dimension of
467 the vector to transform the data to.
468
4f6deaf @TheRiver Improved some condition error reporting.
authored
469 2009-09-07 Rudy Neeser <rudy.neeser@gmail.com>
470
471 * operations.lisp: Added type information when signalling
472 conditions of type OPERATION-NOT-SUPPORTED to give more
473 information to callers of c+, c-, c* and c/
474
475 * conditions.lisp (operation-not-supported): Updated the condition
476 to be able to supply extra information as to why the operation
477 failed.
478
65291d4 Updated the library to interpret lists as vectors, and to support
Rudy Neeser authored
479 2009-09-02 Rudy Neeser <rudy.neeser@gmail.com>
480
481 * vector.lisp (negate): Added a method to return the additive
482 inverse of a list.
483
484 * operations.lisp: Added addition, subtraction, multiplication and
485 division operations on lists, treating them as vectors. Also
486 includes a mechanic to cast lists up to vectors when required.
487
488 * operations.lisp (create-list-operation-method): Added a macro to
489 define vector operations, such as addition and subtraction, on
490 lists.
491
492 * tests.lisp (test-dimensions): Added a test to test the
493 dimensions of lists in various operations.
494
495 * conditions.lisp (operation-not-supported): Fixed a bug that
496 stopped this condition from being reported.
497
adc7c1f @TheRiver Initial commit.
authored
498 2009-05-20 Rudy Neeser <rudy.neeser@gmail.com>
499
500 * package.lisp (#:create-rotation-from-view-to-view): Exported the
501 symbol.
502
503 * rotations.lisp (create-rotation-from-view-to-view): Creates a
504 rotation matrix that will rotate one vector on to another.
505
506 * package.lisp (#:create-rotation-from-view): Exported
507 CREATE-ROTATION-FROM-VIEW.
508
509 * rotations.lisp (fill-row): A non-exported macro that allows for
510 filling in rows of a matrix while constructing one.
511 (create-rotation-from-view): A new function that creates rotation
512 matrices given a view direction and a global up vector.
513
514 * package.lisp (#:matrix-elt): Added MATRIX-ELT to the list of
515 exported package symbols.
516
517 * vector.lisp (print-object): Updated to print vectors using only
518 3 places after the decimal point.
519
520 * matrix.lisp (print-object): updated to print matrices using only
521 3 places after the decimal point.
522
523 2009-04-20 Rudy Neeser <rudy.neeser@gmail.com>
524
525 * vector.lisp (to-vector): Created a generic function to convert
526 objects of various types to vectors.
527 (to-vector): Created a method that converts vectors into vectors.
528 (to-vector): Created a method to convert lists into vectors.
529
530 2009-04-06 Rudy Neeser <rudy.neeser@gmail.com>
531
532 * vector.lisp (normalise!): Put in a test to ensure that we don't
533 attempt to normalise vectors of length 0.
534 (normalise): As above: put in a test to ensure that we don't
535 attempt to normalise vectors of length 0.
536
537 2009-03-05 Rudy Neeser <rudy.neeser@gmail.com>
538
539 * vector.lisp (length): Added a way to tell the length of a vector
540 represented as a list.
541
542 2009-03-04 Rudy Neeser <rudy.neeser@gmail.com>
543
544 * vector.lisp (x): Added a method that will act on lists, as FIRST
545 does.
546 (setf x): An appropriate setf to work with lists.
547 (y): Added a method to act on lists, as x above.
548 (setf y): To set the y of a list.
549 (z): Added a method to act on lists, as x above.
550 (setf z): To set the z of a list.
551
552 2009-02-26 Rudy Neeser <rudy.neeser@gmail.com>
553
554 * vector-operations.lisp: New file where various vector operations
555 will be moved to and implemented.
556 (dot-product): Moved here from vector.lisp. A test to ensure that
557 the vectors are the correct dimensions has been added.
558 (cross-product): Moved here from vector.lisp. Tests for
559 dimensionality have been added.
560 (euclidean-distance): Calculates the euclidean distance between
561 two vectors.
562 (euclidean-distance): Provide a function to calculate the
563 euclidean distance between two numbers.
564
565 2009-02-16 Rudy Neeser <rudy.neeser@gmail.com>
566
567 * vector.lisp (cross-product): Added a function to calculate the
568 vector cross-product for 3-vectors.
569
570 2009-02-10 Rudy Neeser <rudy.neeser@gmail.com>
571
572 * matrix.lisp (transpose): Created a new generic function which
573 returns the transpose of a matric.
574
575 2008-11-25 Rudy Neeser <rudy.neeser@gmail.com>
576
577 * operations.lisp (-): Fixed a bug allowing unary lm:- to operate
578 as expected on VECTOR and MATRIX objects. In other words, it now
579 correctly negates these objects, rather than raising a condition.
580
581 * vector.lisp (copy): Provide an implementation for VECTORs.
582
583 * matrix.lisp (negate): Provide an implementation for MATRIX
584 objects.
585 (copy): Provide a method to copy MATRIX objects.
586
587 * generics.lisp (copy): Created a generic function that returns a
588 copy of the objects that it is given.
589
590 * matrix.lisp (negate!): Added an implementation of NEGATE! for
591 MATRIXs.
592
593 * vector.lisp (negate!): Added an implementation of the NEGATE!
594 generic function for VECTORs.
595
596 * generics.lisp (negate!): Added a destructive generic method
597 which returns the additive inverse of an item.
598
599 * vector.lisp (negate): Added an implementation of NEGATE for the
600 VECTOR class.
601
602 * generics.lisp (negate): Created a generic method which is meant
603 to return the additive inverse of an item. Provided an
604 implementation for all CL NUMBERs.
605
606 * rotations.lisp (create-rotation-matrix): Added a function which
607 can be given a rotation frame and will supply the necessary
608 rotation matrix to rotate into that frame.
609
610 2008-08-10 Rudy Neeser <rudy.neeser@gmail.com>
611
612 * interpolate.lisp: Add the file. Should contain all the various
613 interpolation methods that I will require.
614 (linear-interpolation): Interpolates between two points, using a
615 parameteric line equation.
616
617 2008-08-08 Rudy Neeser <rudy.neeser@gmail.com>
618
619 * vector.lisp (dot-product): Added a function to calculate the dot
620 product between two vectors.
621 (dot-product): Added tests to ensure that the vectors are of the
622 same length.
623
Something went wrong with that request. Please try again.