Mercurial > hg > amuse
comparison base/charm/constructors.lisp @ 255:f1e6d10fdb11
pitched and unpitched Charm event constituent classes
author | Jamie Forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 24 Feb 2011 11:23:19 +0000 |
parents | b5ffec94ae6d |
children |
comparison
equal
deleted
inserted
replaced
254:c6c803903417 | 255:f1e6d10fdb11 |
---|---|
40 &key start duration | 40 &key start duration |
41 constituent-identifier | 41 constituent-identifier |
42 owner version | 42 owner version |
43 creation-timestamp | 43 creation-timestamp |
44 deletion-timestamp) | 44 deletion-timestamp) |
45 (make-instance 'standard-charm-event-constituent | 45 (let ((constituent-class (cond |
46 :identifier constituent-identifier | 46 ((every #'amuse-utils:pitchedp particles) |
47 :parent parent | 47 'standard-charm-pitched-event-constituent) |
48 :time start ; FIXME: naming conventions? | 48 ((every #'amuse-utils:unpitchedp particles) |
49 :interval duration | 49 'standard-charm-unpitched-event-constituent) |
50 :extrinsic-properties extrinsic-properties | 50 (t 'standard-charm-event-constituent)))) |
51 :intrinsic-properties intrinsic-properties | 51 (make-instance constituent-class |
52 :%data particles | 52 :identifier constituent-identifier |
53 :owner owner | 53 :parent parent |
54 :version version | 54 :time start ; FIXME: naming conventions? |
55 :creation-timestamp creation-timestamp | 55 :interval duration |
56 :deletion-timestamp deletion-timestamp)) | 56 :extrinsic-properties extrinsic-properties |
57 :intrinsic-properties intrinsic-properties | |
58 :%data particles | |
59 :owner owner | |
60 :version version | |
61 :creation-timestamp creation-timestamp | |
62 :deletion-timestamp deletion-timestamp))) | |
57 | 63 |
58 (defun composition->charm-constituent (composition | 64 (defun composition->charm-constituent (composition |
59 extrinsic-properties | 65 extrinsic-properties |
60 intrinsic-properties) | 66 intrinsic-properties) |
61 "This is currently the bridge that takes us from AMuSE compositions | 67 "This is currently the bridge that takes us from AMuSE compositions |
107 (push (list event) grouped-events)) | 113 (push (list event) grouped-events)) |
108 finally (return grouped-events))) | 114 finally (return grouped-events))) |
109 | 115 |
110 (defun segment-at-bar (composition) | 116 (defun segment-at-bar (composition) |
111 "Returns a list of bar-constituents." | 117 "Returns a list of bar-constituents." |
112 (loop with current-bar = (current-bar (elt composition 0) composition) and current-events | 118 (loop with current-bar = (current-bar (elt composition 0) composition) |
119 and current-events | |
113 for event in (%list-slot-sequence-data composition) | 120 for event in (%list-slot-sequence-data composition) |
114 if (time= current-bar (current-bar event composition)) | 121 if (time= current-bar (current-bar event composition)) |
115 do (push event current-events) | 122 do (push event current-events) |
116 else | 123 else |
117 collect (make-standard-charm-event-constituent | 124 collect (make-standard-charm-event-constituent |