Added color to traj picking tool.

Change-Id: I4cab92368cbd5dd766bee45b0f9759095625fe63
diff --git a/bundles/addons/org.eclipse.apogy.addons.edit/bundle.properties b/bundles/addons/org.eclipse.apogy.addons.edit/bundle.properties
index 5ec1a71..6d94aeb 100644
--- a/bundles/addons/org.eclipse.apogy.addons.edit/bundle.properties
+++ b/bundles/addons/org.eclipse.apogy.addons.edit/bundle.properties
@@ -345,3 +345,4 @@
 pluginName = Apogy Addons Edit
 _UI_FeatureOfInterestPickingTool_useLocationNormal_feature = Use Location Normal
 _UI_FeatureOfInterestPickingTool_promptBeforeDeletingFOI_feature = Prompt Before Deleting FOI
+_UI_TrajectoryPickingTool_lineColor_feature = Line Color
diff --git a/bundles/addons/org.eclipse.apogy.addons.edit/src-gen/org/eclipse/apogy/addons/provider/TrajectoryPickingToolItemProvider.java b/bundles/addons/org.eclipse.apogy.addons.edit/src-gen/org/eclipse/apogy/addons/provider/TrajectoryPickingToolItemProvider.java
index 97a5803..f7f4b1e 100644
--- a/bundles/addons/org.eclipse.apogy.addons.edit/src-gen/org/eclipse/apogy/addons/provider/TrajectoryPickingToolItemProvider.java
+++ b/bundles/addons/org.eclipse.apogy.addons.edit/src-gen/org/eclipse/apogy/addons/provider/TrajectoryPickingToolItemProvider.java
@@ -59,6 +59,7 @@
 			super.getPropertyDescriptors(object);
 
 			addAltitudeOffsetPropertyDescriptor(object);
+			addLineColorPropertyDescriptor(object);
 			addActivePathPropertyDescriptor(object);
 			addTrajectoryPickingToolNodePropertyDescriptor(object);
 			addTotalLengthPropertyDescriptor(object);
@@ -89,6 +90,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Line Color feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLineColorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TrajectoryPickingTool_lineColor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TrajectoryPickingTool_lineColor_feature", "_UI_TrajectoryPickingTool_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 ApogyAddonsPackage.Literals.TRAJECTORY_PICKING_TOOL__LINE_COLOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Active Path feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -223,6 +246,7 @@
 
 		switch (notification.getFeatureID(TrajectoryPickingTool.class)) {
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET:
+			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR:
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ACTIVE_PATH:
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__TRAJECTORY_PICKING_TOOL_NODE:
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__TOTAL_LENGTH:
diff --git a/bundles/addons/org.eclipse.apogy.addons.mqtt.ros/src-gen-custom/org/eclipse/apogy/addons/mqtt/ros/impl/MQTTROSArbitratorServerCustomImpl.java b/bundles/addons/org.eclipse.apogy.addons.mqtt.ros/src-gen-custom/org/eclipse/apogy/addons/mqtt/ros/impl/MQTTROSArbitratorServerCustomImpl.java
index 296522a..26d5a07 100644
--- a/bundles/addons/org.eclipse.apogy.addons.mqtt.ros/src-gen-custom/org/eclipse/apogy/addons/mqtt/ros/impl/MQTTROSArbitratorServerCustomImpl.java
+++ b/bundles/addons/org.eclipse.apogy.addons.mqtt.ros/src-gen-custom/org/eclipse/apogy/addons/mqtt/ros/impl/MQTTROSArbitratorServerCustomImpl.java
@@ -968,6 +968,11 @@
 			
 			try
 			{	
+				// DEBUG
+				System.out.println("Response =================================");
+				System.out.println(ApogyAddonsMQTTROSFacade.INSTANCE.convertToJSON(response).toString());
+				// DEBUG
+				
 				getClientSide().publish(responseTopic, ApogyAddonsMQTTROSFacade.INSTANCE.convertToJSON(response).toString());
 			}
 			catch (Throwable e) 
diff --git a/bundles/addons/org.eclipse.apogy.addons.ui.jme3/src/org/eclipse/apogy/addons/ui/jme3/scene_objects/Trajectory3DToolNodeJME3Object.java b/bundles/addons/org.eclipse.apogy.addons.ui.jme3/src/org/eclipse/apogy/addons/ui/jme3/scene_objects/Trajectory3DToolNodeJME3Object.java
index 1ca1c89..a238d16 100644
--- a/bundles/addons/org.eclipse.apogy.addons.ui.jme3/src/org/eclipse/apogy/addons/ui/jme3/scene_objects/Trajectory3DToolNodeJME3Object.java
+++ b/bundles/addons/org.eclipse.apogy.addons.ui.jme3/src/org/eclipse/apogy/addons/ui/jme3/scene_objects/Trajectory3DToolNodeJME3Object.java
@@ -56,17 +56,23 @@
 		super.dispose();
 	}
 
-	private Adapter getAdapter() {
-		if (this.adapter == null) {
-			this.adapter = new AdapterImpl() {
+	private Adapter getAdapter() 
+	{
+		if (this.adapter == null) 
+		{
+			this.adapter = new AdapterImpl() 
+			{
 				@Override
-				public void notifyChanged(Notification msg) {
-					if (msg.getNotifier() instanceof Trajectory3DTool) {
+				public void notifyChanged(Notification msg) 
+				{
+					if (msg.getNotifier() instanceof Trajectory3DTool) 
+					{
 						int featureId = msg.getFeatureID(Trajectory3DTool.class);
 
-						switch (featureId) {
-						case ApogyAddonsPackage.SIMPLE3_DTOOL__VISIBLE:
-							setVisible(msg.getNewBooleanValue());
+						switch (featureId) 
+						{
+							case ApogyAddonsPackage.SIMPLE3_DTOOL__VISIBLE:
+								setVisible(msg.getNewBooleanValue());
 							break;
 						}
 					}
diff --git a/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java b/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java
index 9317b24..1abba90 100644
--- a/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java
+++ b/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java
@@ -2268,6 +2268,15 @@
 	int VEHICLE_TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET = ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET;
 
 	/**
+	 * The feature id for the '<em><b>Line Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VEHICLE_TRAJECTORY_PICKING_TOOL__LINE_COLOR = ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR;
+
+	/**
 	 * The feature id for the '<em><b>Paths</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore b/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore
index 8436dbf..31290ed 100644
--- a/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore
+++ b/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore
@@ -378,27 +378,37 @@
 	@GenModel(notify="true", propertyCategory="TRAJECTORY_PICKING_TOOL")
 	@Apogy(units="m")
 	double altitudeOffset = "0"
+	
+	/**
+	 * Color to be used to draw the trajectory
+	 */
+	RGBA lineColor = "255,0,0,0"	
+	
 	/** 
 	 * All the  WayPointPath created with this tool.
 	 */
 	@GenModel(notify="true", propertyCategory="TRAJECTORY_PICKING_TOOL")
 	contains WayPointPath[1..*] paths
+	
 	/**
 	 * The WayPointPath to which selected points are to be added.
 	 */
 	@GenModel(notify="true", propertyCategory="TRAJECTORY_PICKING_TOOL")
 	refers WayPointPath[1] activePath
+	
 	/**
 	 * The node representing the tool in the topology.
 	 */
 	@GenModel(notify="true", children="false", property="Readonly", propertyCategory="TRAJECTORY_PICKING_TOOL")
 	refers transient TrajectoryPickingToolNode trajectoryPickingToolNode opposite trajectoryPickingTool
+	
 	/** 
 	 * The total length of all the paths contained in the tool.
 	 */
 	@GenModel(notify="true", property="Readonly")
 	@Apogy(units="m")
 	transient double totalLength = "0.0"
+	
 	/**
 	 * Clears all points from the active path. 
 	 */
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java
index b2e00c6..ed565b0 100644
--- a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java
+++ b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java
@@ -29,10 +29,12 @@
 import org.eclipse.apogy.common.topology.ContentNode;
 import org.eclipse.apogy.common.topology.GroupNode;
 import org.eclipse.apogy.common.topology.Node;
+import org.eclipse.apogy.common.topology.ui.NodePresentation;
 import org.eclipse.apogy.common.topology.ui.NodeSelection;
 import org.eclipse.apogy.common.topology.ui.viewer.MouseButton;
 import org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshMapLayerNode;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.graphics.RGBA;
 import org.eclipse.swt.widgets.Display;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -217,6 +219,29 @@
 
 		super.dispose();
 	}
+	@Override
+	public void setLineColor(RGBA newLineColor) 
+	{
+		super.setLineColor(newLineColor);
+		
+		updateLineColor(newLineColor);
+	}
+	
+	protected void updateLineColor(RGBA newColor)
+	{
+		try
+		{
+			for(Node node : getTrajectoryPickingToolNode().getChildren())
+			{
+				NodePresentation nodePresentation = org.eclipse.apogy.common.topology.ui.Activator.getTopologyPresentationRegistry().getPresentationNode(node);
+				if(nodePresentation != null) nodePresentation.setColor(newColor);
+			}
+		}
+		catch (Exception e) 
+		{
+			Logger.error("Failed to set trajectory color !", e);
+		}
+	}
 
 	private void updateTotalLength() 
 	{
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java
index 2760c93..6fbb65e 100644
--- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java
+++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java
@@ -1574,13 +1574,22 @@
 	int TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET = SIMPLE3_DTOOL_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Line Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRAJECTORY_PICKING_TOOL__LINE_COLOR = SIMPLE3_DTOOL_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Paths</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TRAJECTORY_PICKING_TOOL__PATHS = SIMPLE3_DTOOL_FEATURE_COUNT + 1;
+	int TRAJECTORY_PICKING_TOOL__PATHS = SIMPLE3_DTOOL_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Active Path</b></em>' reference.
@@ -1589,7 +1598,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TRAJECTORY_PICKING_TOOL__ACTIVE_PATH = SIMPLE3_DTOOL_FEATURE_COUNT + 2;
+	int TRAJECTORY_PICKING_TOOL__ACTIVE_PATH = SIMPLE3_DTOOL_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Trajectory Picking Tool Node</b></em>' reference.
@@ -1598,7 +1607,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TRAJECTORY_PICKING_TOOL__TRAJECTORY_PICKING_TOOL_NODE = SIMPLE3_DTOOL_FEATURE_COUNT + 3;
+	int TRAJECTORY_PICKING_TOOL__TRAJECTORY_PICKING_TOOL_NODE = SIMPLE3_DTOOL_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Total Length</b></em>' attribute.
@@ -1607,7 +1616,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TRAJECTORY_PICKING_TOOL__TOTAL_LENGTH = SIMPLE3_DTOOL_FEATURE_COUNT + 4;
+	int TRAJECTORY_PICKING_TOOL__TOTAL_LENGTH = SIMPLE3_DTOOL_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Trajectory Picking Tool</em>' class.
@@ -1616,7 +1625,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TRAJECTORY_PICKING_TOOL_FEATURE_COUNT = SIMPLE3_DTOOL_FEATURE_COUNT + 5;
+	int TRAJECTORY_PICKING_TOOL_FEATURE_COUNT = SIMPLE3_DTOOL_FEATURE_COUNT + 6;
 
 	/**
 	 * The operation id for the '<em>Initialise</em>' operation.
@@ -3868,6 +3877,17 @@
 	EAttribute getTrajectoryPickingTool_AltitudeOffset();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getLineColor <em>Line Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Line Color</em>'.
+	 * @see org.eclipse.apogy.addons.TrajectoryPickingTool#getLineColor()
+	 * @see #getTrajectoryPickingTool()
+	 * @generated
+	 */
+	EAttribute getTrajectoryPickingTool_LineColor();
+
+	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getPaths <em>Paths</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4820,6 +4840,14 @@
 		EAttribute TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET = eINSTANCE.getTrajectoryPickingTool_AltitudeOffset();
 
 		/**
+		 * The meta object literal for the '<em><b>Line Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRAJECTORY_PICKING_TOOL__LINE_COLOR = eINSTANCE.getTrajectoryPickingTool_LineColor();
+
+		/**
 		 * The meta object literal for the '<em><b>Paths</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/TrajectoryPickingTool.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/TrajectoryPickingTool.java
index a69deb4..eb49dfd 100644
--- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/TrajectoryPickingTool.java
+++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/TrajectoryPickingTool.java
@@ -19,6 +19,8 @@
 
 import org.eclipse.emf.common.util.EList;
 
+import org.eclipse.swt.graphics.RGBA;
+
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Trajectory Picking Tool</b></em>'.
@@ -35,6 +37,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getAltitudeOffset <em>Altitude Offset</em>}</li>
+ *   <li>{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getLineColor <em>Line Color</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getPaths <em>Paths</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getActivePath <em>Active Path</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getTrajectoryPickingToolNode <em>Trajectory Picking Tool Node</em>}</li>
@@ -76,6 +79,33 @@
 	void setAltitudeOffset(double value);
 
 	/**
+	 * Returns the value of the '<em><b>Line Color</b></em>' attribute.
+	 * The default value is <code>"255,0,0,0"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * *
+	 * Color to be used to draw the trajectory
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Line Color</em>' attribute.
+	 * @see #setLineColor(RGBA)
+	 * @see org.eclipse.apogy.addons.ApogyAddonsPackage#getTrajectoryPickingTool_LineColor()
+	 * @model default="255,0,0,0" unique="false" dataType="org.eclipse.apogy.common.emf.ui.RGBA"
+	 * @generated
+	 */
+	RGBA getLineColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.apogy.addons.TrajectoryPickingTool#getLineColor <em>Line Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Line Color</em>' attribute.
+	 * @see #getLineColor()
+	 * @generated
+	 */
+	void setLineColor(RGBA value);
+
+	/**
 	 * Returns the value of the '<em><b>Paths</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.apogy.addons.geometry.paths.WayPointPath}.
 	 * <!-- begin-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java
index 38e7b29..07b081c 100644
--- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java
+++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java
@@ -899,8 +899,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getTrajectoryPickingTool_Paths() {
-		return (EReference)trajectoryPickingToolEClass.getEStructuralFeatures().get(1);
+	public EAttribute getTrajectoryPickingTool_LineColor() {
+		return (EAttribute)trajectoryPickingToolEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -909,7 +909,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getTrajectoryPickingTool_ActivePath() {
+	public EReference getTrajectoryPickingTool_Paths() {
 		return (EReference)trajectoryPickingToolEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -919,7 +919,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getTrajectoryPickingTool_TrajectoryPickingToolNode() {
+	public EReference getTrajectoryPickingTool_ActivePath() {
 		return (EReference)trajectoryPickingToolEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -929,8 +929,18 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getTrajectoryPickingTool_TrajectoryPickingToolNode() {
+		return (EReference)trajectoryPickingToolEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EAttribute getTrajectoryPickingTool_TotalLength() {
-		return (EAttribute)trajectoryPickingToolEClass.getEStructuralFeatures().get(4);
+		return (EAttribute)trajectoryPickingToolEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -1400,6 +1410,7 @@
 
 		trajectoryPickingToolEClass = createEClass(TRAJECTORY_PICKING_TOOL);
 		createEAttribute(trajectoryPickingToolEClass, TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET);
+		createEAttribute(trajectoryPickingToolEClass, TRAJECTORY_PICKING_TOOL__LINE_COLOR);
 		createEReference(trajectoryPickingToolEClass, TRAJECTORY_PICKING_TOOL__PATHS);
 		createEReference(trajectoryPickingToolEClass, TRAJECTORY_PICKING_TOOL__ACTIVE_PATH);
 		createEReference(trajectoryPickingToolEClass, TRAJECTORY_PICKING_TOOL__TRAJECTORY_PICKING_TOOL_NODE);
@@ -1603,6 +1614,7 @@
 
 		initEClass(trajectoryPickingToolEClass, TrajectoryPickingTool.class, "TrajectoryPickingTool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getTrajectoryPickingTool_AltitudeOffset(), theEcorePackage.getEDouble(), "altitudeOffset", "0", 0, 1, TrajectoryPickingTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getTrajectoryPickingTool_LineColor(), theApogyCommonEMFUIPackage.getRGBA(), "lineColor", "255,0,0,0", 0, 1, TrajectoryPickingTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
 		initEReference(getTrajectoryPickingTool_Paths(), theApogyAddonsGeometryPathsPackage.getWayPointPath(), null, "paths", null, 1, -1, TrajectoryPickingTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getTrajectoryPickingTool_ActivePath(), theApogyAddonsGeometryPathsPackage.getWayPointPath(), null, "activePath", null, 1, 1, TrajectoryPickingTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getTrajectoryPickingTool_TrajectoryPickingToolNode(), this.getTrajectoryPickingToolNode(), this.getTrajectoryPickingToolNode_TrajectoryPickingTool(), "trajectoryPickingToolNode", null, 0, 1, TrajectoryPickingTool.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
@@ -2126,6 +2138,12 @@
 			   "propertyCategory", "TRAJECTORY_PICKING_TOOL" //$NON-NLS-1$ //$NON-NLS-2$
 		   });
 		addAnnotation
+		  (getTrajectoryPickingTool_LineColor(),
+		   source,
+		   new String[] {
+			   "documentation", "*\nColor to be used to draw the trajectory" //$NON-NLS-1$ //$NON-NLS-2$
+		   });
+		addAnnotation
 		  (getTrajectoryPickingTool_Paths(),
 		   source,
 		   new String[] {
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/TrajectoryPickingToolImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/TrajectoryPickingToolImpl.java
index 384418e..22c8dfc 100644
--- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/TrajectoryPickingToolImpl.java
+++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/TrajectoryPickingToolImpl.java
@@ -25,6 +25,9 @@
 
 import org.eclipse.apogy.addons.geometry.paths.WayPointPath;
 
+import org.eclipse.apogy.common.emf.ui.ApogyCommonEMFUIFactory;
+import org.eclipse.apogy.common.emf.ui.ApogyCommonEMFUIPackage;
+
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
@@ -38,6 +41,8 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.swt.graphics.RGBA;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Trajectory Picking Tool</b></em>'.
@@ -47,6 +52,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.apogy.addons.impl.TrajectoryPickingToolImpl#getAltitudeOffset <em>Altitude Offset</em>}</li>
+ *   <li>{@link org.eclipse.apogy.addons.impl.TrajectoryPickingToolImpl#getLineColor <em>Line Color</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.impl.TrajectoryPickingToolImpl#getPaths <em>Paths</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.impl.TrajectoryPickingToolImpl#getActivePath <em>Active Path</em>}</li>
  *   <li>{@link org.eclipse.apogy.addons.impl.TrajectoryPickingToolImpl#getTrajectoryPickingToolNode <em>Trajectory Picking Tool Node</em>}</li>
@@ -77,6 +83,26 @@
 	protected double altitudeOffset = ALTITUDE_OFFSET_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getLineColor() <em>Line Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLineColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final RGBA LINE_COLOR_EDEFAULT = (RGBA)ApogyCommonEMFUIFactory.eINSTANCE.createFromString(ApogyCommonEMFUIPackage.eINSTANCE.getRGBA(), "255,0,0,0"); //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getLineColor() <em>Line Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLineColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected RGBA lineColor = LINE_COLOR_EDEFAULT;
+
+	/**
 	 * The cached value of the '{@link #getPaths() <em>Paths</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174,6 +200,29 @@
 	 * @generated
 	 */
 	@Override
+	public RGBA getLineColor() {
+		return lineColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setLineColor(RGBA newLineColor) {
+		RGBA oldLineColor = lineColor;
+		lineColor = newLineColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR, oldLineColor, lineColor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<WayPointPath> getPaths() {
 		if (paths == null) {
 			paths = new EObjectContainmentEList<WayPointPath>(WayPointPath.class, this, ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__PATHS);
@@ -360,6 +409,8 @@
 		switch (featureID) {
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET:
 				return getAltitudeOffset();
+			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR:
+				return getLineColor();
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__PATHS:
 				return getPaths();
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ACTIVE_PATH:
@@ -386,6 +437,9 @@
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET:
 				setAltitudeOffset((Double)newValue);
 				return;
+			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR:
+				setLineColor((RGBA)newValue);
+				return;
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__PATHS:
 				getPaths().clear();
 				getPaths().addAll((Collection<? extends WayPointPath>)newValue);
@@ -414,6 +468,9 @@
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET:
 				setAltitudeOffset(ALTITUDE_OFFSET_EDEFAULT);
 				return;
+			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR:
+				setLineColor(LINE_COLOR_EDEFAULT);
+				return;
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__PATHS:
 				getPaths().clear();
 				return;
@@ -440,6 +497,8 @@
 		switch (featureID) {
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ALTITUDE_OFFSET:
 				return altitudeOffset != ALTITUDE_OFFSET_EDEFAULT;
+			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__LINE_COLOR:
+				return LINE_COLOR_EDEFAULT == null ? lineColor != null : !LINE_COLOR_EDEFAULT.equals(lineColor);
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__PATHS:
 				return paths != null && !paths.isEmpty();
 			case ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL__ACTIVE_PATH:
@@ -479,6 +538,8 @@
 		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (altitudeOffset: "); //$NON-NLS-1$
 		result.append(altitudeOffset);
+		result.append(", lineColor: "); //$NON-NLS-1$
+		result.append(lineColor);
 		result.append(", totalLength: "); //$NON-NLS-1$
 		result.append(totalLength);
 		result.append(')');