本文整理汇总了C#中IntPtr.InsertSun方法的典型用法代码示例。如果您正苦于以下问题:C# IntPtr.InsertSun方法的具体用法?C# IntPtr.InsertSun怎么用?C# IntPtr.InsertSun使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IntPtr
的用法示例。
在下文中一共展示了IntPtr.InsertSun方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ResetPlugin
//.........这里部分代码省略.........
j2: sun_gravity_model.HasValue("j2") ?
sun_gravity_model.GetValue("j2") : null,
reference_radius:
sun_gravity_model.HasValue("reference_radius") ?
sun_gravity_model.GetValue("reference_radius") : null,
x: sun_initial_state.GetValue("x"),
y: sun_initial_state.GetValue("y"),
z: sun_initial_state.GetValue("z"),
vx: sun_initial_state.GetValue("vx"),
vy: sun_initial_state.GetValue("vy"),
vz: sun_initial_state.GetValue("vz"));
BodyProcessor insert_body = body => {
Log.Info("Inserting " + body.name + "...");
ConfigNode gravity_model = name_to_gravity_model[body.name];
ConfigNode initial_state = name_to_initial_state[body.name];
int parent_index = body.orbit.referenceBody.flightGlobalsIndex;
plugin_.InsertCelestialAbsoluteCartesian(
celestial_index: body.flightGlobalsIndex,
parent_index: ref parent_index,
gravitational_parameter:
gravity_model.GetValue("gravitational_parameter"),
axis_right_ascension:
gravity_model.HasValue("axis_right_ascension") ?
gravity_model.GetValue("axis_right_ascension") : null,
axis_declination:
gravity_model.HasValue("axis_declination") ?
gravity_model.GetValue("axis_declination") : null,
j2: gravity_model.HasValue("j2") ?
gravity_model.GetValue("j2") : null,
reference_radius:
gravity_model.HasValue("reference_radius") ?
gravity_model.GetValue("reference_radius") : null,
x: initial_state.GetValue("x"),
y: initial_state.GetValue("y"),
z: initial_state.GetValue("z"),
vx: initial_state.GetValue("vx"),
vy: initial_state.GetValue("vy"),
vz: initial_state.GetValue("vz"));
};
ApplyToBodyTree(insert_body);
plugin_.EndInitialization();
plugin_.AdvanceTime(Planetarium.GetUniversalTime(),
Planetarium.InverseRotAngle);
} catch (Exception e) {
Log.Fatal("Exception while reading initial state: " + e.ToString());
}
} else {
plugin_source_ = PluginSource.ORBITAL_ELEMENTS;
// We create the plugin at time 0, rather than
// |Planetarium.GetUniversalTime()|, in order to get a deterministic
// initial state.
plugin_ = Interface.NewPlugin(0,
Planetarium.InverseRotAngle);
plugin_.InsertSun(Planetarium.fetch.Sun.flightGlobalsIndex,
Planetarium.fetch.Sun.gravParameter);
BodyProcessor insert_body = body => {
Log.Info("Inserting " + body.name + "...");
Orbit orbit = unmodified_orbits_[body];
double mean_motion = 2 * Math.PI / orbit.period;
plugin_.InsertCelestialJacobiKeplerian(
celestial_index : body.flightGlobalsIndex,
parent_index : body.referenceBody.flightGlobalsIndex,
gravitational_parameter : body.gravParameter + " m^3/s^2",
axis_right_ascension : null,
axis_declination : null,
j2 : null,
reference_radius : null,
eccentricity : orbit.eccentricity,
mean_motion : mean_motion + " rad/s",
inclination : orbit.inclination + " deg",
longitude_of_ascending_node : orbit.LAN + " deg",
argument_of_periapsis : orbit.argumentOfPeriapsis + " deg",
mean_anomaly : orbit.meanAnomalyAtEpoch -
orbit.epoch * mean_motion + " rad");
};
ApplyToBodyTree(insert_body);
plugin_.EndInitialization();
}
plotting_frame_selector_.reset(
new ReferenceFrameSelector(this,
plugin_,
UpdateRenderingFrame,
"Plotting frame"));
flight_planner_.reset(new FlightPlanner(this, plugin_));
VesselProcessor insert_vessel = vessel => {
Log.Info("Inserting " + vessel.name + "...");
bool inserted =
plugin_.InsertOrKeepVessel(
vessel.id.ToString(),
vessel.orbit.referenceBody.flightGlobalsIndex);
if (!inserted) {
Log.Fatal("Plugin initialization: vessel not inserted");
} else {
plugin_.SetVesselStateOffset(vessel.id.ToString(),
new QP{q = (XYZ)vessel.orbit.pos,
p = (XYZ)vessel.orbit.vel});
}
};
ApplyToVesselsOnRailsOrInInertialPhysicsBubbleInSpace(insert_vessel);
}