https://online.ts2009.com/mediaWiki/api.php?action=feedcontributions&user=Builderbob&feedformat=atomTrainzOnline - User contributions [en]2024-03-29T10:19:24ZUser contributionsMediaWiki 1.19.1https://online.ts2009.com/mediaWiki/index.php/%22mesh-table%22_container"mesh-table" container2020-04-02T00:06:11Z<p>Builderbob: Clarify</p>
<hr />
<div>{{ORP-top}}<br />
==KIND Hierarchy==<br />
The "mesh-table" container is a top-level [[config.txt file]] entry used by various [[Content_Configuration#Content_Types|Content Types]].<br />
<br />
The mesh-table is a list of mesh subcontainers with no standalone tags. Each mesh subcontainer uses the following format. Tags are parsed in a standardised format, but not all [[Content_Configuration#Content_Types|Content Types]] support the full range of tags listed below. Each mesh derives its name from the subcontainer's tag name. These names are used to refer to specific meshes from within the mesh-table and also from script.<br />
<br />
This page describes [[trainz-build]] 4.1.<br />
<br />
==Known Dependent Parent Types==<br />
:''Main article, see: [[KIND Mesh]]''<br />
The Content Types listed here use the mesh-table container as part of their definition.<br />
<br />
* [[KIND Industry]]<br />
* [[KIND MOJunction]]<br />
* [[KIND Pantograph]]<br />
* [[KIND Scenery]]<br />
* [[KIND Track]]<br />
* [[KIND Traincar]]<br />
<br />
The following config containers also reference back to their Asset's mesh-table container in some fashion:<br />
* [["junction-vertices" container]]<br />
* [["track-lod-tree" container]]<br />
<br />
'''See also'''{{bullR}} [[Modeling Guidelines]] {{bull}} [[Modeling Scenery]] <br />
<br />
==Level of Detail (LOD)==<br />
<br />
For discussions of LOD see [[Level of Detail]], [[LOD Example]], [[mesh-table LOD]] and [[LM.txt file]]<br />
<br />
==Mesh subcontainer==<br />
Each mesh subcontainer supports the following tags. Each tag is shown here with its default value. <br />
<br />
{| border=0<br />
|+ <br />
|-<br />
| anim<br />
| ""<br />
|-<br />
| animation-loop-speed<br />
| 0<br />
|-<br />
| att<br />
| ""<br />
|-<br />
| att-parent<br />
| ""<br />
|-<br />
| auto-create<br />
| 0<br />
|-<br />
| collision-data-generation-mode<br />
| "default"<br />
|-<br />
| collision-mesh<br />
| ""<br />
|-<br />
| critical-animation<br />
| 1<br />
|-<br />
| does-cast-shadows<br />
| 1<br />
|-<br />
| effects<br />
| {<br />
|-<br />
| }<br />
|-<br />
| lod-level<br />
| 255<br />
|-<br />
| mesh<br />
| ""<br />
|-<br />
| mesh-asset<br />
| <NULLKUID><br />
|-<br />
| mesh-scale<br />
| 0,0,0<br />
|-<br />
| mesh-season<br />
| 255<br />
|-<br />
| night-mesh-base<br />
| ""<br />
|-<br />
| opacity<br />
| 1.0<br />
|-<br />
| orientation<br />
| 0.0.0<br />
|-<br />
| position<br />
| 0,0,0<br />
|-<br />
| should-respond-to-clicks<br />
| 1<br />
|-<br />
| use-parent-bounds<br />
| 0<br />
|}<br />
<br />
<big>*</big> The att-parent defaults to "default" which is the parent mesh. The att-parent tag can include a path.<br />
<br />
==Supported Tags==<br />
Each mesh subcontainer supports the following tags. <br />
<br />
===anim===<br />
:Type: File<br />
:Default: ""<br />
:Compulsory: No<br />
:Desc: The animation file (.kin) exported from the 3D modelling tool and/or [[Trainz_Mesh_Importer|TrainzMeshImporter]]. This may include a sub-path.<br />
<br />
===animation-loop-speed===<br />
:Type: Float<br />
:Default: 0<br />
:Compulsory: No<br />
:Desc: This tag must be present if the asset is to animate when placed. If this tag is not present when placed the animation will not play by default, but may play if controlled by script. A different value (e.g. 0.5, 2.0) may be used in the tag to play the animation at a different speed from that created in the 3D modelling tool.<br />
<br />
===att===<br />
:Type: Attachment point<br />
:Default: ""<br />
:Compulsory: No<br />
:Desc: The mesh (and animation if present) is inserted at a mesh attachment point rather than the origin (without this line the mesh is placed relative to the origin of the parent model).<br />
<br />
===att-parent===<br />
:Type: Mesh name<br />
:Default: Defaults to "default" which is the parent mesh<br />
:Compulsory: No<br />
:Desc: The tag tells Trainz in which mesh the attachment point is located. The insertion attachment point is located within the mesh ‘name’ , as listed in the config.txt.<br />
<br />
===auto-create===<br />
:Type: Bool<br />
:Default: 0<br />
:Compulsory No<br />
:Desc: The model is generated automatically when placed, or when you load a map which includes the model. In some instances you don’t want the mesh visible (as this may be controlled through script). If auto-create is 0 the mesh will not be visible when placed.<br />
<br />
===collision-data-generation-mode===<br />
:Type: Collision mode<br />
:Default: "default"<br />
:Compulsory No<br />
:Desc: Determines the method to use to generate collision data for this mesh. Collision data is used to select and move the asset in surveyor, and for physics simulation when necessary.<br />
:Supported collision data generation modes:<br />
:* "default" - use game's default value (in general "collated", but can vary in specific cases)<br />
:* "disabled" - completely discard this sub-mesh for collision data generation purposes. Causes the sub-mesh to be fully ignored for asset picking and physics simulation.<br />
:* "collated" - the geometry of this sub-mesh will be added to that of the other sub-meshes selecting this option (within the asset), and one collision object will be generated for the resulting conglomerate.<br />
:* "separate-shape-convex-hull" - this sub-mesh will generate its own individual collision object, as a convex hull.<br />
:* "separate-shape-triangle-mesh" - this sub-mesh will generate its own individual collision object, as a triangle mesh. This is the most accurate option but also the most costly in terms of performance, only use when specifically needed.<br />
<br />
===collision-mesh===<br />
:Type: Mesh name<br />
:Default: ""<br />
:Compulsory No<br />
:Desc: Specifies a mesh to use instead of this mesh to generate collision data - must be an entry of this mesh-table. The method used to generate the collision data (through the "[[%22mesh-table%22_container#collision-data-generation-mode|collision-data-generation-mode]]" tag) is the one specified on this entry, which is allowed to be different from that of the referenced mesh.<br />
<br />
===critical-animation===<br />
:Type: Bool<br />
:Default: 1 (TBD: surely this should be false (0))<br />
:Compulsory: No<br />
:Desc: "critical-animation" indicates that this mesh's animation generates events which are critical to the script system's behavior. If your asset is not scripted, does not use scripted animation events, or only uses the events for display purposes and will not break if the occasional event is missed, this tag should be set to ''false (0)''. Leaving this flag set to ''true (1)'' is a '''significant''' performance penalty.<br />
<br />
====custom-render-plugin====<br />
:Type: [[KUID]]<br />
:Default: ""<br />
:Compulsory: No<br />
:Desc: TBD<br />
<br />
===does-cast-shadows===<br />
:Type: Bool<br />
:Default: 1<br />
:Compulsory: No<br />
:Desc: "does-cast-shadows" determines if this mesh will cast shadows when the user has shadows enabled in the settings. Setting this tag to ''false (0)'' means the mesh will not cast shadows. Setting this tag to ''true (1)'' means the mesh will cast shadows.<br />
:Trainz build 4.4<br />
<br />
===effects===<br />
:Type: [[Corona Effect]] | [[Name Effect]] | [[Attachment Effect]] | [[Animation Effect]] | [[Texture-Replacement Effect]]<br />
:Default {}<br />
:Compulsory: No<br />
:Desc: The effects container can contain a list of effect subcontainers. The effect subcontainers support the following generic tags.<br />
<br />
: kind ""<br />
: name ""<br />
<br />
:Each effect subcontainer supports additional tags depending on the effect kind. The following effect kinds are supported:<br />
<br />
:* [[Corona Effect]]<br />
:* [[Name Effect]]<br />
:* [[Attachment Effect]]<br />
:* [[Animation Effect]]<br />
:* [[Texture-Replacement Effect]]<br />
<br />
===lod-level===<br />
:Type: Int (0-8)<br />
:Default: 255<br />
:Compulsory: No<br />
:Desc: The [[mesh-table LOD]] level at which this mesh is displayed. The default value (255) indicates that this mesh is visible at all detail levels. See also [[KIND Mesh]] for the 'mesh-detail-level' tag.<br />
<br />
===mesh===<br />
:Type: Mesh name<br />
:Default: "" (will raise error if null)<br />
:Compulsory: Yes (3.4)<br />
:Desc: The ‘main’ mesh name. This may include a sub-path. ie: mesh nightwindows/nightwindows.im, where the file nightwindows.im has been placed in the subdirectory nightwindows. Use .im files or reference an [[LM.txt_file]] file if you wish your asset to have ‘Level of Detail’ mesh reduction.<br />
:The mesh name can also refer to an IM file or an [[LM.txt_file]] file in a mesh asset library if the mesh-asset tag is specified. The LM.TXT file should be in the mesh asset library.<br />
<br />
===mesh-asset===<br />
:Type: [[KUID]]<br />
:Default: <NULLKUID><br />
:Compulsory: No<br />
:Desc: Specifies a mesh asset to be used in conjunction with the 'mesh' tag when the mesh is not contained within the current asset. The mesh name specified in the 'mesh' tag must be located in the mesh asset as Content Manager does not check for the existence of the mesh and will not report an error if it is missing. If the mesh is not located in the root folder of the mesh asset then the mesh name in the 'mesh' tag must include the path to the folder.<br />
<br />
<div style="background-color: #ddf5eb;border-style: dotted; width:800px; overflow:auto; "><br />
NOTE: There may be several different versions of the mesh asset installed, with different meshes. The mesh asset KUID number must be the version of the asset in which the mesh in the 'mesh' tag exists. <br />
<br />
Example: If the mesh in the 'mesh' tag was added in kuid2:12345:9876:2 and does not exist in earlier versions, then this is the kuid number you must specify in the mesh-asset tag; specifying an older revision number (ie kuid:12345:9876 or kuid2:12345:9876:1) will result in errors. This applies even if the only change between versions is that the mesh is in a different folder.<br />
</div><br />
<br />
===mesh-scale===<br />
:Type: Floatlist<br />
:Default: 0,0,0<br />
:Compulsory: No<br />
:Desc: This tag defines a minimum and maximum scaling value for the mesh, where 1.0 is the size as modelled. Each instance of the mesh that exists in the world will randomise within this range. Randomisation will not change between runs or between Trainz editions, but may change based on factors such as the position of the mesh in the world. This tag is currently only supported on SpeedTree assets; attempts to use this tag on other assets results in undefined behaviour.<br />
<br />
===mesh-season===<br />
:Type: Int (0-250)<br />
:Default: 255<br />
:Compulsory: No<br />
:Desc: The season index for which this mesh is displayed. The default value (255) indicates that this mesh is visible in all seasons. See also [["Season-selector" container]].<br />
<br />
===night-mesh-base===<br />
:Type: Mesh name <br />
:Default: ""<br />
:Compulsory: No<br />
:Desc: Defines this mesh as a "nightmode" mesh. This mesh is visible only at "night" (the exact meaning of which is defined by the [[KIND Scenery#nightmode|nightmode]] tag in the top level of this asset's [[config.txt file]]. This mesh becomes invisible if the specified base mesh is invisible. Prior to [["Trainz-build" tag|v4.3]], nightmode meshes have a [[material emissive color]] (currently 2.0, 2.0, 2.0) forcibly applied to them. From v4.3 upward, it is expected that the creator will set any necessary emissive coloration in the [[IM files|mesh file]] itself.<br />
<br />
===opacity===<br />
:Type: Float (0.0 - 1.0)(See below)<br />
:Default: 1.0<br />
:Compulsory: No<br />
:Desc: Specifies the overall transparency of the mesh. Values other than 0.0 or 1.0 employ alpha blending and a value of 0.0 has the same effect as hiding the mesh. Note that this tag is buggy in TS2009 prior to SP4.<br />
<br />
===orientation===<br />
:Type: Floatlist (radians)<br />
:Default: 0,0,0<br />
:Compulsory: No<br />
:Desc: Orientation of X,Y,Z axes. Allows a submesh to be rotated relative to its insertion point. To reverse a mesh by 180 degrees about the Z axis, add the tag: orientation 0,0,3.14159<br />
<br />
===position===<br />
:Type: Floatlist (metres)<br />
:Default: 0,0,0<br />
:Compulsory: No<br />
:Desc: Position of the mesh using X,Y,Z axes relative to its insertion point.<br />
<br />
===radius===<br />
:Type: Float <br />
:Default: TBD<br />
:Compulsory: No<br />
:Desc: TBD (should this be in [["mesh-table"_container_(interior_version)]]?)<br />
<br />
===should-respond-to-clicks===<br />
:Type: Bool <br />
:Default: True(1)<br />
:Compulsory: No<br />
:Desc: If set to false (0) on a mesh that is part of an asset, it will remove that mesh from the calculation of the 'bounding box' that will be used to check whether the user clicked on that particular asset. This is useful for light ray effects or animations which are significantly outside the normal bounding volume, and may cause movement to focus on the wrong asset. For instance, a traincar may need a mesh marked with should-respond-to-clicks set to false in order to ensure that the click is detected for the correct traincar when it is part of a consist. First introduced with TS12 SP1 HF4 (build 61388). Default value (True) is the prior behaviour (the mesh ''will'' be considered part of the bounding box for the purpose of registering clicks). <br />
<br />
===test-collisions===<br />
:Type: Bool <br />
:Default: TBD<br />
:Compulsory: No<br />
:Desc: TBD (should this be in [["mesh-table"_container_(interior_version)]]?)<br />
<br />
===use-parent-bounds===<br />
:Type: Bool <br />
:Default: False(0)<br />
:Compulsory: No<br />
:Desc: When enabled, this tag indicates that render culling should occur using the whole object's bounding box rather than this mesh's bounding box. Bounding boxes on individual meshes may not update correctly when animation moves the object's geometry any significant distance from the bind position. This flag can help mitigate such effects, at a tiny performance penalty.<br />
<br />
==Mesh-Table Example==<br />
The following is an example of a simple mesh-table which implements two levels of detail.<br />
<br />
mesh-table<br />
{<br />
default-lod0<br />
{<br />
mesh "example-lod0.im"<br />
auto-create 1<br />
lod-level 0<br />
}<br />
default-lod1<br />
{<br />
mesh "example-lod1.im"<br />
auto-create 1<br />
lod-level 1<br />
}<br />
}<br />
<br />
==Mesh-Table Example (with collision)==<br />
The following is an example of a mesh table with a separate collision mesh. For this, we are using a low polygon collision mesh with no material (null.m.notex) in place of any collision the game would generate for us. It's important to put the collision-data-generation-mode to "disabled" for every other mesh that is not the collision mesh. Otherwise, the game will assume the mesh can be used for collision and create unwanted results.<br />
<br />
mesh-table<br />
{<br />
default<br />
{<br />
mesh "example.lm"<br />
auto-create 1<br />
collision-data-generation-mode "disabled"<br />
collision-mesh "collision"<br />
}<br />
collision<br />
{<br />
mesh "collision.trainzmesh"<br />
collision-data-generation-mode "separate-shape-triangle-mesh"<br />
}<br />
}<br />
<br />
[[Category:Config Container|mesh-table container]]<br />
{{ORP-bot|mesh-table container}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Trains_ToolsHelp:Surveyor Trains Tools2020-02-04T04:46:43Z<p>Builderbob: Formatting</p>
<hr />
<div>Trains tab (F7) allows you to pick a loco/rolling stock from a list to place on some track previously laid.<br />
<br />
NOTE: In TANE and TRS19, the Train tab is also available in Driver. In TANE, it is on the right hand side of the driver screen. <br />
<br />
In TRS19 it is accessed from the Tools menu on the top menubar.<br />
<br />
= Train Mode =<br />
<br />
Clicking LMB on<br />
the Train Mode<br />
(T) button in this<br />
tab allows you to<br />
assemble consists. A list of all<br />
engines and rolling stock is<br />
displayed below this button.<br />
Below the list are selection<br />
lists for Train Origin and Train<br />
Company. If “All” is selected in both of these lists, all consists<br />
and rolling stock will be displayed. By selecting a region or<br />
company in these lists the list displayed can be restricted to<br />
just that company or just that region or both.<br />
<br />
<br />
[[File:Trains1.jpg|400px]]<br />
{{clear}}<br />
== [[File:object add.jpg]] Add Train ==<br />
{{clear}}<br />
Click on Add Train (A) to enable the building of a<br />
consist. Click LMB on the engine or rolling stock asset<br />
in the list that you would like to place on the route.<br />
A picture of the asset appears in the Train Viewer<br />
window in the bottom of the tab. Click LMB on the<br />
asset in the Train Viewer window, the picture will rotate to<br />
show you different views of the selected item. Click RMB+H <br />
on the item in the picture and move your mouse forward and<br />
back to increase and decrease the size of the item in the Train<br />
Viewer window.<br />
Click on a location on a track in your route and your item will<br />
be placed at that point.<br />
To add items to your cosist Click LMB on<br />
one end of the consist or the other . The Red and Green arrows adjust to mark the ends of<br />
the consist. If you Click LMB too far away from the<br />
end of the consist, a new one will be created. <br />
== [[File:object move.jpg]] Move Train ==<br />
{{clear}}<br />
Click LMB on Move Train (M) then LMB+H a train car.<br />
You can then drag the mouse to move the traincar<br />
anywhere that there is track.<br />
== [[File:reload page.jpg]] Rotate Train ==<br />
{{clear}}<br />
Click LMB on Rotate Train (R) to enable rotation of<br />
the engine or cars in a consist. Once enabled, Click<br />
LMB on any engine or car in a consist to change the<br />
direction in which it is facing.<br />
== [[File:object get.jpg]] Get Train ==<br />
{{clear}}<br />
Once Get Train (G) is selected, Click LMB on any car in any consist on the route and that car will be selected from the list in the Trains tab and displayed in the Train Viewer window. Then Click LMB on Add Train to place it.<br />
<br />
Right clicking the Get Train button will toggle to or from the Get to Pick List function.<br />
<br />
The Get to Picklist tool allows you to 'get' any train on a route, and then add it to a Pick List automatically.<br />
<br />
== [[File:area cancel.jpg]] Delete Train ==<br />
{{clear}}<br />
Click LMB on Delete Train (D), then Click LMB on any engine<br />
or car in a consist on the route and that engine or car will<br />
be deleted. The consist will shorten if necessary to close the<br />
space taken by the car or engine and keep the consist intact.<br />
== [[File:train decouple.jpg]] Decouple Carriage ==<br />
Click LMB on Decouple Carriage (X) and then move<br />
the cursor to a point near the connection between<br />
two items in a consist until an image (colored Red)<br />
of a coupler appears. Click LMB on the coupler and it will be<br />
seen to open. Additional Green and Red arrows will appear<br />
above the point of uncoupling to mark off the two consists<br />
that have now been made from the one original consist. <br />
{{clear}}<br />
== [[File:edit properties.jpg]] Edit Properties ==<br />
Each engine or car in Trainz can be assigned properties. Click LMB on Edit Properties (P) to enable the setting of properties for engines and vehicles. The particular<br />
properties than can be assigned depend on what features were included with the engine or car when it was created.<br />
<br />
A name will be automatically assigned to the engine or car by adding a number to its name, which can be customized, as found in the list of locos and cars.<br />
Names for locos and rolling stock persist only for this particular session.<br />
<br />
Running numbers for some engines or cars can be changed by Clicking LMB on the underlined text after the words Running Number: a new window opens in which you may<br />
enter the number of your choice. If a running number has been assigned automatically this will be indicated.<br />
<br />
If the engine or car supports commodities then they are configured in the area below the general properties. Typical commodities include fuel (diesel or coal) for engines, coal for tenders, <br />
general goods or any other product for wagons, and passengers for coaches.<br />
<br />
= Consist Mode =<br />
[[File:Trains2.jpg|400px]]<br />
{{clear}}<br />
Click LMB on Consist Mode (C), one of two large<br />
buttons at the top of the tab, to enable the<br />
placing of complete consists available in the list<br />
of consists below the button.<br />
A consist window appears at the bottom of the screen which<br />
display the currently selected consist in the list at the top of<br />
the tab.<br />
Click LMB on any consist in the list and it will appear in the<br />
consist window for your reference.<br />
You can Click LMB on any of the vehicles in the consist<br />
window to change their direction. Click LMB and hold on a<br />
vehicle and drag it outside of the consist window to remove<br />
it from the consist.<br />
== [[File:Rename.jpg]] Rename Consist Template ==<br />
{{clear}}<br />
Click LMB on the Rename Consist Template<br />
button to rename the '''Custom'''<br />
consist currently selected in the list. A window will open up<br />
in which you may do the renaming.<br />
== [[File:Delete.jpg]] Delete Consist Template ==<br />
{{clear}}<br />
Click LMB on the Delete Consist Template<br />
button to delete the '''Custom''' consist currently<br />
selected in the list. A window will open up in which you will<br />
click on the Yes or No button to confirm or deny the deletion.<br />
== [[File:object add.jpg]] Add Consist ==<br />
{{clear}}<br />
Click LMB on Add Consist (A) to add one of your<br />
chosen consists to your route. Click LMB at any point<br />
on the track to place the complete consist there.<br />
== [[File:object move.jpg]] Move Consist ==<br />
{{clear}}<br />
Click LMB on Move Consist (M) to enable you to move any<br />
consist on your route along the track to adjust its<br />
starting position. Click LMB+H on any consist to<br />
move it back and forth along the track.<br />
To join two separate consists together, move one consist<br />
along the track until it touches the other then release LMB.<br />
The two sets of associated Red and Green arrows that marked<br />
out the will then combine into one set for the new consist.<br />
== [[File:reload page.jpg]] Rotate Consist ==<br />
{{clear}}<br />
Click LMB on Rotate Consist (R) to enable the<br />
rotation of any consist so that it is pointed in the<br />
other direction. Click LMB on the consist to change<br />
its direction. The Red and Green arrows will also switch<br />
positions to reflect the rotation.<br />
== [[File:change heading.jpg]] Change Heading ==<br />
{{clear}}<br />
Click LMB on the Change Heading (H) button to<br />
enable the changing of the heading of a consist.<br />
Then Click LMB on any consist and the Green and<br />
Red arrows will move to opposite ends of the consist setting<br />
the direction that will be forward when the consist is started<br />
in Driver mode.<br />
== [[File:object get.jpg]] Get Consist ==<br />
{{clear}}<br />
Click LMB on Get Consist (G) to add new consists to the consist list. This also allows the quick selection and replication of consists already within the route.<br />
<br />
If the consist is already in the consist list, it will be selected.<br />
<br />
Right clicking the Get Consist button will toggle to or from the Get to Pick List function.<br />
<br />
The Get to Picklist tool allows you to 'get' any train consist on a route, and then add the items in the consist to a Pick List automatically.<br />
<br />
== [[File:area cancel.jpg]] Delete Consist ==<br />
{{clear}}<br />
Click LMB on the Delete Consist (D) button (not to<br />
be confused with the big gray colored Delete Train<br />
Template button in the middle of the Tab) to enable<br />
the deletion of consist placed on the track. Then Click LMB on<br />
any consist to remove it.<br />
== [[File:train decouple.jpg]] Decouple Carriage ==<br />
{{clear}}<br />
Click LMB on the Decouple Carriage (X) button to<br />
enable the decoupling of parts of a consist. Then Click LMB on<br />
the coupler icon that will appear when you move the cursor<br />
between cars or engines in a consist. You will see that the red<br />
and Green arrows will show that you now have two consists.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Trains_PropertiesHelp:Surveyor Trains Properties2020-02-04T04:43:34Z<p>Builderbob: Formatting</p>
<hr />
<div>== [[File:edit properties.jpg]] Edit Properties ==<br />
Each engine or car in Trainz can be assigned properties. Click LMB on Edit Properties (P) to enable the setting of properties for engines and vehicles. The particular<br />
properties than can be assigned depend on what features were included with the engine or car when it was created.<br />
<br />
A name will be automatically assigned to the engine or car by adding a number to its name, which can be customized, as found in the list of locos and cars.<br />
Names for locos and rolling stock persist only for this particular session.<br />
<br />
Running numbers for some engines or cars can be changed by Clicking LMB on the underlined text after the words Running Number: a new window opens in which you may<br />
enter the number of your choice. If a running number has been assigned automatically this will be indicated.<br />
<br />
If the engine or car supports commodities then they are configured in the area below the general properties. Typical commodities include fuel (diesel or coal) for engines, coal for tenders, <br />
general goods or any other product for wagons, and passengers for coaches. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
* [[Help:Surveyor_Trains_Tools]]<br />
<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Vehicle_Attachment_PointsVehicle Attachment Points2019-09-30T21:49:15Z<p>Builderbob: Automatic driver placement.</p>
<hr />
<div>These are [[Attachment Points]] in 3D space giving information on various aspects of the train. Attachment Points with these reserved names should be used only for the purposes specified here. You should not attempt to re-use the attachments for other purposes, as behaviours beyond those described here may differ between Trainz builds. <br />
<br />
=Special Points=<br />
==a.limfront==<br />
* Marks the front of the train, used for coupling<br />
* Should be roughly the same distance from origin as '''a.limback'''<br />
* Bogeys can be further forward than '''a.limfront''' if desired<br />
* Determines the forward headlight position<br />
* Height above origin (or Z) = 0.89m (2’ 10.8”)<br />
<br />
==a.limback==<br />
* Marks the rear of the train, used for coupling<br />
* See '''a.limfront'''<br />
* Height above origin (or Z) = 0.89m (2’ 10.8”)<br />
<br />
==a.bog0==<br />
* Front bogey attachment.<br />
* Used for positioning the train on the track.<br />
* Positioned at absolute centre of front bogey.<br />
* Must be on the forward side of the origin (a.limfront side.)<br />
* Must match an actual physical bogey placement that the user can see. This should not be used as a placeholder for non-bogey purposes.<br />
<br />
==a.bog1==<br />
* Rear bogey attachment.<br />
* Used for positioning the train on the track.<br />
* Positioned at absolute centre of rear bogey.<br />
* Must be on the rearward side of the origin (a.limback side.)<br />
* Must match an actual physical bogey placement that the user can see. This should not be used as a placeholder for non-bogey purposes.<br />
<br />
==a.bog (2, 3, etc)==<br />
* Any other bogey attachments.<br />
* Must match an actual physical bogey placement that the user can see. This should not be used as a placeholder for non-bogey purposes.<br />
<br />
==a.exhaust (0, 1, etc..)==<br />
* Smoke generator attachments (where needed.)<br />
<br />
==a.ditch* (0, 1, etc..)==<br />
* Ditch lights '''a.ditch0''', '''a.ditch2''' The odd numbered light points flash together, alternating with the even numbered light points.<br />
<br />
==a.light* (0, 1, etc..)==<br />
<br />
* Attachment points for locomotive headlights. <br />
<br />
* These must be numbered consecutively starting with a.light0 which can be at front or rear. Attachments fore of the origin will display when the loco 'heading' is set to forward. Attachments aft of the origin will display when the heading is reversed. For simplicity it's good practise to use e.g. a.light0 and a.light1 at the front and a.light2 and a.light3 at rear though this is not critical as long as they are numbered consecutively.<br />
<br />
* For all headlight points (front and rear) the Y axis points toward the loco rear.<br />
<br />
* If you only want a light on the rear of the vehicle place a.light0 at the rear.<br />
<br />
==a.cabfront==<br />
* Attachment point for the front cabin of a loco.<br />
* Located at the centre of cabin.<br />
<br />
==a.cabback==<br />
* Attachment point for the rear cabin of a loco. Use this for dual cab locomotives.<br />
* Located at the centre of cabin<br />
* Front/back cab toggled using the ‘Alt C’ key when using the internal camera mode.<br />
<br />
==a.pant (0, 1, etc..)==<br />
* Attachment point for pantographs (where needed, i.e. Electric locos.)<br />
<br />
==a.driver (0, 1, etc..)==<br />
* Attachment point for driver mesh (0 is used for the first driver, 1 for the second driver in dual cab for instance.) Currently, only '''a.driver0''' is supported. If this attachment point exists in the mesh but is not used for an attached mesh in the asset's config.txt file, then the driver selected by the user in Driver mode will be placed at this attachment point.<br />
<br />
==a.outsideview (0, 1, etc..)==<br />
* These are located external of the loco body mesh.<br />
* The camera is positioned to face the negative Y direction of the attachment.<br />
* Toggled using [ and ] using the internal camera mode after default interior camera views.<br />
<br />
==a.r.pivot/a.lever (sample names used only)==<br />
* Special naming convention for attachment points that are to move with the animation of the asset.<br />
* Refer to the CCG for information.<br />
<br />
==a.whistle==<br />
* Attachment point for particle effects being emitted when the whistle key is pressed.<br />
<br />
==a.couple0==<br />
* Front attachment point for ACS couplers, location is (0,Y,0) where Y is 0.46 metres inboard of "a.limfront".<br />
<br />
==a.couple1==<br />
* Rear attachment point for ACS couplers, location is (0,Y,0) where Y is 0.46 metres inboard of "a.limback".</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_AdvancedHelp:Surveyor Topology Advanced2019-09-28T01:09:13Z<p>Builderbob: Update</p>
<hr />
<div><br />
=TANE=<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
== [[File:Displacement map.jpg|90px]] Displacement map ==<br />
A displacement map is a grayscale image<br />
used to create an instant height map. Click the left and right arrows to scroll through the available height maps.<br />
<br />
== [[File:Direction.jpg]] Displacement Direction ==<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
== [[File:Threshold.jpg]] Displacement Scale ==<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
== [[File:Area select.jpg]] Select Area (B) ==<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to change the size of the square.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
== [[File:Area fill.jpg]] Fill area (F) ==<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
== [[File:Area cancel.jpg]] Cancel Selection (D) ==<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
== [[File:Area grab.jpg]] Get displacement (B) ==<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect in another area with the [[Help:Surveyor Topology Advanced Displacement Map Apply|Fill Area]] tool.<br />
<br />
=TRS2019=<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
==Effect Layers==<br />
===[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ===<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[Help:Surveyor_Topology_Tools#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[Help:Surveyor_Topology_Tools#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[Help:Surveyor_Topology_Tools#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[Help:Surveyor_Topology_Tools#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[Help:Surveyor_Topology_Tools#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[Help:Surveyor_Topology_Tools#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[Help:Surveyor_Topology_Tools#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[Help:Surveyor_Topology_Tools#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[Help:Surveyor_Topology_Tools#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[Help:Surveyor_Topology_Tools#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[Help:Surveyor_Topology_Tools#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[Help:Surveyor_Topology_Tools#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[Help:Surveyor_Topology_Tools#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[Help:Surveyor_Topology_Tools#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
===[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers===<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
==Displacement Maps==<br />
=== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image used to create an instant height map. Used to create terrain features quickly and easily.<br />
<br />
=== Direction ===<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== Displacement Scale===<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
=== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ===<br />
Click LMB on Select Area (B). Click LMB and drag the mouse to select a rectangular region of the route. The selection determines the area that will be affected by the Fill Area (F) operation. The selection can be cancelled with the Cancel Selection (B) button.<br />
<br />
=== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
==See Also==<br />
* [[Help:Surveyor_Topology_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_Advanced_Displacement_Map_Area_SelectHelp:Surveyor Topology Advanced Displacement Map Area Select2019-09-28T01:07:08Z<p>Builderbob: Update</p>
<hr />
<div>==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click LMB on Select Area (B). Click LMB and drag the mouse to select a rectangular region of the route. The selection determines the area that will be affected by the Fill Area (F) operation. The selection can be cancelled with the Cancel Selection (B) button.<br />
<br />
==TRS2019 Effects Layers (Clutter and TurfFX)==<br />
When clutter effect is selected, the Select Area tool will allow you to select an area, to then use the [[Help:Surveyor_Topology_Tools#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
Return To:<br />
* [[Help:Surveyor_Topology_Advanced]]<br />
* [[Help:Surveyor_Topology_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_ToolsHelp:Surveyor Topology Tools2019-09-03T02:24:53Z<p>Builderbob: Separate effects and displacements</p>
<hr />
<div>The Topology Menu provides<br />
the tools for creating various<br />
types of terrain. In this section<br />
you will learn how to make<br />
hills, valleys, mountains, lakes<br />
and rivers.<br />
<br />
Click on the Topology Tab (or<br />
press the F1 key) to open the<br />
Topology Menu. Here you<br />
will see a number of different<br />
tools that can be used to shape<br />
the terrain. Hold your mouse<br />
cursor over each one to see a<br />
short description as well as the<br />
appropriate Hotkey to press. To<br />
see the whole menu as in the<br />
iamge below, click on the<br />
“Advanced” button to expand<br />
the menu.<br />
<br />
[[File:Topology.jpeg]]<br />
{{clear}}<br />
<br />
* The three top buttons allow you to activate the basic tools to raise and lower terrain.<br />
* The knobs below that alter the area the tool will affect and the sensitivity of the tool.<br />
<br />
For an overview of how the topology tools work [[Help:Topology_editing|click here]]<br />
<br />
=TANE=<br />
== Main menu ==<br />
=== [[File:Height up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see. <br />
<br />
=== [[File:Height down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Height adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Height get.jpg]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Height use.jpg]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Plateu.jpg]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Height value field.jpg]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Water add.jpg]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size. <br />
<br />
=== [[File:Water remove.jpg]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Water adjust height.jpg]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Height value field.jpg]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered. <br />
<br />
=== [[File:Ground add.jpg]] Add ground (X) ===<br />
Select the Add Ground<br />
(X) tool. Click LMB in the void just off the edge of<br />
the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required. <br />
<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Ground remove.jpg]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
=== [[File:Displacement map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image<br />
used to create an instant height map.<br />
<br />
=== [[File:Direction.jpg]] Direction ===<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== [[File:Threshold.jpg]] Threshold ===<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
=== [[File:Area select.jpg]] Select area (B) ===<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
=== [[File:Area fill.jpg]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Area cancel.jpg]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Area grab.jpg]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
=TRS2019=<br />
<br />
For a basic overview on the Topology Tools in TRS19 you can view the tutorial video [[https://youtu.be/O8n0Z5jQ9q8 HERE]].<br />
<br />
TRS2019 introduces several new features in the Topology tools, mostly relating to the new Clutter and TurfFX effects.<br />
<br />
[[File:Trs2019-topology-tab.JPG]]<br />
<br />
== Main menu (Terrain Mode) ==<br />
=== [[File:Trs2019-topology-tab-height-up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Trs2019-topology-tab-radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Trs2019-topology-tab-sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Trs2019-topology-tab-get-height.jpg|48px]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Trs2019-topology-tab-use-height.jpg|48px]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Trs2019-topology-tab-plateau.jpg|48px]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Trs2019-topology-tab-height-entry.jpg|48px]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Trs2019-topology-tab-add-water.jpg|48px]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-water.jpg|48px]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height.jpg|48px]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height-value.jpg|48px]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered.<br />
<br />
=== [[File:Trs2019-topology-tab-add-ground.jpg|48px]] Add ground (X) ===<br />
Select the Add Ground (X) tool. Click LMB in the void just off the edge of the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required.<br />
<br />
=== [[File:Trs2019-topology-tab-select-grid-size.jpg|48px]] Change Grid Size ===<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-ground.jpg|48px]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might be disabled.<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
====[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ====<br />
<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layer mode.<br />
<br />
When Ground is selected the advanced topology tools will be in [[Help:Surveyor_Topology_Tools#Displacement_Maps|Displacement Map]] mode. <br />
<br />
When an Effects Layer is selected the advanced topology tools will be in the Effects Layer mode. Effects Layers will only be shown if there are Effects Layers configured for the route.<br />
<br />
===Effect Layers===<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
====[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers====<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
===Displacement Maps===<br />
==== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ====<br />
Select 'Ground' in the drop down menu to access the displacement map tools. A displacement map is a Trainz [[KIND Groundbrush]] asset that is used to create terrain features quickly and easily. When the displacement map tools are selected there is a second drop down menu that lists the displacement maps that are available. The default is None which is a null displacement. Select an item from the menu to make it the current displacement map: the map will appear in the preview pane. Click the 'x' in the preview pane to reset the map to None.<br />
<br />
==== Direction ====<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
==== Displacement Scale====<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click on Select Area (B). Click LMB and drag the mouse to select the rectangular area to which the displacement will be applied.<br />
<br />
==== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ====<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
==== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ====<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
==== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ====<br />
Click LMB on Select Area (B). Click LMBH-d on the baseboard and drag the mouse to select a rectangular area of the terrain. Now click LMB on the “Get Displacement” button and a custom displacement map will be created using the height profile of the selected area, and will show in the preview window. This displacement map can now be used to apply the same terrain effect in another area, using rotation and scaling as required. Click LMB on the tick mark in the preview window and supply a name for the new displacement map - it will be saved with the supplied name and will be available for use in any route.<br />
<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools|Surveyor Tools]]<br />
* [[Help:Surveyor|Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_Effect_LayerHelp:Surveyor Topology Effect Layer2019-09-03T02:17:02Z<p>Builderbob: Add comment and link re displacement map mode</p>
<hr />
<div>==[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ==<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
When Ground is selected the advanced topology tools will be in [[Help:Surveyor_Topology_Tools#Displacement_Maps|Displacement Map]] mode.<br />
<br />
When an Effect Layer is selected the advanced topology tools will be in the Effects Layer mode. Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[Help:Surveyor_Topology_Tools#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[Help:Surveyor_Topology_Tools#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[Help:Surveyor_Topology_Tools#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[Help:Surveyor_Topology_Tools#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[Help:Surveyor_Topology_Tools#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[Help:Surveyor_Topology_Tools#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[Help:Surveyor_Topology_Tools#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[Help:Surveyor_Topology_Tools#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[Help:Surveyor_Topology_Tools#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[Help:Surveyor_Topology_Tools#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[Help:Surveyor_Topology_Tools#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[Help:Surveyor_Topology_Tools#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[Help:Surveyor_Topology_Tools#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[Help:Surveyor_Topology_Tools#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
==See Also==<br />
* [[Help:Surveyor_Topology_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Track_ToolsHelp:Surveyor Track Tools2019-08-25T07:33:54Z<p>Builderbob: Rewrite track tab</p>
<hr />
<div>Tracks (F4) allows you to place tracks on the baseboard. <br />
<br />
Track sections in Trainz are made up of flexible length track pieces created by placing two spline points to define the two ends of a section. Sections are strung together to create the track network.<br />
<br />
Select the Track Menu (F4) in Surveyor and the Tracks flyout will open. The default mode will be Add Track (A).<br />
will be Track Mode (T).<br />
<br />
=Track mode=<br />
[[File:Tracks1.jpg]]<br />
<br />
=== [[File:Track list.jpg|90px]] Track selection ===<br />
To choose a track use the slider to the right of the list to navigate to the required track. Or, type a name for a track in the text box and the list will scroll to the first matching track. Click LMB on a track in the list and it will become the current selected track. The selected track will be displayed in the pane below the list. <br />
<br />
=== [[File:TRS19 Object add.jpg]] Add Track ===<br />
Click on the Add Track (A) tool and then Click LMB on the baseboard where you want to anchor your starting point. Click LMB again some distance away to place another spline point. The current selected track will be laid between the points. To extend the track further, click LMB again on the last spline point (the white circle), then click LMB to extend the track to the next point. <br />
<br />
To extend a section automatically with each mouse click, hold the Ctrl key while clicking to place each point.<br />
<br />
If track is laid close to an existing track it will join to form a track junction. If this is not what is wanted then hold the Shift key down while clicking to place the point, and the points will not be joined.<br />
<br />
=== [[File:TRS19 Object move.jpg]] Move Track ===<br />
To adjust the track path, select the Move Track (M) tool and then Click LMB-h on one of the white spline point circles and drag it to move the point. The track will be adjusted to form a smooth curve through the new position. If the point that is being moved is an end point then if it is moved to a position close to existing track it will join to form a track junction. If this is not what is wanted then hold the Shift key down when releasing the mouse button and the points will not be joined.<br />
<br />
=== [[File:TRS19 Split spline.jpg]] Split Spline ===<br />
{{clear}}<br />
Select the Split Spline (Q) tool and then click LMB on a spline point (other than an end point) to split the track at that point. Two end spline points will be created at the same location, and the two portions of the track will become separate splines. <br />
<br />
=== [[File:TRS19 object get.jpg]] Get Track ===<br />
Click on Get Track (G) and then Click LMB on a track. The track that is clicked will become the current selected track and the mode will be changed to Add Track (A).<br />
<br />
=== [[File:Misc_tools_area_get.jpg]] Get to Pick List ===<br />
To access the Get to Pick List function, Right Click on the Get button, and the icon will then change to the Get to Pick List button. Now Left Click this button to select the Get to Pick List tool.<br />
<br />
The Get to Pick List tool allows you to 'get' any object on a route, and then add it to a [[Help/Content_Search_Filter#Pick_List|Pick List]]. The Pick List that the item is added to is the current Pick List in the Content Search Filter window: be sure that the correct Pick List is the current Pick List before selecting the spline object with the Get to Pick List Tool.<br />
<br />
=== [[File:TRS19 object delete.jpg]] Delete Track ===<br />
Click on Delete Track (D) then click on a section of track to delete it. If there are any track objects or track markers on the track, they will also be deleted. If there are traincars on the track it cannot be deleted - move or delete the traincars before deleting the track.<br />
<br />
=== [[File:TRS19 Straighten spline.jpg]] Straighten Track ===<br />
Select the Straighten Track tool (B) then click LMB on a section of track to straighten that section. The curvature of adjacent sections will be adjusted to maintain a smooth track path, but spline points will not be moved. Click LMB on a straightened section of track to remove the straightening. <br />
<br />
Note that the exact effect of straightening a section depends on whether adjacent sections have already been straightened. For instance, two adjacent sections of track cannot both be straightened if the spline points that define them are not in a straight line. Correct use of the straighten track tool is very important in sections immediately adjacent to junctions.<br />
<br />
=== [[File:TRS19 Edit properties.jpg]] Edit properties ===<br />
Select the Edit Properties (P) tool and then click LMB on any track in your route. A pane will open up allowing you to edit the properties of the track. This can be used to name the track section, assign it to a layer, and modify the [[Help:Track_Condition|Track Condition]].<br />
<br />
== Advanced ==<br />
Click LMB on the Advanced button(Shift F4) to drop down the Advanced Track Menu.<br />
<br />
==== [[File:TRS19 Spline height.jpg]] Spline Height ====<br />
Click LMB the Adjust Spline Height (H) and Click LMB-h on a track spline point. Drag your mouse up or down to raise or lower the height of the spline point. The adjacent sections of the track will be adjusted to maintain a smooth gradient. The rotating circle marking the spline point will be changed from white to yellow, indicating that the height is now absolute, not relative to the local ground level. Note that the spline point height will become an absolute height even if the height doesn't actually change. <br />
<br />
The height of the spline point will be displayed as it is adjusted. Press and hold the Ctrl key to adjust the height in smaller increments. <br />
<br />
==== [[File:TRS19 Spline point delete.jpg]] Delete Spline Point ====<br />
Click LMB the Delete Spline Point (X) tool and then click LMB on a spline point to delete that point. The two adjacent track segments will become a single segment, and the track path and gradient will be adjusted. You cannot delete an end spline point but you can delete an end section using the Delete Spline (D) tool. You cannot delete a spline point that is a junction.<br />
<br />
==== [[File:TRS19 Spline point insert.jpg]] Insert Spline Point ====<br />
Click LMB the Insert Spline Point (I) tool then click LMB between two existing spline points. A new spline point will be created at the click location, and the track path will be adjusted. The height of the new spline point will be calculated from the slope of the existing section. If the section had been straightened it may be necessary to re-do the straightening. <br />
<br />
==== [[File:TRS19 Spline smooth.jpg]] Smooth Spline ====<br />
Click LMB the Smooth Spline (S) tool then click LMB on a section of spline to adjust the ground level to the height of the track. Multiple clicks (up to about 6) will increase the smoothness of the adjacent terrain.<br />
<br />
=== [[File:TRS19 Gradient get.jpg]] Get Gradient ===<br />
Click LMB the Get Gradient (J) tool and Click LMB on a track section between two track spline points. The gradient between those points is displayed in the Gradient Value box as a percentage slope. <br />
<br />
===[[File:TRS19 Track Condition value.jpg]] Gradient Value===<br />
The Gradient obtained from the Get Gradient tool is displayed in the Gradient box. You can manually enter a Gradient value (-50 to +50), and then use the Apply Gradient tool to apply the Gradient to the section of track. Positive gradient values are used for an ascending slope, and negative gradient values are used for a descending slope.<br />
<br />
=== [[File:TRS19 Gradient apply.jpg]] Apply Gradient ===<br />
Click LMB the Apply Gradient (K) tool and Click LMB on a track section between two track spline points. The percentage gradient in the Gradient Value text box will be applied to the section of track. Note that the gradient is applied away from the spline point that is nearest the click point, towards the spline point that is further from the click point. The height of that further spline point will be adjusted as required. <br />
<br />
=== [[File:TRS19 Gradient remove.jpg]] Remove Gradient ===<br />
Click LMB the Remove Gradient tool and then Click LMB on a spline point to reset the height of the spline. <br />
<br />
When a spline point is first added its height is zero relative to the ground at the point at which it is located, and its height follows any changes in the ground height. This is indicated by a white rotating circle. If the height is adjusted it becomes an absolute height, so that the height does not change with subsequent changes in ground height, and this is indicated by a yellow rotating circle. The Remove Gradient tool reverts the spline point height to its original state - zero relative to the ground and a white rotating circle. <br />
<br />
If a spline point height is already zero relative to the ground (white rotating circle) then this tool has no effect. <br />
<br />
===[[File:TRS19 Track Condition get.jpg]] Get Track Condition===<br />
Click LMB the Get Track Condition tool and Click LMB on a track section between two track spline points. The track condition for that section of track is displayed in the Track Condition box as a percentage. <br />
<br />
===[[File:TRS19 Track Condition value.jpg]] Track Condition Value===<br />
The Track Condition obtained from the Get Track Condition tool is displayed in the Track Condition box. You can manually enter a Track Condition value (between 0 and 100), and then use the Apply Track Condition tool to apply the Track Condition to the track splines.<br />
<br />
===[[File:TRS19 Track Condition apply.jpg]] Track Condition Apply===<br />
Click LMB the Apply Track Condition tool and Click LMB on a track section between two track spline points. The track condition value in the Track Condition box will be applied to that section of track. <br />
<br />
See [[Help:Track_Condition|Track Condition]] for further information.<br />
<br />
===[[File:TRS19 Track Condition default.jpg]] Track Condition Default===<br />
Click LMB the Default Track Condition tool and Click LMB on a track section between two track spline points. The track condition of the section is reset to the track spline's default value (generally 50%).<br />
<br />
=== [[File:TRS19 vertex height get.jpg]] Get Vertex Height ===<br />
Click LMB the Get Vertex Height and Click LMB on a spline point on your track. The height of the spline point is displayed in the Height Value box.<br />
<br />
=== [[File:TRS19 vertex height edit.jpg]] Get Vertex Height ===<br />
The Vertex Height obtained with the Get Vertex Height tool is displayed in the Vertex Height box. You can manually enter a Vertex Height value and then use the Vertex Height Apply tool to apply the Vertex Height to the track vertex (spline point).<br />
<br />
=== [[File:TRS19 vertex height apply.jpg]] Apply Vertex Height ===<br />
Click LMB the Apply Vertex Height tool then Click LMB on a spline point. The spline point is raised to the height displayed in the Vertex Height box. <br />
<br />
=== [[File:TRS19 curve radius get.jpg]] Show Curve Radius ===<br />
Click LMB the Show Curve Radius tool then move the mouse to any place on the track. The curve radius at that point is displayed alongside the mouse cursor. The value is the radius measured in meters: a low value indicates a tight curve and a high value indicates a wider curve. Straight track has a curve value of zero.<br />
<br />
===[[File:TRS19 Track Vertex Properties.jpg]] Track Vertex Properties===<br />
The Track Vertex Properties allows you to access the properties for each track vertex (spline point). To use this tool, select the Track Vertex Properties tool, then click on a Track Vertex (Spline Point).<br />
<br />
Currently, the Track Vertex Properties are used to configure the [[HowTo/Use_Superelevation|Superelevation]] of track on curves.<br />
<br />
= Trackside Mode =<br />
[[File:Tracks2.jpg]]<br />
{{clear}}<br />
The second mode in the Track Menu is Trackside<br />
Mode. Click LMB on Trackside Mode (Y) to<br />
change the Track Tab menu to the Trackside<br />
Mode menu.<br />
=== [[File:TRS19 Object add.jpg]] Add Object ===<br />
{{clear}}<br />
To add a trackside object Click LMB on the Add<br />
Object (A) button. The select the object you wish<br />
to place from the list. Click LMB at one or the other<br />
side at some point of the track. Your object will be placed<br />
beside the track and will be “attached” to it. So if you move<br />
the track it will move with it.<br />
=== [[File:TRS19 Object move.jpg]] Move Object ===<br />
{{clear}}<br />
Click LMB on Move Object (M). Then Click LMB+H on<br />
a Trackside Object on your track. Drag your mouse<br />
along the track to move the object to a different<br />
position.<br />
=== [[File:TRS19 TSide Rotate.jpg]] Rotate ===<br />
{{clear}}<br />
Select the Rotate Object tool (R) and click LMB on the object. It will switch sides of the track and rotate 180 degrees. The direction that a trackside object faces is controlled by the direction in which the track was laid.<br />
<br />
=== [[File:TRS19 object get.jpg]] Get Object ===<br />
{{clear}}<br />
Click on the Get Object (G) tool and then Click<br />
LMB on an object already placed at the trackside.<br />
The object selected now appears in the<br />
selection window.<br />
Change the mode to Add Object (A) and Click LMB again at<br />
another point on the track where you wish to place another<br />
copy of the newly selected object.<br />
=== [[File:TRS19 object delete.jpg]] Delete Object ===<br />
{{clear}}<br />
Select Delete Object (D) then Click LMB to delete a<br />
trackside object.<br />
Continue Clicking LMB to delete a number of objects. If you<br />
click on the wrong object, click on Undo (Ctrl-Z) to undo the<br />
last action and replace the last deleted object.<br />
=== [[File:Junction direction.jpg]] Junction Direction ===<br />
{{clear}}<br />
To change the default direction of travel (for when you drive on<br />
this track in the Driver module), Click LMB on the Junction<br />
Direction (J) tool and then Click LMB once on the green and<br />
red arrows. The direction of travel will be changed (green denoting<br />
the default direction).<br />
You can also make 3-way turnouts by simply adding a third<br />
track to the turnout. There are now three direction arrows.<br />
=== [[File:TRS19 Edit properties.jpg]] Define Name ===<br />
{{clear}}<br />
Click the Define Name (N) tool and click again<br />
on the turnout. A dialogue box opens allowing you<br />
to type a name for the turnout in the box. Click the<br />
Check (proceed) icon to save the name and proceed.<br />
<br />
= Trackmark Mode = <br />
[[File:Tracks3.jpg]]<br />
{{clear}}<br />
The third mode in the Track Menu is Trackmark<br />
Mode. Trackmark mode is used for the<br />
management of Trackmarks and Triggers.<br />
These are used to assist in setting up the<br />
rules for a session, which allows you to design<br />
operations for your route.<br />
Click LMB on the Trackmark Mode (V) to change the Track<br />
Tab menu to the Trackmark Mode menu.<br />
=== [[File:TRS19 Object add.jpg]] Add Trackmark ===<br />
{{clear}}<br />
To add a Trackmark, Click LMB on the Add Trackmark<br />
(A) button. Click LMB at a point on the track. A<br />
trackmark will be placed on the track and will be<br />
“attached” to it. So if you move the track it will move with<br />
it.<br />
=== [[File:TRS19 Object move.jpg]] Move Trackmark ===<br />
{{clear}}<br />
Click LMB on Move Trackmark (M). Then Click<br />
LMB+H on a Trackmark Object on your track. Drag<br />
your mouse along the track to move the object to a<br />
different position.<br />
=== [[File:TRS19 TSide Rotate.jpg]] Rotate Trackmark ===<br />
{{clear}}<br />
Select Rotate Trackmark (R) and the default direction<br />
of the Trackmark is reversed.<br />
=== [[File:TRS19 object get.jpg]] Get Trackmark ===<br />
{{clear}}<br />
Click on the Get Trackmark (G) tool and then Click<br />
LMB on a trackmark already placed at the track.<br />
That trackmark now appears in the selection<br />
window.<br />
Change the mode to Add Object (A) and Click LMB again at<br />
another point on the track where you wish to place another<br />
copy of the trackmark.<br />
=== [[File:TRS19 object delete.jpg]] Delte Trackmark ===<br />
{{clear}}<br />
Select Delete Trackmark (D) then Click LMB on a<br />
trackmark to delete it.<br />
=== [[File:TRS19 Edit properties.jpg]] Define Name ===<br />
{{clear}}<br />
To name your trackmarks so that you can find them again<br />
later on and use them in rules, Click LMB on Define Name<br />
(N). Then click on the trackmark and a dialogue box comes<br />
up where you can name the trackmark.<br />
== Advanced ==<br />
Advanced Trigger Management Tools<br />
The advanced settings of the Trackmark tools menu are used<br />
to set the radius of triggers. The radius defines the scope of<br />
the trigger and is explained in the previous section.<br />
=== [[File:trigger radius get.jpg]] Get Radius ===<br />
{{clear}}<br />
Click on the Get Radius tool and then Click LMB on<br />
a trigger. The trigger’s radius will now be in the text<br />
field adjacent to the button. The triggers have<br />
a default radius of 20 meters so this may not appear to have<br />
changed.<br />
=== [[File:trigger radius set.jpg]] Apply Radius ===<br />
{{clear}}<br />
Click on Apply Radius then Click LMB on a trigger to<br />
apply the value in the radius field to that trigger.<br />
=== [[File:trigger radius adjust.jpg]] Edit Radius ===<br />
Click on Edit Radius then Click LMB on a trigger<br />
and drag the mouse with the LMB still being held<br />
down to change the trigger radius. There is no visual<br />
indication of the radius as you drag it however. Use Get<br />
Radius to find out the new radius of that trigger.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_ToolsHelp:Surveyor Topology Tools2019-08-25T05:56:38Z<p>Builderbob: Rectangular area</p>
<hr />
<div>The Topology Menu provides<br />
the tools for creating various<br />
types of terrain. In this section<br />
you will learn how to make<br />
hills, valleys, mountains, lakes<br />
and rivers.<br />
<br />
Click on the Topology Tab (or<br />
press the F1 key) to open the<br />
Topology Menu. Here you<br />
will see a number of different<br />
tools that can be used to shape<br />
the terrain. Hold your mouse<br />
cursor over each one to see a<br />
short description as well as the<br />
appropriate Hotkey to press. To<br />
see the whole menu as in the<br />
iamge below, click on the<br />
“Advanced” button to expand<br />
the menu.<br />
<br />
[[File:Topology.jpeg]]<br />
{{clear}}<br />
<br />
* The three top buttons allow you to activate the basic tools to raise and lower terrain.<br />
* The knobs below that alter the area the tool will affect and the sensitivity of the tool.<br />
<br />
For an overview of how the topology tools work [[Help:Topology_editing|click here]]<br />
<br />
=TANE=<br />
== Main menu ==<br />
=== [[File:Height up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see. <br />
<br />
=== [[File:Height down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Height adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Height get.jpg]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Height use.jpg]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Plateu.jpg]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Height value field.jpg]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Water add.jpg]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size. <br />
<br />
=== [[File:Water remove.jpg]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Water adjust height.jpg]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Height value field.jpg]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered. <br />
<br />
=== [[File:Ground add.jpg]] Add ground (X) ===<br />
Select the Add Ground<br />
(X) tool. Click LMB in the void just off the edge of<br />
the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required. <br />
<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Ground remove.jpg]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
=== [[File:Displacement map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image<br />
used to create an instant height map.<br />
<br />
=== [[File:Direction.jpg]] Direction ===<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== [[File:Threshold.jpg]] Threshold ===<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
=== [[File:Area select.jpg]] Select area (B) ===<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
=== [[File:Area fill.jpg]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Area cancel.jpg]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Area grab.jpg]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
=TRS2019=<br />
<br />
For a basic overview on the Topology Tools in TRS19 you can view the tutorial video [[https://youtu.be/O8n0Z5jQ9q8 HERE]].<br />
<br />
TRS2019 introduces several new features in the Topology tools, mostly relating to the new Clutter and TurfFX effects.<br />
<br />
[[File:Trs2019-topology-tab.JPG]]<br />
<br />
== Main menu (Terrain Mode) ==<br />
=== [[File:Trs2019-topology-tab-height-up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Trs2019-topology-tab-radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Trs2019-topology-tab-sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Trs2019-topology-tab-get-height.jpg|48px]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Trs2019-topology-tab-use-height.jpg|48px]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Trs2019-topology-tab-plateau.jpg|48px]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Trs2019-topology-tab-height-entry.jpg|48px]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Trs2019-topology-tab-add-water.jpg|48px]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-water.jpg|48px]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height.jpg|48px]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height-value.jpg|48px]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered.<br />
<br />
=== [[File:Trs2019-topology-tab-add-ground.jpg|48px]] Add ground (X) ===<br />
Select the Add Ground (X) tool. Click LMB in the void just off the edge of the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required.<br />
<br />
=== [[File:Trs2019-topology-tab-select-grid-size.jpg|48px]] Change Grid Size ===<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-ground.jpg|48px]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
===Effect Layers===<br />
====[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ====<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
====[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers====<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
===Displacement Maps===<br />
==== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ====<br />
Select 'Ground' in the drop down menu to access the displacement map tools. A displacement map is a Trainz [[KIND Groundbrush]] asset that is used to create terrain features quickly and easily. When the displacement map tools are selected there is a second drop down menu that lists the displacement maps that are available. The default is None which is a null displacement. Select an item from the menu to make it the current displacement map: the map will appear in the preview pane. Click the 'x' in the preview pane to reset the map to None.<br />
<br />
==== Direction ====<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
==== Displacement Scale====<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click on Select Area (B). Click LMB and drag the mouse to select the rectangular area to which the displacement will be applied.<br />
<br />
==== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ====<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
==== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ====<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
==== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ====<br />
Click LMB on Select Area (B). Click LMBH-d on the baseboard and drag the mouse to select a rectangular area of the terrain. Now click LMB on the “Get Displacement” button and a custom displacement map will be created using the height profile of the selected area, and will show in the preview window. This displacement map can now be used to apply the same terrain effect in another area, using rotation and scaling as required. Click LMB on the tick mark in the preview window and supply a name for the new displacement map - it will be saved with the supplied name and will be available for use in any route.<br />
<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools|Surveyor Tools]]<br />
* [[Help:Surveyor|Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Misc_ToolsHelp:Surveyor Misc Tools2019-08-24T01:06:25Z<p>Builderbob: Update images and add Get to Picklist by Area.</p>
<hr />
<div>Tools tab allows you to place Rulers and Cameras on the route, as well as control some editing options.<br />
{{clear}}<br />
[[File:tools.jpg|400px]]<br />
{{clear}}<br />
<br />
= Ruler Management Tools =<br />
The ruler tool is used to<br />
measure track lengths, radius<br />
when laying curves, even<br />
the size of your basement or<br />
garage.<br />
== [[File:Add ruler.jpg]] Add Ruler ==<br />
{{clear}}<br />
To add a ruler,<br />
Click LMB on Add<br />
Ruler (R), then Click LMB at your chosen point in<br />
your terrain and drag the mouse to the other end<br />
point for the ruler and release the mouse button. The ruler<br />
stretches out just like you experienced with spline objects.<br />
To change the scale of the ruler, go into the Surveyor Main<br />
Menu and choose Edit Route. Change the units to real Scale,<br />
HO, OO or whatever scale you prefer. You can also choose between Metric and Imperial.<br />
== [[File:Move ruler.jpg]] Move Ruler ==<br />
{{clear}}<br />
To move the ruler, Click LMB on Move Ruler (T)<br />
and then Click LMB+H on either end of a ruler<br />
and then drag it to move that end of the ruler.<br />
== [[File:Delete ruler.jpg]] Delete Ruler ==<br />
{{clear}}<br />
Use Delete Ruler (Y) to delete the ruler. Leaving many rulers on the board may slow down the game.<br />
= Camera Management Tools =<br />
You can place static cameras, which focus on a section of<br />
track until the whole train passes by, or lineside (tracking)<br />
cameras, which pan across following the train movement.<br />
To select which camera to work with, click on either of the<br />
arrows in the middle of the tool list to switch between Static<br />
and Tracking camera mode.<br />
== [[File:Place camera.jpg]] Place Camera ==<br />
{{clear}}<br />
Before placing a camera, maneuver your normal<br />
viewpoint as close as possible to where you<br />
want to place the camera. Click on Place Camera<br />
(A), then Click LMB exactly where your Compass<br />
meets the ground. This places the camera in 3D<br />
space, and puts you automatically into Move Camera (M)<br />
mode. A Green box and a flashing green light appear.<br />
== [[File:Move camera.jpg]] Move Camera ==<br />
{{clear}}<br />
Use your zoom keys, and cursor keys to position<br />
the camera exactly as you want it to see in<br />
Driver, then Click LMB again to lock the camera<br />
in place. A red camera<br />
means it is a static camera, and green is a tracking camera.<br />
== [[File:Delete camera.jpg]] Delete Camera ==<br />
{{clear}}<br />
To delete an unwanted camera, select Delete<br />
Camera (D) and Click LMB on a 3D camera<br />
object. <br />
= Copying and Pasting Tools =<br />
Another very useful tool is the copy and paste function.<br />
== [[File:Select area.jpg]] Select Area ==<br />
{{clear}}<br />
Click LMB on Select Area (B) and Click LMB and<br />
drag to create a rectangle around the area you<br />
wish to copy. The white box shows the area that<br />
will be copied. Click LMB on Cancel Selection (X) to cancel the selection.<br />
== [[File:Paste mode.jpg]] Paste mode ==<br />
{{clear}}<br />
Click LMB on Paste Mode (P) and Click RMB to<br />
navigate around your terrain to the new location.<br />
Click LMB where you want the selection copied.<br />
== [[File:Paste rotation.jpg]] Paste Rotation ==<br />
{{clear}}<br />
You can also rotate your selection using the<br />
Paste Rotation dial (“[“ or “]”).<br />
== [[File:Paste height.jpg]]/[[File:Paste textures.jpg]]/[[File:Paste object.jpg]]/[[File:Paste tracks.jpg]] Paste Height, Textures, Objects or Track ==<br />
{{clear}}<br />
You can control what<br />
is and is not copied<br />
and pasted.<br />
You can copy height, textures, objects or any combination<br />
by selecting and deselecting the appropriate icons. These<br />
are “toggle” switches. Whilst in Paste Mode, click on Paste<br />
Height, Paste Textures or Paste Objects to include or exclude<br />
those elements from your paste function. The buttons will<br />
remain highlighted in bright green if toggled “on”.<br />
== [[File:Misc_tools_height_type.jpg]] Replace/Add ==<br />
{{clear}}<br />
You can paste either by ''replacing'' existing objects/textures/heights in the pasted area or by ''adding to'' the existing objects/textures/heights in the pasted area. Use S to replace or L to add, or click LMB on the respective icon to select the option before doing the paste. The default paste mode is replace. <br />
== [[File:Misc_tools_area_get.jpg]] Area Get to Picklist ==<br />
{{clear}}<br />
LMB on this tool to add all objects within the area that has been selected with the Select area (B) button to the current picklist. <br />
This tool is disabled if there is no area selected.<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Tools Misc]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/File:Misc_tools_area_get.jpgFile:Misc tools area get.jpg2019-08-24T00:40:21Z<p>Builderbob: Screen capture of the Area Get tool button from the Tools menu of Surveyor.</p>
<hr />
<div>Screen capture of the Area Get tool button from the Tools menu of Surveyor.</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/File:Misc_tools_height_type.jpgFile:Misc tools height type.jpg2019-08-24T00:35:37Z<p>Builderbob: Screen capture of the Paste Absolute and Paste Relative buttons from the Tools menu in Surveyor.</p>
<hr />
<div>Screen capture of the Paste Absolute and Paste Relative buttons from the Tools menu in Surveyor.</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_ToolsHelp:Surveyor Paint Tools2019-08-24T00:08:32Z<p>Builderbob: Missing items</p>
<hr />
<div>Click on the Paint Tab (F2) to open the Paint Menu. Tools in this menu allow you to paint a texture onto the terrain, with a selection of texture orientation and scale. There are also tools to fill areas of the terrain with a texture, and to replace textures already on the terrain.<br />
[[File:Paint.jpg|400px]]<br />
{{clear}}<br />
== [[File:Trs2019-paint-filter.JPG]] Texture Filter ==<br />
{{clear}}<br />
Enter a term into the Paint Texture Filter text box to filter the textures list. For example, if you are looking for grass textures, then enter 'grass' to show only textures with grass in the name.<br />
== Texture Select ==<br />
This list shows the installed textures that are available for selection. Hover the mouse over an item in the texture selection list to see the texture name, and click LMB on a texture to make it the current selection. The current texture is highlighted in the list and is also displayed in a small panel below the list. Scroll the list using the scroll button on the right-hand edge.<br />
== [[File:Direction.jpg]] Direction Tool ==<br />
{{clear}}<br />
Click LMB on the Direction indicator and rotate the pointer to change the orientation of the texture as it is painted onto the baseboard. The '[' and ']' keys can also be used to rotate the Direction pointer.<br />
== [[File:Scale.jpg]] Scale tool ==<br />
{{clear}}<br />
Click LMB on the Scale indicator and rotate the pointer to change the scale at which the texture is painted onto the baseboard. The Ctrl+[ and Ctrl+] keys can also be used to rotate the Scale pointer.<br />
== [[File:Texture get.jpg]] Get texture ==<br />
{{clear}}<br />
Click on the Get Texture (G) tool then Click LMB on a texture already painted onto your terrain to make it the current texture. The current texture window will show the newly selected texture. <br />
== [[File:Radius.jpg]] Radius Dial ==<br />
{{clear}}<br />
The Radius Dial (“+” or “-”) changes the size of the cursor circle used for painting the texture.<br />
== [[File:Grid fill.jpg]] Fill Grid ==<br />
{{clear}}<br />
Fill Grid (L) will open the [[Help:Surveyor_Main_Menu#Bulk_asset_update.2Freplace|Bulk Asset Replace]] panel from the Surveyor Main Menu so that you can replace one or more existing textures with the current selected texture.<br />
== [[File:Area select.jpg]] Select Area ==<br />
{{clear}}<br />
Click on Select Area (B) then click LMB and drag the mouse to cover a rectangular area of the terrain. This rectangle defines the area to be filled with the Fill Area tool (below).<br />
== [[File:Area fill.jpg]] Fill Area ==<br />
{{clear}}<br />
Click LMB on a texture in the textures list and use the Fill Area (F) tool to texture the whole rectangle. The area will be painted with the current texture at the current rotation and scale. This tool is disabled if there is no selected area.<br />
== [[File:Area cancel.jpg]] Cancel Selection ==<br />
Click LMB on Cancel Selection (D) to cancel the selected area. This tool is disabled if there is no selected area.<br />
<br />
==TRS2019 - PBR Textures==<br />
TRS2019 Introduces new PBR Ground Textures, which provide support for Parallax Height Maps. With these Parallax Height Map textures, the ground textures will produce a 3D effect; for example rocks will appear to be raised above ground level.<br />
<br />
[[File:parallax-occlusion-map.png|border|middle|x400px]]<br />
<br />
Note that PBR Ground Textures adjust the base height of the terrain they are painted onto. If they are used in conjunction with non PBR/Parallax textures care must be taken not to introduce artefacts. For instance, PBR textures placed alongside non-PBR textures should be painted using a small scale, in order to minimize the height difference.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Area_CancelHelp:Surveyor Paint Area Cancel2019-08-23T23:54:24Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Area cancel.jpg]] Cancel Selection ==<br />
<br />
Click LMB on Cancel Selection (D) to cancel the selected area. This tool is disabled if there is no selected area. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Area Cancel]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Area_FillHelp:Surveyor Paint Area Fill2019-08-23T23:46:12Z<p>Builderbob: Copy from mail page.</p>
<hr />
<div>== [[File:Area fill.jpg]] Fill Area ==<br />
<br />
{{clear}}<br />
Click LMB on a texture in the textures list and use the Fill Area (F) tool to texture the whole rectangle. The area will be painted with the current texture at the current rotation and scale. This tool is disabled if there is no selected area. .<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Area Fill]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Area_SelectHelp:Surveyor Paint Area Select2019-08-23T23:44:21Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Area select.jpg]] Select Area ==<br />
<br />
{{clear}}<br />
Click on Select Area (B) then click LMB and drag the mouse to cover a rectangular area of the terrain. This rectangle defines the area to be filled with the [[Help:Surveyor_Paint_Area_Fill|Fill Area]] tool. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Area Select]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Fill_GridHelp:Surveyor Paint Fill Grid2019-08-23T23:41:05Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Grid fill.jpg]] Fill Grid ==<br />
<br />
{{clear}}<br />
Fill Grid (L) will open the [[Help:Surveyor_Main_Menu#Bulk_asset_update.2Freplace|Bulk Asset Replace]] panel from the Surveyor Main Menu so that you can replace one or more existing textures with the current selected texture.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Fill Grid]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_GetHelp:Surveyor Paint Get2019-08-23T23:39:33Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Texture get.jpg]] Get texture ==<br />
{{clear}}<br />
Click on the Get Texture (G) tool then Click LMB on a texture already painted onto your terrain to make it the current texture. The current texture window will show the newly selected texture. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Get]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Cursor_SizeHelp:Surveyor Paint Cursor Size2019-08-23T23:38:23Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Radius.jpg]] Radius Dial ==<br />
<br />
{{clear}}<br />
The Radius Dial (“+” or “-”) changes the size of the cursor circle used for painting the texture. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Cursor Size]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Texture_ScaleHelp:Surveyor Paint Texture Scale2019-08-23T23:36:49Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Scale.jpg]] Scale tool ==<br />
<br />
{{clear}}<br />
Click LMB on the Scale indicator and rotate the pointer to change the scale at which the texture is painted onto the baseboard. The Ctrl+[ and Ctrl+] keys can also be used to rotate the Scale pointer. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_Texture_RotateHelp:Surveyor Paint Texture Rotate2019-08-23T23:35:11Z<p>Builderbob: Copy from main page.</p>
<hr />
<div>== [[File:Direction.jpg]] Direction Tool ==<br />
{{clear}}<br />
Click LMB on the Direction indicator and rotate the pointer to change the orientation of the texture as it is painted onto the baseboard. The '[' and ']' keys can also be used to rotate the Direction pointer. <br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Paint_Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Paint Texture Rotate]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Objects_ToolsHelp:Surveyor Objects Tools2019-08-23T06:28:34Z<p>Builderbob: Update for TRS19</p>
<hr />
<div>Objects (F3) tab in Surveyor allows you to place two different types of objects - objects and splines. "Object" scenery items are single structures such as buildings and trees. "Spline" objects are repeatable and can be stretched over a distance. These includes items such as roads, fences and powerlines. <br />
<br />
Open the Objects Menu by clicking on the Objects Tab (F3) and choose the Objects or Spline Tab at the top.<br />
<br />
== Objects ==<br />
The default mode is Objects. <br />
[[File:Objects1.jpg|400px|left]]<br />
{{clear}}<br />
<br />
=== [[File:Objects list.jpg|90px]] Object selection ===<br />
Scroll<br />
through the list of objects by<br />
clicking on the up and down arrows at the right of the list. The<br />
selected object shows as a<br />
rotating 3D object in the viewer<br />
window.<br />
=== [[File:Object add.jpg]] Add Object ===<br />
{{clear}}<br />
Check that you are in Add Object mode, or Click<br />
LMB on Add Object (A) to select this mode. Click<br />
LMB on the terrain and the selected object is placed<br />
wherever you click. You can repeat this several times quickly<br />
adding a number of trees or buildings.<br />
=== [[File:Object move.jpg]] Move Object ===<br />
{{clear}}<br />
Click on the Move Object (M) and Click LMB+H on<br />
any object and then drag the object around the<br />
terrain to new positions.<br />
=== [[File:Reload page.jpg]] Rotate Object ===<br />
{{clear}}<br />
Click on the Rotate Object (R) and Click LMB+H<br />
and move the mouse left and right to rotate the<br />
objects. A display shows you the number<br />
of degrees of rotation.<br />
You can set objects to<br />
“randomly rotate” or not by choosing the Randomly Rotate<br />
option in the Surveyor Options menu from the Main Menu.<br />
=== [[File:object get.jpg]] Get Object ===<br />
{{clear}}<br />
Click on the Get Object (G) tool and then Click<br />
LMB on an object already placed on the terrain.<br />
The object selected now appears in the<br />
selection window.<br />
Change the mode to Add Object (A) and Click LMB again<br />
on the terrain where you wish to place another copy of the<br />
newly selected object.<br />
=== [[File:Area cancel.jpg]] Delete Object ===<br />
{{clear}}<br />
Select Delete Object (D) then Click LMB to delete an<br />
object. Continue Clicking LMB to delete a number<br />
of objects. If you click on the wrong object, click<br />
on Undo (Ctrl-Z) to undo the last action and replace the last<br />
deleted object.<br />
=== [[File:Height adjust house.jpg]] Height Adjust ===<br />
{{clear}}<br />
Click LMB on Height Adjust (H) to enable the adjustment of<br />
the height of any Object. Only objects which have<br />
been designed to be height adjustable will allow you to adjust<br />
their height. S<br />
Holding the Ctrl key in conjunction with this move will adjust<br />
the object’s height in increments of 0.1 units and holding the<br />
Shift key will change the height by units of 0.05.<br />
=== [[File:Edit properties.jpg]] Edit Properties ===<br />
Click LMB on Edit Properties (N). Then Click LMB on<br />
any object in your route. A menu will then open up<br />
allowing you to edit the properties of the object.<br />
<br />
= Spline =<br />
This tab provides tools that are used to manipulate scenery spline objects. The Spline Mode (S) button is at the top right of the Objects (F3) tab. <br />
<br />
Splines are generally long thin objects such as roads, power lines, catenaries, fences, terrace houses and rows of trees. They consist of two or more “spline points” denoted by rotating circles. These spline points can be placed any distance apart and the spline object is then stretched and duplicated as needed between the spline points. <br />
<br />
Spline objects can be constructed with different features to accommodate the variety of objects that can be modelled as splines. <br />
<br />
[[File:Objects2 advanced.jpg|400px|left]]<br />
{{clear}}<br />
=== [[File:Object add.jpg]] Add Spline ===<br />
{{clear}}<br />
Select the Add Spline (A) tool and then click LMB on the terrain to anchor the first spline point. Click LMB again some distance away to place the second spline point. The spline will be drawn from the first point to the second, and white circles will display at each of the spline points. These spline points are used to configure the spline path, adjust the height, or define a section of spline for operations such as setting a gradient or setting the ground height. <br />
<br />
To extend the spline further, click LMB on the last spline point, then Click LMB once more nearby to extend the spline. To place multiple spline points hold down the Ctrl key while placing each point. Release the Ctrl key before placing the final spline point to complete the spline. Additional sections can be added to an existing spline at any time. <br />
<br />
If the new spline point (including an end point) is placed close to any part of an existing compatible spline the new point will form a junction with the existing spline. If this is not what is required, press and hold the Shift key before releasing the LMB. <br />
=== [[File:Object move.jpg]] Move Spline ===<br />
{{clear}}<br />
Select the Move Spline (M) tool and then click LMBH and drag the spline point to a new position. <br />
<br />
If the new position is close to an existing spline point of a compatible spline, the spline point you are moving will snap to that other spline point, creating either a junction or an extension. In some cases this is not what is required: to prevent this from happening, press and hold the Shift key before releasing the LMB. This technique can be used to place separate splines on top of one another, such as when creating a forest from tree or shrub splines. <br />
<br />
=== [[File:Split spline.jpg]] Split Spline ===<br />
{{clear}}<br />
Select the Split Spline (Q) tool and then click LMB on a spline point (other than an end point) to split the spline at that point. Two end spline points will be created at the same location, and the two portions of the spline will become separate splines.<br />
=== [[File:object get.jpg]] Get Spline ===<br />
{{clear}}<br />
Select the Get Spline (G) tool and then click LMB on a spline object already placed on the terrain. That spline object will become the selected object in the objects list, and the Add Spline (A) tool will become the active tool.<br />
<br />
===Get to Pick List===<br />
To access the Get to Pick List function, Right Click on the Get button, and the icon will then change to the Get to Pick List button. Now Left Click this button to select the Get to Pick List tool.<br />
<br />
The Get to Pick List tool allows you to 'get' any object on a route, and then add it to a [[Help/Content_Search_Filter#Pick_List|Pick List]]. The Pick List that the item is added to is the current Pick List in the Content Search Filter window: be sure that the correct Pick List is the current Pick List before selecting the spline object with the Get to Pick List Tool.<br />
<br />
=== [[File:Area cancel.jpg]] Delete Spline ===<br />
{{clear}}<br />
Select the Delete Spline (D) tool then click LMB on a section of spline between two spline points to delete that section of spline. The remaining portions will become separate splines. <br />
=== [[File:Straighten spline.jpg]] Straighten Spline ===<br />
{{clear}}<br />
Select the Straighten Spline tool (B) then click LMB on a section of spline to straighten that section. The curvature of adjacent sections will be adjusted to maintain a smooth spline path, but spline points will not be moved. Click LMB on a straightened section of spline to remove the straightening. <br />
<br />
Note that the exact effect of straightening a section depends on the properties of the spline object and whether adjacent sections have already been straightened. For instance, two adjacent sections cannot be straightened if the spline points that define them are not in a straight line.<br />
=== [[File:Straighten spline.jpg]] Toggle Traffic ===<br />
{{clear}}<br />
Many roads will have vehicles travelling on them automatically: this can be seen while in Surveyor after placing the roads. Clicking LMB on Toggle Traffic turns all traffic off on the roads. Clicking LMB on the button again will have traffic resume. When toggling traffic on and off, it affects all spline roads on your route. <br />
<br />
In some versions of Trainz this option is in the [[Help:Edit_Environment#Road_Traffic_Toggle|Environment - Location]] panel of the Surveyor Main Menu.<br />
<br />
=== [[File:Edit properties.jpg]] Edit Properties ===<br />
{{clear}}<br />
Select the Edit Properties (P) tool and then click LMB on any spline object in your route. A menu will open up allowing you to edit the properties of the object. <br />
== Advanced ==<br />
Click LMB on the Advanced Menu to access the advanced spline tools.<br />
=== [[File:Spline height.jpg]] Spline Height ===<br />
{{clear}}<br />
Select the Spline Height (H) tool and then LMBH and drag on a spline point to raise or lower that point. The adjacent sections of the spline will be adjusted to the new height according to the properties of the spline. The rotating circle marking the spline point will be changed from white to yellow, indicating that the height is now absolute, not relative to the local ground level. Note that the spline point height will become an absolute height even if the height doesn't actually change. <br />
<br />
The height of the spline point will be displayed as it is adjusted. Press and hold the Ctrl key to adjust the height in smaller increments.<br />
=== [[File:Spline point delete.jpg]] Delete Spline Point ===<br />
{{clear}}<br />
Select the Delete Spline Point (X) tool and then click LMB on a spline point to delete that point. The two adjacent segments will become a single segment, and the spline path will be adjusted. You cannot delete an end spline point but you can delete an end section using the Delete Spline (D) tool. You cannot delete a spline point that is a junction. <br />
=== [[File:Spline point insert.jpg]] Insert Spline Point ===<br />
{{clear}}<br />
Select the Insert Spline Point (I) tool then click LMB between two existing spline points. A new spline point will be created at the click location, and the spline path will be adjusted. The height of the new spline point will be calculated from the slope of the existing section. If the section had been straightened it may be necessary to re-do the straightening.<br />
=== [[File:Spline smooth.jpg]] Smooth Spline ===<br />
{{clear}}<br />
Select the Smooth Spline (S) tool then click LMB on a section of spline to adjust the ground level to the height of the spline. Multiple clicks (up to about 6) will increase the smoothness of the adjacent terrain. <br />
=== [[File:Vertex height get.jpg]] Get Vertex Height ===<br />
{{clear}}<br />
Select the Get Vertex Height tool and Click LMB on a spline point. The height of that spline point will be displayed in the Height Value box.<br />
=== [[File:Height value field.jpg]] Edit Vertex Height ===<br />
As an alternative to the Get Vertex Height tool to select a Height Value, you can enter a specific height in the Height Value Field.<br />
=== [[File:Vertex height apply.jpg]] Apply Vertex Height ===<br />
{{clear}}<br />
Select the Apply Vertex Height tool then Click LMB on a spline point. The height of the spline point is adjusted to the height displayed in the Height Value text box. <br />
=== [[File:Gradient remove.jpg]] Remove Gradient ===<br />
{{clear}}<br />
Select the Remove Gradient tool and then Click LMB on a spline point to reset the height of the spline. <br />
<br />
When a spline point is first added its height is zero relative to the ground at the point at which it is located, and its height follows any changes in the ground height. This is indicated by a white rotating circle. If the height is adjusted it becomes an absolute height, so that the height does not change with subsequent changes in ground height, and this is indicated by a yellow rotating circle. The Remove Gradient tool reverts the spline point height to its original state - zero relative to the ground and a white rotating circle. This change also restores some properties of certain splines - if the spline has been configured to follow the height and/or slope of the ground surface between spline points then this feature is restored to a spline section when the adjacent spline points are changed from absolute height to relative height. <br />
<br />
If a spline point height is already zero relative to the ground (white rotating circle) then this tool has no effect.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Objects Tools]][[Category:TRS19]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Paint_ToolsHelp:Surveyor Paint Tools2019-08-23T06:11:04Z<p>Builderbob: Adjust errors and out-of-date descriptions.</p>
<hr />
<div>Click on the Paint Tab (F2) to open the Paint Menu. You will see a number of textures, listed alphabetically.<br />
Use the slider button to scroll through the list.<br />
Click on one of the textures or write its name on the text box, and you will see a copy of it appear in the small current texture window. Click LMB on the terrain and use your mouse as a paintbrush to paint the texture onto the terrain.<br />
<br />
[[File:Paint.jpg|400px]]<br />
{{clear}}<br />
== [[File:Direction.jpg]] Direction Tool ==<br />
{{clear}}<br />
Click LMB on the Direction indicator and rotate the pointer to change the orientation of the texture as it is painted onto the baseboard. The '[' and ']' keys can also be used to rotate the Direction pointer.<br />
== [[File:Scale.jpg]] Scale tool ==<br />
{{clear}}<br />
Click LMB on the Scale indicator and rotate the pointer to change the scale at which the texture is painted onto the baseboard. The Ctrl+[ and Ctrl+] keys can also be used to rotate the Scale pointer.<br />
== [[File:Texture get.jpg]] Get texture ==<br />
{{clear}}<br />
Click on the Get Texture (G) tool then Click LMB on a texture already painted onto your terrain to make it the current texture. The current texture window will show the newly selected texture. <br />
== [[File:Radius.jpg]] Radius Dial ==<br />
{{clear}}<br />
The Radius Dial (“+” or “-”) changes the size of the cursor circle used for painting the texture.<br />
== [[File:Grid fill.jpg]] Fill Grid ==<br />
{{clear}}<br />
Fill Grid (L) will open the [[Help:Surveyor_Main_Menu#Bulk_asset_update.2Freplace|Bulk Asset Replace]] panel from the Surveyor Main Menu so that you can replace one or more existing textures with the current selected texture.<br />
== [[File:Area select.jpg]] Select Area ==<br />
{{clear}}<br />
Click on Select Area (B) then click LMB and drag the mouse to cover a rectangular area of the terrain. This rectangle defines the area to be filled with the Fill Area tool (below).<br />
== [[File:Area fill.jpg]] Fill Area ==<br />
{{clear}}<br />
Click LMB on a texture in the textures list and use the Fill Area (F) tool to texture the whole rectangle. The area will be painted with the current texture at the current rotation and scale. This tool is disabled if there is no selected area.<br />
== [[File:Area cancel.jpg]] Cancel Selection ==<br />
Click LMB on Cancel Selection (D) to cancel the selected area. This tool is disabled if there is no selected area.<br />
<br />
==TRS2019 - PBR Textures==<br />
TRS2019 Introduces new PBR Ground Textures, which provide support for Parallax Height Maps. With these Parallax Height Map textures, the ground textures will produce a 3D effect; for example rocks will appear to be raised above ground level.<br />
<br />
[[File:parallax-occlusion-map.png|border|middle|x400px]]<br />
<br />
Note that PBR Ground Textures adjust the base height of the terrain they are painted onto. If they are used in conjunction with non PBR/Parallax textures care must be taken not to introduce artefacts. For instance, PBR textures placed alongside non-PBR textures should be painted using a small scale, in order to minimize the height difference.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Normal_mapNormal map2019-08-22T05:39:01Z<p>Builderbob: /* How a Normal Map works */</p>
<hr />
<div>The [[normal map]] uses three channels of texture data to allow per-pixel lighting control. An overview of the normal mapping technique can be found on Wikipedia [http://en.wikipedia.org/wiki/Normal_mapping here]. <br />
<br />
A normal map is stored in an image file, but it is not an image: rather than defining the red, green and blue colors of an image, the normal map RGB values determine the X, Y, and Z values for the texel's normal in [[tangent space]].<br />
<br />
This information is not considered directly human-editable, and you should not attempt to manipulate these channels directly. Specifically, do not adjust the dimensions or contrast of an existing normal map. If you need to adjust the size of a normal map, you will need to rebuild the normal map using the original tools. If you need to adjust the bump height in a normal map, you will need to adjust the source geometry and rebuild the normal map using the original tools. Editing the normal map in photoshop or similar will cause undefined behavior in-game. Additionally, any form of lossy compression (such as .JPG format) will destroy a significant amount of the information contained in a normal map. Do not use lossy formats for storing normal maps even as an intermediate step.<br />
<br />
The normal data is most commonly encoded in the RGB channels of a [[texture file]]. The specific [[Material Types|material type in use]] should be consulted to determine the use of the alpha channel in the same texture- it may be unused or may be used for an unrelated purpose.<br />
<br />
==How a Normal Map works==<br />
Normal maps work by modifying the normal used when rendering a [[fragment]]. By default, the normal will stick straight up from the geometric surface. A normal map will rotate that normal on either the (tangent space) X or Y axes. <br />
<br />
In the following example we look strictly at the red channel; which controls the X axis of the normal. The arrows represent the normals. In example A there would be no normal map applied so all the normals would point straight away from the surface. In example B a normal map would be applied, modifying the normals in the appropriate areas. <br />
<br />
[[Image:normalhow01.jpg]]<br />
<br />
There are a couple of important things to note about this example. Let’s take a look at the red channel of the above example. On a given axis a normal can be rotated 90 degrees in any direction. The R values for the pixels in the normal map represent the amount of rotation that will be applied along the X-axis. In our example a value of 0 would rotate the normal to -90 degrees, a value of 128 for the R value would rotate the normal 0 degrees, and a value of 255 would rotate the normal to +90 degrees. The green channel works in the same way for the Y-axis. The use of both the R and G channel values means that the normal can be rotated to any direction.<br />
<br />
[[Image:normalhow02.jpg]]<br />
<br />
==Examples==<br />
A typical normal map will look similar to the following image.<br />
<br />
''Note that this image is for illustration purposes only - jpg format is not appropriate for normal maps.''<br />
<br />
:[[image:demo-normal.jpg|Normal map illustration]]<br />
<br />
==Displaying Normal maps in 3D Studio Max==<br />
<br />
Displaying normal maps in 3D Studio Max<br />
<br />
The appropriate way to display a normal map in 3D Studio Max is to use a “Normal Bump” map in the bump slot of the material. If you load a map directly into this slot it will display/render, but is viewing the map as a bump map and will not display correctly.<br />
<br />
[[Image:displaymax01.jpg]]<br />
<br />
To display Trainz normal maps from within max we need to flip the Green channel to display the map correctly. This can be done within the material editor without having to actually modify the map. <br />
<br />
In the properties for the Normal Bump under Channel Direction you need to check “Flip Green(Y)”. Lastly, load your normal map into the “Normal:” Slot.<br />
<br />
[[Image:displaymax02.jpg]]<br />
<br />
There’s one last step to displaying your normal maps within Max. There is a different way of previewing the normal map depending on which version of max you are using.<br />
<br />
'''3D Studio Max 9 and below:'''<br />
<br />
In the material editor for the material you want to display under the DirectX Manager rollout make sure to check “DX Display of Standard Material” In the upper right hand of the material editor there is a blue checkered box which will turn pink, indicating that you are using DX display of the material. Click that button to show the maps in the viewport.<br />
<br />
[[Image:displaymax03.jpg]]<br />
<br />
'''3D Studio Max 2008 and Above:'''<br />
<br />
Click and hold on the blue and white checked box in the material editor. A popup will open with two options, a blue and white checked box and a pink and white checked box. Select the pink and white checked box to display the material as a DirectX shader in the viewport. <br />
<br />
[[Image:displaymax04.jpg]]<br />
<br />
<br />
==Getting Started with Normal Mapping==<br />
Refer to [[Getting Started with Normal Mapping|this page]] for notes on setting up an asset to illustrate these techniques.<br />
<br />
<br />
==Baking Normal Maps Using Max==<br />
[[HowTo/Build_normal_maps_in_Max|Baking Normal Maps in 3D Studio Max]]<br />
<br />
Note that normal maps produced by Max typically have a reversed green (Y) channel. At the current time, this must be fixed after export by manually opening the resultant normal map in photoshop, selecting only the Green channel, and using the Invert (ctrl-I) tool. Failure to correct the green channel results in incorrect lighting effects within the game environment, destroying the effectiveness of the normal map.<br />
<br />
Note: The ModifyMap token, with a setting of flipgreen, can be used in the texture file to flip the green (Y) channel for a normal map.<br />
<br />
==Creating a Normal Map for a Ground Texture==<br />
<br />
A normal map used for a 3D model is created in a 3D editing program such as Blender or 3D Studio Max using the 3D information in the mesh. This is known as Baking. Most ground textures do not use a 3D mesh, so if you want to use a normal map with ground texture that has no mesh you need to create it for yourself. This can be done using software that interprets the 3D information in a texture image using colors or brightness, or it can be done using a drawing program where you actually edit the images that make up the normal map. <br />
<br />
NVidia provides a plugin for Photoshop the can create a normal map from an image:<br />
[https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop NVidia Texture Tools for Adobe Photoshop]<br />
<br />
GIMP has a similar plugin available: <br />
[http://registry.gimp.org/node/69 normalmap]<br />
<br />
Paint.Net has several plugins. There is one that creates the map from an image: <br />
[http://forums.getpaint.net/index.php?/topic/24587-normal-map-renderer/ Paint.Net Normal Map Renderer plugin]<br />
<br />
and another that allows you to edit the bump map, the specularity, the reflectivity and the reversal as separate images: <br />
[http://forums.getpaint.net/index.php?showtopic=23936 Paint.Net The Normal Tools plugin]<br />
<br />
Other graphics editing programs may have similar features, either built-in or available as a plugin.<br />
<br />
[[Category:Normal mapping]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/How_to_Use_LayersHow to Use Layers2019-07-23T21:58:10Z<p>Builderbob: Expression</p>
<hr />
<div>The information in this Wiki Page applies to both '''TANE''' and '''TRS19'''.<br />
<br />
__TOC__<br />
='''What Are Layers?'''=<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>In Summary:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Layers are a ''Surveyor'' tool that allows you to better manage the objects that are placed in your Trainz World.'''<td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Layers are a ''Driver'' tool that allows you to change what the players see as they drive around your Trainz World.'''<td><br />
</tr><br />
</table><br />
<br />
Layers can contain any objects, visible and invisible, that can be placed into a layout using the Surveyor '''Object''', '''Track''' and '''Train''' tools. The layers and their contents can be hidden from view or locked against alteration whenever required. Their main use is in the development of a Route and a Session but they can also be used as a way of providing some additional novelty during a Driver session.<br />
<br><br />
<br />
='''The Layers Tool'''=<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:SurveyorToolMenuLayers.JPG|150px]]</td><br />
<td><br><br><br><br><br><br><br><br><br><br><br><br><br>[[file:RightArrowRed.JPG]]<br />
<td>Click the '''Layers Tool''' to open up its properties.<br><br />
[[file:LayersTools.JPG|480px]]</td><br />
<td><br><br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
The layers are organised into two groups:-<br />
*'''Route Layers''' in the top group, and <br />
*'''Session Layers''' in the lower group. <br />
Each group can contain multiple layers - the scroll bars next to the layer names shown on the left indicate that there are more layers in each group than can fit into the display window area.</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br><br />
<br />
==Loading a Route and Loading a Session==<br />
<br />
The layers you see will depend on whether you have loaded a '''Route''' by itself (with no "child" Session) or a '''Session''' and its "parent" Route.<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersToolsRoute.JPG]]</td><br />
<td>[[file:LayersToolsSession.JPG]]</td><br />
<td><br><br />
*The first image on the left gives an example of the layers that can appear if a '''Route only''' is loaded into Surveyor. These are the layers that are saved with the Route. '''Note that a default "session-layer" is present'''. <br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''An empty default "session-layer" is always created in the Session Layers Group when only the Route is loaded into Surveyor.'''<td><br />
</tr><br />
</table><br />
*The second image on the left gives an example of the layers that can appear if a '''Session based on that Route''' is loaded into Surveyor. It shows Route Layers and Session Layers.<br><br><br />
<br />
In both cases, the '''Route Layers''' are identical because the same Route has been loaded. A Session contains its own layers, the '''Session Layers''', that are loaded and saved with the Session but are not loaded or saved with the Route.<br />
<br><br><br />
<table cellpadding="4" bgcolor=#c1e7e7 width="730"><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>In Summary:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Route Layers are saved with the Route. Session Layers are saved with the Session.<td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''If you edit a Session Layer and later load just the Route then those edits will not appear.'''</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''If you load just the Route and edit its "session-layer" then those edits will not appear the next time you load just the Route''' because an empty "session-layer" is created each time a Route is loaded without a Session.<br><br><br />
</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#fcbcbc><br />
<tr valign="top"><br />
<td>[[file:Stop.PNG]]</td><br />
<td><font size=3><b>WARNING:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td></td><br />
<td><font size="4">'''If you load a <u>ROUTE</u> without a SESSION then only <u>edit the Route Layers</u>'''</font></td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
</table><br />
<br><br />
<br />
==Creating a New Route==<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersNewRoute.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
*When a brand new route is created it will come with two layers, a single "route-layer" and a single "session-layer".<br />
*Both layers will be empty (the baseboard with its grid is saved with the route but is not in any layer).<br />
</td><br />
</tr><br />
</table><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>'''A layer can be renamed at anytime by double clicking on its name with the left mouse button and typing a new name.'''</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br />
==The "Active Layer"==<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>In Summary:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''The ''Active Layer'' is the selected (highlighted) layer.'''</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>When you load the '''Route only''' into Surveyor, the '''first Route layer''' will be the '''Active Layer'''</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>When you load a '''Session''' into Surveyor, the '''first Session layer''' will be the '''Active Layer'''</td><br />
</tr><br />
</table><br />
In the image above, the '''route-layer''' is the '''Active Layer'''. You can change the '''Active Layer''' at any time by clicking on the name of another layer.<br />
<br><br />
<table cellpadding="4" bgcolor=#ffffb0 width="480"><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
The '''Active Layer''' is the "working layer" which is:-<br />
*where new objects will be added to the layout<br />
*the layer that is automatically selected for merging and deleting</td><br />
</tr><br />
</table><br />
<table cellpadding="4" bgcolor=#fcbcbc width="480"><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>Caution:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Stop.PNG]]</td><br />
<td>'''TRS19/TANE''' do not identify which is the '''Active Layer''' in Surveyor and this often leads to problems such as objects being added to the wrong layer.<br><br />
See [[file:PageLink.PNG]] '''[[#Adding Objects To Layers|Adding Objects To Layers]]''' below for more information.</td><br />
</tr><br />
</table><br />
<br><br />
<br />
==Adding a New Layer==<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayersToolButtonsADD.JPG]]</td><br />
<td>Click the '''Add Button'''</td><br />
</tr><br />
</table><br />
<br />
An '''Add layer''' dialogue window will appear. <br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersAddLayer.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Steps.PNG]]</td><br />
<td><font size="3">'''Steps:'''</font><br><br />
#Enter a name for the new layer<br />
#Select the layer group, '''Route''' or '''Session''', where it will be placed<br />
#Click the [[file:Tick.PNG]] icon</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>You can easily rename the layer or move it to the other layer group later if you change your mind.</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br />
==Deleting a Layer==<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayersToolButtonsDELETE.JPG]]</td><br />
<td>Select the layer to be deleted and click the '''Delete Button'''. If you don't select a layer to delete then '''TRS19/TANE''' will select the current '''Active Layer'''.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#fcbcbc><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>Warning:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Stop.PNG]]</td><br />
<td>'''Deleting a layer will delete ALL the objects placed in that layer''' except objects that are "Bound" to that layer.</td><br />
</tr><br />
</table><br />
<br />
If the layer being deleted is empty, then the following dialogue window will appear:-<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayerDeleteEmpty.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Choices.PNG]]</td><br />
<td><font size="3">'''Choices:'''</font><br><br />
*Click '''Yes''' to delete the layer<br />
*Click '''No''' to cancel the delete operation</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br />
If the layer being deleted is NOT empty, then the following dialogue window will appear:-<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayerDeleteNotEmpty.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Choices.PNG]]</td><br />
<td><font size="3">'''Choices:'''</font><br><br />
*Click '''Merge''' to merge this layer and its contents into another layer. See '''Merging Layers''' below for more information <br />
*Click '''Delete''' to delete the layer and its contents. '''This cannot be undone'''<br />
*Click '''Cancel''' to cancel the delete operation</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br />
==Merging Layers==<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayersToolButtonsMERGE.JPG]]</td><br />
<td>Select the layer to be merged into another layer and click the '''Merge Button'''. If you don't select a layer to merge then '''TRS19/TANE''' will select the current '''Active Layer'''.</td><br />
</tr><br />
</table><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>In Summary:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Merging a layer into another layer will move ALL the objects from the first layer into the second layer.''' The first layer, which is now empty, will then be deleted. </td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Once layers have been merged they cannot be separated.'''</td><br />
</tr><br />
</table><br />
<br />
The layer merge dialogue window will appear as shown below:-<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersMergeInto.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Steps.PNG]]</td><br />
<td><font size="3">'''Steps:'''</font><br><br />
#Select the '''destination layer''' for the merge<br />
#Click the [[file:Tick.PNG]] icon<br />
The '''Merge into:''' list shows all the available layers with no distinction between Route Layers and Session Layers</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table><br />
<br><br />
</td><br />
</tr><br />
</table><br />
<br />
==Locking Layers==<br />
<br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>It is good practice to '''LOCK ALL LAYERS that you are not currently editing.''' This will avoid the all too common problem of accidentally adding objects to the wrong layer.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>If you '''LOCK''' or '''UNLOCK''' a Route Layer while editing a Session then you will have made a change to the Route and will be asked to save both the Route and the Session when you exit Surveyor.</td><br />
</tr><br />
</table><br />
<br><br />
===Locking Individual Layers===<br />
<br />
'''To LOCK an individual layer, click on the ''Open Padlock'' icon next to its name.''' The layer being locked does not have to be the current '''Active Layer'''.<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''The objects in a LOCKED layer cannot be moved or deleted''' but they can be moved to other layers.</td><br />
</tr><br />
</table><br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersRouteTreesActive.JPG]]</td><br />
<td>[[file:LayersRouteTreesActiveLocked.JPG]]</td><br />
<td><br><br />
*The first image on the left shows two Route Layers, both UNLOCKED with their Padlock icons '''Open'''. One layer, "Trees", is highlighted showing that it is the currently active layer.<br />
*The second image on the left shows the same two layers after the "Trees" layer has been LOCKED. <br />
*A locked layer can be UNLOCKED by clicking its Closed Padlock icon.<br><br><br />
</td><br />
</tr><br />
</table><br />
If you attempt to add a scenery object to a locked layer you will receive the following message:-<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersRouteTreesActiveLockedError.JPG]]<br><br />
*Click the [[file:Tick.PNG]] icon to UNLOCK the layer</td><br />
</tr><br />
</table><br />
<br />
===Locking ALL Route Layers===<br />
<br />
<table><br />
<tr><br />
<td>[[file:LayersToolButtonsLOCKALL.JPG]]</td><br />
<td>Click the '''Lock Button'''</td><br />
</tr><br />
</table><br />
<br />
This will LOCK ALL the layers in the Route Layers Group. The Session Layers Group will not be affected.<br />
<br />
The Route Layers Group can be UNLOCKED by clicking the '''Lock Button''' again.<br />
<br />
==Moving a Layer==<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>Main Points:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>Layers can be moved up or down<br><br />
* within the same layer group (e.g. '''Route''' or '''Session''')<br />
* between the two groups</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>A layer containing track objects (e.g. signals, switches, etc) '''CANNOT''' be placed above the layer containing the track</td><br />
</tr><br />
</table><br />
<br />
In the example shown below a layer created in the Route Layers Group is being moved into the Session Layers Group.<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersMove1.JPG]]</td><br />
<td>[[file:LayersMove3.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Steps.PNG]]</td><br />
<td><font size="3">'''Steps:'''</font><br><br />
#Select the layer to be moved and hold down the left mouse button<br />
#Drag the layer up or down to its new position<br />
</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table><br />
<br />
*The move can be between layer groups as shown left or within groups to move the layer to a higher or lower position in the group.<br />
*The only situation where layer order within a layer group makes any difference is when adding track objects (e.g. signals, track signs, etc) to a track.<br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>When adding track objects to a track, the '''object being added must be in the same layer or in a layer below''' the layer containing the track. For more information, see the section [[file:PageLink.PNG]] '''[[#The "route-layer"|The "route-layer"]]''' below.</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>If you attempt to move a layer containing track objects, such as signals, to a position above the layer containing the track, you will get an error message.</td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
</table><br />
<br />
==Hiding Layers==<br />
<br />
To hide or show a layer click the '''Eye Icon''' next to its name.<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersHideNone.JPG]]</td><br />
<td><br />
*In the image shown left the two trees are in different Route Layers<br />
*All the layers have their '''Eye Icons''' set to '''Show'''<br />
</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:LayersHideTree.JPG]]</td><br />
<td><br />
*In the image shown left the '''Trees''' layer has its '''Eye Icon''' set to '''Hide'''<br><br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''If you attempt to add an object to a hidden layer you will receive a warning message.'''</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''Layers that are hidden when saved in ''Surveyor'' will also be hidden when loaded in ''Driver''.'''<td><br />
</tr><br />
</table><br />
</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''Route Layers vs Session Layers'''=<br />
<br />
This topic has filled endless threads in the '''Trainz Forums''' with arguments raging on both sides.<br />
<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>In Summary:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>There are no "cast iron" rules that dictate what should be placed in the '''Route Layers Group''' and what should be placed in the '''Session Layers Group'''. Each Route and Session will be different and different creators have different ways of working. The main question to be asked is how many different '''Sessions''' will be created using a particular '''Route'''?</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
*'''For a Route with only a single Session''' - everything can safely go into the '''Route Layers Group'''<br />
:Many creators only ever build a single Session for each of their Routes and do not use Session Layers at all (but they still have to save the session separately from the route). <br />
*'''For a Route with multiple (2 or more) Sessions''' - certain things will probably need to go into the '''Session Layers Group''' for each Session.<br />
:Many creators build multiple Sessions for each Route and rely on the Session Layers to create the differences between their Sessions. <br />
</td><br />
</tr><br />
</table><br />
<br><br />
==The Route Layers Group==<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>The '''Route Layer Group''' should be used for everything that will always appear in '''Driver Mode''' regardless of which Session is playing.''' </td><br />
</tr><br />
</table><br />
There is nothing stopping you from placing everything in the "route-layer" of the '''Route Layers Group''' and never having to worry about dealing with layers ever again - some creators prefer to work this way. However, layers do provide you with a way of organising your scenery objects to make them more manageable, particularly in more complicated layouts. Some examples:-<br />
*A '''Special Objects''' layer or layers that can be used to hold certain scenery objects. For example all the trees or a particular building. This can be very useful when you need to hide those objects to locate or place other objects. Trackside cameras in particular can be very difficult to find when placed in a forest.<br />
*A '''Platform Objects''' layer can be used to hold all platform items such as seats, luggage, luggage trolleys, people, lamp posts, etc. Because these items are placed on top of a platform object they can be very difficult to move or delete without first moving the platform. The layer containing the platform can be locked allowing these objects to be easily moved or deleted.<br />
*'''Hiding and Showing Objects''' in '''Driver Mode'''. There is a Session Rule and a Driver Command that can hide and show layers during the running of a Session. For example: a rail worker can be placed in a separate layer and positioned next to a track lever while shunting operations are underway but can be removed from the scene by hiding that layer when shunting has been completed.<br />
*A '''Test Layer''' for experimenting. Not sure if a particular object is right for your layout? Place it in a temporary layer which you can hide and show to see any differences it makes. This is particularly useful if you are deciding between different types of grasses, for example, placed throughout the layout. If the objects prove to be unsuitable then they can all be deleted by deleting the layer. If they are suitable then the layer can be merged with another or left as a new layer.<br />
<br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>'''It is a good idea to place ALL the consists in the same layer''' particularly if they are going to be coupled together during the running of a Session.</td><br />
</tr><br />
</table><br />
<br />
===The "route-layer"===<br />
<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''To avoid any confusion over which layer is the original "route-layer", this is one layer that should not be renamed or moved from the top position.'''</td><br />
</tr><br />
</table><br />
<br><br />
While all layers are equal, the "route-layer" is special.<br />
<br />
<table cellpadding="4" bgcolor=#fcbcbc><br />
<tr valign="top"><br />
<td colspan=2><font size=3><b>Warning:</b></font></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Stop.PNG]]</td><br />
<td>'''Track objects''', such as signals, junctions and track signs, ''cannot'' be placed in any layer that is above the layer containing the track that they are attached to. If the '''route-layer''' is used for all the track and track objects and this layer is left as the top layer then this will never be a problem.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>It is recommended that the following objects should be placed in the "route-layer":-<br />
*Track and interactive industries with track<br />
*Track infrastructure (turntables, bridges, tunnels)<br />
*Signals<br />
*Junctions and switches<br />
*Track signs (speed limits, warnings, etc)<br />
..and that the "route-layer" be placed at the top of the '''Route Layers Group'''.</td><br />
</tr><br />
</table><br />
<br><br />
<br />
==The Session Layers Group==<br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>The '''Session Layers Group''' should be used for everything that will only be seen in the '''''currently loaded Session'''''.</td><br />
</tr><br />
</table><br />
<br />
If you are creating more than one Session based around a particular Route, then you will probably make use of the Session Layers.<br />
<br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
Session Layers can contain:-<br />
*Scenery objects that will only appear in one or some of the Sessions.<br />
:For example: If you have placed human figures and equipment for a track work crew alongside the track and want them to be seen in a daylight Session but not in a night Session, then place them in one of the Session Layers of the daylight Session only. Likewise, station staff holding lamps would be placed in one of the Session Layers of the night Session only.<br />
*Consists used in a Session.<br />
</td><br />
</tr><br />
</table><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td><br />
*'''It is a good idea to place ALL the consists in the same Session Layer''' particularly if they are going to be coupled together during the running of a Session.<br />
*'''When you first save a Session, give it a distinctive and informative name.''' Avoid the temptation to use '''Default''' as the name of your Session as you can easily end up with several Sessions under the same Route all called '''Default'''.</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''Adding Objects To Layers'''=<br />
<br />
When an object (such as a scenery item, consist, track or track object) is added to the layout it is automatically placed in the currently '''Active Layer'''. Unfortunately, '''TRS19/TANE''' do not indicate which layer is the '''Active Layer''' unless you open the Layers Tool to look. This can lead to objects being placed into the wrong layers and while these objects can later be moved to another layer (see the section [[file:PageLink.PNG]] '''[[#Moving Objects To Other Layers|Moving Objects To Other Layers]]''' below) it would be better to correctly set the '''Active Layer''' first.<br />
<br><br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>It is good practice to '''LOCK ALL LAYERS that you are not currently editing.''' This will avoid the all too common problem of accidentally adding objects to the wrong layer.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''You cannot add objects to a layer that is LOCKED.'''</td><br />
</tr><br />
</table><br />
<br />
If you attempt to add a scenery object to a locked layer you will receive the following message:-<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersRouteTreesActiveLockedError.JPG]]<br><br />
*Click the [[file:Tick.PNG]] icon to '''UNLOCK the layer'''.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>When adding track objects (signals, speed signs, etc) to a track, the '''objects being added must be in the same layer as the track or in a layer below the track layer'''. For more information, see the section [[file:PageLink.PNG]] '''[[#The "route-layer"|The "route-layer"]]''' above.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:NotePad.PNG]]</td><br />
<td><font size="3">'''Notes:'''</font><br><br />
There are many features of Trainz Routes and Sessions that are '''NOT stored in layers'''. These include:-<br />
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"><br />
*landforms<br />
*textures<br />
*trackside camera positions and settings<br />
*weather conditions<br />
*time of day<br />
*session rules and driver commands<br />
*signal and junctions settings<br />
*rolling stock loads<br />
*industry settings<br />
*portal settings<br />
*passenger station settings<br />
*navigation points<br />
*interlocking tower settings'''^'''<br />
</div><br />
Landforms, textures and trackside cameras are saved as part of the '''Route''' while all the others are saved as part of a '''Session'''.<br />
<br><br />
'''^''' A bug has been reported in the Interlocking Towers (and the Enhanced Interlocking Towers) where the path and settings are initially saved in the Route but any later edits and changes are then saved in the Session. The workaround for this is to always load the Session when working with ITs and EITs.<br />
</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''Deleting Objects From Layers'''=<br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>It is good practice to '''LOCK ALL LAYERS that you are not currently editing.''' This will avoid the all too common problem of accidentally deleting objects from the wrong layer.</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''You cannot delete objects from a layer that is LOCKED.'''</td><br />
</tr><br />
</table><br />
<br />
Unfortunately '''TRS19/TANE''' does not give you a warning message when you attempt to delete an object from a locked layer, the object just refuses to be deleted.<br />
<br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>If you cannot delete an object then check:-<br />
*that the objects layer and bound layer (if set) are unlocked<br />
*that you are using the correct delete tool (e.g. such as attempting to delete a tree with the spline, signal or rolling stock delete tool) - it happens!</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''Moving Objects To Other Layers'''=<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersObjectProperties.JPG]]</td><br />
<td><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr valign="top"><br />
<td>[[file:Steps.PNG]]</td><br />
<td><font size="3">'''Steps:'''</font><br><br />
To move individual objects from one layer to another:-<br />
#Open the '''Properties''' window ('''?''' button in the '''Object Tools''') of the object to be moved<br />
#Click the '''Layer''' or one of the '''scroll buttons'''<br />
#Select the new layer<br />
#Click the [[file:Tick.PNG]] icon<br />
</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''You can move an object into and out of a locked layer'''</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>Multiple scenery objects can be moved to another layer by using the '''Bulk Asset Update/Replacement''' tool from the ''Surveyor Main Menu''</td><br />
</tr><br />
</table></td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:LayersObjectPropertiesChangeLayer.JPG]]</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''The Bound Layer'''=<br />
<br />
The bound layer was introduced as a development tool: its sole use is as a tool in the building of routes and sessions. It allows you to attach an object to two different layers so it can have the properties (locked/unlocked and show/hide) of both layers. This is a little used and probably little understood layer feature that can be very useful in specific situations. <br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''An object will be LOCKED and cannot be deleted or moved if its layer OR its <u>bound layer</u> is locked.'''<br />
</tr><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''An object will be HIDDEN if its layer OR its <u>bound layer</u> is hidden.'''<br />
</tr><br />
</table><br />
<br><br />
Some applications:-<br />
*Temporarily locking an object by binding it to a locked layer while allowing other objects in the same unlocked layer to be moved or deleted. A simple but very effective development technique is to create a Route layer called "Locked" and then lock it. If you need to temporarily stop an object from being deleted or moved then it can be bound to the "Locked" layer. When you want to unlock it you can simply set bound layer to '''''<none>''''': there is no need to remember which layer it was originally placed in. <br />
*Temporarily hiding an object by binding it to a hidden layer. (To unhide the object the hidden layer will need to be made visible.)<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersBoundLayer.JPG]]</td><br />
<td><br><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
<tr valign="top"><br />
<td>[[file:Steps.PNG]]</td><br />
<td><font size="3">'''Steps:'''</font><br><br />
In the '''Properties Window''' of an object:-<br />
#Click the '''Bound Layer''' box or one of its '''scroll buttons'''<br />
#Select the layer to be used as the '''Bound Layer''' for the object (an object cannot be bound to its own layer)<br />
<br><br />
The effects of the binding can be reversed by setting the '''Bound Layer''' back to '''''<none>'''''.</td><br />
</tr><br />
<tr><br />
<td colspan="2"><br />
----</td><br />
</tr><br />
</table></td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#c1e7e7><br />
<tr valign="top"><br />
<td>[[file:DotPoint.JPG]]</td><br />
<td>'''When a layer is deleted any objects bound to that layer will have their ''Bound Layer'' reset to ''<none>'''''<br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#ffffb0><br />
<tr valign="top"><br />
<td>[[file:PencilTips.PNG]]</td><br />
<td>If you are going to be working with multiple objects that will be bound to a locked or hidden layer then a simple strategy is to:-<br />
*Create a new empty layer called "Locked" or "Hidden" and lock or hide that layer, according to your needs<br />
*Bind the individual objects to that layer as required<br />
*When editing, testing or whatever you are doing has been completed simply delete the new layer. All objects that have been bound to that layer will have their '''Bound Layer''' property reset to '''none''' so the hidden objects will reappear and the locked objects will be unlocked.</td><br />
</tr><br />
</table><br />
<br><br />
<br />
='''Layers in Driver Mode'''=<br />
<br />
During the running of a Session in '''Driver Mode''' visible layers can be hidden and invisible layers revealled according to the events that occur during the Session.<br />
<br />
<table><br />
<tr valign="top"><br />
<td>[[file:LayersDriveShow.JPG]][[file:LayersDriveHide.JPG]]</td><br />
<td>The two '''Driver Mode''' scenes shown on the left illustrate this feature. <br />
*In the first image on the left, all layers are visible<br />
*In the second image on the left, two of the layers have been hidden<br />
<br />
The trigger for this change was the arrival of a train at the platform.</td><br />
</tr><br />
</table><br />
<br />
This effect could be achieved in two different ways:-<br />
#'''A Driver Command''' - specific to a particular driver, or<br />
#'''A Session Rule''' - specific to a particular driver, consist, or any driver/consist<br><br />
=='''Using a Driver Command'''==<br />
The driver command '''Layer Control''' hides and shows named layers.<br><br />
[[file:LayerControlExample.png]]<br><br />
=='''Using Session Rules'''==<br />
<br><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr valign="top"><br />
<td width="58">[[file:RulesWiki.PNG]]</td><br />
<td width="640"><font size="3">'''Rules Used:'''</font><br><br />
----</td><br />
</tr><br />
</table><br />
*'''[[Session_Rule_List_with_Parameters#Show/Trackside_Check_Rule|Trackside Check Rule]]''' - to trigger the event<br />
*'''[[Session_Rule_List_with_Parameters#Show/Hide_Layer_Rule|Show/Hide Layer Rule]]''' - to hide layers<br />
*'''[[Session_Rule_List_with_Parameters#Message_Popup_Rule|Message Popup Rule]]''' - to open a browser window with a message<br />
<br><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr valign="top"><br />
<td width="58">[[file:screenshot.PNG]]</td><br />
<td width="640"><font size="3">'''Session Editor Screenshot:'''</font><br><br />
----</td><br />
</tr><br />
</table><br />
<table><br />
<tr><br />
<td>[[file:LayersDriveHideRules.JPG]]</td><br />
</tr><br />
</table><br />
<br><br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr valign="top"><br />
<td width="58">[[file:explanation.PNG]]</td><br />
<td width="640"><font size="3">'''Description:'''</font><br><br />
----</td><br />
</tr><br />
</table><br />
In this example:-<br />
*The '''Trackside Check Rule''' is triggered when a specific train comes to a stop at a trackmark. This then executes the following rules:-<br />
**The '''Show/Hide Layer Rule''' is used to hide the layer named "People". Four passengers (three standing and one seated) are hidden.<br />
**The '''Show/Hide Layer Rule''' is used to hide the layer named "CNJCartsFull". The boxes and mail bags on the three platform trolleys are hidden.<br />
**The '''Message Popup Rule''' is used to place a message on the screen informing the player that the passengers and mail have been loaded.<br />
----<br />
----<br />
<br><br />
<br />
='''Trainz Wiki'''=<br />
<table cellpadding="4" bgcolor=#ffffff><br />
<tr valign="top"><br />
<td>[[file:TrainzWiki.png]]</td><br />
<td><br />
<font size="3">'''More Tutorials and Guides to Using Trainz'''</font><br><br />
*'''<span class="plainlinks">[http://online.ts2009.com/mediaWiki/index.php/HowTo How to Guides]</span>'''<br />
*'''[[Driver Commands List]]'''<br />
*'''[[Session Rule List with Parameters|Session Rules List (Alphabetical) with Parameters]]'''<br />
*'''[[Session Rules By Categories With Properties|Session Rules List (Categories) With Parameters]]'''<br />
</td><br />
</tr><br />
</table><br />
<br />
[[Category:How-to guides]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_SceneryKIND Scenery2019-06-08T23:28:24Z<p>Builderbob: Roll description</p>
<hr />
<div>[[KIND Scenery]] provides the basis for all surveyor-placeable assets.<br />
<br />
A basic scenery asset that supports night lighting, smoke (particle) effects, sound and animation. It is height adjustable and forms the majority of map objects used.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
*[[KIND Mesh]]<br />
===Child Classes===<br />
*[[KIND SceneryWithTrack]]<br />
*[[KIND Scenery-trackside]]<br />
*''TBD''<br />
*...<br />
<br />
==Supported Tags==<br />
Each scenery asset supports the following tags. Each tag is shown here with its default value.<br />
<br />
backdrop 0<br />
collate-meshes 0<br />
random-color-low-hsb 0,0,100<br />
random-color-high-hsb 0,0,100<br />
nightmode "none"<br />
rgb 0,0.5,0<br />
snapmode 0<br />
snapgrid 0<br />
dighole 0,0<br />
interior ""<br />
soundscript<br />
{<br />
}<br />
smoke<br />
{<br />
}<br />
floating 0<br />
height-range 0,0<br />
autoname 0<br />
rotate 1<br />
rotate-yz-range 0,0<br />
surveyor-only 0<br />
icon-texture ""<br />
queues<br />
{<br />
}<br />
rotstep 1<br />
rollstep 1<br />
decal<br />
{<br />
}<br />
<br />
====autoname====<br />
:Type: Boolean<br />
:Desc: Will cause the object to be automatically named when placed in Surveyor. Objects are auto-named with their localised asset name followed by a number (eg. "Tree 10").<br />
====backdrop====<br />
:Type: Boolean<br />
:Desc: If true then this signifies that the asset is a "backdrop". Backdrops are used to create the illusion of distant terrain in a route. To achieve this a backdrop has a much greater draw distance than other scenery assets so that it is visible from much farther away. Also, backdrops are not z-sorted, meaning that they will always appear 'behind' other scenery regardless of their actual position in the world. For this reason, backdrop objects should never be placed near the track.<br />
====camera-collidable====<br />
:Type: Integer<br />
:Desc: This tag is not used in Trainz.<br />
====collate-meshes====<br />
:Type: Boolean<br />
:Desc: The 'collate-meshes' tag allowed for rapid rendering (a primitive form of stitching) in older versions of Trainz. There were significant limitations on how they could be used. The tag allowed the ability to add random color variation to scenery objects via the 'random-color-low-hsb' and 'random-color-high-hsb' tags. Collated mesh coloring is not currently supported in TS2009 but is expected to be revived in future Trainz versions.<br />
====decal====<br />
:Type: [[%22decal%22_Container|Decal Container]]<br />
:Desc: Specifies a decal to attach to the scenery object. Decals are effectively textures attached to the asset that are drawn on the ground rather than the asset itself. Decals are ideal for the creation of object shadows, or adding ground detail such as cracks, oil stains, etc. Decals should be used sparingly, as there is a runtime cost to creating and updating decals.<br />
====dighole====<br />
:Type: Integer Pair<br />
:Desc: This tag allows objects to be sunk into the terrain by specifying a hole size to dig at the objects location. The ground underneath the object will not be drawn where there is a hole. This value is specified as an integer pair in 10 meter grid squares (ie. 5,2 = 50 x 20m) regardless of the actual terrain grid size, where the first value is the size in the N-S direction and the second value is the size in the E-W direction. Note that the size of a hole cannot exceed 64 (where "dighole = a,b", a * b <= 64). Also note that the hole position will be snapped to the terrain grid so the asset should generally have the 'snapgrid' tag specified. Typical usage for the 'dighole' tag is to allow for turntable pits.<br />
====floating====<br />
:Type: Decimal<br />
:Desc: If specified the 'floating' tag specifies a vertical offset, in meters, for the assets position. This allows you to create an asset which 'floats' a certain distance of the ground.<br />
====height-range====<br />
:Type: Decimal Pair<br />
:Compulsory: No<br />
:Default: No height range restriction is applied.<br />
:Desc: Allows you to specify a range, in meters, for Surveyor's height adjustment tool. A value of 0,0 means the height range is fixed at ground level.<br />
<br />
====icon-texture====<br />
:Type: Image File<br />
:Desc: Specifies an icon texture for the asset. Icons are used as thumbnails in various asset lists in Surveyor and can alternatively be specified using a thumbnail container.<br />
====interior====<br />
:Type: [[KUID]]<br />
:Desc: Specifies an [[KIND_Interior|interior]] asset. Optional.<br />
====nightmode====<br />
:Type: Selection<br />
:Desc: Specifies how/when to use a night mesh specified in the mesh table. Requires one or more night meshes to be added to the [[%22mesh-table%22_Container|mesh-table]], which are identified by the 'night-mesh-base' tag. 'nightmode' must be one of the following values:<br />
:*''home'' - switches on night effect at dusk and off sometime during the night<br />
:*''lamp'' - switches the night effect on from dusk to dawn<br />
:*''constant'' - lights are on day and night<br />
:*''none'' - no lights (default)<br />
<br />
====queues====<br />
:Type: [[%22queues%22_Container|Queues Container]]<br />
:Desc: A queue container is used by certain asset types (such as stations, industries and rolling stock) to 'hold' product. Passengers are 'product' for queue purposes. Queue containers can make use of animated meshes or custom attachments to visually represent the amount of product they hold in game.<br />
====random-color-high-hsb====<br />
:Type: Color ([[hue-saturation-brightness|HSB]])<br />
:Desc: This value requires 'collate-meshes' to be turned on and specifies the high point of the random color variation of an asset. Random color variations are specified as [[hue-saturation-brightness]] colors to allow meaningful interpolation between values.<br />
====random-color-low-hsb====<br />
:Type: Color ([[hue-saturation-brightness|HSB]])<br />
:Desc: This value requires 'collate-meshes' to be turned on and specifies the low point of the random color variation of an asset. Random color variations are specified as [[hue-saturation-brightness]] colors to allow meaningful interpolation between values.<br />
====rgb====<br />
:Type: Color (RGB, 0 to 1)<br />
:Desc: Specifies the color that this object will appear on the [[Minimap]]. Defaults to (0, 0.5, 0).<br />
====rotate====<br />
:Type: Boolean<br />
:Desc: Used to allow rotation to be disabled for an asset. If added and set to false the object rotation tool in Surveyor will not work for this asset. Rotation is enabled if this tag is not supplied.<br />
====rotate-yz-range====<br />
:Type: Decimal Pair<br />
:Desc: Allows 'rolling' of the asset along its Y axis where the first and second values reflect the number of degrees from normal orientation. For example, if the first value is -20 and the second is 20 then the asset can be rolled anywhere within 40 degrees of arc. By default, objects have a roll range of 0 to 0 (i.e. no roll). Rolling is performed in Surveyor by holding 'shift' while using the object rotate tool. The roll range values must be specified from smaller to larger, such as -20,20 or 0,10.<br />
<br />
====rollstep====<br />
:Type: Decimal<br />
:Desc: Specifies the step size of roll in degrees and is used in conjunction with rotate-yz-range. For example, if rotate-yz-range is (-10, 10), and rollstep is 5, then the allowable roll is -10, 5, 0, 5, and 10. The default rollstep is approximately 0.5.<br />
<br />
====rotstep====<br />
:Type: Decimal<br />
:Desc: Specifies the amount of each rotation step (in degrees) when rotating an asset in Surveyor<br />
====smoke====<br />
:Type: [[%22smoke%22_Container|Smoke Container]]<br />
:Desc: A smoke container is effectively a PFX (particle effects) emitter that allows your scenery object to produce smoke and similar effects. Smoke tags take the form smokeX where X is a number. There is no maximum number of smoke tags but they must be numbered sequentially (i.e. smoke0,smoke1,smoke2,etc).<br />
====snapgrid====<br />
:Type: Integer<br />
:Desc: This tag specifies the size, in meters, of the snap grid for the 'snapmode' tag, default 10 meters.<br />
====snapmode====<br />
:Type: Boolean<br />
:Desc: If true then this objects position will be constrained to a grid location on the ground. When placed or moved in Surveyor the object will 'snap' to the nearest grid location, the size of the grid is set using the snapgrid tag.<br />
====soundscript====<br />
:Type: [[%22soundscript%22_Container|SoundScript Container]]<br />
:Desc: Details sounds that a scenery object produces. Sound should be used sparingly - objects that appear in large numbers throughout a scene should not contain a soundscript, to prevent an unnecessary performance hit.<br />
====surveyor-only====<br />
:Type: Boolean<br />
:Desc: Enables the creation of Surveyor only objects. Surveyor only objects will not exist in Driver.<br />
<br />
<br />
<br />
==Example Config.txt==<br />
Sample [[config.txt file]] for a scenery asset, with the Standard Tags excluded for brevity:<br />
<br />
kind scenery<br />
nightmode home<br />
mesh-table<br />
{<br />
default<br />
{<br />
mesh scenery_asset.im<br />
anim anim.kin<br />
auto-create 1<br />
animation-loop-speed 1<br />
effects<br />
{<br />
0<br />
{<br />
[[kind name]]<br />
fontsize 0.15<br />
fontcolor 30,30,30<br />
att a.name0<br />
name name<br />
}<br />
1<br />
{<br />
[[kind corona]]<br />
att a.coronawhite<br />
frequency 1<br />
directional 0<br />
texture-kuid <KUID:-3:10111><br />
}<br />
}<br />
}<br />
default-night<br />
{<br />
mesh night.im<br />
night-mesh-base default<br />
}<br />
radar<br />
{<br />
mesh radar/radar.im<br />
anim radar/radar.kin<br />
att a.radar<br />
att-parent default<br />
animation-loop-speed 1.0<br />
}<br />
}<br />
<br />
==Downloads==<br />
''Attach sample files here?''<br />
<br />
==Categories==<br />
[[Category:Asset KIND|S]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_DrivercommandKIND Drivercommand2019-05-05T01:23:05Z<p>Builderbob: example format.</p>
<hr />
<div>{{ORP-top}}<br />
[[KIND Drivercommand]] assets are AI orders for use in sessions.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
The [[KIND Drivercommand]] [[config.txt file]] supports the following tags (in addition to the tags that are available to all assets). Each tag is shown here with its default value.<br />
<br />
kind "drivercommand"<br />
supports-null-driver-character 0<br />
properties-behavior no-properties<br />
<br />
====supports-null-driver-character====<br />
:Type: Boolean<br />
:Compulsory: Yes (3.4)<br />
:Desc: Order is written in such a way that it can be issued with a null driver character. If this is true, the order can be issued in surveyor.<br />
<br />
====properties-behavior====<br />
:Type: String (enumerated)<br />
:Compulsory: Yes (4.6)<br />
:Minimum build: 4.5<br />
:Desc: Controls the behavior of the Driver Command in the 'add driver command' menu.<br />
<br />
* no-properties -- The command requires no properties to be specified, and the instance will simply be created as-is.<br />
* edit-in-submenu -- The command prefers to show a submenu before the instance is created, controlling the initial configuration of the command instance. This should be used where there is only a single option to specify, where there are only a small number of choices for that option, and where a default selection would be inappropriate.<br />
* edit-after-add -- The command prefers to be edited in a popover after the instance is created. This should be used where there are multiple options to specify, or where the number of possible choices is large.<br />
<br />
Note that the actual creation of the submenu and/or exposure of any properties via a popover are implemented in script. This tag simply tells Trainz what to expect so that it can display the initial menu without having to pay the cost of querying each possible script.<br />
<br />
==Example Config.txt==<br />
<br />
kuid <...><br />
kind "drivercommand"<br />
script "DriveThruTrackmarkCommand"<br />
class "DriveThruTrackmarkCommand"<br />
category-class "YD"<br />
supports-null-driver-character 1<br />
properties-behavior "no-properties"<br />
description "Drive train through a trackmark"<br />
category-region "US"<br />
category-era "2000s"<br />
trainz-build 4.5<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "DriveThruTrackmark.texture"<br />
width 64<br />
height 64<br />
}<br />
<br />
1<br />
{<br />
image "thumbnail.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
string-table<br />
{<br />
description "Drive train through a trackmark"<br />
}<br />
kuid-table<br />
{<br />
command-sounds <kuid:-3:10219><br />
sessionvariables <kuid:-3:10197><br />
}<br />
<br />
Note:<br />
* A 64x64 thumbnail is included for the display lists.<br />
* The KUID table includes libraries that the script relies on.<br />
<br />
==Downloads==<br />
''Attach sample files here?''<br />
<br />
==Categories==<br />
[[Category:Asset KIND|D]]<br />
<br />
[[Category:TBD]]<br />
{{ORP-bot|Driver}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_DrivercommandKIND Drivercommand2019-05-02T00:26:02Z<p>Builderbob: Builderbob (talk)</p>
<hr />
<div>{{ORP-top}}<br />
[[KIND Drivercommand]] assets are AI orders for use in sessions.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
The [[KIND Drivercommand]] [[config.txt file]] supports the following tags (in addition to the tags that are available to all assets). Each tag is shown here with its default value.<br />
<br />
kind "drivercommand"<br />
supports-null-driver-character 0<br />
properties-behavior no-properties<br />
<br />
====supports-null-driver-character====<br />
:Type: Boolean<br />
:Compulsory: Yes (3.4)<br />
:Desc: Order is written in such a way that it can be issued with a null driver character. If this is true, the order can be issued in surveyor.<br />
<br />
====properties-behavior====<br />
:Type: String (enumerated)<br />
:Compulsory: Yes (4.6)<br />
:Minimum build: 4.5<br />
:Desc: Controls the behavior of the Driver Command in the 'add driver command' menu.<br />
<br />
* no-properties -- The command requires no properties to be specified, and the instance will simply be created as-is.<br />
* edit-in-submenu -- The command prefers to show a submenu before the instance is created, controlling the initial configuration of the command instance. This should be used where there is only a single option to specify, where there are only a small number of choices for that option, and where a default selection would be inappropriate.<br />
* edit-after-add -- The command prefers to be edited in a popover after the instance is created. This should be used where there are multiple options to specify, or where the number of possible choices is large.<br />
<br />
Note that the actual creation of the submenu and/or exposure of any properties via a popover are implemented in script. This tag simply tells Trainz what to expect so that it can display the initial menu without having to pay the cost of querying each possible script.<br />
<br />
==Example Config.txt==<br />
<br />
kuid <...><br />
kind "drivercommand"<br />
script "DriveThruTrackmarkCommand"<br />
class "DriveThruTrackmarkCommand"<br />
category-class "YD"<br />
supports-null-driver-character 1<br />
properties-behavior "no-properties"<br />
description "Drive train through a trackmark"<br />
category-region "US"<br />
category-era "2000s"<br />
trainz-build 4.5<br />
<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "DriveThruTrackmark.texture"<br />
width 64<br />
height 64<br />
}<br />
<br />
1<br />
{<br />
image "thumbnail.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
<br />
string-table<br />
{<br />
description "Drive train through a trackmark"<br />
}<br />
<br />
kuid-table<br />
{<br />
command-sounds <kuid:-3:10219><br />
sessionvariables <kuid:-3:10197><br />
}<br />
<br />
Note:<br />
* A 64x64 thumbnail is included for the display lists.<br />
* The KUID table includes libraries that the script relies on.<br />
<br />
==Downloads==<br />
''Attach sample files here?''<br />
<br />
==Categories==<br />
[[Category:Asset KIND|D]]<br />
<br />
[[Category:TBD]]<br />
{{ORP-bot|Driver}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_DrivercommandKIND Drivercommand2019-05-01T23:39:29Z<p>Builderbob: Undo revision 18663 by Builderbob (talk)</p>
<hr />
<div>{{ORP-top}}<br />
[[KIND Drivercommand]] assets are AI orders for use in sessions.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
{{TBS}}<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
<br />
kind "drivercommand"<br />
supports-null-driver-character 0<br />
<br />
====supports-null-driver-character====<br />
:Type: Boolean<br />
:Desc: Order is written in such a way that it can be issued with a null driver character. If this is true, the order can be issued in surveyor.<br />
<br />
==Example Config.txt==<br />
''TBD''<br />
<br />
<br />
==Downloads==<br />
''Attach sample files here?''<br />
<br />
<br />
==Categories==<br />
[[Category:Asset KIND|D]]<br />
<br />
[[Category:TBD]]<br />
{{ORP-bot|Driver}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_DrivercommandKIND Drivercommand2019-05-01T23:23:07Z<p>Builderbob: properties-behavior</p>
<hr />
<div>{{ORP-top}}<br />
[[KIND Drivercommand]] assets are AI orders for use in sessions.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
{{TBS}}<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
<br />
kind "drivercommand"<br />
supports-null-driver-character 0<br />
<br />
====supports-null-driver-character====<br />
:Type: Boolean<br />
:Desc: Order is written in such a way that it can be issued with a null driver character. If this is true, the order can be issued in surveyor.<br />
<br />
====properties-behavior====<br />
:Type: String (enumerated)<br />
:Desc: Controls the behavior of the Driver Command in the 'add driver command' menu.<br />
<br />
* no-properties -- The command requires no properties to be specified, and the instance will simply be created as-is.<br />
* edit-in-submenu -- The command prefers to show a submenu before the instance is created, controlling the initial configuration of the command instance. This should be used where there is only a single option to specify, where there are only a small number of choices for that option, and where a default selection would be inappropriate.<br />
* edit-after-add -- The command prefers to be edited in a popover after the instance is created. This should be used where there are multiple options to specify, or where the number of possible choices is large.<br />
<br />
Note that the actual creation of the submenu and/or exposure of any properties via a popover are implemented in script. This tag simply tells Trainz what to expect so that it can display the initial menu without having to pay the cost of querying each possible script.<br />
<br />
==Example Config.txt==<br />
''TBD''<br />
<br />
<br />
==Downloads==<br />
''Attach sample files here?''<br />
<br />
<br />
==Categories==<br />
[[Category:Asset KIND|D]]<br />
<br />
[[Category:TBD]]<br />
{{ORP-bot|Driver}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Mesh_libraryMesh library2019-05-01T01:21:04Z<p>Builderbob: Rewrite to current format.</p>
<hr />
<div>KIND [[mesh library]] defines one or more meshes as an asset that can be referenced from another asset or via scripting. <br />
<br />
The [[mesh library]] asset allows the content creator to include a number of [[mesh file]]s in a single asset for the purposes of [[material sharing]], mesh sharing, texture sharing, or simply for clarity of organisation. The meshes are then referenced from other assets as required.<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
* KIND [[mesh library]] does not support any tags other than those used with any [[KIND Mesh]] asset.<br />
<br />
==Example Config.txt==<br />
<br />
The typical configuration of a mesh library within Trainz is as follows:<br />
<br />
* A [[KIND Mesh]] asset is used as the mesh library asset.<br />
* The asset is configured with a [[mesh-table]] that contains a number of items, each with a [[mesh file]] and its associated settings, such as effects.<br />
* The "auto-create" tag is typically configured as "0" although it might be convenient to include one [[mesh-table]] item with an "auto-create" tag of "1" in order to avoid a validation warning about no visible mesh in the asset.<br />
<br />
mesh-table<br />
{<br />
summer_boulder_01m<br />
{<br />
mesh "summer\boulder_granite_01m.im"<br />
auto-create 1<br />
}<br />
summer_boulder_02m<br />
{<br />
mesh "summer\boulder_granite_02m.im"<br />
auto-create 0<br />
}<br />
summer_boulder_03m<br />
{<br />
mesh "summer\boulder_granite_03m.im"<br />
auto-create 0<br />
}<br />
}<br />
<br />
* Placeable assets are then configured with [[mesh-table]] entries that use the "mesh-asset" tag in addition to the usual "mesh" tag. The "mesh-asset" tag value is the KUID of the mesh library asset. The "mesh" tag is included as normal, and is the name of the [[mesh file]] in the library (Note: '''NOT''' the mesh table item ID).<br />
<br />
* The textures, effects, animations etc associated with the mesh are accessed from the library and are not included with the placeable asset.<br />
<br />
mesh-table<br />
{<br />
default<br />
{<br />
mesh-asset <KUID-OF-MESH-LIBRARY-ASSET><br />
mesh "summer\boulder_granite_02m.im"<br />
auto-create 1<br />
}<br />
}<br />
<br />
[[Mesh library]] assets do not appear in in-game asset lists.<br />
<br />
==Categories==<br />
[[Category:Asset KIND|T]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_TextureKIND Texture2019-04-28T05:49:43Z<p>Builderbob: Rewrite.</p>
<hr />
<div>[[KIND Texture]] defines a single texture as an asset that can be referenced from another asset or via scripting.<br />
<br />
Making a texture available as an asset may reduce resource requirements where the texture is used by a number of assets, and may assist in maintaining consistency between different variations of the same basic asset. [[KIND Texture-group]] serves a similar function where there are multiple textures associated with a group of assets.<br />
<br />
==Parent Classes==<br />
* [[KIND TrainzBaseSpec]]<br />
==Child Classes==<br />
* [[KIND Groundtexture]] <br />
<br />
==Supported Tags==<br />
The KIND Texture config.txt file supports the following tags. Each tag is shown here with its default value.<br />
<br />
texture <null><br />
subblend 0<br />
subrotation 0 <br />
<br />
====texture====<br />
:Type: [[Texture file]]<br />
:Compulsory: 3.4<br />
:Default: None<br />
:Description: Name of texture. Note that this is a [[texture file]], not an image file. See example below. <br />
<br />
====subblend====<br />
:Type: Float<br />
:Compulsory: No<br />
:Default: 0.00<br />
:Description: ''TBD''<br />
<br />
====subrotation====<br />
:Type: Float<br />
:Compulsory: No<br />
:Default: 0.00<br />
:Description: ''TBD''<br />
<br />
==Example Config.txt==<br />
<br />
kuid <kuid:101046:104687><br />
username "Corona Red diffuse"<br />
kind "texture"<br />
trainz-build 3.5<br />
texture "orange.texture"<br />
category-class "JC"<br />
category-era "1800s"<br />
category-region "AU"<br />
description "A Red corona.<br />
subblend 0.50<br />
subrotation 45.00<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "$screenshot$.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
<br />
The above "texture" tag value 'orange.texture' specifies a [[Texture file]] which contains the information about the image to be used for the texture.<br />
<br />
==See Also==<br />
* [[KIND Texture-group]]<br />
* [[KIND Groundtexture]]<br />
<br />
==Categories==<br />
[[Category:Asset KIND|Texture]]<br />
[[Category:TBD|Texture]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_ServletKIND Servlet2019-04-24T01:44:55Z<p>Builderbob: Detail</p>
<hr />
<div>[[KIND Servlet]]<br />
<br />
Kind servlet is an object that is used to create persistent server processes that provide serverside functionality for iTrainz client applications. For details see [[iTrainz Servlets]].<br />
<br />
==KIND Hierarchy==<br />
===Parent Classes===<br />
* [[KIND TrainzBaseSpec]]<br />
===Child Classes===<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
The KIND Servlet config.txt file does not support any tags other than the tags that are available to all assets. <br />
<br />
==Example Config.txt==<br />
<br />
kuid <kuid:30501:100006><br />
kind "servlet"<br />
username "N3V DLC Servlet"<br />
description "An iTrainz Servlet that provides iTrainz access for the N3V DLC store."<br />
trainz-build 3.8<br />
class "N3VDLCServlet"<br />
script "N3VDLCServlet"<br />
script-include-table<br />
{<br />
0 <kuid:30501:100005><br />
1 <kuid:30501:1012><br />
}<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "$screenshot$.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
category-class "XS"<br />
username-de "N3V DLC Servlet"<br />
username-fr "N3V Servlet contenu additionnel"<br />
username-pl "Servlet DLC N3V"<br />
description-de "An iTrainz Servlet that provides iTrainz access for the N3V DLC store."<br />
description-pl "An iTrainz Servlet that provides iTrainz access for the N3V DLC store."<br />
kuid-table<br />
{<br />
n3v-dlc-servlet-library <kuid:30501:100005><br />
itrainz-servlet-support-library <kuid:30501:1012><br />
}<br />
<br />
==Categories==<br />
[[Category:Asset KIND|S]]<br />
[[Category:TBD]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/ArraysArrays2019-04-24T00:53:58Z<p>Builderbob: Categories</p>
<hr />
<div>==Declaration, Initialisation & Population==<br />
*Arrays need to be declared and initialised before they can be accessed, and it will usually be necessary to populate the array with meaningful data.<br><br><br />
<br />
{{MethodHeader|Declaration}}<br />
*A declaration reserves memory for the variable and allocates a name for that particular array. This is analogous to a housing developer buying a site and reserving it for future construction.<br />
<br />
*To declare an array you must first define the type of object which the array will contain, followed by opening and closing square braces and the name you will use to reference the array variable.<br />
<br />
*Just as residential developments can consist of any building type, arrays can consist of almost any class, including classes which you have defined yourself.<br />
<br />
Vehicle[] vehicles;<br />
int[] numberList;<br />
string[] words;<br />
GameObject[] objects;<br />
MyOwnClass[] myObjects;<br />
<br />
{{MethodHeader|Initialisation}}<br />
*In the same way that a developer must decide how many units he wants to build, you must decide how many members your array will initially be able to contain. You will be able to make the array larger or smaller later, for now you are just setting the initial size.<br />
*To initialise the array you use the keyword new, followed by the class of object that the array is to contain and the initial number of members in square brackets.<br />
<br />
vehicles = new Vehicle[5];<br />
numberList = new int[10];<br />
words = new string[2];<br />
objects = new GameObject[3];<br />
myObjects = new MyOwnClass[7];<br />
<br />
*It is possible, and often convenient, to declare and initialise the array in a single statement:<br />
<br />
Vehicle[] vehicles = new Vehicle[5];<br />
int[] numberList = new int[10];<br />
string[] words = new string[2];<br />
GameObject[] objects = new GameObject[3];<br />
MyOwnClass[] myObjects = new MyOwnClass[7];<br />
<br />
{{MethodHeader|Population}}<br />
*We now have a plot of land and some completed buildings but it will still be meaningless to call at an individual house because no-one will be living there.<br />
<br />
*You can populate the individual elements by assigning a value to an indexed position in the array. The syntax for this is:<br />
<br />
vehicles[0] = GetMyTrain().GetVehicles[3];<br />
numberList[0] = 0;<br />
words[3] = "sentences"<br />
objects[0] = me;<br />
myObjects[2] = Router.GetGameObject("my sibling");<br />
<br />
{{MethodHeader|Array Methods}}<br />
*A further shortcut is to use a method which returns an array to initialise and populate your array in a single statement. Often the same statement can also contain the declaration:<br />
<br />
Vehicle[] vehicles = World.GetVehicleList();<br />
int[] numberList = GetNumberList(1,10);<br />
string[] words = Str.Tokens("comma,separated,list",",");<br />
<br />
*You can write your own methods to return arrays:<br />
<br />
int[] GetNumberList(int start, int count) {<br />
int[] result = new int[0];<br />
int i;<br />
for (i = start; i < count; i++) {<br />
result[result.size()] = i;<br />
}<br />
return result;<br />
}<br />
<br />
==Array Operators==<br />
{{MethodHeader|Appending to an Array}}<br />
*This is a syntax which allows you to increase the size of a properly initialised array by adding a new member to the end. Since array indexing starts at zero, the last member will always be ''array[array.size() - 1]''. <br />
<br />
*Trying to read from ''array[array.size()]'' will result in a range error because you are attempting to access a location which does not exist.<br />
<br />
*Assigning to ''array[array.size()]'' however, will create a new member and increment the number of items in the array.<br />
<br />
vehicles[vehicles.size()] = me;<br />
<br />
{{MethodHeader|Indexing}}<br />
*A subscript enclosed in square brackets serves to define an individual item within an array. The notation will only be meaningful if that particular item has a value assigned. Assuming that this is the case when it isn't is a common error, and one that can be very difficult to find.<br />
<br />
*Given these statements:<br />
<br />
int[] numbers = new int[3];<br />
numbers[0] = 0;<br />
numbers[2] = 2;<br />
<br />
*''numbers[0]'' will return zero as an integer<br />
*''numbers[2]'' will return the value 2<br />
*''numbers[1]'' however will return null since no value has been assigned to that particular item.<br />
<br />
*Array indexing starts at zero (don't ask why) and finishes at ''array.size() - 1''.<br />
<br />
<br />
{{MethodHeader|Range Indexing}}<br />
*Whilst it is straightforward to erase a value from an array by assigning it to null, this doesn't affect the size of the array itself.<br />
<br />
*Given these statements:<br />
<br />
int[] numbers = new int[3];<br />
numbers[0] = 0;<br />
numbers[1] = 1;<br />
numbers[2] = 2;<br />
<br />
*Making the assignment ''numbers[2] = null'' will clear out the value but the array will still contain 3 items.<br />
<br />
*You can delete items and reduce the size of the array at the same time by specifying a range index like this:<br />
<br />
numbers[0,1] = null;<br />
<br />
*The first index is the position of the item to remove and the second is one greater than the position of the last item.<br />
<br />
numbers[0,1] = null removes the first item<br />
numbers[2,3] = null removes the last item<br />
<br />
*Array range indexing is an important tool for use with strings (which are really arrays of characters)<br />
<br />
<br />
{{MethodHeader|size()}}<br />
*''array.size()'' returns a count of the items in the array, this is no guarantee that all of the items have a value.<br />
<br />
<br />
{{anchor|copy}}{{MethodHeader|copy()}}<br />
*''copy()'' creates a duplicate of the array, the syntax is:<br />
<br />
int[] old = new int[3];<br />
int[] new;<br />
new.copy(old);<br />
<br />
*There is a subtle difference between copying an array and creating a duplicate reference to it by assignment. In the case above, the array ''new'' is an entirely separate variable from the array ''old''. Changing the values of one will not affect the other.<br />
<br />
int[] old = new int[3];<br />
int[] new;<br />
new = old;<br />
<br />
*will produce a similar result at first glance, but in this case assigning a new value to ''new[1]'' will also change the value of ''old[1]''. This is because the assignment effectively creates an alternative name for the same data.<br />
<br />
==Code Samples==<br />
{{MethodHeader|Array Handling Methods}}<br />
*These are example routines which carry out some basic operations on string arrays, all the routines are case sensitive. They can be used for other object types with appropriate modification.<br />
<br />
*Member returns true if the string 's' is contained within the array 'strings'.<br />
<br />
public bool Member(string[] strings, string s) {<br />
int n;<br />
bool result = false;<br />
if (strings.size() == 0) {return result;}<br />
for (n = 0; n < strings.size(); n++) {<br />
if (s == strings[n]) {<br />
result = true;<br />
break;<br />
}<br />
}<br />
return result;<br />
}<br />
<br />
*Add will append string 's' to the end of the array 'strings' as long as 's' is not already present.<br />
<br />
public void Add(string[] strings, string s) {<br />
if (Member(strings,s)) return;<br />
else {strings[strings.size()] = s;}<br />
}<br />
<br />
*Remove will delete any instance of string 's' from the array and reduce the size of the array accordingly.<br />
<br />
public void Remove(string[] strings, string s) {<br />
int n;<br />
if (strings.size() == 0) return;<br />
for (n = 0; n < strings.size(); n++) {<br />
if (s == strings[n]) {strings[n,n+1] = null;}<br />
}<br />
}<br />
<br />
*Sort will perform a case sensitive alpha sort of the strings in the array. This is a flagged bubble sort, simple but slow, and is fine for most small arrays. For large arrays you should write your own quicksort method.<br />
<br />
public void Sort(string[] strings) {<br />
int x,y;<br />
string temp;<br />
bool flag;<br />
for (x = 0; x < strings.size(); x++) {<br />
flag = false;<br />
for (y = 0; y < strings.size() - 1; y++) {<br />
if (strings[y] > strings[y + 1]) {<br />
temp = strings[y + 1];<br />
strings[y + 1] = strings[y];<br />
strings[y] = temp;<br />
flag = true;<br />
}<br />
}<br />
if (!flag) break;<br />
}<br />
}<br />
<br />
==See Also==<br />
<br />
<br />
=Categories=<br />
[[Category:TrainzScript]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Comments_%26_DelineationComments & Delineation2019-04-24T00:52:11Z<p>Builderbob: Categories</p>
<hr />
<div>==Comments==<br />
{{MethodHeader|//}}<br />
*Single line comment, text before the next carriage return will be ignored by the compiler.<br />
<br />
<br />
{{MethodHeader|/* */}}<br />
*Block comment. <br />
*Text between the two character pairs '/*' and '*/' will be ignored. <br />
*This convention can be used to temporarily disable the execution of sections of code. <br />
*Block comment tags cannot be nested but they can enclose single line comments.<br />
<br />
<br />
==Delineation==<br />
{{MethodHeader|:}}<br />
*Marks the end of a label declaration.<br />
*see ''on, switch, case, default, label''<br />
<br />
<br />
{{MethodHeader|;}}<br />
*Marks the end of a statement.<br />
<br />
<br />
{{MethodHeader|{ } }}<br />
*Delineates the extent of a compound statement or method declaration.<br />
<br />
<br />
{{MethodHeader|{ };}}<br />
*Delineates the extent of a class declaration.<br />
<br />
<br />
=Categories=<br />
[[Category:TrainzScript]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/TrainzScript_KeywordsTrainzScript Keywords2019-04-24T00:51:37Z<p>Builderbob: Categories</p>
<hr />
<div>==Keywords==<br />
__NOEDITSECTION__<br />
{{MethodHeader|<h4>break</h4>}}<br />
*Exits from current code block (''[[#for|for]], [[#wait|wait]], [[#switch|switch]], [[#while|while]]'')<br />
*Execution will continue with the first statement after the loop.<br />
// This loop will complete when n is greater than 5 or when n == list.size(), whichever occurs first<br />
<br />
for (n = 0; n < list.size(); n++) {<br />
if (n > 5) break;<br />
}<br />
<br><br />
<br />
{{MethodHeader|<h4>case</h4>}}<br />
*Individual ''case'' statements are labels that the code will jump to dependent on the value of the integer expression following the keyword.<br />
*The case statement is used in the switch control flow statement to declare an integer option and the action to be taken when execution is transferred to this label.<br />
*This code will print the days of the week from Sunday to Saturday:<br />
int i;<br />
string dayOfWeek;<br />
for(i = 0; i < 6; i++) {<br />
switch(i) {<br />
case 0 : dayOfWeek = "Sunday";<br />
break;<br />
case 1 : dayOfWeek = "Monday";<br />
break;<br />
case 2 : dayOfWeek = "Tuesday";<br />
break;<br />
case 3 : dayOfWeek = "Wednesday";<br />
break;<br />
case 4 : dayOfWeek = "Thursday";<br />
break;<br />
case 5 : dayOfWeek = "Friday";<br />
break;<br />
case 6 : dayOfWeek = "Saturday";<br />
break;<br />
default : dayOfWeek = "ERROR";<br />
}<br />
Interface.Print(dayOfWeek);<br />
}<br />
*''[[#Switch|switch]]'' transfers execution to the statement immedaitely following the appropriate ''case'' label.<br />
*If there is no match execution continues after the ''[[#default|default]]'' label.<br />
*Note that the list of statements following the ''case'' selector should normally terminate with ''[[#break|break]];'' (which exits from the ''[[#switch|switch]]'' statement) or ''[[#return|return]]'' (which exits from the entire method) to prevent the code from running on into the next section.<br />
<br><br />
<br />
{{MethodHeader|<h4>class</h4>}}<br />
*Class defines a new class declaration and the identity of the immediate parent:<br />
class ChildClass isclass ParentClass {<br />
<br />
class members...<br />
class methods...<br />
<br />
};<br />
*More than one class declaration may be included in the same file.<br />
<br><br />
<br />
{{MethodHeader|<h4>continue</h4>}}<br />
*Jumps to the next iteration of a ''[[#for|for]], [[#while|while]]'' or ''[[#wait|wait]]'' loop For example:<br />
int i;<br />
for(i = 0; i < 10; ++i) {<br />
if(i == 5) <br />
continue;<br />
Interface.Print(i);<br />
}<br />
*The above code will print 0 to 4, skip 5 and then print 6 to 9.<br />
<br><br />
<br />
{{MethodHeader|<h4>default</h4>}}<br />
*See ''[[#case|case]]''.<br />
<br><br />
<br />
{{MethodHeader|<h4>define</h4>}}<br />
*''define'' is used to declare a constant<br />
*Constants must be initialised on declaration and cannot be changed in code.<br />
define string firstDay = "Monday"; // declares a string variable available anywhere within the containing class<br />
define public int daysInWeek = 7; // declares an integer variable which will also be available from outside the class.<br />
<br><br />
<br />
{{MethodHeader|<h4>else</h4>}}<br />
*see ''[[#if|if]]''<br />
<br><br />
<br />
{{MethodHeader|<h4>false</h4>}}<br />
*Boolean constant<br />
!true = false<br />
<br><br />
<br />
{{MethodHeader|<h4>final</h4>}}<br />
*A class or method specifier that prevents users from overriding the declaration<br />
final class Info {<br />
string name;<br />
string address;<br />
}<br />
*Given the above the declaration the following declaration would not be possible<br />
class DetailedInfo isclass Info {<br />
string telephone;<br />
}<br />
<br><br />
<br />
{{MethodHeader|<h4>for</h4>}}<br />
*''for'' is a control flow loop statement.<br />
*A ''for'' loop has four parts and takes the form: ''for(A; B; C) D'' where:<br />
**A initialises a counter variable, and is executed before the looping begins<br />
**B is the test condition, looping will continue while B is true<br />
**C is the loop expression, and will be executed at the end of every loop<br />
**D is the code body statement, usually a compound statement, and is executed on every loop.<br />
int i;<br />
Junction[] junctions = World.GetJunctionList();<br />
for (i = 0; i < junctions.size(); i++) {<br />
string name = junctions[i].GetName();<br />
Interface.Print("Junction " + i + " is called " + name);<br />
}<br />
*Depending on the values of Parts A and B the loop may not execute at all.<br />
<br><br />
<br />
{{MethodHeader|<h4>game</h4>}}<br />
*Class specifier reserved for built-in predefined classes.<br />
<br><br />
<br />
{{MethodHeader|<h4>goto</h4>}}<br />
*The ''goto'' statement will branch to a label statement. For example:<br />
int i = 5<br />
<br />
A: // label statement<br />
Interface.Print("hello");<br />
if(i--) goto A;<br />
<br />
*The above code will print hello 5 times. (zero evaluates as boolean false)<br />
<br><br />
<br />
{{MethodHeader|<h4>if</h4>}}<br />
*''if'' and ''else'' are keywords for the construction of ''if / then / else'' constructs used to control program flow<br />
*Code following an ''if(condition)'' statement is executed only when the condition evaluates to true.<br />
*In any other case execution branches to any immediately following ''else'' statement.<br />
*''else'' and ''else if'' clauses are optional.<br />
int i = Math.Rand(0, 3);<br />
<br />
if (i == 0) {<br />
Interface.Print("i is 0");<br />
}<br />
else if (i == 1) {<br />
Interface.Print("i is 1");<br />
}<br />
else {<br />
Interface.Print("i is 2");<br />
}<br />
<br><br />
<br />
{{MethodHeader|<h4>include</h4>}}<br />
*Syntax: ''include "filename.gs"''<br />
*This statement must appear before any class declarations and will include the contents of the specified script file.<br />
*It is generally sufficient to include the *.gs filename related to the immediate parent of your script.<br />
<br><br />
<br />
{{MethodHeader|<h4>inherited</h4>}}<br />
*an inherited() statement is made within a method definition to call the corresponding method in the immediate parent of the class.<br />
*inherited() returns the same type, and takes the same parameters as the parent method.<br />
*Inheritance is central to Object Oriented Programming, you should not omit these calls.<br />
<br><br />
<br />
{{MethodHeader|<h4>mandatory</h4>}}<br />
*mandatory is a method specifier which indicates that, if the method is over-ridden the over-ridden method '''must''' call ''inherited''.<br />
<br><br />
<br />
{{MethodHeader|<h4>me</h4>}}<br />
*me refers to the current object, similar to ''self'' or ''this'' keywords in other languages.<br />
*me is often understood if not stated, these statements would have the same effect:<br />
me.SetMeshAnimationState();<br />
SetMeshAnimationState()<br />
<br><br />
<br />
{{MethodHeader|<h4>native</h4>}}<br />
*A method specifier which indicates that the method is implemented by the game rather than in script code.<br />
<br><br />
<br />
{{MethodHeader|<h4>null</h4>}}<br />
*null is an uninitialised expression.<br />
*Every reference that is not assigned to an object has the value null.<br />
*Assigning null to an existing object will delete the reference to that object.<br />
<br><br />
<br />
{{MethodHeader|<h4>on</h4>}}<br />
*see [[#wait|wait]]()<br />
<br><br />
<br />
{{MethodHeader|<h4>public</h4>}}<br />
*A specifier indicating that the member or method is accessible from outside the current class.<br />
<br><br />
<br />
{{MethodHeader|<h4>return</h4>}}<br />
*Exits immediately from the current method, used when the method return type is void.<br />
*or exit from the current method returning ''value'' to the calling routine.<br />
*Value must match the method return type.<br />
<br><br />
<br />
{{MethodHeader|<h4>static</h4>}}<br />
*''static'' is a class specifier denoting that only one instance of the class may exist.<br />
*Static classes cannot be created using the new operator.<br />
*To access a static class refer to its members or methods using the class name as follows:<br />
static class owner {<br />
<br />
public string forename; // public member<br />
public string surname; // public member<br />
public string GetName(void) { // public method<br />
return forename + " " + surname;<br />
}<br />
<br />
};<br />
<br />
class postbox isclass MapObject {<br />
<br />
public void Init(void) {<br />
if (!owner.forename) owner.forename = "Fred";<br />
if (!owner.surname) owner.surname = "Bloggs";<br />
Interface.Print(owner.GetName());<br />
}<br />
<br />
}<br />
*Since only one instance of owner may exist it will be created along with the first instance of the postbox obect<br />
*Any future postboxes will find the members of the owner class already initialised and ready for use.<br />
<br><br />
<br />
{{MethodHeader|<h4>switch</h4>}}<br />
*See ''[[#case|case]]''.<br />
<br><br />
<br />
{{MethodHeader|<h4>thread</h4>}}<br />
*A ''thread'' is a method which runs independently of the main script code.<br />
*''threads'' can be started and synchronised by standard methods or other threads but are allowed to wait for events or to carry out tasks requiring periods of inactivity without interrupting the main program flow.<br />
*Threaded methods may only be declared in classes extending the GameObject class or its children.<br />
*Many threads (up to 64) may be running on the same game object instance at a time.<br />
class Tutorial isclass Buildable {<br />
<br />
bool doorsOpen = false;<br />
<br />
public void Init(void) {<br />
inherited();<br />
AddHandler(me,"Object","","ObjectHandler");<br />
}<br />
<br />
thread void RingTheBell(void) {<br />
while (doorsOpen) {<br />
Sleep(0.35 + World.Play2DSound(GetAsset(),"bell.wav"));<br />
}<br />
}<br />
<br />
void ObjectHandler(Message msg) {<br />
if (msg.minor == "Enter") {<br />
doorsOpen = true;<br />
RingTheBell();<br />
}<br />
else doorsOpen = false;<br />
}<br />
<br />
};<br />
*In the above the ''thread RingTheBell'' is started on an ''Object,Enter'' message and will terminate on any other ''Object'' message, irrespective of other code within the class.<br />
<br><br />
<br />
{{MethodHeader|<h4>true</h4>}}<br />
*Boolean constant<br />
!false = true<br />
<br><br />
<br />
{{MethodHeader|<h4>void</h4>}}<br />
*''void'' is a null type used in two situations:<br />
*to indicate that a method requires no parameters<br />
*to indicate that a method does not return a value<br />
public void DoTheDo(void);<br />
<br><br />
<br />
{{MethodHeader|<h4>wait</h4>}}<br />
*''wait'' is a control flow statement that suspends execution of a thread pending receipt of a message of a given type.<br />
*It can listen for multiple message types using the on statement.<br />
*When a wait statement is executed, execution stops on the thread until one of the on conditions is met.<br />
wait() {<br />
on "hello", "world" : {<br />
// code here will execute for any ''hello,world'' message and then continue to wait for other messages.<br />
continue;<br />
}<br />
on "hi", "there" : {<br />
// code here will execute for any ''hi,there'' message and then exit the loop.<br />
break;<br />
}<br />
on "hey", "" :<br />
{<br />
// code here will execute for any message with a major type of<br />
// "hey" this will break by default, terminating the wait() loop.<br />
}<br />
}<br />
<br><br />
<br />
{{MethodHeader|<h4>while</h4>}}<br />
*A ''while(condition)'' is a loop control method that will continue as long as its condition evaluates to true.<br />
*Note that if the condition is initially false the loop will not run at all<br />
int i = 5;<br />
while (i > 0) {<br />
Interface.Print("i is greater than zero");<br />
}<br />
<br><br />
<br />
<br />
=Categories=<br />
[[Category:TrainzScript]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/TypesTypes2019-04-24T00:51:01Z<p>Builderbob: Categories</p>
<hr />
<div>{{anchor|bool}}{{MethodHeader|bool}}<br />
*Contains the Boolean constants ''true'' or ''false''<br />
*Casting an integer of value 0 to a bool will result in ''false'', any other value will result in ''true''.<br />
!false = true<br />
(bool) 0 = false<br />
<br><br />
<br />
{{anchor|int}}{{MethodHeader|int}}<br />
*32 bit integer<br />
*Range from -2147483647 .. 2147483647<br />
Formats<br />
100<br />
+100<br />
-100<br />
0x0f (Tested only in T:ANE)<br />
<br><br />
<br />
{{anchor|float}}{{MethodHeader|float}}<br />
*32 bit floating number<br />
Formats<br />
1.0<br />
1.0f<br />
polish notation?<br />
<br><br />
<br />
{{anchor|object}}{{MethodHeader|object}}<br />
*''object'' is a base class which may be used to store references to objects of any class.<br />
<br><br />
<br />
{{anchor|string}}{{MethodHeader|string}}<br />
*Strings can be indexed as arrays.<br />
*Strings support the following escape sequences<br />
\r ?<br />
\n New line<br />
\t Tab character<br />
\l ?<br />
\a ?<br />
\b ?<br />
\\ Backslash<br />
\" Double quote mark<br />
\' Single quote mark<br />
\0 ?<br />
<br><br />
<br />
{{anchor|Array}}{{MethodHeader|Array Types}}<br />
*Arrays are indexed lists of any base type or any class type including GameObjects.<br />
*Arrays are declared using these statements<br />
Train[] trains;<br />
int[] Numbers = new int[n]; // where ''n'' is the number of items in the array.<br />
*The keyword ''new'' creates the array but does not initialise any of the members<br />
Numbers[3] = 256; // assigns a value to the array. Array indices start at zero<br />
*Arrays may also be returned by methods<br />
Signal[] signals = World.GetSignalList() // creates an array of signals from a built in method<br />
Numbers[Numbers.size()] = 5; // adds a new value after the end of the array, increasing its size by 1<br />
Numbers[0,1] = null; // deletes the first value from the array, decreasing its size by 1<br />
<br><br />
<br />
<br />
=Categories=<br />
[[Category:TrainzScript]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/OperatorsOperators2019-04-24T00:49:04Z<p>Builderbob: Categories</p>
<hr />
<div>The operator sections set out below follow the language's preference rules. The earlier the operator appears in the list, the higher the precedence and the earlier the listed operators will be evaluated.__NOEDITSECTION__<br />
<br />
<br />
==Operators (1), Grouping & Indexing==<br />
{{MethodHeader|( )}}<br />
*Expression grouping. <br />
*In common with most programming languages Trainzscript carries out arithmetical operations in the order defined by operator precedence rules.<br />
*''3 + 2 * 12 - 7'' would return 20, because multiplication is of higher precedence than addition and subtraction.<br />
*You can force the compiler to change this sequence and make your intentions crystal clear by declaring this as ''((3 + 2) * 12) - 7''.<br />
<br />
<br />
{{MethodHeader|[ i ]}}<br />
*Array and string indexing. <br />
*Arrays are zero based and ''arrayName[0]'' will represent the first element. <br />
*Similarly ''arrayName[arrayName.size() - 1]'' will represent the last element. <br />
*A call to a value outside the range ''[0 … size()-1]'' will generate an exception. <br />
*This notation can also be used to return a single character from a string.<br />
<br />
intArray[intArray.size()] = 5 // will add the new value of 5 to the end of the array.<br />
<br />
<br />
{{MethodHeader|[ i , j ]}}<br />
*Array and String range index. <br />
*The expression ''string[0,string.size()]'' will return the entire string. <br />
*The integers i and j are best thought of as 'cursor' positions where i is the first element and j is one beyond the last element. <br />
*If i is omitted the range will start at the beginning of the array (index 0). <br />
*If j is omitted the range will end after the end of the array (.size()). <br />
*To return a single element other than the first or last, both i and j are required. <br />
*Given the declaration ''string s = "abcde"''<br />
s[,3] = "abc"<br />
s[2,3] = "c"<br />
s[2,] = "cde"<br />
<br />
intArray[2,3] = null // will delete the third element of the array.<br />
<br />
<br />
{{MethodHeader|[ i , ]}}<br />
*Indexes from i to the end of the string or array inclusively.<br />
s[2,] = "cde"<br />
<br />
<br />
{{MethodHeader|[ , j ]}}<br />
*Indexes from the start of the string or array to element j-1 inclusively.<br />
s[,3] = "abc"<br />
<br />
<br />
{{MethodHeader|.}}<br />
*Dereference operator<br />
GetAsset().GetConfigSoup();<br />
*The ''GetConfigSoup()'' method to be called is the method defined for the class ''GetAsset()''.<br />
<br />
<br />
{{MethodHeader|!}}<br />
*Not Operator<br />
!true = false<br />
!vehicle = null<br />
<br />
<br />
==Operators (2), Incremental and Unary Operators==<br />
{{MethodHeader|++}}<br />
*Increments a numeric value by 1.<br />
*Often used for control variables in loops:<br />
for(n = 0; n < list.size(); n++) {<br />
DoStuffWith(n);<br />
}<br />
*Increments n by 1 on each pass through the loop.<br />
<br />
<br />
{{MethodHeader|--}}<br />
*Decrements a numeric value by 1.<br />
*Often used for control variables in loops:<br />
n = list.size() - 1;<br />
while(n >= 0) {<br />
DoStuffWith(n);<br />
n--;<br />
}<br />
*Decrements n by 1 on each pass through the loop.<br />
<br />
<br />
{{MethodHeader|+}}<br />
*Unary plus.<br />
*Used to denote that a value is positive.<br />
<br />
<br />
{{MethodHeader|-}}<br />
*Unary minus.<br />
*Used to denote that a value is negative.<br />
<br />
<br />
==Operators (3), Casts==<br />
{{MethodHeader|<h5>(bool)</h5>}}<br />
*Boolean type cast.<br />
(bool) 0 = false<br />
(bool) 0.0 = false<br />
(bool) n = true //where n is greater than zero<br />
<br />
<br />
{{MethodHeader|<h5>(int)</h5>}}<br />
*Integer type cast.<br />
(int) 5.0 = 5<br />
(int) true = 1<br />
<br />
<br />
{{MethodHeader|<h5>(float)</h5>}}<br />
*Float type cast.<br />
(float) 100 = 100.0<br />
(float) false = 0.0<br />
<br />
<br />
{{MethodHeader|<h5>(string)</h5>}}<br />
*String type cast.<br />
(string) 1 = "1"<br />
(string) 0.99 = "0.99"<br />
(string) false = "false";<br />
<br />
<br />
{{MethodHeader|(''reference'')}}<br />
*Class type cast.<br />
<font color=red>How is this used and how is it different from cast<Class>?</font><br />
<br />
<br />
{{MethodHeader|<h5>cast</h5>}}<br />
*Dynamic cast. <br />
*Returns null if the reference cannot be converted to the class specified by className. <br />
*Note that ancestors of the specified class will be returned.<br />
Vehicle vehicle = cast<Vehicle>msg.src;<br />
<br />
MeshObject meshObject;<br />
GameObject gameObject = cast<GameObject>meshObject; // returns meshObject if the object exists, null otherwise<br />
<br />
<br />
{{MethodHeader|<h5>size()</h5>}}<br />
*Returns the number of members of an array or the length of a string. <br />
*In the case of an array this does not necessarily mean that all (or any) of the members actually contain values.<br />
given string s = "abcde";<br />
s.size() = 5;<br />
<br />
int[] numbers = new int[5]; // creates an empty array of 5 integers<br />
numbers.size() = 5;<br />
<br />
<br />
{{MethodHeader|<h5>copy()</h5>}}<br />
*Creates a copy of an array or string. <br />
*This is different from a simple assignment which points a variable to the same memory address as an existing variable.<br />
*Array.copy() or string.copy() creates an additional copy of the data.<br />
int[] numbers = new int[5];<br />
int[] moreNumbers;<br />
<br />
moreNumbers.copy(numbers); // duplicates numbers <br />
<br />
<br />
{{MethodHeader|<h5>isclass()</h5>}}<br />
*Used in the declaration of a new class identifier<br />
class MyScript isclass Vehicle {<br />
classMethods();<br />
};<br />
*Used to test whether a given reference is to a specific class.<br />
given the declaration: <br />
TrackLoadInfo info = new TrackLoadInfo();<br />
<br />
info.isclass(TrackLoadInfo); // returns true<br />
<br />
<br />
{{MethodHeader|<h5>new</h5>}}<br />
*Creates a new instance of the specified type. <br />
int[] numbers = new int[4]; // creates an integer array containing 4 members. <br />
TrackLoadInfo info = new TrackLoadInfo(); // creates a new instance of the TrackLoadInfo class.<br />
*new does not initialise the members.<br />
*GameObject classes cannot be created using new.<br />
<br />
<br />
==Operators (4), Multiplication & Division==<br />
{{MethodHeader|*}}<br />
*Multiplication. <br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
2 * 5 = 10;<br />
2 * 5.0 = 10.0;<br />
<br />
<br />
{{MethodHeader|/}}<br />
*Division. <br />
*If both terms are integers the result will be an integer, possibly with a remainder.<br />
*If either term is a float the result will be a float.<br />
10 / 5 = 2;<br />
10 / 5.0 = 2.0;<br />
10 / 6 = 1;<br />
<br />
<br />
{{MethodHeader|%}}<br />
*Remainder or modulus operator.<br />
*Returns the remainder from an integer division.<br />
5 % 2 = 1;<br />
105 % 50 = 5;<br />
105 % 100 = 5;<br />
<br />
<br />
==Operators (5), Addition & Subtraction==<br />
{{MethodHeader|+}}<br />
*Addition<br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
1 + 1 = 2;<br />
1 + 1.0 = 2.0;<br />
<br />
<br />
{{MethodHeader|-}}<br />
*Subtraction<br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
2 - 1 = 1;<br />
2 - 1.0 = 1.0;<br />
<br />
<br />
==Operators (6), Shifts==<br />
{{MethodHeader|<<}}<br />
*Shift Left<br />
*Bitwise operator moves all of the binary values to the left by the number of places specified in the second term.<br />
*Binary zero is appended.<br />
*Provided there is no overflow the result is a doubling of the value for each shift. <br />
8 << 1 = 16<br />
8 << 2 = 32<br />
<br />
<br />
{{MethodHeader|>>}}<br />
*Shift Right<br />
*Bitwise operator moves all of the binary values one place to the right by the number of places specified in the second term.<br />
*Binary zero is prepended and any displaced bits are discarded.<br />
*The result is an integral halving of the value for each shift. <br />
8 >> 1 = 4<br />
9 >> 2 = 2<br />
<br />
<br />
==Operators (7), Comparisons==<br />
{{MethodHeader|<}}<br />
* Is less than.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is less than the second.<br />
1 < 2 = true;<br />
false < false = false;<br />
"abc" < "def" = true;<br />
<br />
<br />
{{MethodHeader|<&#061;}}<br />
*Is less than or equal.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is less than or equal to the second.<br />
1 <= 2 = true;<br />
false <= false = true;<br />
"abc" <= "def" = true;<br />
<br />
<br />
{{MethodHeader|>}}<br />
*Is greater than.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is greater than the second.<br />
1 > 2 = false;<br />
true > false = true;<br />
"abc" > "def" = false;<br />
<br />
<br />
{{MethodHeader|>&#061;}}<br />
*Is greater than or equal.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is greater than or equal to the second.<br />
1 >= 2 = false;<br />
true >= true = true;<br />
"abc" >= "def" = false;<br />
<br />
<br />
==Operators (8), Equality==<br />
{{MethodHeader|&#061;&#061;}}<br />
*Is equal.<br />
*Comparison operator which can be used on string, float, integer and bool values and on object references.<br />
*Returns true if the first and second terms are equal or if they evaluate to the same object.<br />
int a = 0;<br />
int b = 0;<br />
a == b; // returns true<br />
*Note that ''a = b'' is an assignment and will always return true. Mistyping '''''=''''' for '''''==''''' is one of the most common semantic errors in Trainzscript.<br />
<br />
<br />
{{MethodHeader|!&#061;}}<br />
*Is not equal.<br />
*Comparison operator which can be used on string, float, integer and bool values and on object references.<br />
*Returns true if the first and second terms are not equal and do not evaluate to the same object.<br />
int a = 0;<br />
int b = 0;<br />
a != b; // returns false<br />
<br />
<br />
==Operators (9), Bitwise Operators==<br />
{{MethodHeader|&}}<br />
*Bitwise AND<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if BOTH of the corresponding bits in the arguments are set<br />
0000 1111<br />
& 0001 0111<br />
= 0000 0111<br />
<br />
15 & 23 = 7<br />
<br />
<br />
{{MethodHeader|^}}<br />
*Bitwise XOR<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if EITHER BUT NOT BOTH of the corresponding bits in the arguments are set<br />
0000 1111<br />
^ 0001 0111<br />
= 0001 1000<br />
<br />
15 ^ 23 = 24<br />
<br />
<br />
{{MethodHeader|&#166;}}<br />
*Bitwise OR<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if EITHER of the corresponding bits in the arguments are set<br />
0000 1111<br />
| 0001 0111<br />
= 0001 1111<br />
<br />
15 | 23 = 31<br />
<br />
<br />
{{MethodHeader|~}}<br />
*Bitwise Inverse<br />
*Takes the binary representation of the integer and inverts each bit.<br />
*Useful in masking out values from bitfields (eg. flags &= ~SOME_FLAG; switches off the SOME_FLAG bit from 'flags')<br />
~0011 1101 = 1100 0010<br />
~1000 0100 = 0111 1011<br />
<br />
~0 = -1<br />
~255 = -256<br />
~5 = -6<br />
<br />
<br />
==Operators (10), Logical Operators==<br />
{{MethodHeader|<h5>and</h5>}}<br />
*Logical AND<br />
*Enables multiple boolean expressions to be combined.<br />
if (msg.minor == "Enter" and doorsOpen)<br />
<br />
<br />
{{MethodHeader|<h5>or</h5>}}<br />
*Logical OR<br />
*Enables multiple boolean expressions to be combined.<br />
if (msg.minor == "Enter" or doorsOpen)<br />
if ((msg.minor == "Enter" and doorsOpen) or (msg.minor == "Leave" and !doorsOpen))<br />
<br />
<br />
==Operators (11), Assignment==<br />
{{MethodHeader|&#061;}}<br />
*Assignment Operator<br />
a = 1;<br />
Train train = World.GetTrainList()[0];<br />
<br />
The assignment operator sets the variable on the LHS of the expression to the same value as the variable on the RHS.<br />
<br />
Note that string and array are object types, not primitive types. Therefore, like all objects, assignment of a string or array object means that the variable on the LHS of the assignment expression refers to the same object (that is, the same string or the same array) as the variable on the RHS. A new copy of the object is not created. If the intention is to make an assignment to a new object that is a copy of the original, you should use the .copy() method of the string or array objects, or the .clone() method (if available) of other objects.<br />
<br />
<br />
{{MethodHeader|,}}<br />
*Expression or parameter separator.<br />
<br />
<br />
=Categories=<br />
[[Category:TrainzScript]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/OperatorsOperators2019-04-24T00:45:44Z<p>Builderbob: Miscellaneous adjustments.</p>
<hr />
<div>The operator sections set out below follow the language's preference rules. The earlier the operator appears in the list, the higher the precedence and the earlier the listed operators will be evaluated.__NOEDITSECTION__<br />
<br />
<br />
==Operators (1), Grouping & Indexing==<br />
{{MethodHeader|( )}}<br />
*Expression grouping. <br />
*In common with most programming languages Trainzscript carries out arithmetical operations in the order defined by operator precedence rules.<br />
*''3 + 2 * 12 - 7'' would return 20, because multiplication is of higher precedence than addition and subtraction.<br />
*You can force the compiler to change this sequence and make your intentions crystal clear by declaring this as ''((3 + 2) * 12) - 7''.<br />
<br />
<br />
{{MethodHeader|[ i ]}}<br />
*Array and string indexing. <br />
*Arrays are zero based and ''arrayName[0]'' will represent the first element. <br />
*Similarly ''arrayName[arrayName.size() - 1]'' will represent the last element. <br />
*A call to a value outside the range ''[0 … size()-1]'' will generate an exception. <br />
*This notation can also be used to return a single character from a string.<br />
<br />
intArray[intArray.size()] = 5 // will add the new value of 5 to the end of the array.<br />
<br />
<br />
{{MethodHeader|[ i , j ]}}<br />
*Array and String range index. <br />
*The expression ''string[0,string.size()]'' will return the entire string. <br />
*The integers i and j are best thought of as 'cursor' positions where i is the first element and j is one beyond the last element. <br />
*If i is omitted the range will start at the beginning of the array (index 0). <br />
*If j is omitted the range will end after the end of the array (.size()). <br />
*To return a single element other than the first or last, both i and j are required. <br />
*Given the declaration ''string s = "abcde"''<br />
s[,3] = "abc"<br />
s[2,3] = "c"<br />
s[2,] = "cde"<br />
<br />
intArray[2,3] = null // will delete the third element of the array.<br />
<br />
<br />
{{MethodHeader|[ i , ]}}<br />
*Indexes from i to the end of the string or array inclusively.<br />
s[2,] = "cde"<br />
<br />
<br />
{{MethodHeader|[ , j ]}}<br />
*Indexes from the start of the string or array to element j-1 inclusively.<br />
s[,3] = "abc"<br />
<br />
<br />
{{MethodHeader|.}}<br />
*Dereference operator<br />
GetAsset().GetConfigSoup();<br />
*The ''GetConfigSoup()'' method to be called is the method defined for the class ''GetAsset()''.<br />
<br />
<br />
{{MethodHeader|!}}<br />
*Not Operator<br />
!true = false<br />
!vehicle = null<br />
<br />
<br />
==Operators (2), Incremental and Unary Operators==<br />
{{MethodHeader|++}}<br />
*Increments a numeric value by 1.<br />
*Often used for control variables in loops:<br />
for(n = 0; n < list.size(); n++) {<br />
DoStuffWith(n);<br />
}<br />
*Increments n by 1 on each pass through the loop.<br />
<br />
<br />
{{MethodHeader|--}}<br />
*Decrements a numeric value by 1.<br />
*Often used for control variables in loops:<br />
n = list.size() - 1;<br />
while(n >= 0) {<br />
DoStuffWith(n);<br />
n--;<br />
}<br />
*Decrements n by 1 on each pass through the loop.<br />
<br />
<br />
{{MethodHeader|+}}<br />
*Unary plus.<br />
*Used to denote that a value is positive.<br />
<br />
<br />
{{MethodHeader|-}}<br />
*Unary minus.<br />
*Used to denote that a value is negative.<br />
<br />
<br />
==Operators (3), Casts==<br />
{{MethodHeader|<h5>(bool)</h5>}}<br />
*Boolean type cast.<br />
(bool) 0 = false<br />
(bool) 0.0 = false<br />
(bool) n = true //where n is greater than zero<br />
<br />
<br />
{{MethodHeader|<h5>(int)</h5>}}<br />
*Integer type cast.<br />
(int) 5.0 = 5<br />
(int) true = 1<br />
<br />
<br />
{{MethodHeader|<h5>(float)</h5>}}<br />
*Float type cast.<br />
(float) 100 = 100.0<br />
(float) false = 0.0<br />
<br />
<br />
{{MethodHeader|<h5>(string)</h5>}}<br />
*String type cast.<br />
(string) 1 = "1"<br />
(string) 0.99 = "0.99"<br />
(string) false = "false";<br />
<br />
<br />
{{MethodHeader|(''reference'')}}<br />
*Class type cast.<br />
<font color=red>How is this used and how is it different from cast<Class>?</font><br />
<br />
<br />
{{MethodHeader|<h5>cast</h5>}}<br />
*Dynamic cast. <br />
*Returns null if the reference cannot be converted to the class specified by className. <br />
*Note that ancestors of the specified class will be returned.<br />
Vehicle vehicle = cast<Vehicle>msg.src;<br />
<br />
MeshObject meshObject;<br />
GameObject gameObject = cast<GameObject>meshObject; // returns meshObject if the object exists, null otherwise<br />
<br />
<br />
{{MethodHeader|<h5>size()</h5>}}<br />
*Returns the number of members of an array or the length of a string. <br />
*In the case of an array this does not necessarily mean that all (or any) of the members actually contain values.<br />
given string s = "abcde";<br />
s.size() = 5;<br />
<br />
int[] numbers = new int[5]; // creates an empty array of 5 integers<br />
numbers.size() = 5;<br />
<br />
<br />
{{MethodHeader|<h5>copy()</h5>}}<br />
*Creates a copy of an array or string. <br />
*This is different from a simple assignment which points a variable to the same memory address as an existing variable.<br />
*Array.copy() or string.copy() creates an additional copy of the data.<br />
int[] numbers = new int[5];<br />
int[] moreNumbers;<br />
<br />
moreNumbers.copy(numbers); // duplicates numbers <br />
<br />
<br />
{{MethodHeader|<h5>isclass()</h5>}}<br />
*Used in the declaration of a new class identifier<br />
class MyScript isclass Vehicle {<br />
classMethods();<br />
};<br />
*Used to test whether a given reference is to a specific class.<br />
given the declaration: <br />
TrackLoadInfo info = new TrackLoadInfo();<br />
<br />
info.isclass(TrackLoadInfo); // returns true<br />
<br />
<br />
{{MethodHeader|<h5>new</h5>}}<br />
*Creates a new instance of the specified type. <br />
int[] numbers = new int[4]; // creates an integer array containing 4 members. <br />
TrackLoadInfo info = new TrackLoadInfo(); // creates a new instance of the TrackLoadInfo class.<br />
*new does not initialise the members.<br />
*GameObject classes cannot be created using new.<br />
<br />
<br />
==Operators (4), Multiplication & Division==<br />
{{MethodHeader|*}}<br />
*Multiplication. <br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
2 * 5 = 10;<br />
2 * 5.0 = 10.0;<br />
<br />
<br />
{{MethodHeader|/}}<br />
*Division. <br />
*If both terms are integers the result will be an integer, possibly with a remainder.<br />
*If either term is a float the result will be a float.<br />
10 / 5 = 2;<br />
10 / 5.0 = 2.0;<br />
10 / 6 = 1;<br />
<br />
<br />
{{MethodHeader|%}}<br />
*Remainder or modulus operator.<br />
*Returns the remainder from an integer division.<br />
5 % 2 = 1;<br />
105 % 50 = 5;<br />
105 % 100 = 5;<br />
<br />
<br />
==Operators (5), Addition & Subtraction==<br />
{{MethodHeader|+}}<br />
*Addition<br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
1 + 1 = 2;<br />
1 + 1.0 = 2.0;<br />
<br />
<br />
{{MethodHeader|-}}<br />
*Subtraction<br />
*If both terms are integers the result will be an integer.<br />
*If either term is a float the result will be a float.<br />
2 - 1 = 1;<br />
2 - 1.0 = 1.0;<br />
<br />
<br />
==Operators (6), Shifts==<br />
{{MethodHeader|<<}}<br />
*Shift Left<br />
*Bitwise operator moves all of the binary values to the left by the number of places specified in the second term.<br />
*Binary zero is appended.<br />
*Provided there is no overflow the result is a doubling of the value for each shift. <br />
8 << 1 = 16<br />
8 << 2 = 32<br />
<br />
<br />
{{MethodHeader|>>}}<br />
*Shift Right<br />
*Bitwise operator moves all of the binary values one place to the right by the number of places specified in the second term.<br />
*Binary zero is prepended and any displaced bits are discarded.<br />
*The result is an integral halving of the value for each shift. <br />
8 >> 1 = 4<br />
9 >> 2 = 2<br />
<br />
<br />
==Operators (7), Comparisons==<br />
{{MethodHeader|<}}<br />
* Is less than.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is less than the second.<br />
1 < 2 = true;<br />
false < false = false;<br />
"abc" < "def" = true;<br />
<br />
<br />
{{MethodHeader|<&#061;}}<br />
*Is less than or equal.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is less than or equal to the second.<br />
1 <= 2 = true;<br />
false <= false = true;<br />
"abc" <= "def" = true;<br />
<br />
<br />
{{MethodHeader|>}}<br />
*Is greater than.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is greater than the second.<br />
1 > 2 = false;<br />
true > false = true;<br />
"abc" > "def" = false;<br />
<br />
<br />
{{MethodHeader|>&#061;}}<br />
*Is greater than or equal.<br />
*Comparison operator which can be used on string, float, integer and bool values.<br />
*Returns true if the first term is greater than or equal to the second.<br />
1 >= 2 = false;<br />
true >= true = true;<br />
"abc" >= "def" = false;<br />
<br />
<br />
==Operators (8), Equality==<br />
{{MethodHeader|&#061;&#061;}}<br />
*Is equal.<br />
*Comparison operator which can be used on string, float, integer and bool values and on object references.<br />
*Returns true if the first and second terms are equal or if they evaluate to the same object.<br />
int a = 0;<br />
int b = 0;<br />
a == b; // returns true<br />
*Note that ''a = b'' is an assignment and will always return true. Mistyping '''''=''''' for '''''==''''' is one of the most common semantic errors in Trainzscript.<br />
<br />
<br />
{{MethodHeader|!&#061;}}<br />
*Is not equal.<br />
*Comparison operator which can be used on string, float, integer and bool values and on object references.<br />
*Returns true if the first and second terms are not equal and do not evaluate to the same object.<br />
int a = 0;<br />
int b = 0;<br />
a != b; // returns false<br />
<br />
<br />
==Operators (9), Bitwise Operators==<br />
{{MethodHeader|&}}<br />
*Bitwise AND<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if BOTH of the corresponding bits in the arguments are set<br />
0000 1111<br />
& 0001 0111<br />
= 0000 0111<br />
<br />
15 & 23 = 7<br />
<br />
<br />
{{MethodHeader|^}}<br />
*Bitwise XOR<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if EITHER BUT NOT BOTH of the corresponding bits in the arguments are set<br />
0000 1111<br />
^ 0001 0111<br />
= 0001 1000<br />
<br />
15 ^ 23 = 24<br />
<br />
<br />
{{MethodHeader|&#166;}}<br />
*Bitwise OR<br />
*Performs a bit by bit comparison of two integers and returns a new value.<br />
*Each bit in the result is set if EITHER of the corresponding bits in the arguments are set<br />
0000 1111<br />
| 0001 0111<br />
= 0001 1111<br />
<br />
15 | 23 = 31<br />
<br />
<br />
{{MethodHeader|~}}<br />
*Bitwise Inverse<br />
*Takes the binary representation of the integer and inverts each bit.<br />
*Useful in masking out values from bitfields (eg. flags &= ~SOME_FLAG; switches off the SOME_FLAG bit from 'flags')<br />
~0011 1101 = 1100 0010<br />
~1000 0100 = 0111 1011<br />
<br />
~0 = -1<br />
~255 = -256<br />
~5 = -6<br />
<br />
<br />
==Operators (10), Logical Operators==<br />
{{MethodHeader|<h5>and</h5>}}<br />
*Logical AND<br />
*Enables multiple boolean expressions to be combined.<br />
if (msg.minor == "Enter" and doorsOpen)<br />
<br />
<br />
{{MethodHeader|<h5>or</h5>}}<br />
*Logical OR<br />
*Enables multiple boolean expressions to be combined.<br />
if (msg.minor == "Enter" or doorsOpen)<br />
if ((msg.minor == "Enter" and doorsOpen) or (msg.minor == "Leave" and !doorsOpen))<br />
<br />
<br />
==Operators (11), Assignment==<br />
{{MethodHeader|&#061;}}<br />
*Assignment Operator<br />
a = 1;<br />
Train train = World.GetTrainList()[0];<br />
<br />
The assignment operator sets the variable on the LHS of the expression to the same value as the variable on the RHS.<br />
<br />
Note that string and array are object types, not primitive types. Therefore, like all objects, assignment of a string or array object means that the variable on the LHS of the assignment expression refers to the same object (that is, the same string or the same array) as the variable on the RHS. A new copy of the object is not created. If the intention is to make an assignment to a new object that is a copy of the original, you should use the .copy() method of the string or array objects, or the .clone() method (if available) of other objects.<br />
<br />
<br />
{{MethodHeader|,}}<br />
*Expression or parameter separator.</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/CCG/Example:_DisplacementsCCG/Example: Displacements2019-04-23T23:22:03Z<p>Builderbob: Link</p>
<hr />
<div>==Displacements==<br />
<br />
Displacements are now normal Trainz Assets with an image file and a config.txt file. The images are usually 256x256 grey scale 8 bit bitmap files, such as Displacement01.bmp below.<br />
<br />
[[Image:CCG_Displacement01.jpg]]<br />
<br />
Note the new [[KIND Groundbrush]] kind for this asset.<br />
<br />
'''Config.txt'''<br />
kuid <kuid:401543:1013><br />
kind "groundbrush"<br />
username "Displacement01"<br />
trainz-build 2.9<br />
displacement-bitmap "Displacement01.bmp"<br />
<br />
=Obsolete Type (pre TS2009)=<br />
<br />
This is a special Kind that is not created in CCP as it does not require a config.txt file. Displacement maps are used to create the differing height/depth and shape of an area of terrain, based on shades of grey in a .bmp file.<br />
<br />
For a default installation the Displacements directory is found in:<br />
C:\Program Files\Auran\TC\World\Custom\displacements<br />
<br />
Create the required greyscale file (256 by 256 Greyscale 8bit .bmp file). Place it in the Displacements directory.<br />
<br />
<br />
<br />
==Return to CCG Index==<br />
[[Content Creator's Guide]]<br />
<br />
[[CCG/Kind_Examples|Kind Examples]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_GroundbrushKIND Groundbrush2019-04-23T05:56:44Z<p>Builderbob: Clarify</p>
<hr />
<div>{{ORP-top}}<br />
==KIND Groundbrush==<br />
'''KIND Groundbrush''' provides objects that are used in Surveyor to apply height variations to the terrain. The asset appears in game as a monochrome image where the brightness controls the height. Options are available to rotate the image, select the area where the terrain is to be adjusted, and select the scale at which the height adjustment will be applied.<br />
==KIND Hierarchy==<br />
*[[TrainzBaseSpec]]<br />
<br />
==Parent Classes==<br />
* ''none.''<br />
<br />
==Child Classes==<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
The [[KIND Groundbrush]] [[config.txt file]] supports the following tags (in addition to the tags that are available to all assets). Each tag is shown here with its default value.<br />
<br />
displacement-bitmap nothing<br />
<br />
====kind====<br />
:Type: String "groundbrush"<br />
:Compulsory: Yes from 3.4<br />
:Default: n/a<br />
:Desc: Identifies the asset as Kind Groundbrush.<br />
<br />
====displacement-bitmap====<br />
:Type: String<br />
:Compulsory: Yes from 3.4<br />
:Default: n/a<br />
:Desc: Greyscale bitmap used to define the height adjustment to be applied. Note that this is an image filename, not a texture. 8-bit BMP or PNG format is suitable. A RGB file format (eg, 24-bit PNG)can also be used, but the colour information is converted to greyscale and the results might not be correct. The pixel values in the image are used to determine the amount of height adjustment: values greater than 127 are height increases, values less than 127 are height decreases.<br />
<br />
==Example Config.txt==<br />
<br />
kuid <kuid:xxxxxxx:yyyyyyy><br />
username "Rolling Hill"<br />
kind "groundbrush"<br />
trainz-build 3.5<br />
category-class "BRSH"<br />
displacement-bitmap "rolling_hills.tga"<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "$screenshot$.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
<br />
==Creating a Groundbrush==<br />
<br />
The simplest way to create a new groundbrush is to clone an existing one and make any required changes.<br />
<br />
The files for a groundbrush are the config.txt text file, the thumbnail image file, and the terrain height map image file. It is therefore nearly as easy to create a Groundbrush from scratch.<br />
<br />
The thumbnail can be created in any image editing program. It should be 240 pixels wide and 180 pixels high, in JPG format. It should indicate the general form of the height map. <br />
<br />
The config.txt file can be created in any text editor, using the above example as a template. Make the changes as required.<br />
<br />
The height map image file can be created in any image editor. The terrain can be drawn using a drawing tool, and edited with utilities such as blur, blend and gradients. There are also realistic terrain generator utility aplications, or plugins for some image editors.<br />
<br />
Put the config.txt file, the thumbnail image file, amd the terrain heightmap image file into a folder. Open Content Manager and use File \ Import Content (for versions prior to T:ANE) or File \ Import Content Folder (for T:ANE and later versions), navigate to the folder where the files were placed, and import it.<br />
<br />
To test the groundbrush, create a new route or select an existing route, open it in Surveyor, choose Edit Route from the main menu and open the Topology tab. Select Advanced, use the select option to select an area of the map, check that you are editing 'ground' and select your Groundbrush asset from the list in the box. You can now set the area to apply the height to, and the scale and rotation. Then use the Fill option to apply the height map.<br />
<br />
==Categories==<br />
[[Category:Asset KIND|R]]<br />
{{ORP-bot}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_ToolsHelp:Surveyor Topology Tools2019-04-22T03:34:59Z<p>Builderbob: Amplify</p>
<hr />
<div>The Topology Menu provides<br />
the tools for creating various<br />
types of terrain. In this section<br />
you will learn how to make<br />
hills, valleys, mountains, lakes<br />
and rivers.<br />
<br />
Click on the Topology Tab (or<br />
press the F1 key) to open the<br />
Topology Menu. Here you<br />
will see a number of different<br />
tools that can be used to shape<br />
the terrain. Hold your mouse<br />
cursor over each one to see a<br />
short description as well as the<br />
appropriate Hotkey to press. To<br />
see the whole menu as in the<br />
iamge below, click on the<br />
“Advanced” button to expand<br />
the menu.<br />
<br />
[[File:Topology.jpeg]]<br />
{{clear}}<br />
<br />
* The three top buttons allow you to activate the basic tools to raise and lower terrain.<br />
* The knobs below that alter the area the tool will affect and the sensitivity of the tool.<br />
<br />
For an overview of how the topology tools work [[Help:Topology_editing|click here]]<br />
<br />
=TANE=<br />
== Main menu ==<br />
=== [[File:Height up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see. <br />
<br />
=== [[File:Height down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Height adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Height get.jpg]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Height use.jpg]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Plateu.jpg]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Height value field.jpg]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Water add.jpg]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size. <br />
<br />
=== [[File:Water remove.jpg]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Water adjust height.jpg]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Height value field.jpg]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered. <br />
<br />
=== [[File:Ground add.jpg]] Add ground (X) ===<br />
Select the Add Ground<br />
(X) tool. Click LMB in the void just off the edge of<br />
the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required. <br />
<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Ground remove.jpg]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
=== [[File:Displacement map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image<br />
used to create an instant height map.<br />
<br />
=== [[File:Direction.jpg]] Direction ===<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== [[File:Threshold.jpg]] Threshold ===<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
=== [[File:Area select.jpg]] Select area (B) ===<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
=== [[File:Area fill.jpg]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Area cancel.jpg]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Area grab.jpg]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
=TRS2019=<br />
<br />
For a basic overview on the Topology Tools in TRS19 you can view the tutorial video [[https://youtu.be/O8n0Z5jQ9q8 HERE]].<br />
<br />
TRS2019 introduces several new features in the Topology tools, mostly relating to the new Clutter and TurfFX effects.<br />
<br />
[[File:Trs2019-topology-tab.JPG]]<br />
<br />
== Main menu (Terrain Mode) ==<br />
=== [[File:Trs2019-topology-tab-height-up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Trs2019-topology-tab-radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Trs2019-topology-tab-sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Trs2019-topology-tab-get-height.jpg|48px]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Trs2019-topology-tab-use-height.jpg|48px]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Trs2019-topology-tab-plateau.jpg|48px]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Trs2019-topology-tab-height-entry.jpg|48px]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Trs2019-topology-tab-add-water.jpg|48px]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-water.jpg|48px]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height.jpg|48px]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height-value.jpg|48px]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered.<br />
<br />
=== [[File:Trs2019-topology-tab-add-ground.jpg|48px]] Add ground (X) ===<br />
Select the Add Ground (X) tool. Click LMB in the void just off the edge of the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required.<br />
<br />
=== [[File:Trs2019-topology-tab-select-grid-size.jpg|48px]] Change Grid Size ===<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-ground.jpg|48px]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
===Effect Layers===<br />
====[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ====<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
====[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers====<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
===Displacement Maps===<br />
==== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ====<br />
Select 'Ground' in the drop down menu to access the displacement map tools. A displacement map is a Trainz [[KIND Groundbrush]] asset that is used to create terrain features quickly and easily. When the displacement map tools are selected there is a second drop down menu that lists the displacement maps that are available. The default is None which is a null displacement. Select an item from the menu to make it the current displacement map: the map will appear in the preview pane. Click the 'x' in the preview pane to reset the map to None.<br />
<br />
==== Direction ====<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
==== Displacement Scale====<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click on Select Area (B). Click LMB and drag the mouse to select the rectangular area to which the displacement will be applied.<br />
<br />
==== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ====<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
==== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ====<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
==== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ====<br />
Click on Select Area (B). Click LMB on the baseboard and drag the mouse to make a large square that covers an existing area of modified terrain. Now click the “Get Displacement” button and a custom displacement map will be created using the height profile of the selected area, and will show in the preview window. This displacement map can now be used to apply the same terrain effect in another area, using rotation and scaling as required. Click LMB on the tick mark in the preview window and supply a name for the new displacement map - it will be saved with the supplied name and will be available for use in any route.<br />
<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools|Surveyor Tools]]<br />
* [[Help:Surveyor|Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_ToolsHelp:Surveyor Topology Tools2019-04-22T03:22:25Z<p>Builderbob: Clarify</p>
<hr />
<div>The Topology Menu provides<br />
the tools for creating various<br />
types of terrain. In this section<br />
you will learn how to make<br />
hills, valleys, mountains, lakes<br />
and rivers.<br />
<br />
Click on the Topology Tab (or<br />
press the F1 key) to open the<br />
Topology Menu. Here you<br />
will see a number of different<br />
tools that can be used to shape<br />
the terrain. Hold your mouse<br />
cursor over each one to see a<br />
short description as well as the<br />
appropriate Hotkey to press. To<br />
see the whole menu as in the<br />
iamge below, click on the<br />
“Advanced” button to expand<br />
the menu.<br />
<br />
[[File:Topology.jpeg]]<br />
{{clear}}<br />
<br />
* The three top buttons allow you to activate the basic tools to raise and lower terrain.<br />
* The knobs below that alter the area the tool will affect and the sensitivity of the tool.<br />
<br />
For an overview of how the topology tools work [[Help:Topology_editing|click here]]<br />
<br />
=TANE=<br />
== Main menu ==<br />
=== [[File:Height up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see. <br />
<br />
=== [[File:Height down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Height adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Height get.jpg]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Height use.jpg]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Plateu.jpg]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Height value field.jpg]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Water add.jpg]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size. <br />
<br />
=== [[File:Water remove.jpg]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Water adjust height.jpg]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Height value field.jpg]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered. <br />
<br />
=== [[File:Ground add.jpg]] Add ground (X) ===<br />
Select the Add Ground<br />
(X) tool. Click LMB in the void just off the edge of<br />
the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required. <br />
<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Ground remove.jpg]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
=== [[File:Displacement map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image<br />
used to create an instant height map.<br />
<br />
=== [[File:Direction.jpg]] Direction ===<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== [[File:Threshold.jpg]] Threshold ===<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
=== [[File:Area select.jpg]] Select area (B) ===<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
=== [[File:Area fill.jpg]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Area cancel.jpg]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Area grab.jpg]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
=TRS2019=<br />
<br />
For a basic overview on the Topology Tools in TRS19 you can view the tutorial video [[https://youtu.be/O8n0Z5jQ9q8 HERE]].<br />
<br />
TRS2019 introduces several new features in the Topology tools, mostly relating to the new Clutter and TurfFX effects.<br />
<br />
[[File:Trs2019-topology-tab.JPG]]<br />
<br />
== Main menu (Terrain Mode) ==<br />
=== [[File:Trs2019-topology-tab-height-up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Trs2019-topology-tab-radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Trs2019-topology-tab-sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Trs2019-topology-tab-get-height.jpg|48px]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Trs2019-topology-tab-use-height.jpg|48px]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Trs2019-topology-tab-plateau.jpg|48px]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Trs2019-topology-tab-height-entry.jpg|48px]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Trs2019-topology-tab-add-water.jpg|48px]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-water.jpg|48px]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height.jpg|48px]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height-value.jpg|48px]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered.<br />
<br />
=== [[File:Trs2019-topology-tab-add-ground.jpg|48px]] Add ground (X) ===<br />
Select the Add Ground (X) tool. Click LMB in the void just off the edge of the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required.<br />
<br />
=== [[File:Trs2019-topology-tab-select-grid-size.jpg|48px]] Change Grid Size ===<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-ground.jpg|48px]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
===Effect Layers===<br />
====[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ====<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
====[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers====<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
===Displacement Maps===<br />
==== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ====<br />
Select 'Ground' in the drop down menu to access the displacement map tools. A displacement map is a Trainz [[KIND Groundbrush]] asset that is used to create terrain features quickly and easily. When the displacement map tools are selected there is a second drop down menu that lists the displacement maps that are available. The default is None which is a null displacement. Select an item from the menu to make it the current displacement map: the map will appear in the preview pane. Click the 'x' in the preview pane to reset the map to None.<br />
<br />
==== Direction ====<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
==== Displacement Scale====<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click on Select Area (B). Click LMB and drag the mouse to select the rectangular area to which the displacement will be applied.<br />
<br />
==== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ====<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
==== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ====<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
==== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ====<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools|Surveyor Tools]]<br />
* [[Help:Surveyor|Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Topology_ToolsHelp:Surveyor Topology Tools2019-04-22T03:18:11Z<p>Builderbob: Add description</p>
<hr />
<div>The Topology Menu provides<br />
the tools for creating various<br />
types of terrain. In this section<br />
you will learn how to make<br />
hills, valleys, mountains, lakes<br />
and rivers.<br />
<br />
Click on the Topology Tab (or<br />
press the F1 key) to open the<br />
Topology Menu. Here you<br />
will see a number of different<br />
tools that can be used to shape<br />
the terrain. Hold your mouse<br />
cursor over each one to see a<br />
short description as well as the<br />
appropriate Hotkey to press. To<br />
see the whole menu as in the<br />
iamge below, click on the<br />
“Advanced” button to expand<br />
the menu.<br />
<br />
[[File:Topology.jpeg]]<br />
{{clear}}<br />
<br />
* The three top buttons allow you to activate the basic tools to raise and lower terrain.<br />
* The knobs below that alter the area the tool will affect and the sensitivity of the tool.<br />
<br />
For an overview of how the topology tools work [[Help:Topology_editing|click here]]<br />
<br />
=TANE=<br />
== Main menu ==<br />
=== [[File:Height up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see. <br />
<br />
=== [[File:Height down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Height adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Height get.jpg]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Height use.jpg]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Plateu.jpg]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Height value field.jpg]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Water add.jpg]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size. <br />
<br />
=== [[File:Water remove.jpg]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Water adjust height.jpg]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Height value field.jpg]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered. <br />
<br />
=== [[File:Ground add.jpg]] Add ground (X) ===<br />
Select the Add Ground<br />
(X) tool. Click LMB in the void just off the edge of<br />
the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required. <br />
<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Ground remove.jpg]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
=== [[File:Displacement map.jpg]] Displacement map ===<br />
A displacement map is a grayscale image<br />
used to create an instant height map.<br />
<br />
=== [[File:Direction.jpg]] Direction ===<br />
Move the direction dial in the directon you wish the grayscale map to be put down on the baseboard.<br />
<br />
=== [[File:Threshold.jpg]] Threshold ===<br />
Move the Threshold dial to increase the size of the height change set on the displacement map.<br />
<br />
=== [[File:Area select.jpg]] Select area (B) ===<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
=== [[File:Area fill.jpg]] Fill area (F) ===<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
=== [[File:Area cancel.jpg]] Cancel selection (D) ===<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
=== [[File:Area grab.jpg]] Get displacement (B) ===<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
=TRS2019=<br />
<br />
For a basic overview on the Topology Tools in TRS19 you can view the tutorial video [[https://youtu.be/O8n0Z5jQ9q8 HERE]].<br />
<br />
TRS2019 introduces several new features in the Topology tools, mostly relating to the new Clutter and TurfFX effects.<br />
<br />
[[File:Trs2019-topology-tab.JPG]]<br />
<br />
== Main menu (Terrain Mode) ==<br />
=== [[File:Trs2019-topology-tab-height-up.jpg]] Height up (U) ===<br />
Use this tool to create mounds, hills and mountains. <br />
Click on the Height Up tool icon to change to Height Up mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to raise the terrain.<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-down.jpg]] Height down (D) ===<br />
Use this tool to modify the terrain height. Make hollows, valleys, rivers, lakes and oceans.<br />
<br />
Click on the Height Down tool icon to change to Height Down mode. Move your cursor from the tool tab onto the 3D world and you will see a "circle of influence". Left click and drag your mouse around the 3D world to lower the terrain.<br />
<br />
Use Radius and Sensitivity to adjust the size and sensitivity of this tool. To adjust your view of the world as you mould the terrain, right-click on the terrain to move your camera focal point and use your cursor arrow keys to move the camera. Use Undo if you don't like the results you see.<br />
<br />
=== [[File:Trs2019-topology-tab-height-adjust.jpg]] Adjust height (A) ===<br />
Adjust Height allows finer control of the up and down movement. Click LMB and hold then push your mouse away from you to raise the terrain. Click LMB and hold then pull the mouse towards you to lower the terrain.<br />
Generally used for finer adjustments.<br />
Use in conjunction with the Radius and Sensitivity tools.<br />
<br />
=== [[File:Trs2019-topology-tab-radius.jpg]] Radius ===<br />
Click LMB on the Radius Tool and move to either side to change the circle of influence. Move the dial right to enlarge the circle (HOTKEY “+”), left to minimize (HOTKEY “-”).<br />
The size of the circle determines the outer limit of influence of the tool.<br />
Whichever tool you have selected (highlighted) will be applied within the area defined by the circle.<br />
<br />
=== [[File:Trs2019-topology-tab-sensitivity.jpg]] Sensitivity ===<br />
Click LMB on the Sensitivity Tool and move to either side to change the amount of height changed each time the circle of influence is affected. Move the dial right to make more sensitive (HOTKEY “+”), left to reduce the sensitivity (HOTKEY “-”).<br />
<br />
=== [[File:Trs2019-topology-tab-get-height.jpg|48px]] Get height (G) ===<br />
Select Get Height (G), then Click RMB on the side of a hill. Notice that the number in the Height Value field changes. You have captured the height of the terrain at the point your compass appears.<br />
Use in conjunction with the plateau tool to flatten an area to a certain height.<br />
<br />
=== [[File:Trs2019-topology-tab-use-height.jpg|48px]] Use height (H) ===<br />
Click on Use Height (H) then Click LMB to apply the selected Height Value to the terrain. The Use Height tool creates a plateau at your selected height and the radius of your cursor circle determines the amount of land that is leveled at one time.<br />
Click and hold LMB then move your mouse around the terrain to level out a broader section.<br />
This tool is not affected by the sensitivity dial.<br />
<br />
=== [[File:Trs2019-topology-tab-plateau.jpg|48px]] Plateau (P) ===<br />
Plateau (P) creates a plateau at the current height of the<br />
compass. Click LMB on the side of a hill to create<br />
a plateau at that level by raising or lowering the<br />
terrain.<br />
<br />
This tool is affected by the sensitivty dial. Moving your cursor around over pre-existing hills will create a smoothing effect. Adjust the sensitivity to flatten/smooth areas quicker or slower.<br />
<br />
=== [[File:Trs2019-topology-tab-height-entry.jpg|48px]] Height value field ===<br />
You can manually enter in the height to apply. Click on the number showing between Get Height and Use Height and manually type in a value.<br />
To apply the selected Height Value to the terrain, click on the Use Height tool then LMB on the terrain.<br />
<br />
=== [[File:Trs2019-topology-tab-add-water.jpg|48px]] Add water (W) ===<br />
Click LMB on Add Water (W)<br />
and paint the water texture along the<br />
desired area by moving<br />
your mouse around. The radius of the<br />
cursor circle determines the texture panel size.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-water.jpg|48px]] Remove water (Q) ===<br />
Click LMB on Remove Water (Q) and you then delete<br />
the water texture one panel at a time by Clicking<br />
LMB on each water panel.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height.jpg|48px]] Adjust Water Height (E) ===<br />
Select the Adjust Water Height<br />
tool and Click LMB and hold (on the water texture) then drag<br />
your mouse forward and back, adjusting the water texture<br />
height until it is the appropriate<br />
height.<br />
<br />
=== [[File:Trs2019-topology-tab-water-height-value.jpg|48px]] Water Height Field ===<br />
Enter the height at which you wish to apply the water, then click on Use Water Height. LMB and move your cursor around the terrain to paint the water texture at the height entered.<br />
<br />
=== [[File:Trs2019-topology-tab-add-ground.jpg|48px]] Add ground (X) ===<br />
Select the Add Ground (X) tool. Click LMB in the void just off the edge of the baseboard to add another baseboard in that direction.<br />
<br />
By default ground sections use a 10m grid, where each adjustable terrain 'point' is 10m apart. If your route requires finer detail you can create sections which use a 5m grid. These ground sections will use four times more memory than the standard 10m grid and should be reserved for when fine detail is absolutely required.<br />
<br />
=== [[File:Trs2019-topology-tab-select-grid-size.jpg|48px]] Change Grid Size ===<br />
To create a section with a 5m grid, click on the drop down list to the right of the Add Ground button, and select the 5m option. Now add the terrain as normal. You can also update existing sections by clicking on them whilst the 5m grid option is selected.<br />
<br />
=== [[File:Trs2019-topology-tab-delete-ground.jpg|48px]] Delete ground ===<br />
Click LMB on the Delete Section button, then Click<br />
LMB on any baseboard section to delete it. This action cannot be undone, and should be used with care. Deleting a section may also delete splines that cross section boundaries. If the zoom is too far from the surface, this option might me disabled.<br />
<br />
== Advanced ==<br />
The Advanced features menu can be opened and closed by<br />
using Shift-F1 or clicking on the Advanced Tab.<br />
<br />
The Advanced tab provides access to the Displacement Map tools, and the new Clutter Effects/TurfFX tools.<br />
<br />
===Effect Layers===<br />
====[[File:Trs2019-topology-tab-effect-layer.jpg]] Effects Layers ====<br />
Use this drop down menu to select between Displacement Map mode, and Effects Layers mode.<br />
<br />
Effect Layers will only be shown if there are Effect Layers configured for the route.<br />
<br />
When an Effect Layer is selected, the following tools are used to apply, adjust, or remove the effect layer on the route:<br />
<br />
* [[#Height_up_(U)_2|Height Up (U)]] tool will paint the effect onto the terrain; with density growing the more it is 'painted' on.<br />
* [[#Height_down_(D)_2|Height Down (D)]] tool will erase the effect from the terrain, with density reducing the more it is 'erased'.<br />
* [[#Adjust_height_(A)_2|Adjust Height (A)]] tool will adjust the density of the effect on the terrain.<br />
* [[#Radius_2|Radius]] sets the radius for the brush to paint the effect onto the terrain.<br />
* [[#Sensitivity_2|Sensitivity]] sets the density/rate of the brush (the higher the sensitivity, the quicker it will paint the effect up to full density)<br />
* [[#Get_height_(G)_2|Get Height (G)]] gets the current density at the location of the compass.<br />
* [[#Use_height_(H)_2|Use Height (H)]] applies the selected effect density shown in the 'height value field'<br />
* [[#Plateau_(P)_2|Plateau (P)]] applies the effect density from one location to another. To use, left click and hold in one location and then drag to other locations to apply that effect density.<br />
* [[#Height_value_field_2|Height Value Field]] allows you to set a effect density value between 0 and 1, and then use the [[#Use_height_(H)_2|Use Height (H)]] tool to apply that effect density.<br />
* [[#Select_area_(B)_2|Select Area (B)]] allows you to select an area, to then use the [[#Fill_area_(F)_2|Fill Area (F)]] tool to 'fill' that area with the selected effect.<br />
* [[#Fill_area_(F)_2|Fill Area (F)]] allow you to fill the selected area with the selected effect.<br />
* [[#Cancel_selection_(D)_2|Cancel Selection (D)]] allows you to cancel the selection.<br />
<br />
See [[Effect_Layer|Effect Layers]] for further information on creating, using, and editing Effect Layers.<br />
<br />
====[[File:Trs2019-topology-tab-edit-add-effect-layer.jpg|48px]] Edit/Add Effect Layers====<br />
Opens the Edit/Add Effects Layers tool.<br />
<br />
===Displacement Maps===<br />
==== [[File:Trs2019-topology-tab-displacement-map.jpg]] Displacement map ====<br />
Select 'Ground' in the drop down menu to access the displacement map tools. A displacement map is a Trainz [[KIND Groundbrush]] asset that is used to create terrain features quickly and easily. When the displacement map tools are selected there is a second drop down menu that lists the displacement maps that are available. The default is None which is a null displacement. Select an item from the menu to make it the current displacement map: the map will appear in the preview pane. Click the 'x' in the preview pane to reset the map to None.<br />
<br />
==== Direction ====<br />
Click the direction arrows at the bottom of the Displacement Map preview to change in the direction you wish the grayscale map to be put down on the baseboard.<br />
<br />
==== Displacement Scale====<br />
Move the Displacement Scale slider, below the Displacement Map view, to change the height scale for the displacement map.<br />
<br />
==== [[File:Trs2019-topology-tab-select-area.jpg|48px]] Select area (B) ====<br />
Click on Select Area (B). Click LMB and drag the<br />
mouse to make a large square as shown below.<br />
The size of the square (or rectangle)<br />
determines the area that will be affected by the next<br />
operation.<br />
<br />
==== [[File:Trs2019-topology-tab-fill-area.jpg|48px]] Fill area (F) ====<br />
Scroll through the Displacement Maps, then click on Fill Area (F). The<br />
terrain is instantly transformed into the shape determined by<br />
the grayscale images of the displacement map chosen.<br />
<br />
==== [[File:Trs2019-topology-tab-cancel-selection.jpg|48px]] Cancel selection (D) ====<br />
Click LMB on Cancel Selection (D) to cancel the<br />
selection.<br />
<br />
==== [[File:Trs2019-topology-tab-get-displacement.jpg|48px]] Get displacement (B) ====<br />
Click on Select Area (B). Click LMB on the baseboard<br />
and drag the mouse to make a large square that<br />
covers an existing area of modified terrain. Now<br />
click the “Get Displacement” button and you’ll notice that a<br />
displacement map has been derived from the shape of the<br />
terrain. This can now be used to apply the same terrain effect<br />
in another area.<br />
<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor_Tools|Surveyor Tools]]<br />
* [[Help:Surveyor|Surveyor]]<br />
* [[Effect_Layer|Effect Layer]]<br />
<br />
Return to [[Help:TRS19|TRS19 Help Page]]<br />
[[Category:TRS19]]<br />
[[Category: Help]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/KIND_GroundbrushKIND Groundbrush2019-04-21T23:56:59Z<p>Builderbob: Created</p>
<hr />
<div>{{ORP-top}}<br />
==KIND Groundbrush==<br />
'''KIND Groundbrush''' provides objects that are used in Surveyor to apply height variations to the terrain. The asset appears in game as a monochrome image where the brightness controls the height. Options are available to rotate the image, select the area where the terrain is to be adjusted, and select the scale at which the height adjustment will be applied.<br />
==KIND Hierarchy==<br />
*[[TrainzBaseSpec]]<br />
<br />
==Parent Classes==<br />
* ''none.''<br />
<br />
==Child Classes==<br />
* ''none.''<br />
<br />
==Supported Tags==<br />
The [[KIND Groundbrush]] [[config.txt file]] supports the following tags (in addition to the tags that are available to all assets). Each tag is shown here with its default value.<br />
<br />
displacement-bitmap nothing<br />
<br />
====kind====<br />
:Type: String "groundbrush"<br />
:Compulsory: Yes from 3.4<br />
:Default: n/a<br />
:Desc: Identifies the asset as Kind Groundbrush.<br />
<br />
====displacement-bitmap====<br />
:Type: String<br />
:Compulsory: Yes from 3.4<br />
:Default: n/a<br />
:Desc: Monochrome bitmap used to define the height adjustment to be applied. Note that this is an image filename, not a texture. The RGB values in the image are used to determine the amount of height adjustment: values greater than 127 are height increases, values less than 127 are height decreases. <br />
<br />
==Example Config.txt==<br />
<br />
kuid <kuid:xxxxxxx:yyyyyyy><br />
username "Rolling Hill"<br />
kind "groundbrush"<br />
trainz-build 3.5<br />
category-class "BRSH"<br />
displacement-bitmap "rolling_hills.tga"<br />
thumbnails<br />
{<br />
0<br />
{<br />
image "$screenshot$.jpg"<br />
width 240<br />
height 180<br />
}<br />
}<br />
<br />
==Creating a Groundbrush==<br />
<br />
The simplest way to create a new groundbrush is to clone an existing one and make any required changes.<br />
<br />
The files for a groundbrush are the config.txt text file, the thumbnail image file, and the terrain height map image file. It is therefore nearly as easy to create a Groundbrush from scratch.<br />
<br />
The thumbnail can be created in any image editing program. It should be 240 pixels wide and 180 pixels high, in JPG format. It should indicate the general form of the height map. <br />
<br />
The config.txt file can be created in any text editor, using the above example as a template. Make the changes as required.<br />
<br />
The height map image file can be created in any image editor. The terrain can be drawn using a drawing tool, and edited with utilities such as blur, blend and gradients. There are also realistic terrain generator utility aplications, or plugins for some image editors.<br />
<br />
Put the config.txt file, the thumbnail image file, amd the terrain heightmap image file into a folder. Open Content Manager and use File \ Import Content (for versions prior to T:ANE) or File \ Import Content Folder (for T:ANE and later versions), navigate to the folder where the files were placed, and import it.<br />
<br />
To test the groundbrush, create a new route or select an existing route, open it in Surveyor, choose Edit Route from the main menu and open the Topology tab. Select Advanced, use the select option to select an area of the map, check that you are editing 'ground' and select your Groundbrush asset from the list in the box. You can now set the area to apply the height to, and the scale and rotation. Then use the Fill option to apply the height map.<br />
<br />
==Categories==<br />
[[Category:Asset KIND|R]]<br />
{{ORP-bot}}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Corona_EffectCorona Effect2019-04-15T00:41:22Z<p>Builderbob: directional</p>
<hr />
<div>The Corona effect kind is a [["mesh-table" Container]] effect container. The following tags are supported:<br />
<br />
kind "corona"<br />
att ""<br />
object-size 0.15<br />
max-size-mul 2.0<br />
mul-distance 60.0<br />
min-distance 1.0<br />
max-distance 315.0<br />
max-intensity 1.0<br />
texture-KUID &lt;KUID:-1:6349&gt;<br />
distance-fade 1<br />
directional 1<br />
frequency 0<br />
wave-shift 0<br />
<br />
===Explanations and default values===<br />
<br />
att: Name of attachment point.<br />
:Compulsory (3.4)<br />
<br />
object-size: size of the corona in meters.<br />
:Optional. Default 0.15.<br />
<br />
max-size-mul:<br />
:Optional. Default 2.0.<br />
<br />
mul-distance:<br />
:Optional. Default 60. <br />
<br />
min-distance: closest distance at which the corona disappears. <br />
:Optional. Default 1.0.<br />
<br />
max-distance: farthest distance at which corona will be visible<br />
:Optional. Default 315.<br />
<br />
max-intensity<br />
:Optional. Default 1.<br />
<br />
texture-KUID: specifies a user-defined texture for the corona by identifying the KUID of a "[[KIND_Texture | KIND_Texture]]" asset.<br />
:Optional. Default <kuid:-1:6349> (yellow/orange texture) <br />
<br />
distance-fade: boolean value; 0 = does not fade with distance, 1 = fades with distance. <br />
:OBSOLETE - Do not use.<br />
<br />
directional: boolean value indicating whether the corona effect has direction. A value of 0 means the corona is omnidirectional; a value of 1 indicates that the corona is directional along the negative z axis.<br />
:Optional. Default 1.<br />
<br />
frequency: frequency of flashing in flashes per second. 0.2 is one flash every 5 seconds; 0.5 is one flash every 2 seconds; 2 is one flash every half second.<br />
:Optional. Default 2.<br />
<br />
wave-shift: a floating-point value ranging from -1 to 1. This value determines the duty cycle of a flashing corona: that is, the amount of time in the cycle for which the light is on. Negative values give on times of less than half, positive values give on times of more than half. Note that this number is not linear.<br />
:Optional. Default 0 (50% duty cycle).<br />
<br />
[[Category:Config Container]]<br />
<br />
<br />
<!-- mul-distance = distance at which corona will start growing larger; maintains visibility of a light source, mimics signal light behavior<br />
max-size-mul = Essentially, the maximum size of corona at a long distance, it shrinks as you get closer<br />
<br />
wave shift = not sure, probably allows occulting (on more than off) or quick flashing (off more than on) --></div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Tail-lights_containerTail-lights container2019-04-15T00:29:59Z<p>Builderbob: Rewrite using the original example.</p>
<hr />
<div>The tail-lights container is a list of tail-light subcontainers and is used by KIND Traincar assets. It determines which of the corona effects for the traincar mesh are to be considered tail lights. <br />
<br />
Tail lights are lit for the trailing end of a train vehicle that is the last vehicle in a consist. Tail lights that are not at the trailing end are not lit. If the traincar is not part of a consist then the lights are not lit.<br />
<br />
The container is made up of a number of tail light subcontainers which include the effect name and a Boolean value indicating whether the effect is to be treated as a front-end light or a rear-end light. A rear-end tail light is lit when the rear end of the traincar is the trailing end of the consist. A front-end tail light is lit when the front of the traincar is at the trailing end of the consist (ie, the traincar is reversed within the consist).<br />
<br />
Each effect listed in the container must be defined as a [[Corona Effect]] in the mesh table, with the appropriate tags for the corona KUID, size, etc. The tail-lights container has one tail-light subcontainer for each tail-light. The label used for each subcontainer is arbitrary, but must be unique. The container does not support any tags.<br />
<br />
This container replaces a task that required a script in earlier versions of Trainz. If converting an asset from a version that uses a script, note that the effect used for the light is likely a texture replacement effect - this needs to be changed in the mesh table to a corona effect. <br />
<br />
====tail-light subcontainer====<br />
<br />
====effect====<br />
:Type: String<br />
:Compulsory: Yes<br />
:Default: Nothing<br />
:Desc: The name of the effect in the mesh-table that is to be used as this tail light.<br />
<br />
====light-is-on-front-end====<br />
:Type: Boolean<br />
:Compulsory: No<br />
:Default: 0 (False)<br />
:Desc: Identifies this tail light as being a front light(True) or a rear light(False) of the traincar. This setting controls which lights are lit based on the traincar facing within the consist. Note that this is not the physical location of the light, although typically front lights would be at the front of the traincar and rear lights wold be at the rear.<br />
<br />
<br />
<br />
==Example==<br />
<br />
This example shows the mesh-table container and tail-light container for a traincar that has two tail lights at each end.<br />
<br />
mesh-table {<br />
default {<br />
mesh "traincar.im"<br />
auto-create 1<br />
<br />
effects<br />
{<br />
frontred0<br />
{<br />
kind "corona"<br />
att "a.frontred0"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
frontred1<br />
{<br />
kind "corona"<br />
att "a.frontred1"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
backred0<br />
{<br />
kind "corona"<br />
att "a.backred0"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
backred1<br />
{<br />
kind "corona"<br />
att "a.backred1"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
} <br />
}<br />
}<br />
tail-lights<br />
{<br />
front0<br />
{<br />
effect "frontred0"<br />
light-is-on-front-end 1<br />
}<br />
<br />
front1<br />
{<br />
effect "frontred1"<br />
light-is-on-front-end 1<br />
}<br />
<br />
back0<br />
{<br />
effect "backred0"<br />
light-is-on-front-end 0<br />
}<br />
<br />
back1<br />
{<br />
effect "backred1"<br />
light-is-on-front-end 0<br />
}<br />
}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/TaillightsTaillights2019-04-14T23:40:51Z<p>Builderbob: Builderbob moved page Taillights to Tail-lights container</p>
<hr />
<div>#REDIRECT [[Tail-lights container]]</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Tail-lights_containerTail-lights container2019-04-14T23:40:51Z<p>Builderbob: Builderbob moved page Taillights to Tail-lights container</p>
<hr />
<div>TS 12 SP1 finally has introduced a native function to use Taillights without needing a custom script.<br />
<br />
As before (for script variants), the coronas have to be defined inside the effects container in the mesh-table.<br />
<br />
To make those coronas work as tail-lights, a new container type named "tail-lights" has been introduced.<br />
This container has one child element per tail-light, in each child the matching effect name is referenced and the location of the tail-light is defined.<br />
<br />
This function shows the backside-coronas of the last traincar in a train, if the last car is not equipped with taillights, no coronas are displayed.<br />
<br />
==Example==<br />
<br />
mesh-table {<br />
default {<br />
mesh "traincar.im"<br />
auto-create 1<br />
<br />
effects<br />
{<br />
frontred0<br />
{<br />
kind "corona"<br />
att "a.frontred0"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
frontred1<br />
{<br />
kind "corona"<br />
att "a.frontred1"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
backred0<br />
{<br />
kind "corona"<br />
att "a.backred0"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
}<br />
<br />
backred1<br />
{<br />
kind "corona"<br />
att "a.backred1"<br />
directional 1<br />
object-size 0.2<br />
texture-kuid <kuid:-3:10112><br />
max-distance 1000<br />
} <br />
}<br />
}<br />
tail-lights<br />
{<br />
front0<br />
{<br />
effect "frontred0"<br />
light-is-on-front-end 1<br />
}<br />
<br />
front1<br />
{<br />
effect "frontred1"<br />
light-is-on-front-end 1<br />
}<br />
<br />
back0<br />
{<br />
effect "backred0"<br />
light-is-on-front-end 0<br />
}<br />
<br />
back1<br />
{<br />
effect "backred1"<br />
light-is-on-front-end 0<br />
}<br />
}</div>Builderbobhttps://online.ts2009.com/mediaWiki/index.php/Help:Surveyor_Objects_Spline_ModeHelp:Surveyor Objects Spline Mode2019-03-31T08:05:55Z<p>Builderbob: Edit Vertex Height</p>
<hr />
<div>This tab provides tools that are used to manipulate scenery spline objects. The Spline Mode (S) button is at the top right of the Objects (F3) tab.<br />
<br />
Splines are generally long thin objects such as roads, power lines, catenaries, fences, terrace houses and rows of trees. They consist of two or more “spline points” denoted by rotating circles. These spline points can be placed any distance apart and the spline object is then stretched and duplicated as needed between the spline points.<br />
<br />
Spline objects can be constructed with different features to accommodate the variety of objects that can be modelled as splines. <br />
<br />
[[File:Objects2 advanced.jpg|400px|left]]<br />
{{clear}}<br />
=== [[File:Object add.jpg]] Add Spline ===<br />
{{clear}}<br />
Select the Add Spline (A) tool and then click LMB on the terrain to anchor the first spline point. Click LMB again some distance away to place the second spline point. The spline will be drawn from the first point to the second, and white circles will display at each of the spline points. These spline points are used to configure the spline path, adjust the height, or define a section of spline for operations such as setting a gradient or setting the ground height.<br />
<br />
To extend the spline further, click LMB on the last spline point, then Click LMB once more nearby to extend the spline. To place multiple spline points hold down the Ctrl key while placing each point. Release the Ctrl key before placing the final spline point to complete the spline. Additional sections can be added to an existing spline at any time.<br />
<br />
If the new spline point (including an end point) is placed close to any part of an existing compatible spline the new point will form a junction with the existing spline. If this is not what is required, press and hold the Shift key before releasing the LMB.<br />
<br />
=== [[File:Object move.jpg]] Move Spline ===<br />
{{clear}}<br />
Select the Move Spline (M) tool and then click LMBH and drag the spline point to a new position. <br />
<br />
If the new position is close to an existing spline point of a compatible spline, the spline point you are moving will snap to that other spline point, creating either a junction or an extension. In some cases this is not what is required: to prevent this from happening, press and hold the Shift key before releasing the LMB. This technique can be used to place separate splines on top of one another, such as when creating a forest from tree or shrub splines.<br />
<br />
=== [[File:Split spline.jpg]] Split Spline ===<br />
{{clear}}<br />
Select the Split Spline (Q) tool and then click LMB on a spline point (other than an end point) to split the spline at that point. Two end spline points will be created at the same location, and the two portions of the spline will become separate splines.<br />
<br />
=== [[File:object get.jpg]] Get Spline ===<br />
{{clear}}<br />
Select the Get Spline (G) tool and then click LMB on a spline object already placed on the terrain. That spline object will become the selected object in the objects list, and the Add Spline (A) tool will become the active tool.<br />
<br />
=== Get to Pick List ===<br />
To access the Get to Pick List function, Right Click on the Get button, and the icon will then change to the Get to Pick List button. Now Left Click this button to select the Get to Pick List tool.<br />
<br />
The Get to Pick List tool allows you to 'get' any object on a route, and then add it to a [[Help/Content_Search_Filter#Pick_List|Pick List]]. The Pick List that the item is added to is the current Pick List in the Content Search Filter window: be sure that the correct Pick List is the current Pick List before selecting the spline object with the Get to Pick List Tool.<br />
<br />
=== [[File:Area cancel.jpg]] Delete Spline ===<br />
{{clear}}<br />
Select the Delete Spline (D) tool then click LMB on a section of spline between two spline points to delete that section of spline. The remaining portions will become separate splines.<br />
<br />
=== [[File:Straighten spline.jpg]] Straighten Spline ===<br />
{{clear}}<br />
Select the Straighten Spline tool (B) then click LMB on a section of spline to straighten that section. The curvature of adjacent sections will be adjusted to maintain a smooth spline path, but spline points will not be moved. Click LMB on a straightened section of spline to remove the straightening.<br />
<br />
Note that the exact effect of straightening a section depends on the properties of the spline object and whether adjacent sections have already been straightened. For instance, two adjacent sections cannot be straightened if the spline points that define them are not in a straight line. <br />
<br />
<br />
=== [[File:Straighten spline.jpg]] Toggle Traffic ===<br />
{{clear}}<br />
Many roads will have vehicles travelling on them automatically: this can be seen while in Surveyor after placing the roads. Clicking LMB on Toggle Traffic turns all traffic off on the roads. Clicking LMB on the button again will have traffic resume. When toggling traffic on and off, it affects all spline roads on your route. <br />
<br />
This option does not exist in some versions of Trainz.<br />
<br />
=== [[File:Edit properties.jpg]] Edit Properties ===<br />
{{clear}}<br />
Select the Edit Properties (P) tool and then click LMB on any spline object in your route. A menu will open up allowing you to edit the properties of the object.<br />
<br />
== Advanced ==<br />
Click LMB on the Advanced Menu to access the advanced spline tools. <br />
=== [[File:Spline height.jpg]] Spline Height ===<br />
{{clear}}<br />
Select the Spline Height (H) tool and then LMBH and drag on a spline point to raise or lower that point. The adjacent sections of the spline will be adjusted to the new height according to the properties of the spline. The rotating circle marking the spline point will be changed from white to yellow, indicating that the height is now absolute, not relative to the local ground level. Note that the spline point height will become an absolute height even if the height doesn't actually change.<br />
<br />
The height of the spline point will be displayed as it is adjusted. Press and hold the Ctrl key to adjust the height in smaller increments.<br />
<br />
=== [[File:Spline point delete.jpg]] Delete Spline Point ===<br />
{{clear}}<br />
Select the Delete Spline Point (X) tool and then click LMB on a spline point to delete that point. The two adjacent segments will become a single segment, and the spline path will be adjusted. You cannot delete an end spline point but you can delete an end section using the Delete Spline (D) tool. You cannot delete a spline point that is a junction.<br />
<br />
=== [[File:Spline point insert.jpg]] Insert Spline Point ===<br />
{{clear}}<br />
Select the Insert Spline Point (I) tool then click LMB between two existing spline points. A new spline point will be created at the click location, and the spline path will be adjusted. The height of the new spline point will be calculated from the slope of the existing section. If the section had been straightened it may be necessary to re-do the straightening.<br />
<br />
=== [[File:Spline smooth.jpg]] Smooth Spline ===<br />
{{clear}}<br />
Select the Smooth Spline (S) tool then click LMB on a section of spline to adjust the ground level to the height of the spline. Multiple clicks (up to about 6) will increase the smoothness of the adjacent terrain.<br />
<br />
=== [[File:Vertex height get.jpg]] Get Vertex Height ===<br />
{{clear}}<br />
Select the Get Vertex Height tool and Click LMB on a spline point. The height of that spline point will be displayed in the Height Value box.<br />
<br />
=== [[File:Height value field.jpg]] Edit Vertex Height ===<br />
As an alternative to the Get Vertex Height tool to select a Height Value, you can enter a specific height in the Height Value Field.<br />
<br />
=== [[File:Vertex height apply.jpg]] Apply Vertex Height ===<br />
{{clear}}<br />
Select the Apply Vertex Height tool then Click LMB on a spline point. The height of the spline point is adjusted to the height displayed in the Height Value text box.<br />
<br />
=== [[File:Gradient remove.jpg]] Remove Gradient ===<br />
{{clear}}<br />
Select the Remove Gradient tool and then Click LMB on a spline point to reset the height of the spline.<br />
<br />
When a spline point is first added its height is zero relative to the ground at the point at which it is located, and its height follows any changes in the ground height. This is indicated by a white rotating circle. If the height is adjusted it becomes an absolute height, so that the height does not change with subsequent changes in ground height, and this is indicated by a yellow rotating circle. The Remove Gradient tool reverts the spline point height to its original state - zero relative to the ground and a white rotating circle. This change also restores some properties of certain splines - if the spline has been configured to follow the height and/or slope of the ground surface between spline points then this feature is restored to a spline section when the adjacent spline points are changed from absolute height to relative height.<br />
<br />
If a spline point height is already zero relative to the ground (white rotating circle) then this tool has no effect.<br />
<br />
;<big> See Also </big><br />
* [[Help:Surveyor Objects Tools]]<br />
* [[Help:Surveyor_Tools]]<br />
* [[Help:Surveyor]]<br />
<br />
[[Category:Help|Surveyor Objects Spline Mode]][[Category:TRS19]]</div>Builderbob