Closed MauriceZeuner closed 3 years ago
Why can't you just add Ramp<A>
and Ramp<B>
? They are different types!
You might find the following interesting for further information: https://rustc-dev-guide.rust-lang.org/backend/monomorph.html
Also, I find it a little unhandy that I have to re-initiate the entire Component for every keyframe, even if I only want to change one attribute of it. This happens, if you, for example, want to ramp the power of a GaussianBeam component. Just takes a lot of code, I think.
You can define helper functions in your repo that uses atomecs to make life easier for your specific use cases. But the base API should be explicit, as it currently stands. In your particular case you want to ramp power, but someone else may want to ramp the waist, and to be less explicit would mean we have to start making assumptions about what people are using Ramp
s for.
Ah, okay - thanks for the clarification!
I just realized that the current implementation of the ramps does not allow for ramping two components of the same entity at the same time. This is difficult for me since I would like to replace my
dipole::transition_switcher::RampMOTBeamsSystem
with them to ramp detuning and power of MOT beams. I believe there is no simple way to allow for twoRamps
to be associated with an entity, right?One solution would be to make the wavelength an attribute of
GaussianBeam
, so only one component needs to be ramped or we need a different approach to ramping in general. Or I leave it roughly like it is currently. (Custom systems to ramp them)Also, I find it a little unhandy that I have to re-initiate the entire Component for every keyframe, even if I only want to change one attribute of it. This happens, if you, for example, want to ramp the power of a
GaussianBeam
component. Just takes a lot of code, I think.Any ideas?