![]() |
Kerbal Space Program
1.12.4
|
This script adds all external forces to the ship parts. More...
Public Member Functions | |
virtual double | CalcConvectiveCoefficient (Vessel.Situations situation) |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number. More... | |
virtual double | CalculateAnalyticTemperature () |
Calculates analytically a steady-state temperature for the entire vessel using the vessel's emissive and absorptive-weighted radiative area, the incoming solar flux, any body flux, any atmospheric convection, and any internal generation. Conduction is entirely ignored (it is assumed to be near-instantaneous on these timescalse) and convection is also guesstimated on a final-analysis, steady-state basis (basically lerping between external temperature and pure radiative-balance temperature based on atmospheric density). This supports callbacks to parts using various interfaces. More... | |
virtual double | CalculateDensityThermalLerp () |
Calculates a lerp value for use in determining background radiation temp and for steady-state temperatures w.r.t convection in analytic mode. NOTE: Uses the post-shockwave density, not the static density More... | |
virtual double | CalculateShockTemperature () |
Calculates the shock temperature given a velocity More... | |
virtual double | GetBodyArea (PartThermalData ptd) |
Get radiative area facing the body More... | |
override int | GetOrder () |
virtual double | GetSunArea (PartThermalData ptd) |
Get radiative area facing the sun More... | |
override void | OnLoadVessel () |
override void | OnUnloadVessel () |
virtual void | PrecalcConduction (PartThermalData ptd) |
Sets the conduciton multiplier and skin-skin transfer multiplier for a PTD The latter starts from sqrt(radiative area) and then tries to take the relative areas of exposed and unexposed skin into account, i.e. it's maximal when about half is exposed and half unexposed More... | |
virtual void | PrecalcConvection (PartThermalData ptd) |
Determine the final convective coefficient based on occlusion and convective stats More... | |
virtual void | PrecalcRadiation (PartThermalData ptd) |
Precalc radiative stats like final coefficients and the final background rad temp exposed and unexposed. This is complicated because we need to figure out what portion of sun and body flux each apply to exposed and to unexposed skin (this is done by taking the dot of the sun vector vs the velocity vector and the -upaxis and the velocity vector respectively). All these get stored as incoming fluxes, since they are constant given a position and orientation and so needn't be recalculated during all the RK2 steps. More... | |
virtual void | SetSkinProperties (PartThermalData ptd) |
Sets the basic skin properties for this thermal pass. Calculate the total area, the fraction of which is exposed or unexposed, and handle any transfers in thermal energy when those areas change. More... | |
virtual void | SetSkinThermalMass (Part part) |
Determine skin thermal mass from radiative area and part dry mass More... | |
virtual void | Setup () |
override bool | ShouldBeActive () |
virtual void | ThermalIntegrationPass (bool averageWithPrevious) |
The actual thermal integration pass. First update conduction (this merely establishes fluxes). Then loop through all PTDs. Store previous temps if we're doing RK2 passes, then calculte convection and radiation for the part. Finally apply the fluxes. More... | |
virtual void | ThermoPrecalculate () |
Any not-every-frame thermo calcs More... | |
virtual void | UnifySkinTemp (PartThermalData ptd) |
Unifies the exposed and unexposed skin temps into a unified temp using the whole skin thermal mass More... | |
virtual void | Update () |
Recalculate those bits that don't need to happen every frame (for now, the sun and body fluxes / air temperature offsets More... | |
virtual void | UpdateCompoundParts () |
Apply thermal links based on compound parts More... | |
virtual void | UpdateConduction () |
The big one. Processes conduction across the vessel. Occurs in multiple passes. The first pass involves zeroing fluxes and getting unified skin temperatures. Then internal conduction happens (i.e. part internal <-> part internal, no skin). The PTDs are sorted by int temp, and then each PTD's links are checked. Heat pushes out to the links based on the conductive coefficient and the attach area. Checks are done to ensure stability. Since we start from hottest first, the hottest parts get priority flowing heat outwards. The same occurs for part skin <-> part skin conduction. Finally skin-skin conduction is computed for individual parts, between exposed and unexposed skin. Note that throughout this process only fluxes are stored. More... | |
virtual void | UpdateConvection (PartThermalData ptd) |
Process convection in the simple flux = coeff * t_delta manner More... | |
virtual void | UpdateRadiation (PartThermalData ptd) |
Apply incoming fluxes to part radiative fluxes and also calculate outgoing rad flux based on black-body radiation. More... | |
![]() | |
virtual Activation | GetActivation () |
void | Load (ConfigNode node) |
virtual void | OnGoOffRails () |
virtual void | OnGoOnRails () |
void | Save (ConfigNode node) |
Static Public Attributes | |
static FlightIntegrator | ActiveVesselFI = null |
static CelestialBody | sunBody |
Protected Member Functions | |
void | ApplyAeroDrag (Part part, UnityEngine.Rigidbody rbPossible, ForceMode mode) |
Apply aerodynamic force to the part More... | |
void | ApplyAeroLift (Part part, UnityEngine.Rigidbody rbPossible, ForceMode mode) |
Apply aerodynamic force to the part More... | |
virtual double | CalculateAerodynamicArea (Part part) |
virtual double | CalculateAreaExposed (Part part) |
virtual double | CalculateAreaRadiative (Part part) |
double | CalculateAtmosphericDensity (double pres, double temp) |
virtual double | CalculateBackgroundRadiationTemperature (double ambientTemp) |
This is the temperature of background radiation yields correct value for sea level in Earth atmosphere, more or less other values are my best guess. Uses the densityThermalLerp More... | |
virtual void | CalculateConstantsAtmosphere () |
Calculate the basic constants (pressure, density, solar flux, etc) when in atmosphere. Does solar air mass calcs, applies atmosphere temperature offset, calculates shock temp and convection stats, etc. More... | |
virtual void | CalculateConstantsVacuum () |
Calculate the basic constants (pressure, density, solar flux, etc) when in vacuum More... | |
virtual double | CalculateConvectiveCoefficient () |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number. More... | |
virtual double | CalculateConvectiveCoefficient (Vessel.Situations situation) |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number. More... | |
virtual double | CalculateConvectiveCoefficientMach () |
Calculate high-speed convective coefficient. Simple function of const * dnesity^exponent * spd^exponent (the exponents differ) More... | |
virtual double | CalculateConvectiveCoefficientNewtonian () |
Calcuklate a coefficient for simple Newtonian convection Coeff ~= (density>1, density, else dnesity^exponent) * (base + spd^exponent) More... | |
virtual double | CalculateDragValue (Part part) |
virtual double | CalculateDragValue_Conic (Part part) |
virtual double | CalculateDragValue_Cube (Part part) |
virtual double | CalculateDragValue_Cylindrical (Part part) |
virtual double | CalculateDragValue_Spherical (Part part) |
virtual void | CalculatePressure () |
virtual void | CalculateSunBodyFlux () |
Calculates the distance to the sun, the solar flux, and the atmospheric temperature characterists and body albedo/emissive flux More... | |
void | CheckThermalGraph () |
Check and recreate thermal graph More... | |
void | DragCubeSetupAndPartAeroStats (Vessel v) |
virtual void | FixedUpdate () |
Handle most physics integration More... | |
float | GetPhysicslessChildMass (Part part) |
rewrite of the part method; this one accepts chains, and uses what we calculate in VesselPrecalculate More... | |
virtual void | HookVesselEvents () |
virtual void | Integrate (Part part) |
Apply all forces to the part, both via the part's force list and from gravity (if done here not in Precalc) and from drag/bodylift. Also calculate angular drag both in air and submerged More... | |
virtual void | IntegratePhysicalObjects (List< physicalObject > pObjs, double atmDensity) |
Apply gravity and drag to physicalobjects More... | |
virtual void | OnDestroy () |
void | OnDrawGizmosSelected () |
void | OnPartEvent (Part part) |
void | OnPartEventFromToAction (GameEvents.FromToAction< Part, Part > data) |
void | OnPartEventTargetAction (GameEvents.HostTargetAction< Part, Part > data) |
override void | OnStart () |
void | OnVesselEvent (Vessel vessel) |
virtual void | SmoothVelocity () |
Smooth velocity so frame shifts are not passed on to aero/thermo integration More... | |
virtual void | UnhookVesselEvents () |
virtual void | UpdateAerodynamics (Part part) |
Updates the aerodyanmics stats of the part and also handles calculating submerged dynamic pressure and total angular drag. More... | |
virtual void | UpdateMassStats () |
Precalculate thermal mass and resource mass while finding CoM and Velocity. More... | |
virtual void | UpdateOcclusion (bool all) |
void | UpdateOcclusionBody () |
void | UpdateOcclusionConvection () |
void | UpdateOcclusionSolar () |
virtual void | UpdateThermalGraph () |
Rebuilds the thermal graph. This involves recreating all PTDs and PTLs, cleaing and recreating occluders, reapplying old settings on the new PTDs, and finally registering the various callback interfaces. More... | |
virtual void | UpdateThermodynamics () |
Main thermo method. First decides whether to run an analytic pass based off the last time a thermo pass was run (so when an unloaded vessel is loaded, analytic is run with the whole unloaded time, not just the current fixed frame time. If analytic, then that temp is applied, following any callbacks. If not, then all fluxes are zeroed and temps sanified, and then each of the Precalculate methods are run (for conduction, convection, and radiation). Finally some number of thermal integration paasses are run, either one pass using RK1 or a set of RK2 passes. More... | |
![]() | |
void | Awake () |
virtual void | OnAwake () |
virtual void | OnLoad (ConfigNode node) |
virtual void | OnSave (ConfigNode node) |
void | Start () |
Protected Attributes | |
CelestialBody | currentMainBody |
Used to prevent calculating external temperature several times before fixedUpdate is called in the flightIntegrator (i.e. if more than one part tries to in the same frame) More... | |
double | deltaTime = 0d |
double | densityThermalLerp |
double | fDeltaTime |
double | fDeltaTimeRecip |
double | fTimeSinceThermo = 0d |
double | fTimeSinceThermoRecip |
Transform | integratorTransform |
const double | KPA2ATM = 1d / 101.325d |
Vector3 | lastVel |
int | lastVelIndex |
bool | lastVelProvisional = false |
double | maxVelDeltaSqr = 1000d * 1000d |
Vessel stats. More... | |
List< IAnalyticOverheatModule > | overheatModules = new List<IAnalyticOverheatModule>() |
list of IAnalyticOverheatModule for analytic callbacks More... | |
int | partCount = 0 |
Part | partRef |
int | partThermalDataCount = 0 |
double | passesRecip = 1d |
List< IAnalyticPreview > | previewModules = new List<IAnalyticPreview>() |
List of preview modules for analytic callbakcs More... | |
bool | recreateThermalGraph = true |
bool | setupRun = false |
double | timeFactor = 0.02d |
int | VelIndex = 0 |
Vector3[] | VelSmoother |
double | VelSmoothLenRecip |
bool | VelSpiking = false |
bool | wasMachConvectionEnabled = false |
![]() | |
BaseFieldList | fields |
Vessel | vessel |
Static Protected Attributes | |
static int | sunLayerMask |
static int | VelSmoothLen = 10 |
Additional Inherited Members | |
![]() | |
enum | Activation { Activation.FlightScene = 1, Activation.NonFlightScenes = 2, Activation.LoadedVessels = 4, Activation.UnloadedVessels = 8, Activation.Never = 0, Activation.AllScenes = 3, Activation.LoadedOrUnloaded = 12, Activation.Always = 255 } |
![]() | |
BaseFieldList | Fields [get] |
Vessel | Vessel [get, set] |
This script adds all external forces to the ship parts.
|
inlineprotected |
Apply aerodynamic force to the part
part | the part |
rbPossible | the rigidbody (either part or part.parent) |
mode | the mode of force to apply |
|
inlineprotected |
Apply aerodynamic force to the part
part | the part |
rbPossible | the rigidbody (either part or part.parent) |
mode | the mode of force to apply |
< rotate the lift force into world coords
< exclude anything in the drag direction, we're not worrying about drag here
< finally, add the force.
|
inlinevirtual |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number.
situation | Set to a Vessel.Situation to use for the calculation. |
|
inlineprotectedvirtual |
|
inlinevirtual |
Calculates analytically a steady-state temperature for the entire vessel using the vessel's emissive and absorptive-weighted radiative area, the incoming solar flux, any body flux, any atmospheric convection, and any internal generation. Conduction is entirely ignored (it is assumed to be near-instantaneous on these timescalse) and convection is also guesstimated on a final-analysis, steady-state basis (basically lerping between external temperature and pure radiative-balance temperature based on atmospheric density). This supports callbacks to parts using various interfaces.
< show 0s when in analytic
< get incoming radiation
< fourth power
< get solar flux
< get flux from albedo and emissivity of current body
< Handle callbacks
< find resting temperature.
< lerp between it and ambient
< now apply it
< fourth power
< apply it.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotected |
|
inlineprotectedvirtual |
This is the temperature of background radiation yields correct value for sea level in Earth atmosphere, more or less other values are my best guess. Uses the densityThermalLerp
ambientTemp |
|
inlineprotectedvirtual |
Calculate the basic constants (pressure, density, solar flux, etc) when in atmosphere. Does solar air mass calcs, applies atmosphere temperature offset, calculates shock temp and convection stats, etc.
< Get/set aero stats
< compute lerp between the two modes of convection (also used to calculate shock temperature)
< compute external (shock) temperature, as distinct from static ambient temperature
< set convective heat transfer coefficient
< to be multiplied by a part's dimension later. Maybe. Probably not.
|
inlineprotectedvirtual |
Calculate the basic constants (pressure, density, solar flux, etc) when in vacuum
< no atmosphere to change solar flux
|
inlineprotectedvirtual |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number.
|
inlineprotectedvirtual |
Calculates a convective coefficient, for convective transfer = coeff * area * (air temp - skin temp) Handles the splashed case, then if in air lerps between Newtonian and Mach (Hypersonic) convection based on the Newtonian-Mach lerp and the craft's Mach number.
useSituation | Set true will use the vessel situation (splashed or not). Otherwise will calc as if not splashed. |
< else calculate both and lerp
|
inlineprotectedvirtual |
Calculate high-speed convective coefficient. Simple function of const * dnesity^exponent * spd^exponent (the exponents differ)
|
inlineprotectedvirtual |
Calcuklate a coefficient for simple Newtonian convection Coeff ~= (density>1, density, else dnesity^exponent) * (base + spd^exponent)
|
inlinevirtual |
Calculates a lerp value for use in determining background radiation temp and for steady-state temperatures w.r.t convection in analytic mode. NOTE: Uses the post-shockwave density, not the static density
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlinevirtual |
Calculates the shock temperature given a velocity
|
inlineprotectedvirtual |
Calculates the distance to the sun, the solar flux, and the atmospheric temperature characterists and body albedo/emissive flux
< this does mean on the first frame we'll be in sunlight, but that's not a terrible assumption for the use cases we'll have.
|
inlineprotected |
Check and recreate thermal graph
|
inlineprotected |
< should be:
< (tonne/m^3 to kg/m^3, then to kPa from Pa, cancel)
< should be part vel-based, not vessel-based
|
inlineprotectedvirtual |
Handle most physics integration
< double check for any vessel part changes in case events don't catch
< orbitdriver runs earlier now so SOI transition occurs at the start of frame not the end. Consistency!
< calculate pressure
< set vessel values
< done in Vessel.Awake - density = currentMainBody.GetDensity(staticPressurekPa, currentMainBody.GetTemperature(altitude));
< do this instead
|
inlinevirtual |
Get radiative area facing the body
ptd |
|
inlinevirtual |
Reimplemented from VesselModule.
|
inlineprotected |
rewrite of the part method; this one accepts chains, and uses what we calculate in VesselPrecalculate
part |
|
inlinevirtual |
Get radiative area facing the sun
ptd |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Apply all forces to the part, both via the part's force list and from gravity (if done here not in Precalc) and from drag/bodylift. Also calculate angular drag both in air and submerged
part |
|
inlineprotectedvirtual |
Apply gravity and drag to physicalobjects
pObjs | |
atmDensity |
< Safety check
|
inlineprotectedvirtual |
|
inlineprotected |
|
inlinevirtual |
Reimplemented from VesselModule.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotectedvirtual |
Reimplemented from VesselModule.
|
inlinevirtual |
Reimplemented from VesselModule.
|
inlineprotected |
|
inlinevirtual |
Sets the conduciton multiplier and skin-skin transfer multiplier for a PTD The latter starts from sqrt(radiative area) and then tries to take the relative areas of exposed and unexposed skin into account, i.e. it's maximal when about half is exposed and half unexposed
ptd |
< get circumference, basically
|
inlinevirtual |
Determine the final convective coefficient based on occlusion and convective stats
ptd |
< calculate convection
< W to kW, scalars
|
inlinevirtual |
Precalc radiative stats like final coefficients and the final background rad temp exposed and unexposed. This is complicated because we need to figure out what portion of sun and body flux each apply to exposed and to unexposed skin (this is done by taking the dot of the sun vector vs the velocity vector and the -upaxis and the velocity vector respectively). All these get stored as incoming fluxes, since they are constant given a position and orientation and so needn't be recalculated during all the RK2 steps.
ptd |
< shared scalar
< W to kW
< shielding section
< sun flux
< do we have to deal with separate skin temps?
< do we have to deal with separate skin temps?
|
inlinevirtual |
Sets the basic skin properties for this thermal pass. Calculate the total area, the fraction of which is exposed or unexposed, and handle any transfers in thermal energy when those areas change.
ptd |
< set base area properties
< get exposed, if so area, set ptd data
< keep in sync
< will be negative
|
inlinevirtual |
Determine skin thermal mass from radiative area and part dry mass
part |
< this thermal mass will be subtracted from part thermal mass next tick.
|
inlinevirtual |
< save from prefab, load on part.
< would be done soon anyway, but let's do it now.
|
inlinevirtual |
Reimplemented from VesselModule.
|
inlineprotectedvirtual |
Smooth velocity so frame shifts are not passed on to aero/thermo integration
< First, detect spikes
< are we in a spike?
< >100G is probably a frame spike
< replace the old one too
< reset spike detection
< Calculate the smoothed velocity
|
inlinevirtual |
The actual thermal integration pass. First update conduction (this merely establishes fluxes). Then loop through all PTDs. Store previous temps if we're doing RK2 passes, then calculte convection and radiation for the part. Finally apply the fluxes.
averageWithPrevious | Is this the second step of an RK2 pass |
< calculate convection
< calculate radiation
< Apply fluxes
< FIXME add skin conduction menu items
< DEBUG - log if we blow up.
|
inlinevirtual |
Any not-every-frame thermo calcs
|
inlineprotectedvirtual |
|
inlinevirtual |
Unifies the exposed and unexposed skin temps into a unified temp using the whole skin thermal mass
ptd |
|
inlinevirtual |
Recalculate those bits that don't need to happen every frame (for now, the sun and body fluxes / air temperature offsets
|
inlineprotectedvirtual |
Updates the aerodyanmics stats of the part and also handles calculating submerged dynamic pressure and total angular drag.
part |
< detect rb
< set stuff to zero
< precalculate all the drag vector stuff
< sidestep a potential div by zero
|
inlinevirtual |
Apply thermal links based on compound parts
< us to target
|
inlinevirtual |
The big one. Processes conduction across the vessel. Occurs in multiple passes. The first pass involves zeroing fluxes and getting unified skin temperatures. Then internal conduction happens (i.e. part internal <-> part internal, no skin). The PTDs are sorted by int temp, and then each PTD's links are checked. Heat pushes out to the links based on the conductive coefficient and the attach area. Checks are done to ensure stability. Since we start from hottest first, the hottest parts get priority flowing heat outwards. The same occurs for part skin <-> part skin conduction. Finally skin-skin conduction is computed for individual parts, between exposed and unexposed skin. Note that throughout this process only fluxes are stored.
< reset temporary vars
< figure out total system energy and store initial conductive fluxes.
< Now clamp the conduction.
< localInt is negative
< so tempDelta is negative
< half of internal
< when skin is not unified
< figure out total system energy and store initial conductive fluxes.
< the inside of a cargobay's skin doesn't count.
< fudge factor, to make up for contactArea<radArea and that conduction is the product of both conduction factors.
< local is negative
< so tempDelta is negative
|
inlinevirtual |
Process convection in the simple flux = coeff * t_delta manner
ptd |
|
inlineprotectedvirtual |
Precalculate thermal mass and resource mass while finding CoM and Velocity.
< now Subtract skin thermal mass, then calculate recip
|
inlineprotectedvirtual |
|
inlineprotected |
< update data according to projection vector
< Ensure sorted ascending
< clear cone list and add a cone for our leading part
< for every remaining part..
< initially not occluded
< check against all cones..
< just for sanity
|
inlineprotected |
< reset multipliers
< update data according to projection vector (velocity)
< Ensure sorted ascending
< this is the maximum wedge angle at a given mach for an attached shock. If angle > this, detached.
< a decent approximation
< clear cone list and add a cone for our leading part
< Apply angle to FX shocks based on leading part angle.
< for every remaining part..
< initially not occluded
< check against all cones..
< just for sanity
|
inlineprotected |
< update data according to projection vector
< Ensure sorted ascending
< clear cone list and add a cone for our leading part
< for every remaining part..
< initially not occluded
< check against all cones..
< just for sanity
|
inlinevirtual |
Apply incoming fluxes to part radiative fluxes and also calculate outgoing rad flux based on black-body radiation.
ptd |
< will not be used unless wasExposed = true
< after precalcing, we get the actual BRT each pass.
< Radiative flux = S-Bconst*e*A * (T^4 - radInT^4)
|
inlineprotectedvirtual |
Rebuilds the thermal graph. This involves recreating all PTDs and PTLs, cleaing and recreating occluders, reapplying old settings on the new PTDs, and finally registering the various callback interfaces.
< update the drag occlusion
< set skin temps if we had them before
< resize occluder arrays
|
inlineprotectedvirtual |
Main thermo method. First decides whether to run an analytic pass based off the last time a thermo pass was run (so when an unloaded vessel is loaded, analytic is run with the whole unloaded time, not just the current fixed frame time. If analytic, then that temp is applied, following any callbacks. If not, then all fluxes are zeroed and temps sanified, and then each of the Precalculate methods are run (for conduction, convection, and radiation). Finally some number of thermal integration paasses are run, either one pass using RK1 or a set of RK2 passes.
< i.e. set to analytic temp, period.
< twice the analytic min for unloaded.
< FIXME this will slightly speed things up at high rates.
< see above.
< clamp first, so Lerp doesn't have to.
< catch things that spawn with no set temperature, like asteroids
< only need to do this once, since mach and velocity vector are constant over thermal loop.
< Apply added fluxes.
< run each pass
|
static |
double FlightIntegrator.altitude |
Vessel velocity members.
double FlightIntegrator.atmosphereTemperatureOffset |
based on latitude, sun angle, etc.
double FlightIntegrator.atmosphericTemperature |
double FlightIntegrator.backgroundRadiationTemp |
double FlightIntegrator.backgroundRadiationTempExposed |
double FlightIntegrator.bodyAlbedoFlux |
in kW/m^2
double FlightIntegrator.bodyEmissiveFlux |
in kW/m^2
Vector3 FlightIntegrator.CoM |
Vector3d FlightIntegrator.CoMd |
List<CompoundPart> FlightIntegrator.compoundParts |
We have to keep track of compound parts specially
int FlightIntegrator.compoundPartsTimer = 0 |
double FlightIntegrator.convectiveCoefficient |
double FlightIntegrator.convectiveMachFlux |
double FlightIntegrator.convectiveMachLerp |
|
protected |
Used to prevent calculating external temperature several times before fixedUpdate is called in the flightIntegrator (i.e. if more than one part tries to in the same frame)
|
protected |
double FlightIntegrator.density |
|
protected |
double FlightIntegrator.dynamicPressurekPa |
double FlightIntegrator.externalTemperature |
|
protected |
|
protected |
bool FlightIntegrator.firstFrame = true |
|
protected |
|
protected |
Vector3 FlightIntegrator.GraviticAcceleration |
|
protected |
bool FlightIntegrator.isAnalytical = false |
Are we in Analytic mode?
bool FlightIntegrator.isKerbal = false |
bool FlightIntegrator.isRunning = false |
|
protected |
|
protected |
|
protected |
|
protected |
double FlightIntegrator.mach |
|
protected |
Vessel stats.
bool FlightIntegrator.needOcclusion = true |
Solar, Body.
OcclusionCylinder [] FlightIntegrator.occludersBody |
int FlightIntegrator.occludersBodyCount |
OcclusionCone [] FlightIntegrator.occludersConvection |
int FlightIntegrator.occludersConvectionCount |
OcclusionCylinder [] FlightIntegrator.occludersSun |
int FlightIntegrator.occludersSunCount |
|
protected |
list of IAnalyticOverheatModule for analytic callbacks
|
protected |
|
protected |
|
protected |
List<PartThermalData> FlightIntegrator.partThermalDataList = new List<PartThermalData>() |
The set of PTDs, one per part with nonzero thermal mass. This is sorted by internal temp
List<PartThermalData> FlightIntegrator.partThermalDataListSkin = new List<PartThermalData>() |
Same set of PTDs, sorted by skin temp
int FlightIntegrator.passes = 0 |
|
protected |
|
protected |
List of preview modules for analytic callbakcs
double FlightIntegrator.pseudoReDragMult = 1d |
double FlightIntegrator.pseudoReLerpTimeMult = 1d |
double FlightIntegrator.pseudoReynolds |
double FlightIntegrator.realDistanceToSun |
|
protected |
|
protected |
double FlightIntegrator.solarAirMass |
solar air mass multiplier
double FlightIntegrator.solarFlux |
double FlightIntegrator.solarFluxMultiplier |
reduction to solar flux due to atmospheric absorption/scattering/etc
double FlightIntegrator.spd |
double FlightIntegrator.staticPressureAtm |
double FlightIntegrator.staticPressurekPa |
|
static |
double FlightIntegrator.sunDot |
dot between terrain surface normal and sun.
|
staticprotected |
Vector3 FlightIntegrator.sunVector |
the vector to the sun
|
protected |
double FlightIntegrator.timeSinceLastUpdate = 0d |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |