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