diff --git a/Docs/README.checklists b/Docs/README.checklists
index 9c7f500fa..9567e1cff 100644
--- a/Docs/README.checklists
+++ b/Docs/README.checklists
@@ -6,7 +6,7 @@ the Help->Checklists menu within the simulator.
Tutorials are automatically generated from checklists on startup.
-Each checklist is defined as a property tree under /sim/checklists/checklist[n]
+Each checklist is defined as a property tree under /sim/checklists/checklist[n]
with the following tags
- Name of the checklist
@@ -20,13 +20,13 @@ with the following tags
Contains x-m, y-m, z-m and scale tag.
- Optional standard FlightGear condition node that evaluates when the
checklist item has been completed.
- - Zero or more bindings to execute the checklist item. Allows the user
- to have their virtual co-pilot perform the action if they select the
- ">" button next to the checklist item.
+ - Zero or more bindings to execute the checklist item. Allows the user
+ to have their virtual co-pilot perform the action if they select the
+ ">" button next to the checklist item.
The tag may be omitted for single-page checklists, with the - tags
-immediately under the
node.
-
+immediately under the node.
+
See the c172p for an example of this in action (Aircraft/c172p/c172-checklists.xml).
diff --git a/Docs/README.digitalfilters b/Docs/README.digitalfilters
index dce9a80dd..78449f24b 100644
--- a/Docs/README.digitalfilters
+++ b/Docs/README.digitalfilters
@@ -1,18 +1,18 @@
COMMON SETTINGS
==============================================================================
-Currently four types of digital filter implementations are supported. They all serve an
-individual purpose or are individual implementations of a specific filter type.
-Each filter implementation uses the same set of basic configuration tags and individual
-configuration elements. These individual elements are described in the section of the
-filter.
+Currently four types of digital filter implementations are supported. They all
+serve an individual purpose or are individual implementations of a specific
+filter type. Each filter implementation uses the same set of basic configuration
+tags and individual configuration elements. These individual elements are
+described in the section of the filter.
The InputValue
==============================================================================
-Each filter has several driving values, like the input value itself, sometimes a reference
-value, a gain value and others. Most of these input values can bei either a constant value
-or the value of a property. They all use the same syntax and will be referred to as InputValue
-in the remaining document.
+Each filter has several driving values, like the input value itself, sometimes
+a reference value, a gain value and others. Most of these input values can be
+either a constant value or the value of a property. They all use the same syntax
+and will be referred to as InputValue in the remaining document.
The complete XML syntax for a InputValue is
@@ -33,13 +33,14 @@ The complete XML syntax for a InputValue is
-The enclosing element is the element defined in each filter, like , ,
- etc. These elements will be described later.
+The enclosing element is the element defined in each filter, like
+ , , etc. These elements will be described later.
The value of the input is calculated based on the given value, scale and offset as
value * scale + offset
and the result is clipped to min/max, if given.
-With the full set of given elements, the InputValue will initialize the named property to the value
-given, reduced by the given offset and reverse scaled by the given scale.
+With the full set of given elements, the InputValue will initialize the named
+property to the value given, reduced by the given offset and reverse scaled by
+the given scale.
Example:
@@ -49,9 +50,10 @@ Example:
0.5
-Will use the property /controls/flight/rudder as the input of the filter. The property will be initialized
-at a value of zero and since the property usually is in the range [-1..+1], the the value of will
-be in the range (-1)*0.5+0.5 to (+1)*0.5+0.5 which is [0..1].
+Will use the property /controls/flight/rudder as the input of the filter. The
+property will be initialized at a value of zero and since the property usually is
+in the range [-1..+1], the the value of will be in the range
+(-1)*0.5+0.5 to (+1)*0.5+0.5 which is [0..1].
The default values for elements not given are:
: 0.0
@@ -67,34 +69,38 @@ Some examples:
/position/altitude-ft
0.3048
-Gives the altitude in meters. No initialization of the property is performed, no offset applied.
+Gives the altitude in meters. No initialization of the property is performed, no
+offset applied.
0.0
A constant reference of zero.
-A abbreviated method of defining values exist for using a just constant or a property. The above
-example may be written as
+A abbreviated method of defining values exist for using a just constant or a
+property. The above example may be written as
0.0
Or if the reference is defined in a property
/some/property/name
No initialization, scaling or offsetting is performed here.
-The logic behind this is: If the text node in the element (the text between the opening and closing tag)
-can be converted to a double value, it will be interpreted as a double value. Otherwise the text will
+The logic behind this is: If the text node in the element (the text between the
+opening and closing tag) can be converted to a double value, it will be interpreted
+as a double value. Otherwise the text will
be interpreted as a property name.
Examples:
3.1415927 - The constant of PI (roughly)
/position/altitude-ft - The property /position/altitude-ft
-3kings - The constant 3. The word kings is ignored
+3kings - The constant 3. The word kings is
+ ignored
food4less - The property food4less
The element may also be written as for backward compatibility.
-There may be one or more InputValues for the same input of a filter which may be bound to conditions.
-Each InputValue will have its condition checked in the order of InputValues given in the configuration
-file. The first InputValue that returns true for its condition will be evaluated. Chaining a number
-of InputValues with conditions and an unconditioned InputValue works like the C language equivalent
+There may be one or more InputValues for the same input of a filter which may be
+bound to conditions. Each InputValue will have its condition checked in the order
+of InputValues given in the configuration file. The first InputValue that returns
+true for its condition will be evaluated. Chaining a number of InputValues with
+conditions and an unconditioned InputValue works like the C language equivalent
if( condition ) {
// compute value of first element
} else if( condition2 ) {
@@ -105,7 +111,8 @@ if( condition ) {
// compute value of last element
}
-Example: Set the gain to 3.0 if /autopilot/locks/heading equals dg-heading-hold or 2.0 otherwise.
+Example: Set the gain to 3.0 if /autopilot/locks/heading equals dg-heading-hold or
+2.0 otherwise.
@@ -122,18 +129,18 @@ Example: Set the gain to 3.0 if /autopilot/locks/heading equals dg-heading-hold
-If the element is used and set to the value "true", only the absolute value of the input
-(the positive part) is used for further computations. The abs function is applied after all
-other computations are completed.
+If the element is used and set to the value "true", only the absolute
+value of the input (the positive part) is used for further computations. The
+abs function is applied after all other computations are completed.
OutputValue
==============================================================================
-Each filter drives one to many output properties. No scaling or offsetting is implemented
-for the output value, these should be done in the filter itself.
-The output properties are defined in the element by adding elements
-within the element. For just a single output property, the element
-may be ommited. For backward compatibility, may be replaced by .
-Nonexisting properties will be created with type double.
+Each filter drives one to many output properties. No scaling or offsetting is
+implemented for the output value, these should be done in the filter itself.
+The output properties are defined in the element by adding
+elements within the element. For just a single output property, the
+ element may be ommited. For backward compatibility, may
+be replaced by . Non-existing properties will be created with type double.
Example: (Multiple output properties)
@@ -151,9 +158,8 @@ Other Common Settings
Example:
pressure rate filter
- Boolean If true, this filter puts out debug information when updated.
-Example:
-false
+ Boolean If true, this filter puts out debug information when
+ updated. Example: false
InputValue The input property driving the filter.
Refer to InputValue for details.
@@ -164,18 +170,21 @@ Example:
Complex Each filter can drive one to many output properties.
Refer to OutputValue for details.
- InputValue This defines the optional minimum and maximum value the output
- is clamped to. If neither nor exists, the output
- is only limited by the internal limit of double precision float computation.
- If either or is given, clamping is activated. A missing
- min or max value defaults to 0 (zero).
- Note: and may also occour within a element.
- and may be used as a substitude for the corresponding u_xxx element.
- Complex Define a periodical input or output value. The phase width is defined by the
- child elements and which are of type InputValue
+ InputValue This defines the optional minimum and maximum value the
+ output is clamped to. If neither nor
+ exists, the output is only limited by the internal limit
+ of double precision float computation. If either
+ or is given, clamping is activated. A missing min
+ or max value defaults to 0 (zero).
+ Note: and may also occour within a
+ element. and may be used as a substitude for
+ the corresponding u_xxx element.
+ Complex Define a periodical input or output value. The phase width
+ is defined by the child elements and which are
+ of type InputValue
-Example: Limit the pilot's body temperature to a constant minimum of 36 and a maximum defined in
- /pilots/max-body-temperature-degc, initialized to 40.0
+Example: Limit the pilot's body temperature to a constant minimum of 36 and a
+maximum defined in /pilots/max-body-temperature-degc, initialized to 40.0
/pilots/max-body-temperature-degc
40.0
@@ -191,38 +200,41 @@ Implicit definition of the minimum value of 0 (zero) and defining a maximum of 1
This defines the input or output as a periodic value with a phase width of 360, like
the compass rose. Any value reaching the filter's input or leaving the filter at the
-output will be transformed to fit into the given range by adding or substracting one phase
-width of 360. Values of -270, 90 or 450 applied to this periodical element will allways
-result in +90. A value of 630, 270 or -90 will be normalized to -90 in the given example.
+output will be transformed to fit into the given range by adding or substracting one
+phase width of 360. Values of -270, 90 or 450 applied to this periodical element will
+always result in +90. A value of 630, 270 or -90 will be normalized to -90 in the
+given example.
-180.0
180.0
- Complex Define a condition to enable or disable the filter. For disabled
- filters, no output computations are performed. Only enabled
- filters fill the output properties. The default for undefined
- conditions is enabled.
- Several way exist to define a condition. The most simple case
- is checking a boolean property. For this, just a element
- naming this boolean property is needed. The boolean value of the
- named property defines the enabled state of the filter.
- To compare the value of a property with a constant, a and
- a element define the property name and the value to be
- compared. The filter is enabled, if the value of the property
- equals the given value. A case sensitive string compare is
+ Complex Define a condition to enable or disable the filter. For
+ disabled filters, no output computations are performed.
+ Only enabled filters fill the output properties. The
+ default for undefined conditions is enabled.
+ Several way exist to define a condition. The most simple
+ case is checking a boolean property. For this, just a
+ element naming this boolean property is needed.
+ The boolean value of the named property defines the
+ enabled state of the filter. To compare the value of a
+ property with a constant, a and a element
+ define the property name and the value to be compared.
+ The filter is enabled, if the value of the property equals
+ the given value. A case sensitive string compare is
performed here.
- To define more complex conditions, a element may be
- used to define any condition described in README.conditions.
- If a element is present and if it contains a valid
- condition, this conditions has precedence over a given /
- condition.
- The child element , a boolean flag, may be present
- within the element. If this element is true, the property
- /autopilot/locks/passive-mode is checked and if it is true, the
- filter output is computed, but the output properties are not set.
- The default for honor-passive is false
+ To define more complex conditions, a element
+ may be used to define any condition described in
+ README.conditions. If a element is present
+ and if it contains a valid condition, this conditions has
+ precedence over a given / condition.
+ The child element , a boolean flag, may be
+ present within the element. If this element is
+ true, the property /autopilot/locks/passive-mode is checked
+ and if it is true, the filter output is computed, but the
+ output properties are not set. The default for
+ honor-passive is false
Example: Check a boolean property, only compute this filter if gear-down is true and
/autopilot/locks/passive-mode is false
@@ -230,14 +242,15 @@ Example: Check a boolean property, only compute this filter if gear-down is true
true
-Check a property for equality, only compute this filter if the autopilot is locked in heading mode.
+Check a property for equality, only compute this filter if the autopilot is locked
+in heading mode.
/autopilot/locks/heading
dg-heading-hold
-Use a complex condition, only compute this filter if the autopilot is serviceable and the lock
-is either dg-heading-hold or nav1-heading-hold
+Use a complex condition, only compute this filter if the autopilot is serviceable
+and the lock is either dg-heading-hold or nav1-heading-hold
/autopilo/serviceable
@@ -279,25 +292,26 @@ To add a digital filter, place a element under the root element. Next t
the global configuration elements described above, the following elements configure
the digital filter:
InputValue This tag is only applicable for the exponential and
- double-exponential filter types. It controls the bandwidth
- of the filter. The bandwidth in Hz of the filter is:
- 1/filter-time. So a low-pass filter with a bandwidth of
- 10Hz would have a filter time of 1/10 = 0.1
+ double-exponential filter types. It controls the
+ bandwidth of the filter. The bandwidth in Hz of the
+ filter is: 1/filter-time. So a low-pass filter with a
+ bandwidth of 10Hz would have a filter time of 1/10 = 0.1
InputValue This tag only makes sense for the moving-average filter.
It says how many past samples to average.
InputValue This tag is applicable for the noise-spike filter.
- It says how much the value is allowed to change per second.
+ It says how much the value is allowed to change per
+ second.
- InputValue This is only applicable to the gain and reciprocal filter types.
- The output for gain filter is computed as input*gain while
- the reciprocal filter computes output as gain/input for input
- values != 0 (zero). Gain may be a constant, a property name
- defined by a element within the element or a
- property name initialized to a value by using a and
- element.
+ InputValue This is only applicable to the gain and reciprocal filter
+ types. The output for gain filter is computed as input*gain
+ while the reciprocal filter computes output as gain/input
+ for input values != 0 (zero). Gain may be a constant, a
+ property name defined by a element within the
+ element or a property name initialized to a value by using
+ a and element.
Example: a pressure-rate-filter implemented as a double exponential low pass filter
with a bandwith of 10Hz
diff --git a/Docs/README.effects b/Docs/README.effects
index b5efff910..2d965648c 100644
--- a/Docs/README.effects
+++ b/Docs/README.effects
@@ -35,19 +35,20 @@ and, or, equal, less, less-equal
glversion - returns the version number of OpenGL
extension-supported - returns true if an OpenGL extension is supported
property - returns the boolean value of a property
-float-property - returns the float value of a property, useful inside equal, less or less-equal nodes
+float-property - returns the float value of a property, useful inside equal, less
+ or less-equal nodes
shader-language - returns the version of GLSL supported, or 0 if there is none.
The proper way to test whether to enable a shader-based technique is:
-
-
- /sim/rendering/shader-effects
-
- 1.0
-
-
-
-
+
+
+ /sim/rendering/shader-effects
+
+ 1.0
+
+
+
+
There is also a property set by the user to indicate what is the level
of quality desired. This level of quality can be checked in the predicate
@@ -55,11 +56,11 @@ like this :
/sim/rendering/shader-effects
-
- 2.0
- /sim/rendering/quality-level
-
-
+
+ 2.0
+ /sim/rendering/quality-level
+
+
@@ -78,11 +79,11 @@ can be based on a parameter in the parameters section of the
effect. For example, effects that support transparent and opaque
geometry could have as part of a technique:
-
- blend/active
- src-alpha
- one-minus-src-alpha
-
+
+ blend/active
+ src-alpha
+ one-minus-src-alpha
+
So if the blend/active parameter is true blending will be activated
using the usual blending equation; otherwise blending is disabled.
@@ -92,90 +93,92 @@ Values of Technique Attributes
Values are assigned to technique properties in several ways:
- * They can appear directly in the techniques section as a
- constant. For example:
-
- ColorsTex
- sampler-1d
- 2
-
- * The name of a property in the parameters section can be
- referenced using a "use" clause. For example, in the technique
- section:
-
- material/ambient
-
- Then, in the parameters section of the effect:
-
-
- 0.2 0.2 0.2 1.0
-
-
+ * They can appear directly in the techniques section as a
+ constant. For example:
+
+ ColorsTex
+ sampler-1d
+ 2
+
+ * The name of a property in the parameters section can be
+ referenced using a "use" clause. For example, in the technique
+ section:
+
+ material/ambient
+
+ Then, in the parameters section of the effect:
+
+
+ 0.2 0.2 0.2 1.0
+
+
- It's worth pointing out that the "material" property in a
- technique specifies part of OpenGL's state, whereas "material"
- in the parameters section is just a name, part of a
- hierarchical namespace.
+ It's worth pointing out that the "material" property in a
+ technique specifies part of OpenGL's state, whereas "material"
+ in the parameters section is just a name, part of a
+ hierarchical namespace.
- * A property in the parameters section doesn't need to contain
- a constant value; it can also contain a "use" property. Here
- the value of the use clause is the name of a node in an
- external property tree which will be used as the source of a
- value. If the name begins with '/', the node is in
- FlightGear's global property tree; otherwise, it is in a local
- property tree, usually belonging to a model [NOT IMPLEMENTED
- YET]. For example:
-
- /rendering/scene/chrome-light
-
- The type is determined by what is expected by the technique
- attribute that will ultimately receive the value. [There is
- no way to get vector values out of the main property system
- yet; this will be fixed shortly.] Values that are declared
- this way are dynamically updated if the property node
- changes.
+ * A property in the parameters section doesn't need to contain
+ a constant value; it can also contain a "use" property. Here
+ the value of the use clause is the name of a node in an
+ external property tree which will be used as the source of a
+ value. If the name begins with '/', the node is in
+ FlightGear's global property tree; otherwise, it is in a local
+ property tree, usually belonging to a model [NOT IMPLEMENTED
+ YET]. For example:
+
+ /rendering/scene/chrome-light
+
+ The type is determined by what is expected by the technique
+ attribute that will ultimately receive the value. [There is
+ no way to get vector values out of the main property system
+ yet; this will be fixed shortly.] Values that are declared
+ this way are dynamically updated if the property node
+ changes.
OpenGL Attributes
-----------------
The following attributes are currently implemented in techiques:
alpha-test - children: active, comparison, reference
- Valid values for comparision:
- never, less, equal, lequal, greater, notequal, gequal,
- always
-
+ Valid values for comparision:
+ never, less, equal, lequal, greater, notequal, gequal,
+ always
+
alpha-to-coverage - true, false
blend - children: active, source, destination, source-rgb,
- source-alpha, destination-rgb, destination-alpha
- Each operand can have the following values:
- dst-alpha, dst-color, one, one-minus-dst-alpha,
- one-minus-dst-color, one-minus-src-alpha,
- one-minus-src-color, src-alpha, src-alpha-saturate,
- src-color, constant-color, one-minus-constant-color,
- constant-alpha, one-minus-constant-alpha, zero
+ source-alpha, destination-rgb, destination-alpha
+ Each operand can have the following values:
+ dst-alpha, dst-color, one, one-minus-dst-alpha,
+ one-minus-dst-color, one-minus-src-alpha,
+ one-minus-src-color, src-alpha, src-alpha-saturate,
+ src-color, constant-color, one-minus-constant-color,
+ constant-alpha, one-minus-constant-alpha, zero
cull-face - front, back, front-back
lighting - true, false
material - children: active, ambient, ambient-front, ambient-back, diffuse,
- diffuse-front, diffuse-back, specular, specular-front,
- specular-back, emissive, emissive-front, emissive-back, shininess,
- shininess-front, shininess-back, color-mode
+ diffuse-front, diffuse-back, specular, specular-front,
+ specular-back, emissive, emissive-front, emissive-back, shininess,
+ shininess-front, shininess-back, color-mode
polygon-mode - children: front, back
- Valid values:
- fill, line, point
+ Valid values:
+ fill, line, point
program
- vertex-shader
- geometry-shader
- fragment-shader
- attribute
- geometry-vertices-out: integer, max number of vertices emitted by geometry shader
- geometry-input-type - points, lines, lines-adjacency, triangles, triangles-adjacency
- geometry-output-type - points, line-strip, triangle-strip
+ vertex-shader
+ geometry-shader
+ fragment-shader
+ attribute
+ geometry-vertices-out - integer, max number of vertices emitted by geometry
+ shader
+ geometry-input-type - points, lines, lines-adjacency, triangles,
+ triangles-adjacency
+ geometry-output-type - points, line-strip, triangle-strip
render-bin - (OSG) children: bin-number, bin-name
@@ -184,26 +187,26 @@ rendering-hint - (OSG) opaque, transparent
shade-model - flat, smooth
texture-unit - has several child properties:
- unit - The number of an OpenGL texture unit
- type - This is either an OpenGL texture type or the name of a
- builtin texture. Currently supported OpenGL types are 1d, 2d,
- 3d which have the following common parameters:
- image (file name)
- filter
- mag-filter
- wrap-s
- wrap-t
- wrap-r
- The following built-in types are supported:
- white - 1 pixel white texture
- noise - a 3d noise texture
- environment
- mode
- color
+ unit - The number of an OpenGL texture unit
+ type - This is either an OpenGL texture type or the name of a
+ builtin texture. Currently supported OpenGL types are 1d, 2d,
+ 3d which have the following common parameters:
+ image (file name)
+ filter
+ mag-filter
+ wrap-s
+ wrap-t
+ wrap-r
+ The following built-in types are supported:
+ white - 1 pixel white texture
+ noise - a 3d noise texture
+ environment
+ mode
+ color
uniform
- name
- type - float, float-vec3, float-vec4, sampler-1d, sampler-2d,
- sampler-3d
+ name
+ type - float, float-vec3, float-vec4, sampler-1d, sampler-2d,
+ sampler-3d
vertex-program-two-side - true, false
@@ -243,11 +246,11 @@ on the CPU and given to the shader as vertex attributes. These
vectors are computed on demand on the geometry using the effect if
the 'generate' clause is present in the effect file. Exemple :
-
- 6
- 7
- 8
-
+
+ 6
+ 7
+ 8
+
Valid subnodes of 'generate' are 'tangent', 'binormal' or 'normal'.
The integer value of these subnode is the index of the attribute
@@ -258,17 +261,17 @@ The generate clause is located under PropertyList in the xml file.
In order to be available for the vertex shader, these data should
be bound to an attribute in the program clause, like this :
-
- my_vertex_shader
-
- my_tangent_attribute
- 6
-
-
- my_binormal_attribute
- 7
-
-
+
+ my_vertex_shader
+
+ my_tangent_attribute
+ 6
+
+
+ my_binormal_attribute
+ 7
+
+
attribute names are whatever the shader use. The index is the one
declared in the 'generate' clause. So because generate/tangent has
@@ -296,13 +299,13 @@ created for model effects than for terrain because there is more
variation possible from the OSG model loaders than from the terrain
system. The parameters created are:
- * material active, ambient, diffuse, specular, emissive,
- shininess, color mode
- * blend active, source, destination
- * shade-model
- * cull-face
- * rendering-hint
- * texture type, image, filter, wrap-s, wrap-t
+ * material active, ambient, diffuse, specular, emissive,
+ shininess, color mode
+ * blend active, source, destination
+ * shade-model
+ * cull-face
+ * rendering-hint
+ * texture type, image, filter, wrap-s, wrap-t
Specifying Custom Effects
-------------------------
@@ -330,24 +333,25 @@ Application
To apply an effect to a model or part of a model use:
-
- Effects/light-cone
- Cone
-
+
+ Effects/light-cone
+ Cone
+
-where contains the path to the effect you want to apply.
-The effect does not need the file extension.
+where contains the path to the effect you want to
+apply. The effect does not need the file extension.
NOTE:
-Chrome, although now implemented as an effect, still retains the old method of application:
+Chrome, although now implemented as an effect, still retains the old method of
+application:
-
- shader
- chrome
- glass_shader.png
- windscreen
-
+
+ shader
+ chrome
+ glass_shader.png
+ windscreen
+
in order to maintain backward compatibility.
diff --git a/Docs/README.flightrecorder b/Docs/README.flightrecorder
index e8a40ebe1..549300a81 100644
--- a/Docs/README.flightrecorder
+++ b/Docs/README.flightrecorder
@@ -28,27 +28,28 @@ section to your aircraft -set.xml file.
Example:
-
+
-
+
-
- 0
-
- My Aircraft's Flight Recorder
-
-
- float
- /controls/gear/nosegear-steering-cmd-norm
- linear
-
-
-
-
+
+ 0
+
+ My Aircraft's Flight Recorder
+
+
+ float
+ /controls/gear/nosegear-steering-cmd-norm
+ linear
+
+
+
+
-
+
-
+
Default type for each signal is "float". Default "interpolation" method
is "linear" (for float/double). Default values may be omitted. See
@@ -176,36 +177,37 @@ need to match the actual type in the property tree!), the path to the
property and interpolation type.
Example recording some additional custom properties:
-
-
-
-
-
- float
- /controls/gear/nosegear-steering-cmd-norm
-
-
- double
- rotational-deg
- /ai/model/carrier/alpha-angle-deg
-
-
- bool
- /controls/panel/custom-switch
-
-
-
-
+
+
+
+
+
+ float
+ /controls/gear/nosegear-steering-cmd-norm
+
+
+ double
+ rotational-deg
+ /ai/model/carrier/alpha-angle-deg
+
+
+ bool
+ /controls/panel/custom-switch
+
+
+
+
Signal Configuration
--------------------
Template:
-
- bool
- angular-deg
- /controls/panel/custom-switch
-
+
+ bool
+ angular-deg
+ /controls/panel/custom-switch
+
* type: The signal's type specifies the recording resolution - not the
type of the original property. The following types are supported:
diff --git a/Docs/README.gui b/Docs/README.gui
index ad0184943..bda4b94cc 100644
--- a/Docs/README.gui
+++ b/Docs/README.gui
@@ -499,9 +499,9 @@ property tree, like:
15
false
- 0
+ 0
- true
+ true
diff --git a/Docs/README.jsclient b/Docs/README.jsclient
index 619588ae7..d2e606e54 100644
--- a/Docs/README.jsclient
+++ b/Docs/README.jsclient
@@ -1,12 +1,15 @@
Start flightgear with
-fgfs --jsclient=socket,in,,,,udp --prop:/jsclient/axis[i]="/property/you/want/to/control" --prop:/jsclient/axis[i+1]="/another/property/you/want/to/control" ...
+fgfs --jsclient=socket,in,,,,udp \
+ --prop:/jsclient/axis[i]="/property/you/want/to/control" \
+ --prop:/jsclient/axis[i+1]="/another/property/you/want/to/control" ...
eg:
-# fgfs --aircraft=yf23-yasim --airport=KEMT --jsclient=socket,in,5,,16759,udp --prop:/jsclient/axis[0]="/controls/flight/spoilers" --prop:/jsclient/axis[1]="/radios/comm/volume"
-
+# fgfs --aircraft=yf23-yasim --airport=KEMT --jsclient=socket,in,5,,16759,udp \
+ --prop:/jsclient/axis[0]="/controls/flight/spoilers" \
+ --prop:/jsclient/axis[1]="/radios/comm/volume"
Start the server on the machine with the remote gameport:
JsServer
eg:
# JsServer 192.168.1.1 16759
-(JsServer can be started before or after fgfs)
\ No newline at end of file
+(JsServer can be started before or after fgfs)
diff --git a/Docs/README.materials b/Docs/README.materials
index f6089b914..d4846d602 100644
--- a/Docs/README.materials
+++ b/Docs/README.materials
@@ -1,71 +1,72 @@
README.materials
-This README describes the materials.xml file format. It is targeted at those
+This README describes the materials.xml file format. It is targeted at those
wanting to change the appearance of the scenery in FlightGear.
As is the norm in FG, the materials.xml file is a properties file. However,
it is only read on startup, is not part of the main property tree and cannot
-be changed at runtime.
+be changed at runtime.
The properties file consists of a number of entries, each of which
-describes a single visually distinct terrain material in the FG world.
+describes a single visually distinct terrain material in the FG world.
The rest of this document describes the children tags of the entry.
-name : Scenery type names that map to this material. These are typically taken
+name : Scenery type names that map to this material. These are typically taken
from landclass definitions created by TerraGear. Multiple scenery types
may map to a single material. This is recommended to minimize texture
memory usage.
-
+
condition : A condition statement used to activate the material. Note that this
if evaluated once at start-up.
-
-texture : A relative path to an SGI RGB, PNG or DDS file containing a texture
+
+texture : A relative path to an SGI RGB, PNG or DDS file containing a texture
for the material. RGB and PNG are recommended for platform compatibility.
You may define more than one element, in which case the scenery
- loader will choose one texture for each contiguous set of scenery
+ loader will choose one texture for each contiguous set of scenery
triangles.
texture-set : If using an effect (see below), it may be necessary to define more
than one texture. The texture-set element has multiple element
- children which may then be referenced by the effect. You may define more
- than one element, in which case the scenery loader will
+ children which may then be referenced by the effect. You may define more
+ than one element, in which case the scenery loader will
choose one texture for each contiguous set of scenery triangles.
-
-object-mask : An optional bitmap file used to control random placement of lights,
+
+object-mask : An optional bitmap file used to control random placement of lights,
buildings and vegetation on the terrain. The green channel mask is used
for random vegetation placement, the blue channel for buildings and lights.
and the red channel controls the rotation of buildings (0.0 is North, 0.5
- is South). Fractional colour values can be used to give a probability of
+ is South). Fractional colour values can be used to give a probability of
placement. Multiple object-masks may be defined to match up with
or elements.
-
-effect : The effect to be used for this material. (default:
+
+effect : The effect to be used for this material. (default:
Effects/terrain-default)
ambient, diffuse, specular, emissive, and shininess are copied into the
parameter section of the effect created for this material.
-parameters : Additional parameters to be used in the effect. See README.effects for format information.
+parameters : Additional parameters to be used in the effect. See README.effects
+ for format information.
-wrapu : True if the texture should repeat horizontally over a surface, false if
+wrapu : True if the texture should repeat horizontally over a surface, false if
it should not repeat (default: true).
-wrapv : True if the texture should repeat vertically over a surface, false if
+wrapv : True if the texture should repeat vertically over a surface, false if
it should not repeat (default: true).
mipmap : True if the texture should be mipmapped, false otherwise. (default: true).
xsize : The horizontal size of a single texture repetition, in meters.
-
+
ysize : the vertical size of a single texture repetition, in meters
light-coverage : The coverage of a single point of light in m^2. 0 indicates no
lights at all. Minimum value is 1000m^2. May be masked by the blue channel
of an object-mask. Lights are all generated 3m above the surface, and
have random colour (50% yellow, 35% white, 10% orange, 5% red)
-
-ambient : The ambient light colour for the material, specified as separate
+
+ambient : The ambient light colour for the material, specified as separate
r, g, b, a components (default: all color components 0.2, alpha 1.0).
diffuse : The diffuse light colour for the material, specified as separate
@@ -83,8 +84,8 @@ solid : Whether the surface is solid from an FDM perspective. If it is not
friction-factor : The friction factor for that material. The normalized
factor can be used by a FDM to post-multiply all contact friction forces
- with that factor. That is the more slippery a material is the smaller this
- value should be. (default: 1.0 for Dry concrete/Asphalt).
+ with that factor. That is the more slippery a material is the smaller
+ this value should be. (default: 1.0 for Dry concrete/Asphalt).
rolling-friction : the gear rolling rolling-friction coefficient for this
particular material. (default: 0.02 for Dry concrete/Asphalt).
@@ -100,8 +101,8 @@ glyph : group that defines one letter/digit/symbol in a font texture
sub-entries: name, left (default: 0.0), right (default: 1.0)
(left and right describe the horizontal position in the texture.)
-wood-coverage : The coverage of trees in areas marked as woodland in
- m^2. A lower number means a higher density of trees. A value of
+wood-coverage : The coverage of trees in areas marked as woodland in
+ m^2. A lower number means a higher density of trees. A value of
0 indicates no woods. May be masked by the green channel of an
object-mask. (default: 0)
@@ -116,31 +117,31 @@ tree-texture : A texture to use for the trees. Typically this will contain aroun
* summer snow texture
* winter texture
* winter snow texture
-
+
Each tree must have space at the top. For a 512x512 texture sheet, this
- should be 8 pixels. Otherwise subsequent rendering results in "top hats"
- above trees in the distance where the trunk of the tree above in the
- textures sheet bleeds downwards when the mipmaps are generated.
+ should be 8 pixels. Otherwise subsequent rendering results in "top hats"
+ above trees in the distance where the trunk of the tree above in the
+ textures sheet bleeds downwards when the mipmaps are generated.
tree-varieties : The number of different trees defined in the tree-texture
horizontally. (default: 1)
-tree-height-m : The average height of the trees. Actual tree height will
+tree-height-m : The average height of the trees. Actual tree height will
vary by +/- 50%. (default: 0)
-tree-width-m : The average width of the tree cover. Actual tree width will
+tree-width-m : The average width of the tree cover. Actual tree width will
vary by +/- 50%. (default 0)
-
+
tree-max-density-angle-deg : The slope angle at which trees begin to thin out
- as the slope is too steep to support the full coverage. Shallower
+ as the slope is too steep to support the full coverage. Shallower
slopes have maximum wood-coverage. Steeper slopes have fewer trees.
(default : 45)
-
-tree-zero-density-angle-deg : The angle at which the slope is too steep to
- support significant vegetation. Steeper slopes have no trees.
+
+tree-zero-density-angle-deg : The angle at which the slope is too steep to
+ support significant vegetation. Steeper slopes have no trees.
(default : 60)
-object-max-density-angle-deg : The angle at which objects and buildings become
+object-max-density-angle-deg : The angle at which objects and buildings become
less dense due to a steep slope. (default : 20)
object-zero-density-angle-deg : The angle at which the slope is too steep to build
@@ -149,100 +150,102 @@ object-zero-density-angle-deg : The angle at which the slope is too steep to bui
object-group : A group of random objects to be placed on the surface. Contains
and one or more children.
-
-range-m : The distance at which objects within this object-group become
+
+range-m : The distance at which objects within this object-group become
visible. Note that for realism, 60% of the objects will become visible
- at , 30% at 1.5*, and 10% at 2*.
+ at , 30% at 1.5*, and 10% at 2*.
(default: 2000)
-
+
object : A set of random objects to be placed. Contains ,
and children.
-
+
coverage-m2 : The coverage of a single object in m2. Lower values mean a higher
density. Minimum value is 1000.
-
+
spacing-m : The minimum space between this object and any other on the surface in
meters. This helps to avoid objects being placed ontop of each other.
(default 20)
-
-path : Path relative to FG_ROOT to a model definition, usually .ac or .xml file.
+
+path : Path relative to FG_ROOT to a model definition, usually .ac or .xml file.
More than one may be included within the tag, in which
case a single is chosen at random for each individual object
placement.
-heading-type : Indicator of how the heading of the random objects should be
- determined. Valid values are:
+heading-type : Indicator of how the heading of the random objects should be
+ determined. Valid values are:
fixed - Objects all point North. Default.
random - Objects are assigned an individual random heading
mask - Rotation is taken from the red channel of the object-mask
billboard - Object is always rotated to face camera - expensive
-
-
+
+
Random Buildings
================
-Random Buildings come in three sizes, with individual constraints.
+Random Buildings come in three sizes, with individual constraints.
-Small buildings. These have different textures on the sides compared to the front and back.
-Small buildings are never deeper than they are wide.
+Small buildings. These have different textures on the sides compared to the front
+and back. Small buildings are never deeper than they are wide.
Medium buildings, which are never taller than they are wide.
Large buildings. There are no constraints on their width, depth or height.
-
-building-coverage : The coverage of random buildings in areas marked for random objects in
- m^2. A lower number means a higher density of buildings. A value of
- 0 indicates no buildings. May be masked by the blue channel of an
- object-mask. (default: 0)
-
+
+building-coverage : The coverage of random buildings in areas marked for random
+ objects in m^2. A lower number means a higher density of buildings. A
+ value of 0 indicates no buildings. May be masked by the blue channel of an
+ object-mask. (default: 0)
+
building-spacing-m : The minimum spacing between random buildings and other buildings
- or random objects. This helps avoid objects being placed on top of each other.
- (default: 5)
-
+ or random objects. This helps avoid objects being placed on top of each
+ other. (default: 5)
+
building-small-ratio: Ratio of small buildings. These buildings are 1-3 stories
in height, and may have a pitched roof. Fraction of small buildings is
( / ( +
+ ). (default: 0.8)
-
-building-medium-ratio : Ratio of medium buildings. These buildings are 3-6 stories in
- height, and have a flat roof. (default: 0.15)
-
-building-large-ratio : Ratio of large buildings. These buildings are 5-10 stories in
+
+building-medium-ratio : Ratio of medium buildings. These buildings are 3-6 stories
+ in height, and have a flat roof. (default: 0.15)
+
+building-large-ratio : Ratio of large buildings. These buildings are 5-10 stories in
height, and have a flat roof. (default 0.05)
-
+
building-small-pitch : Fraction of small buildings with pitched roofs. (default 0.8)
building-medium-pitch : Fraction of small buildings with pitched roofs. (default 0.2)
building-large-pitch : Fraction of small buildings with pitched roofs. (default 0.1)
-building-small-min-floors : Minimum number of floors for a small building. (default 1)
-building-small-max-floors : Maximum number of floors for a small building. (default 3)
+building-small-min-floors : Min. number of floors for a small building. (default 1)
+building-small-max-floors : Max. number of floors for a small building. (default 3)
-building-medium-min-floors : Minimum number of floors for a medium building. (default 3)
-building-medium-max-floors : Maximum number of floors for a medium building. (default 8)
+building-medium-min-floors : Min. number of floors for a medium building. (default 3)
+building-medium-max-floors : Max. number of floors for a medium building. (default 8)
-building-large-min-floors : Minimum number of floors for a medium building. (default 5)
-building-large-max-floors : Maximum number of floors for a medium building. (default 20)
+building-large-min-floors : Min. number of floors for a medium building. (default 5)
+building-large-max-floors : Max. number of floors for a medium building. (default 20)
-building-small-min-width-m : Minimum width of small buildings. (default 15)
-building-small-max-width-m : Maximum width of small buildings. (default 60)
-building-small-min-depth-m : Minimum depth of small buildings. (default 10)
-building-small-max-depth-m : Maximum depty of small buildings. (default 20)
+building-small-min-width-m : Min. width of small buildings. (default 15)
+building-small-max-width-m : Max. width of small buildings. (default 60)
+building-small-min-depth-m : Min. depth of small buildings. (default 10)
+building-small-max-depth-m : Max. depth of small buildings. (default 20)
-building-medium-min-width-m : Minimum width of medium buildings. (default 25)
-building-medium-max-width-m : Maximum width of medium buildings. (default 50)
-building-medium-min-depth-m : Minimum depth of medium buildings. (default 20)
-building-medium-max-depth-m : Maximum depty of medium buildings. (default 50)
+building-medium-min-width-m : Min. width of medium buildings. (default 25)
+building-medium-max-width-m : Max. width of medium buildings. (default 50)
+building-medium-min-depth-m : Min. depth of medium buildings. (default 20)
+building-medium-max-depth-m : Max. depth of medium buildings. (default 50)
-building-large-min-width-m : Minimum width of large buildings. (default 50)
-building-large-max-width-m : Maximum width of large buildings. (default 75)
-building-large-min-depth-m : Minimum depth of large buildings. (default 50)
-building-large-max-depth-m : Maximum depty of large buildings. (default 75)
+building-large-min-width-m : Min. width of large buildings. (default 50)
+building-large-max-width-m : Max. width of large buildings. (default 75)
+building-large-min-depth-m : Min. depth of large buildings. (default 50)
+building-large-max-depth-m : Max. depth of large buildings. (default 75)
-building-texture : The texture used for all buildings. See Docs/buildings.png for details.
-(default Texture/buildings.png)
+building-texture : The texture used for all buildings. See Docs/buildings.png for
+ details. (default Texture/buildings.png)
-building-lightmap: Emissive texture for all buildings, which is faded in at night to provide
-illusion of lit windows. Same texture coordinates and format at building-texture above.
+building-lightmap: Emissive texture for all buildings, which is faded in at night to
+ provide illusion of lit windows. Same texture coordinates and
+ format at building-texture above.
-building-range-m: Range at which all buildings are visible. Beyond this point fewer and fewer
- buildings are rendered, with no buildings rendered at 2*building-range-m (default 10000)
+building-range-m: Range at which all buildings are visible. Beyond this point fewer
+ and fewer buildings are rendered, with no buildings rendered at
+ 2*building-range-m (default 10000)
diff --git a/Docs/README.multiplayer b/Docs/README.multiplayer
index e65256f9e..8302727da 100644
--- a/Docs/README.multiplayer
+++ b/Docs/README.multiplayer
@@ -4,33 +4,33 @@ The commands are of the form:
--callsign=a_unique_name
-Below are some examples of startup commands that demonstrate the use of the
+Below are some examples of startup commands that demonstrate the use of the
multiplayer facilities.
For two players on a local network or across the internet:
----------------------------------------------------------
Player1:
---multiplay=out,10,192.168.0.3,5500 --multiplay=in,10,192.168.0.2,5501
+--multiplay=out,10,192.168.0.3,5500 --multiplay=in,10,192.168.0.2,5501
--callsign=player1
Player2:
---multiplay=out,10,192.168.0.2,5501 --multiplay=in,10,192.168.0.3,5500
+--multiplay=out,10,192.168.0.2,5501 --multiplay=in,10,192.168.0.3,5500
--callsign=player2
For multiple players on a local network:
----------------------------------------
Player1:
---multiplay=out,10,255.255.255.255,5500
+--multiplay=out,10,255.255.255.255,5500
--multiplay=in,10,255.255.255.255,5500 --callsign=player1
Playern:
---multiplay=out,10,255.255.255.255,5500
+--multiplay=out,10,255.255.255.255,5500
--multiplay=in,10,255.255.255.255,5500 --callsign=playern
-Note that the callsign is used to identify each player in a multiplayer game
-so the callsigns must be unique. The multiplayer code ignores packets that
-are sent back to itself, as would occur with broadcasting when the rx and tx
+Note that the callsign is used to identify each player in a multiplayer game
+so the callsigns must be unique. The multiplayer code ignores packets that
+are sent back to itself, as would occur with broadcasting when the rx and tx
ports are the same.
@@ -48,9 +48,9 @@ Player3:
Player4 (rx only):
--multiplay=in,10,192.168.0.2,5500 --callsign=player4
-This demonstrates that it is possible to have multiple instances of
-Flightgear that send to a single instance that displays all the traffic. This
-is the sort of implementation that we are considering for use as a tower
+This demonstrates that it is possible to have multiple instances of
+Flightgear that send to a single instance that displays all the traffic. This
+is the sort of implementation that we are considering for use as a tower
visual simulator.
@@ -120,6 +120,6 @@ control-fdm-atmosphere properties.
Further reading (a must if you have a problem):
-----------------------------------------------
[1] The flightgear server homepage
-[2] The flightgear wiki multiplayer howto
+[2] The wiki howto
[3] If everything else fails, ask for help on
the IRC channel #flightgear on irc.flightgear.org
diff --git a/Docs/README.osgtext b/Docs/README.osgtext
index d9ab3513c..0070d3708 100644
--- a/Docs/README.osgtext
+++ b/Docs/README.osgtext
@@ -1,103 +1,103 @@
This document describes the syntax for text objects in the scene graph.
-Text nodes are configured using XML and may appear within a model description
+Text nodes are configured using XML and may appear within a model description
file, like other models or the particlesystem.
For the anxious reader, here is a complete example of a text node:
-
- My first Text
-
-
- 0
- 0
- 0
- 0
- 0
- 0
-
+
+ My first Text
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
-
-
- xy-plane
-
+
+
+ xy-plane
+
-
-
- literal
- Hello, world!
+
+
+ literal
+ Hello, world!
-
- text-value
- some/property
- %s
+
+ text-value
+ some/property
+ %s
-
- number-value
- position/latitude-deg
- 1.0
- 0.0
- %5.2lf
- false
+
+ number-value
+ position/latitude-deg
+ 1.0
+ 0.0
+ %5.2lf
+ false
- left-to-right
-
+ left-to-right
+
- true
- false
- false
+ true
+ false
+ false
- led.txf
- 0.01
- 1.0
- 0.012
- 0.040
-
- 32
- 32
-
+ led.txf
+ 0.01
+ 1.0
+ 0.012
+ 0.040
+
+ 32
+ 32
+
-
- default
-
+
+ default
+
- center-center
-
+ center-center
+
-
+
-The node may appear within or nodes. If you place your text directly within
-your model file, use nodes. You can also put your configuration into a separate file
-using the well known include directive:
+The node may appear within or nodes. If you place
+your text directly within your model file, use nodes. You can also put
+your configuration into a separate file using the well known include directive:
Your model.xml file:
@@ -114,5 +114,6 @@ Your HelloWorld.xml:
-Animation can be applied to text nodes like any other object. To give your text some color, use the material
-animation, or translate, rotate, scale or spin your text as you like.
+Animation can be applied to text nodes like any other object. To give your text some
+color, use the material animation, or translate, rotate, scale or spin your text as
+you like.
diff --git a/Docs/README.scenery b/Docs/README.scenery
index 40b6ba805..988616c1b 100644
--- a/Docs/README.scenery
+++ b/Docs/README.scenery
@@ -205,11 +205,11 @@ Example:
Syntax:
- OBJECT_SHARED
+ OBJECT_SHARED
The is relative to the data directory (FG_ROOT).
- is in meter and relative to mean sea-level (in the fgfs world).
- is in degree, counter-clockwise with North being 0.0. Note
+ is in meter and relative to mean sea-level (in the fgfs world).
+ is in degree, counter-clockwise with North being 0.0. Note
that this differs from about every other place in FlightGear, most notably
the /orientation/heading-deg entry in the property system, which is clockwise.
and are in degree and optional.
diff --git a/Docs/README.sound b/Docs/README.sound
index 9c6adbe09..ca22ac045 100644
--- a/Docs/README.sound
+++ b/Docs/README.sound
@@ -29,7 +29,7 @@ directly you can just add the following line to your ~/.openalrc file:
(define speaker-num 4)
-To add 4 channel surround sound to IRIX systems that have more than one
+To add 4 channel surround sound to IRIX systems that have more than one
stereo output you can add the following section to your ~/.openalrc file
(for a typical O2 configuration):
@@ -45,7 +45,7 @@ or alternatively:
-(Note the following section is obsolete as of the July 2004 release of
+(Note the following section is obsolete as of the July 2004 release of
OpenAL, since your could command OpenAL to use ALSA or Arts directly)
ALSA and Arts
@@ -96,5 +96,7 @@ snd_page_alloc 11396 2 snd_intel8x0,snd_pcm
snd_mpu401_uart 7936 1 snd_intel8x0
snd_rawmidi 24832 1 snd_mpu401_uart
snd_seq_device 8324 1 snd_rawmidi
-snd 53892 9 snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
-soundcore 10208 2 snd
+snd 53892 9 snd_pcm_oss,snd_mixer_oss,snd_intel8x0,
+ snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,
+ snd_rawmidi,snd_seq_device
+soundcore 10208 2 snd
diff --git a/Docs/README.submodels b/Docs/README.submodels
index 4b447b670..b51c8be23 100644
--- a/Docs/README.submodels
+++ b/Docs/README.submodels
@@ -1,91 +1,117 @@
-
180
2.68
- roll
- pitch
+ roll
+ pitch
45.0
10.0
70
diff --git a/Docs/README.xmlpanel b/Docs/README.xmlpanel
index 960dd2e63..2ca66a9bf 100644
--- a/Docs/README.xmlpanel
+++ b/Docs/README.xmlpanel
@@ -142,9 +142,11 @@ New Style Example Top Level Panel Config:
1024
768
-305
- 172
+ 172
-
+
Chronometer
@@ -362,21 +364,21 @@ $FG_ROOT/Aircraft/c172/Instruments/brake.xml.
Brake light
- switch
- /controls/brakes
-
- on
-
+ switch
+ /controls/brakes
+
+ on
+
Aircraft/c172/Instruments/Textures/brake.rgb
0.25
0.0
0.5
0.095
- 64
- 24
-
-
+ 64
+ 24
+
+
off
Aircraft/c172/Instruments/Textures/brake.rgb
@@ -399,40 +401,40 @@ A text layer may be static, as in a label, generated from a property
or a combination of both. This example is a switch that contains both
static and dynamic text:
-
- display
- text
- 12
-
- 1.0
- 0.5
- 0.0
-
-
-
- number-value
- /radios/nav1/dme/distance
- 0.00053995680
- %5.1f
-
-
-
-
- display
- text
- 10
-
- 1.0
- 0.5
- 0.0
-
-
-
- literal
- ---.--
-
-
-
+
+ display
+ text
+ 12
+
+ 1.0
+ 0.5
+ 0.0
+
+
+
+ number-value
+ /radios/nav1/dme/distance
+ 0.00053995680
+ %5.1f
+
+
+
+
+ display
+ text
+ 10
+
+ 1.0
+ 0.5
+ 0.0
+
+
+
+ literal
+ ---.--
+
+
+
Transformations:
@@ -464,7 +466,7 @@ cropped texture.
This example comes from the altimeter.xml
- long needle (hundreds)
+ long needle (hundreds)
Aircraft/c172/Instruments/Textures/misc-1.rgb
0.8
@@ -474,16 +476,17 @@ This example comes from the altimeter.xml
8
56
-
-
+
+
rotation
- /steam/altitude
- 100000.0
- 0.36
-
-
- y-shift
- 24.0
+ /steam/altitude
+ 100000.0
+ 0.36
+
+
+ y-shift
+ 24.0
@@ -570,7 +573,7 @@ These examples come from the radio stack:
-0.05
108.0
117.95
- 1
+ 1
swap nav frequencies
@@ -580,8 +583,8 @@ These examples come from the radio stack:
-32
32
32
- /radios/nav1/frequencies/selected
- /radios/nav1/frequencies/standby
+ /radios/nav1/frequencies/selected
ident volume on/off
@@ -591,11 +594,13 @@ These examples come from the radio stack:
-24
16
16
- /radios/nav1/ident
- 1.0
+ /radios/nav1/ident
+ 1.0
0
1
- 1
+ 1
@@ -635,7 +640,7 @@ How do I get my panels/instruments into the base package?
-------------------------------------------------------
Cash bribes always help ;) Seriously though, there are two main
considerations. Firstly, original artwork is a major plus since you
-as the creator can dictate the terms of distribution.All Artwork must
+as the creator can dictate the terms of distribution. All Artwork must
have a license compatible with the GPL. Artwork of unverifiable
origin is not acceptable. Secondly, texture sizes must meet the
lowest common denominator of 256e2 pixels. Artwork from third parties
diff --git a/Docs/README.xmlparticles b/Docs/README.xmlparticles
index 88e2ef011..61f9c8a1f 100644
--- a/Docs/README.xmlparticles
+++ b/Docs/README.xmlparticles
@@ -2,7 +2,8 @@ Document started 27/01/2008 by Tiago Gusmão
Updated 02/02/2008 to reflect syntax changes
Updated 03/02/2008 to add trails (connected particles)
-This is a short specification/tutorial to define particle systems in FlightGear using XML
+This is a short specification/tutorial to define particle systems in
+FlightGear using XML
Meaningless example (what i had accumulated due to tests):
@@ -56,16 +57,16 @@ Meaningless example (what i had accumulated due to tests):
0
-
+
1
0
-
+
billboard
-
+
@@ -132,10 +133,12 @@ Note:
offset (result = (prop*factor)+offset ) in the usual way
-
= the base tag
- string can be "normal" or "trail", normal is the usual quad particles, trail is a string of connected line shapes by default.
- = this places the source of the particles (the emitter) in relation to the perhaps already offset model (see model-howto.html for details)
+ string = can be "normal" or "trail", normal is the usual quad
+ particles, trail is a string of connected line shapes
+ by default.
+ = this places the source of the particles (the emitter) in relation
+ to the perhaps already offset model (see model-howto.html for details)
float
float
float
@@ -143,21 +146,30 @@ offset (result = (prop*factor)+offset ) in the usual way
float
float
- =a typical condition that if not true stops particles from being emitted (PPS=0)
- ....
+ = a typical condition that if not true stops particles from being
+ .... emitted (PPS=0)
- string = the name of the particle system (so it can be referenced by normal animations)
- string = can be "world" or "local". "world means the particles aren't "physically linked" to the model (necessary for use outside moving models), "local" means the opposite (can be used for static objects or inside moving objects)
+ string = the name of the particle system (so it can be referenced
+ by normal animations)
+ string = can be "world" or "local". "world means the particles
+ aren't "physically linked" to the model (necessary for
+ use outside moving models), "local" means the opposite
+ (can be used for static objects or inside moving objects)
string = the texture path relative to the XML file location
bool = self-explanatory
bool = yet to be tested, but seems obvious
string = can be "billboard" or "fixed"
= where particles are born
- string = can be "sector" (inside a circle), "segments"(user-defined segments) and "point" (default)
- *float = only for sector, inner radius at which particles appear
- *float = only for sector, outer radius at which particles appear
- *float = only for sector, starting angle of the slide at which particles appear
- *float = only for sector, ending angle of the slide at which particles appear
+ string = can be "sector" (inside a circle), "segments"(user-defined
+ segments) and "point" (default)
+ *float = only for sector, inner radius at which
+ particles appear
+ *float = only for sector, outer radius at which
+ particles appear
+ *float = only for sector, starting angle of the
+ slide at which particles appear
+ *float = only for sector, ending angle of the slide
+ at which particles appear
= only for segments, encloses sequential points that form segments
= specifies one point, put as many as you want
float
@@ -174,10 +186,12 @@ offset (result = (prop*factor)+offset ) in the usual way
*float = horizontal angle limits of the particle cone
*float
*float = vertical angle limits of the particle cone
- *float for an illustration of theta/phi see http://www.cs.clemson.edu/~malloy/courses/3dgames-2007/tutor/web/particles/particles.html
+ *float for an illustration of theta/phi see
+ http://www.cs.clemson.edu/~malloy/courses/3dgames-2007/tutor/web/particles/particles.html
= the scalar velocity (meter per second)
= see note
- * the "tolerance" in each direction so values are in the range [value-spread, value+spread]
+ * = the "tolerance" in each direction so values are in the range
+ [value-spread, value+spread]
= the range of initial rotational speed of the particles
*float
@@ -191,7 +205,8 @@ offset (result = (prop*factor)+offset ) in the usual way
= see note
- * the "tolerance" in each direction so values are in the range [value-spread, value+spread]
+ * = the "tolerance" in each direction so values are in the range
+ [value-spread, value+spread]
= defines the particle properties
@@ -220,23 +235,42 @@ offset (result = (prop*factor)+offset ) in the usual way
* = the time the particles will be alive, in seconds
*
- *float = each particles is physically treated as a sphere with this radius
+ *float = each particles is physically treated as a sphere
+ with this radius
*float = mass in KG
= defines external forces acting upon a particle
string = can be "air" or "water"
bool = can be "true" or "false". uses standard gravity
- bool = can be "true" or "false". uses user position wind (not the model position, but shouldn't be noticeable, you want to disabled it when using local attach)
+ bool = can be "true" or "false". uses user position wind (not the
+ model position, but shouldn't be noticeable, you want to
+ disabled it when using local attach)
Remarks:
- Don't forget you can use existing animations with particles, so if you want to direct or translate the emitter, just use translate, rotate, spin and so on (other animations might have interesting effects too I guess)
- Particle XML should be compatible with plib, as the tags will be ignored (you might get some warning if you attach them to animations though)
- Try not to use a lot of particles in a way that fills the screen, that will demand lots of fill rate and hurt FPS
- If you don't use any properties nor conditions, your particle system doesn't need to use a callback a so it's slightly better on the CPU (mostly useful for static models)
- If your particle lifetime is too big you might run out of particles temporarily (still being investigated)
- Use mass and size(radius) to adjust the reaction to gravity and wind (mass/size = density)
- Although at the moment severe graphical bugs can be seen in the trails, they are usable.
- Consider your options correctly! You should consider giving them no initial velocity and most important, no spread, otherwise particles will race and the trail will fold. Start simple (no velocities and forces) and work your way up.
-
+* Don't forget you can use existing animations with particles, so if you want to
+ direct or translate the emitter, just use translate, rotate, spin and so on
+ (other animations might have interesting effects too I guess)
+
+* Particle XML should be compatible with plib, as the tags will be ignored (you
+ might get some warning if you attach them to animations though)
+
+* Try not to use a lot of particles in a way that fills the screen, that will demand
+ lots of fill rate and hurt FPS
+
+* If you don't use any properties nor conditions, your particle system doesn't need
+ to use a callback a so it's slightly better on the CPU (mostly useful for static models)
+
+* If your particle lifetime is too big you might run out of particles temporarily
+ (still being investigated)
+
+* Use mass and size(radius) to adjust the reaction to gravity and wind
+ (mass/size = density)
+
+* Although at the moment severe graphical bugs can be seen in the trails,
+ they are usable.
+
+* Consider your options correctly! You should consider giving them no initial
+ velocity and most important, no spread, otherwise particles will race and the
+ trail will fold. Start simple (no velocities and forces) and work your way up.
diff --git a/Docs/README.yasim b/Docs/README.yasim
index d3a93d0d5..ac5f61bf4 100644
--- a/Docs/README.yasim
+++ b/Docs/README.yasim
@@ -370,9 +370,9 @@ gear: Defines a landing gear. Accepts subelements to map
are not active on runways. Defaults to "0". You can
not exclude all gears in the solving process.
-launchbar: Defines a catapult launchbar or strop. The default acceleration
- provided by the catapult is 25m/s^2. This can be
- modified by the use of the control axis LACCEL.
+launchbar: Defines a catapult launchbar or strop. The default acceleration
+ provided by the catapult is 25m/s^2. This can be
+ modified by the use of the control axis LACCEL.
x,y,z: The location of the mount point of the launch bar or
strop on the aircraft.
length: The length of the launch bar from mount point to tip
@@ -464,7 +464,7 @@ control-input:
INCIDENCE - The incidence angle of a wing.
FLAP0 - The flap0 deflection of a wing.
FLAP1 - The flap1 deflection of a wing.
- FLAP[0/1]EFFECTIVENESS - a multiplier for flap lift, but not drag
+ FLAP[0/1]EFFECTIVENESS - a multiplier for flap lift, but not drag
(useful for blown flaps)
SLAT - The slat extension of a wing.
SPOILER - The spoiler extension for a wing.
@@ -473,7 +473,7 @@ control-input:
COLLECTIVE - The collective input of a rotor
ROTORENGINEON - If not equal zero the rotor is rotating
WINCHRELSPEED - The relative winch speed
- LACCEL - The acceleration provided by the catapult.
+ LACCEL - The acceleration provided by the catapult.
{... and many more, see FGFDM.cpp ...}
invert: Negate the value of the property before setting on
the object.
@@ -528,7 +528,7 @@ hitch: A hitch, can be used for winch-start (in gliders) or aerotow (in
gliders and motor aircrafts) or for external cargo with helicopter.
You can do aerotow over the net via multiplayer (see j3 and bocian
as an example).
-
+
name: the name of the hitch. must be aerotow if you want to do
aerotow via multiplayer. You will find many properties
at /sim/hitches/name. Most of them are directly tied to
@@ -559,7 +559,7 @@ winch: The tow used for aerotow or winch. This must be a subelement
of an enclosing tag.
max-tow-length:
min-tow-length:
- initial-tow-length: all are in m. The initial tow length also
+ initial-tow-length: all are in m. The initial tow length also
defines the length/search radius used for the mp-autoconnect
feature
max-winch-speed: in m/s