Skip to content

Commit 5a3c821

Browse files
committed
Add Java NumericalPropagationDemo.
1 parent 22c0759 commit 5a3c821

17 files changed

Lines changed: 14066 additions & 0 deletions
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src" />
4+
<classpathentry including="EOP-v1.1.txt|LeapSecond.dat|SatelliteDatabase/stkSatDb*|Textures/OverlayToolbar/|plneph.430" kind="src" output="Data" path="commonData" />
5+
<classpathentry including="agi/examples/EarthOrientationParametersHelper.java|agi/examples/LeapSecondsFacetHelper.java|agi/examples/OverlayToolbar.java" kind="src" path="commonSrc" />
6+
<classpathentry kind="src" output="Data" path="projectData" />
7+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8" />
8+
<classpathentry kind="lib" path="lib/forms-1.3.0.jar" />
9+
<classpathentry kind="lib" path="jars/agi.foundation.core-2019r3.jar">
10+
<attributes>
11+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
12+
</attributes>
13+
</classpathentry>
14+
<classpathentry kind="lib" path="jars/agi.foundation.graphics-2019r3.jar">
15+
<attributes>
16+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
17+
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="NumericalPropagationDemo/jars" />
18+
</attributes>
19+
</classpathentry>
20+
<classpathentry kind="lib" path="jars/agi.foundation.models-2019r3.jar">
21+
<attributes>
22+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
23+
</attributes>
24+
</classpathentry>
25+
<classpathentry kind="lib" path="jars/agi.foundation.orbitpropagation-2019r3.jar">
26+
<attributes>
27+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
28+
</attributes>
29+
</classpathentry>
30+
<classpathentry kind="lib" path="jars/agi.foundation.platforms-2019r3.jar">
31+
<attributes>
32+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
33+
</attributes>
34+
</classpathentry>
35+
<classpathentry kind="lib" path="jars/agi.foundation.platforms.graphics-2019r3.jar">
36+
<attributes>
37+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
38+
</attributes>
39+
</classpathentry>
40+
<classpathentry kind="lib" path="jars/agi.foundation.terrainreaders-2019r3.jar">
41+
<attributes>
42+
<attribute name="javadoc_location" value="jar:platform:/resource/NumericalPropagationDemo/doc/agi.foundation.javadoc-2019r3.zip!/" />
43+
</attributes>
44+
</classpathentry>
45+
<classpathentry kind="output" path="bin" />
46+
</classpath>
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>NumericalPropagationDemo</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
</natures>
17+
<linkedResources>
18+
<link>
19+
<name>commonData</name>
20+
<type>2</type>
21+
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Common/Data</locationURI>
22+
</link>
23+
<link>
24+
<name>commonSrc</name>
25+
<type>2</type>
26+
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Common/src</locationURI>
27+
</link>
28+
<link>
29+
<name>doc</name>
30+
<type>2</type>
31+
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/Documentation</locationURI>
32+
</link>
33+
<link>
34+
<name>jars</name>
35+
<type>2</type>
36+
<locationURI>$%7BPARENT-2-PROJECT_LOC%7D/Jars</locationURI>
37+
</link>
38+
</linkedResources>
39+
<filteredResources>
40+
<filter>
41+
<id>1497896520584</id>
42+
<name></name>
43+
<type>10</type>
44+
<matcher>
45+
<id>org.eclipse.ui.ide.multiFilter</id>
46+
<arguments>1.0-name-matches-false-false-ant</arguments>
47+
</matcher>
48+
</filter>
49+
<filter>
50+
<id>1497896520587</id>
51+
<name></name>
52+
<type>10</type>
53+
<matcher>
54+
<id>org.eclipse.ui.ide.multiFilter</id>
55+
<arguments>1.0-name-matches-false-false-dist</arguments>
56+
</matcher>
57+
</filter>
58+
</filteredResources>
59+
</projectDescription>

Java/NumericalPropagationDemo/.settings/org.eclipse.jdt.core.prefs

