parameter, determining whether to validate fin tab, and made them
private.
Created two public wrappers for each, one calling for validation
(which has the same signature as the original three methods), and the
other not.
Called NoValidate versions of the three in file loading functions so
validation doesn't interfere with tab length when tab is read before
fin.
Tried to make the coding of the three more consistent with each
other.
of structure from calculation of motors, so mass and CG overrides
don't affect motors
Modified structure calculation so that when an override is in effect
and children are also being overridden, don't include root of tree as
an element in its own right when computing MOI.
Modified MassCalculatorTest to look for correct MOI value.
BarrowmanCalculator
Modify BarrowmanCalculator to actually sum fin nonaxial forces
Modify FinSetCalcTest to sum fins in test3Fin() and test4Fin()
Extra bonus: if at some point we allow fins to be other than radially
symmetrical, this code should still work (not tested)
Modify BarrowmanCalculator to use InstanceMap and InstanceContext to
iterate through all components. This addresses 481 by actually
computing nonaxial forces for all components, instead of computing a
single instanceable component and using it as a representative of all
instances.
Modify calculateNonAxialForces to accept a Transformation argument, so
they can use rotations from instances (only actually affects
FinSetCalc and TubeFinSetCalc)
Clarifies variable names
Removes previous attempt to limit damping moments by using minimum
velocity of 1.0
Clamps damping moments so they cannot exceed actual moments, avoiding
numerical instability
- Fins may be attached to Transitions (and subclass NoseCones )
[Fix] FinSet now implements the Ring-Instanceable interface
[Refactor] Rocket inherits from ComponentAssembly instead of RocketComponent
[Fix][Refactor] Fin tabs are now correctly validated upon change
[Fix] Fin tabs are now corrected to be no-bigger-than their fins
[Refactor] FinSet.getBodyRadius(..) now requires an argument
[Fix] restricted fin tab positioning to be strictly top/middle/bottom
[Refactor] Reimplement FreeformFinSet.setPoint(...)
[Fix] Prevent Freeform Fins movement past parent's top/front
[bugfix] Fins are now addable to transitions from the GUI
[Fix] Fins, Transitions are now drawn correctly in fin-design window
[Minor] Added makeV2 rocket to TestRockets
[fix] getRootPoints() impl & test
as NaN in data export. Fixed.
TODO: the code is very sloppy about naming variables velocity (ie
speed and direction) vs speed (ie magnitude of velocity). Should be
fixed after this release... I started down that rabbit hole a couple
of times before settling on just fixing the actual bug.
sustainer stage, we don't check for tumbling until after apogee, which
is consistent with the email discussion eg
https://sourceforge.net/p/openrocket/mailman/message/32016278/
Not switching to tumbling until after apogee results in unstable
booster stages going into wild oscillations, and firing an exception
terminating the branch of the simulation. This brings the code into
conformity with the comment.