Lines changed: 326 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
cleanup.add_default_serial_version_id=true
2+
cleanup.add_generated_serial_version_id=false
3+
cleanup.add_missing_annotations=true
4+
cleanup.add_missing_deprecated_annotations=true
5+
cleanup.add_missing_methods=false
6+
cleanup.add_missing_nls_tags=false
7+
cleanup.add_missing_override_annotations=true
8+
cleanup.add_missing_override_annotations_interface_methods=true
9+
cleanup.add_serial_version_id=false
10+
cleanup.always_use_blocks=true
11+
cleanup.always_use_parentheses_in_expressions=false
12+
cleanup.always_use_this_for_non_static_field_access=false
13+
cleanup.always_use_this_for_non_static_method_access=false
14+
cleanup.convert_functional_interfaces=true
15+
cleanup.convert_to_enhanced_for_loop=true
16+
cleanup.correct_indentation=false
17+
cleanup.format_source_code=false
18+
cleanup.format_source_code_changes_only=false
19+
cleanup.insert_inferred_type_arguments=false
20+
cleanup.make_local_variable_final=false
21+
cleanup.make_parameters_final=false
22+
cleanup.make_private_fields_final=true
23+
cleanup.make_type_abstract_if_missing_method=false
24+
cleanup.make_variable_declarations_final=true
25+
cleanup.never_use_blocks=false
26+
cleanup.never_use_parentheses_in_expressions=true
27+
cleanup.organize_imports=true
28+
cleanup.qualify_static_field_accesses_with_declaring_class=false
29+
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
30+
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
31+
cleanup.qualify_static_member_accesses_with_declaring_class=true
32+
cleanup.qualify_static_method_accesses_with_declaring_class=false
33+
cleanup.remove_private_constructors=true
34+
cleanup.remove_redundant_type_arguments=true
35+
cleanup.remove_trailing_whitespaces=true
36+
cleanup.remove_trailing_whitespaces_all=true
37+
cleanup.remove_trailing_whitespaces_ignore_empty=false
38+
cleanup.remove_unnecessary_casts=true
39+
cleanup.remove_unnecessary_nls_tags=true
40+
cleanup.remove_unused_imports=true
41+
cleanup.remove_unused_local_variables=false
42+
cleanup.remove_unused_private_fields=true
43+
cleanup.remove_unused_private_members=false
44+
cleanup.remove_unused_private_methods=true
45+
cleanup.remove_unused_private_types=true
46+
cleanup.sort_members=false
47+
cleanup.sort_members_all=false
48+
cleanup.use_anonymous_class_creation=false
49+
cleanup.use_blocks=false
50+
cleanup.use_blocks_only_for_return_and_throw=false
51+
cleanup.use_lambda=true
52+
cleanup.use_parentheses_in_expressions=true
53+
cleanup.use_this_for_non_static_field_access=true
54+
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
55+
cleanup.use_this_for_non_static_method_access=true
56+
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
57+
cleanup_profile=_demos
58+
cleanup_settings_version=2
59+
eclipse.preferences.version=1
60+
formatter_profile=_demo settings
61+
formatter_settings_version=14
157 KB
Loading
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
3+
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
4+
<listEntry value="/NumericalPropagationDemo/src/agi/examples/numericalpropagationdemo/Main.java"/>
5+
</listAttribute>
6+
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
7+
<listEntry value="1"/>
8+
</listAttribute>
9+
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
10+
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
11+
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
12+
</listAttribute>
13+
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="agi.examples.numericalpropagationdemo.Main"/>
14+
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="NumericalPropagationDemo"/>
15+
</launchConfiguration>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Numerical Propagation Demo
2+
3+
This application uses a [NumericalPropagator](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-propagators-NumericalPropagator.html) to propagate a satellite, which is then visualized in Insight3D using a [MarkerGraphicsExtension](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-platforms-MarkerGraphicsExtension.html) and a [PathPrimitive](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-graphics-PathPrimitive.html). Force models can be configured to act on the satellite's orbit being propagated, specifically: [SphericalHarmonicGravity](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-celestial-SphericalHarmonicGravity.html), [TwoBodyGravity](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-celestial-TwoBodyGravity.html), [SimpleSolarRadiationForce](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-celestial-SimpleSolarRadiationForce.html), [ThirdBodyGravity](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-celestial-ThirdBodyGravity.html), and [AtmosphericDragForce](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-celestial-AtmosphericDragForce.html). A [RungeKutta4Integrator](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-numericalmethods-RungeKutta4Integrator.html) or [RungeKuttaFehlberg78Integrator](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-numericalmethods-RungeKuttaFehlberg78Integrator.html) can be configured for use by the propagator. The state described by the [NumericalPropagatorDefinition](http://help.agi.com/AGIComponentsJava/Javadoc/agi-foundation-propagators-NumericalPropagatorDefinition.html) in this demo contains just a position and velocity representing one satellite. More generally, the state can contain any number of elements to be propagated including multiple positions, mass, or other parameters with their own differential equations. For more information see the [Orbit Propagation](http://help.agi.com/AGIComponentsJava/html/OrbitPropagation.htm) topic.
4+
5+
![Numerical Propagation Demo](Images/ExampleNumericalPropagationDemoJava.png)
6+
7+
## Compilation
8+
9+
To compile this sample application with Ant:
10+
* Copy your AGI.Foundation.lic file into the src directory.
11+
* Run "ant package".
12+
13+
The application will be compiled, packaged into a jar, and placed in the dist
14+
directory. You can then double-click the NumericalPropagationDemo.jar file to run the
15+
application, or, simply run "ant run".
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<project name="NumericalPropagationDemo" basedir="." default="package">
2+
<property name="jar.name" value="NumericalPropagationDemo.jar" />
3+
4+
<property name="output.dir" value="ant" />
5+
<property name="bin.dir" value="${output.dir}/bin" />
6+
<property name="dist.dir" value="dist" />
7+
<property name="jars.dir" value="../../Jars" />
8+
9+
<target name="clean" description="Clean all generated output.">
10+
<delete dir="${output.dir}" />
11+
<delete dir="${dist.dir}" />
12+
</target>
13+
14+
<target name="prepare">
15+
<mkdir dir="${bin.dir}" />
16+
<mkdir dir="${dist.dir}" />
17+
<path id="project.classpath">
18+
<fileset dir="${jars.dir}">
19+
<include name="agi.foundation.core-*.jar" />
20+
<include name="agi.foundation.models-*.jar" />
21+
<include name="agi.foundation.platforms-*.jar" />
22+
<include name="agi.foundation.platforms.graphics-*.jar" />
23+
<include name="agi.foundation.graphics-*.jar" />
24+
<include name="agi.foundation.terrainreaders-*.jar" />
25+
<include name="agi.foundation.orbitpropagation-*.jar" />
26+
</fileset>
27+
<fileset dir="lib" includes="*.jar" />
28+
</path>
29+
</target>
30+
31+
<target name="compile" depends="prepare" description="Compile source code.">
32+
<fail message="License not present. Copy your STK Components license file, AGI.Foundation.lic, into the src folder.">
33+
<condition>
34+
<not>
35+
<available file="src/AGI.Foundation.lic" />
36+
</not>
37+
</condition>
38+
</fail>
39+
40+
<javac source="1.8" target="1.8" destdir="${bin.dir}" classpathref="project.classpath" includeantruntime="no">
41+
<src path="src" />
42+
<src path="../Common/src/" />
43+
<include name="agi/examples/numericalpropagationdemo/**" />
44+
</javac>
45+
</target>
46+
47+
<target name="package" depends="compile" description="Package the application into a jar, and copy all needed resources to the dist directory.">
48+
<!-- Copy library jars to the dist directory -->
49+
<copy todir="${dist.dir}" flatten="true">
50+
<path refid="project.classpath" />
51+
</copy>
52+
53+
<!-- Build the jar file containing the application itself -->
54+
<copy todir="${bin.dir}">
55+
<fileset dir="src" excludes="**/*.java" />
56+
</copy>
57+
58+
<pathconvert property="manifest.classpath" pathsep=" ">
59+
<path refid="project.classpath" />
60+
<flattenmapper />
61+
</pathconvert>
62+
63+
<jar destfile="${dist.dir}/${jar.name}">
64+
<fileset dir="${bin.dir}" />
65+
<manifest>
66+
<attribute name="Class-Path" value="${manifest.classpath}" />
67+
<attribute name="Main-Class" value="agi.examples.numericalpropagationdemo.Main" />
68+
</manifest>
69+
</jar>
70+
71+
<!-- Copy other resources to the dist directory -->
72+
<copy todir="${dist.dir}/Data">
73+
<fileset dir="../Common/Data">
74+
<include name="EOP-v1.1.txt" />
75+
<include name="LeapSecond.dat" />
76+
<include name="SatelliteDatabase/stkSatDb*" />
77+
<include name="Textures/OverlayToolbar/**" />
78+
<include name="plneph.430" />
79+
</fileset>
80+
<fileset dir="projectData" includes="**" />
81+
</copy>
82+
<copy todir="${dist.dir}">
83+
<fileset dir="${jars.dir}">
84+
<include name="**/*.dll" />
85+
<include name="**/*.manifest" />
86+
</fileset>
87+
</copy>
88+
</target>
89+
90+
<target name="run" depends="package" description="Build and run the demo application.">
91+
<java fork="true" spawn="true" jar="${dist.dir}/${jar.name}" dir="${dist.dir}" />
92+
</target>
93+
</project>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
forms (JGoodies Forms)
2+
======================
3+
4+
Licensed under the BSD License
5+
6+
> Copyright (c) 2002-2009 JGoodies Karsten Lentzsch. All rights reserved.
7+
8+
> Redistribution and use in source and binary forms, with or without
9+
> modification, are permitted provided that the following conditions are met:
10+
11+
> o Redistributions of source code must retain the above copyright notice,
12+
> this list of conditions and the following disclaimer.
13+
14+
> o Redistributions in binary form must reproduce the above copyright notice,
15+
> this list of conditions and the following disclaimer in the documentation
16+
> and/or other materials provided with the distribution.
17+
18+
> o Neither the name of JGoodies Karsten Lentzsch nor the names of
19+
> its contributors may be used to endorse or promote products derived
20+
> from this software without specific prior written permission.
21+
22+
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23+
> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24+
> THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25+
> PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
26+
> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27+
> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28+
> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
29+
> OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30+
> WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
31+
> OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
32+
> EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
119 KB
Binary file not shown.

0 commit comments

Comments
 (0)