Added ShaderBasedProjectedImageMeshTool, its sub-classes and UI support.
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/bundle.properties b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/bundle.properties
index ee38f9c..e0734b7 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/bundle.properties
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/bundle.properties
@@ -394,3 +394,14 @@
_UI_VariableBasedShaderBasedMeshTool_relativePosition_feature = Relative Position
_UI_VariableBasedShaderBasedMeshTool_relativeRotationMatrix_feature = Relative Rotation Matrix
_UI_VariableBasedShaderBasedMeshToolPoseAdapter_variableBasedShaderBasedMeshTool_feature = Variable Based Shader Based Mesh Tool
+_UI_ShaderBasedMeshToolType_IMAGE_literal = Image
+_UI_ShaderBasedProjectedImageMeshTool_type = Shader Based Projected Image Mesh Tool
+_UI_ShaderBasedProjectedImageMeshTool_xDimension_feature = XDimension
+_UI_ShaderBasedProjectedImageMeshTool_yDimension_feature = YDimension
+_UI_ShaderBasedProjectedImageMeshTool_image_feature = Image
+_UI_ImageBasedShaderBasedMeshTool_type = Image Based Shader Based Mesh Tool
+_UI_ImageBasedShaderBasedMeshTool_image_feature = Image
+_UI_VariableShaderBasedProjectedImageMeshTool_type = Variable Shader Based Projected Image Mesh Tool
+_UI_ShaderBasedProjectedImageMeshTool_transparentColor_feature = Transparent Color
+_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature = Update Position
+_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature = Update Orientation
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..d82f226
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..9dc67ff
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_ShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_ShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..051fac7
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_ShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_VariableShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_VariableShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..dcfe752
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateCartesianTriangularMeshMapLayer_shaderBasedMeshTools_VariableShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..e4f5f22
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..5a705ee
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_EImage.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_EImage.gif
new file mode 100644
index 0000000..3730559
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_EImage.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_URLEImage.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_URLEImage.gif
new file mode 100644
index 0000000..0c81e8e
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateImageBasedShaderBasedMeshTool_image_URLEImage.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_EImage.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_EImage.gif
new file mode 100644
index 0000000..58e9c25
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_EImage.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_URLEImage.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_URLEImage.gif
new file mode 100644
index 0000000..236f643
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/ctool16/CreateShaderBasedProjectedImageMeshTool_image_URLEImage.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/ShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/ShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/ShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshTool.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshTool.gif
new file mode 100644
index 0000000..e4b530e
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshTool.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolCustomItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolCustomItemProvider.java
new file mode 100644
index 0000000..17ecb1b
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolCustomItemProvider.java
@@ -0,0 +1,32 @@
+package org.eclipse.apogy.core.environment.surface.provider;
+
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
+import org.eclipse.emf.common.notify.AdapterFactory;
+
+public class ShaderBasedProjectedImageMeshToolCustomItemProvider extends ShaderBasedProjectedImageMeshToolItemProvider {
+
+ public ShaderBasedProjectedImageMeshToolCustomItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ @Override
+ public String getText(Object object)
+ {
+ ShaderBasedProjectedImageMeshTool tool = (ShaderBasedProjectedImageMeshTool) object;
+
+ String label = "";
+
+ if(tool.getName() == null || tool.getName().length() == 0)
+ {
+ label += getString("_UI_ShaderBasedProjectedImageMeshTool_type");
+ }
+ else
+ {
+ label += tool.getName();
+ }
+
+ label += " (" + super.getSuffix(tool) + ")";
+
+ return label;
+ }
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolCustomItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolCustomItemProvider.java
new file mode 100644
index 0000000..f636e09
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen-custom/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolCustomItemProvider.java
@@ -0,0 +1,34 @@
+package org.eclipse.apogy.core.environment.surface.provider;
+
+import org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool;
+import org.eclipse.emf.common.notify.AdapterFactory;
+
+public class VariableShaderBasedProjectedImageMeshToolCustomItemProvider
+ extends VariableShaderBasedProjectedImageMeshToolItemProvider {
+
+ public VariableShaderBasedProjectedImageMeshToolCustomItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ @Override
+ public String getText(Object object)
+ {
+ VariableShaderBasedProjectedImageMeshTool tool = (VariableShaderBasedProjectedImageMeshTool) object;
+
+ String label = "";
+
+ if(tool.getName() == null || tool.getName().length() == 0)
+ {
+ label += getString("_UI_VariableShaderBasedProjectedImageMeshTool_type");
+ }
+ else
+ {
+ label += tool.getName();
+ }
+
+ label += " (" + super.getSuffix(tool) + ")";
+
+ return label;
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ApogySurfaceEnvironmentItemProviderAdapterFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ApogySurfaceEnvironmentItemProviderAdapterFactory.java
index 4574019..2da1a2f 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ApogySurfaceEnvironmentItemProviderAdapterFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ApogySurfaceEnvironmentItemProviderAdapterFactory.java
@@ -504,6 +504,52 @@
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShaderBasedProjectedImageMeshToolItemProvider shaderBasedProjectedImageMeshToolItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createShaderBasedProjectedImageMeshToolAdapter() {
+ if (shaderBasedProjectedImageMeshToolItemProvider == null) {
+ shaderBasedProjectedImageMeshToolItemProvider = new ShaderBasedProjectedImageMeshToolCustomItemProvider(this);
+ }
+
+ return shaderBasedProjectedImageMeshToolItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableShaderBasedProjectedImageMeshToolItemProvider variableShaderBasedProjectedImageMeshToolItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVariableShaderBasedProjectedImageMeshToolAdapter() {
+ if (variableShaderBasedProjectedImageMeshToolItemProvider == null) {
+ variableShaderBasedProjectedImageMeshToolItemProvider = new VariableShaderBasedProjectedImageMeshToolCustomItemProvider(this);
+ }
+
+ return variableShaderBasedProjectedImageMeshToolItemProvider;
+ }
+
+ /**
* This keeps track of the one adapter used for all {@link org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshSlopeImageMapLayer} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1066,6 +1112,8 @@
if (variablePoseBullseyeToolItemProvider != null) variablePoseBullseyeToolItemProvider.dispose();
if (shaderBasedAngularDisplayMeshToolItemProvider != null) shaderBasedAngularDisplayMeshToolItemProvider.dispose();
if (variableAngularDisplayMeshToolItemProvider != null) variableAngularDisplayMeshToolItemProvider.dispose();
+ if (shaderBasedProjectedImageMeshToolItemProvider != null) shaderBasedProjectedImageMeshToolItemProvider.dispose();
+ if (variableShaderBasedProjectedImageMeshToolItemProvider != null) variableShaderBasedProjectedImageMeshToolItemProvider.dispose();
if (cartesianTriangularMeshSlopeImageMapLayerItemProvider != null) cartesianTriangularMeshSlopeImageMapLayerItemProvider.dispose();
if (cartesianTriangularMeshDiscreteSlopeImageMapLayerItemProvider != null) cartesianTriangularMeshDiscreteSlopeImageMapLayerItemProvider.dispose();
if (cartesianTriangularMeshHeightImageMapLayerItemProvider != null) cartesianTriangularMeshHeightImageMapLayerItemProvider.dispose();
@@ -1221,6 +1269,16 @@
newChildDescriptors.add
(createChildParameter
(ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createShaderBasedProjectedImageMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
ApogySurfaceEnvironmentFactory.eINSTANCE.createCartesianTriangularMeshSlopeImageMapLayer()));
newChildDescriptors.add
@@ -1406,6 +1464,16 @@
newChildDescriptors.add
(createChildParameter
(ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createShaderBasedProjectedImageMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
ApogySurfaceEnvironmentFactory.eINSTANCE.createCartesianTriangularMeshSlopeImageMapLayer()));
newChildDescriptors.add
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/CartesianTriangularMeshMapLayerItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/CartesianTriangularMeshMapLayerItemProvider.java
index b1c56cb..44960b5 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/CartesianTriangularMeshMapLayerItemProvider.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/CartesianTriangularMeshMapLayerItemProvider.java
@@ -191,6 +191,16 @@
(createChildParameter
(ApogySurfaceEnvironmentPackage.Literals.CARTESIAN_TRIANGULAR_MESH_MAP_LAYER__SHADER_BASED_MESH_TOOLS,
ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableAngularDisplayMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.CARTESIAN_TRIANGULAR_MESH_MAP_LAYER__SHADER_BASED_MESH_TOOLS,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createShaderBasedProjectedImageMeshTool()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.CARTESIAN_TRIANGULAR_MESH_MAP_LAYER__SHADER_BASED_MESH_TOOLS,
+ ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshTool()));
}
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ImageBasedShaderBasedMeshToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ImageBasedShaderBasedMeshToolItemProvider.java
new file mode 100644
index 0000000..23e560b
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ImageBasedShaderBasedMeshToolItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.apogy.common.images.ApogyCommonImagesFactory;
+
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ImageBasedShaderBasedMeshToolItemProvider extends ShaderBasedMeshToolCustomItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ImageBasedShaderBasedMeshToolItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ApogySurfaceEnvironmentPackage.Literals.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ImageBasedShaderBasedMeshTool)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ImageBasedShaderBasedMeshTool_type") :
+ getString("_UI_ImageBasedShaderBasedMeshTool_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ImageBasedShaderBasedMeshTool.class)) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE,
+ ApogyCommonImagesFactory.eINSTANCE.createEImage()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE,
+ ApogyCommonImagesFactory.eINSTANCE.createURLEImage()));
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolItemProvider.java
new file mode 100644
index 0000000..1880495
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/ShaderBasedProjectedImageMeshToolItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class ShaderBasedProjectedImageMeshToolItemProvider extends ImageBasedShaderBasedMeshToolItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShaderBasedProjectedImageMeshToolItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addXDimensionPropertyDescriptor(object);
+ addYDimensionPropertyDescriptor(object);
+ addTransparentColorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the XDimension feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addXDimensionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ShaderBasedProjectedImageMeshTool_xDimension_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ShaderBasedProjectedImageMeshTool_xDimension_feature", "_UI_ShaderBasedProjectedImageMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the YDimension feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addYDimensionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ShaderBasedProjectedImageMeshTool_yDimension_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ShaderBasedProjectedImageMeshTool_yDimension_feature", "_UI_ShaderBasedProjectedImageMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Transparent Color feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTransparentColorPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ShaderBasedProjectedImageMeshTool_transparentColor_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ShaderBasedProjectedImageMeshTool_transparentColor_feature", "_UI_ShaderBasedProjectedImageMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ShaderBasedProjectedImageMeshTool.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ShaderBasedProjectedImageMeshTool"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ShaderBasedProjectedImageMeshTool)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ShaderBasedProjectedImageMeshTool_type") :
+ getString("_UI_ShaderBasedProjectedImageMeshTool_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ShaderBasedProjectedImageMeshTool.class)) {
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION:
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION:
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableAngularDisplayMeshToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableAngularDisplayMeshToolItemProvider.java
index 4e0c497..51e86aa 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableAngularDisplayMeshToolItemProvider.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableAngularDisplayMeshToolItemProvider.java
@@ -26,6 +26,7 @@
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
/**
@@ -57,6 +58,8 @@
super.getPropertyDescriptors(object);
addVariableFeatureReferencePropertyDescriptor(object);
+ addUpdatePositionPropertyDescriptor(object);
+ addUpdateOrientationPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -84,6 +87,50 @@
}
/**
+ * This adds a property descriptor for the Update Position feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdatePositionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Orientation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdateOrientationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -151,7 +198,9 @@
updateChildren(notification);
switch (notification.getFeatureID(VariableAngularDisplayMeshTool.class)) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION:
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION:
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableBasedShaderBasedMeshToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableBasedShaderBasedMeshToolItemProvider.java
index 819f5ae..0df1e38 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableBasedShaderBasedMeshToolItemProvider.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableBasedShaderBasedMeshToolItemProvider.java
@@ -26,6 +26,7 @@
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
/**
@@ -57,6 +58,8 @@
super.getPropertyDescriptors(object);
addVariableFeatureReferencePropertyDescriptor(object);
+ addUpdatePositionPropertyDescriptor(object);
+ addUpdateOrientationPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -84,6 +87,50 @@
}
/**
+ * This adds a property descriptor for the Update Position feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdatePositionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Orientation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdateOrientationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -140,7 +187,9 @@
updateChildren(notification);
switch (notification.getFeatureID(VariableBasedShaderBasedMeshTool.class)) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION:
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION:
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariablePoseBullseyeToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariablePoseBullseyeToolItemProvider.java
index 816b9ea..fad9373 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariablePoseBullseyeToolItemProvider.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariablePoseBullseyeToolItemProvider.java
@@ -27,6 +27,7 @@
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
/**
@@ -58,6 +59,8 @@
super.getPropertyDescriptors(object);
addVariableFeatureReferencePropertyDescriptor(object);
+ addUpdatePositionPropertyDescriptor(object);
+ addUpdateOrientationPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -85,6 +88,50 @@
}
/**
+ * This adds a property descriptor for the Update Position feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdatePositionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Orientation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdateOrientationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -152,7 +199,9 @@
updateChildren(notification);
switch (notification.getFeatureID(VariablePoseBullseyeTool.class)) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION:
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION:
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedGridToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedGridToolItemProvider.java
index 7efe5f3..83b0060 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedGridToolItemProvider.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedGridToolItemProvider.java
@@ -27,6 +27,7 @@
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
/**
@@ -58,6 +59,8 @@
super.getPropertyDescriptors(object);
addVariableFeatureReferencePropertyDescriptor(object);
+ addUpdatePositionPropertyDescriptor(object);
+ addUpdateOrientationPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -85,6 +88,50 @@
}
/**
+ * This adds a property descriptor for the Update Position feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdatePositionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Orientation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdateOrientationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -152,7 +199,9 @@
updateChildren(notification);
switch (notification.getFeatureID(VariableShaderBasedGridTool.class)) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION:
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION:
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolItemProvider.java
new file mode 100644
index 0000000..efbcdc8
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.edit/src-gen/org/eclipse/apogy/core/environment/surface/provider/VariableShaderBasedProjectedImageMeshToolItemProvider.java
@@ -0,0 +1,240 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool;
+
+import org.eclipse.apogy.core.invocator.ApogyCoreInvocatorFactory;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class VariableShaderBasedProjectedImageMeshToolItemProvider extends ShaderBasedProjectedImageMeshToolCustomItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableShaderBasedProjectedImageMeshToolItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addVariableFeatureReferencePropertyDescriptor(object);
+ addUpdatePositionPropertyDescriptor(object);
+ addUpdateOrientationPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Variable Feature Reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addVariableFeatureReferencePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_variableFeatureReference_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_variableFeatureReference_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Position feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdatePositionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updatePosition_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Update Orientation feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUpdateOrientationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_VariableBasedShaderBasedMeshTool_updateOrientation_feature", "_UI_VariableBasedShaderBasedMeshTool_type"),
+ ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns VariableShaderBasedProjectedImageMeshTool.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableShaderBasedProjectedImageMeshTool"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((VariableShaderBasedProjectedImageMeshTool)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_VariableShaderBasedProjectedImageMeshTool_type") :
+ getString("_UI_VariableShaderBasedProjectedImageMeshTool_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(VariableShaderBasedProjectedImageMeshTool.class)) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION:
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE,
+ ApogyCoreInvocatorFactory.eINSTANCE.createVariableFeatureReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogySurfaceEnvironmentPackage.Literals.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE,
+ ApogyCoreInvocatorFactory.eINSTANCE.createOperationCall()));
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/bundle.properties b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/bundle.properties
index a66b30b..60ea145 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/bundle.properties
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/bundle.properties
@@ -303,3 +303,5 @@
_UI_VariableShaderBasedGridToolWizardPagesProvider_type = Variable Shader Based Grid Tool Wizard Pages Provider
_UI_ShaderBasedAngularDisplayMeshToolWizardPagesProvider_type = Shader Based Angular Display Mesh Tool Wizard Pages Provider
_UI_VariableAngularDisplayMeshToolWizardPagesProvider_type = Variable Angular Display Mesh Tool Wizard Pages Provider
+_UI_ShaderBasedProjectedImageMeshToolWizardPagesProvider_type = Shader Based Projected Image Mesh Tool Wizard Pages Provider
+_UI_VariableShaderBasedProjectedImageMeshToolProvider_type = Variable Shader Based Projected Image Mesh Tool Provider
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
new file mode 100644
index 0000000..ca61c9e
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshToolProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshToolProvider.gif
new file mode 100644
index 0000000..889f3af
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateAggregateContentNode_aggregateContent_VariableShaderBasedProjectedImageMeshToolProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
new file mode 100644
index 0000000..fa6b936
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshToolProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshToolProvider.gif
new file mode 100644
index 0000000..282f419
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/ctool16/CreateContentNode_content_VariableShaderBasedProjectedImageMeshToolProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshToolProvider.gif b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshToolProvider.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/icons/full/obj16/VariableShaderBasedProjectedImageMeshToolProvider.gif
Binary files differ
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ApogySurfaceEnvironmentUIItemProviderAdapterFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ApogySurfaceEnvironmentUIItemProviderAdapterFactory.java
index a9a052d..452f400 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ApogySurfaceEnvironmentUIItemProviderAdapterFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ApogySurfaceEnvironmentUIItemProviderAdapterFactory.java
@@ -1076,6 +1076,52 @@
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createShaderBasedProjectedImageMeshToolWizardPagesProviderAdapter() {
+ if (shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider == null) {
+ shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider = new ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider(this);
+ }
+
+ return shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableShaderBasedProjectedImageMeshToolProviderItemProvider variableShaderBasedProjectedImageMeshToolProviderItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVariableShaderBasedProjectedImageMeshToolProviderAdapter() {
+ if (variableShaderBasedProjectedImageMeshToolProviderItemProvider == null) {
+ variableShaderBasedProjectedImageMeshToolProviderItemProvider = new VariableShaderBasedProjectedImageMeshToolProviderItemProvider(this);
+ }
+
+ return variableShaderBasedProjectedImageMeshToolProviderItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1249,6 +1295,8 @@
if (variableAngularDisplayMeshToolWizardPagesProviderItemProvider != null) variableAngularDisplayMeshToolWizardPagesProviderItemProvider.dispose();
if (shaderBasedBullseyeToolWizardPagesProviderItemProvider != null) shaderBasedBullseyeToolWizardPagesProviderItemProvider.dispose();
if (variablePoseBullseyeToolWizardPagesProviderItemProvider != null) variablePoseBullseyeToolWizardPagesProviderItemProvider.dispose();
+ if (shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider != null) shaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider.dispose();
+ if (variableShaderBasedProjectedImageMeshToolProviderItemProvider != null) variableShaderBasedProjectedImageMeshToolProviderItemProvider.dispose();
}
/**
@@ -1702,6 +1750,16 @@
(ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
ApogySurfaceEnvironmentUIFactory.eINSTANCE.createVariablePoseBullseyeToolWizardPagesProvider()));
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
+ ApogySurfaceEnvironmentUIFactory.eINSTANCE.createShaderBasedProjectedImageMeshToolWizardPagesProvider()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.CONTENT_NODE__CONTENT,
+ ApogySurfaceEnvironmentUIFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshToolProvider()));
+
return null;
}
@@ -1922,6 +1980,16 @@
(ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
ApogySurfaceEnvironmentUIFactory.eINSTANCE.createVariablePoseBullseyeToolWizardPagesProvider()));
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
+ ApogySurfaceEnvironmentUIFactory.eINSTANCE.createShaderBasedProjectedImageMeshToolWizardPagesProvider()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ApogyCommonTopologyPackage.Literals.AGGREGATE_CONTENT_NODE__AGGREGATE_CONTENT,
+ ApogySurfaceEnvironmentUIFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshToolProvider()));
+
return null;
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider.java
new file mode 100644
index 0000000..e4d189c
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.apogy.common.emf.ui.emfforms.provider.NamedDescribedElementEMFFormsWizardPageProviderItemProvider;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider extends NamedDescribedElementEMFFormsWizardPageProviderItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns ShaderBasedProjectedImageMeshToolWizardPagesProvider.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ShaderBasedProjectedImageMeshToolWizardPagesProvider"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_ShaderBasedProjectedImageMeshToolWizardPagesProvider_type");
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/VariableShaderBasedProjectedImageMeshToolProviderItemProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/VariableShaderBasedProjectedImageMeshToolProviderItemProvider.java
new file mode 100644
index 0000000..ca5ba5f
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.edit/src-gen/org/eclipse/apogy/core/environment/surface/ui/provider/VariableShaderBasedProjectedImageMeshToolProviderItemProvider.java
@@ -0,0 +1,107 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VariableShaderBasedProjectedImageMeshToolProviderItemProvider extends ShaderBasedProjectedImageMeshToolWizardPagesProviderItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VariableShaderBasedProjectedImageMeshToolProviderItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns VariableShaderBasedProjectedImageMeshToolProvider.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/VariableShaderBasedProjectedImageMeshToolProvider"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_VariableShaderBasedProjectedImageMeshToolProvider_type");
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.frag b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.frag
index aa20c50..98efba2 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.frag
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.frag
@@ -24,6 +24,15 @@
uniform mat4 m_Tool6Matrix;
uniform mat4 m_Tool7Matrix;
+uniform sampler2D m_Tool0Texture2D;
+uniform sampler2D m_Tool1Texture2D;
+uniform sampler2D m_Tool2Texture2D;
+uniform sampler2D m_Tool3Texture2D;
+uniform sampler2D m_Tool4Texture2D;
+uniform sampler2D m_Tool5Texture2D;
+uniform sampler2D m_Tool6Texture2D;
+uniform sampler2D m_Tool7Texture2D;
+
uniform float[] m_Tool0;
uniform float[] m_Tool1;
uniform float[] m_Tool2;
@@ -50,6 +59,7 @@
const float TOOL_GRID_TYPE = 2.0;
const float TOOL_CIRCULAR_LINE_TYPE = 3.0;
const float TOOL_ANGULAR_TYPE = 4.0;
+const float TOOL_IMAGE_TYPE = 5.0;
// ShaderBasedMeshTool END
@@ -288,16 +298,35 @@
//-------------------------------------------------------------------------
-vec4 contourLineColor(vec3 position, float deltaZ, vec3 lineColor)
+vec4 projectedImageColor(vec3 position, mat4 matrix, float xDimension, float yDimension, sampler2D image, vec3 transparentColor)
{
- vec4 contourColor = vec4(0.0, 0.0, 0.0, 0.0);
+ vec4 imageColor = vec4(0.0, 0.0, 0.0, 0.0);
+ vec4 point = matrix * vec4(position.x, position.y, position.z, 1.0);
- if(abs(mod(position.z, deltaZ)) <= 0.1)
+ float u = (point.x + (xDimension / 2.0)) / xDimension;
+ float v = (point.y + (yDimension / 2.0)) / yDimension;
+
+ // Check image is visible.
+ if(xDimension > 0.0 && yDimension > 0.0)
{
- contourColor = vec4(lineColor, 1.0);
- }
+ if( (0.0 <= u) && (u <= 1.0) )
+ {
+ if( (0.0 <= v) && (v <= 1.0) )
+ {
+ // Sample the texture.
+ vec2 texCoord = vec2(u, v);
+ imageColor = texture2D(image, texCoord);
+
+ // White is set to transparent.
+ if(imageColor.r == transparentColor.r && imageColor.g == transparentColor.g && imageColor.b == transparentColor.b)
+ {
+ imageColor = vec4(0.0, 0.0, 0.0, 0.0);
+ }
+ }
+ }
+ }
- return contourColor;
+ return imageColor;
}
//-------------------------------------------------------------------------
@@ -1598,10 +1627,10 @@
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0);
}
-
//-------------------------------------------------------------------------
-void main(){
+void main()
+{
vec2 newTexCoord;
#if (defined(PARALLAXMAP) || (defined(NORMALMAP_PARALLAX) && defined(NORMALMAP))) && !defined(VERTEX_LIGHTING)
@@ -1779,9 +1808,13 @@
float tool_param_14 = 0.0;
float tool_param_15 = 0.0;
- // Color produced by the tool.
+ // Color produced by the tool being processed.
vec4 toolColor = vec4(0.0, 0.0, 0.0, 0.0);
+
+ vec4 toolsColors[NUMBER_OF_TOOLS] = vec4[NUMBER_OF_TOOLS](vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0));
+ float[NUMBER_OF_TOOLS] toolsAlphas = float[NUMBER_OF_TOOLS](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+ float enabledToolCount = 0.0;
for(int i = 0; i < NUMBER_OF_TOOLS; i++)
{
// Clear previous tool color.
@@ -1808,10 +1841,15 @@
tool_param_13 = getToolParameter13(i);
tool_param_14 = getToolParameter14(i);
tool_param_15 = getToolParameter15(i);
+
+ // Records the tool alpha value.
+ toolsAlphas[i] = tool_alpha;
// If the tool is enabled.
if(tool_enable == 1.0)
{
+ enabledToolCount += 1.0;
+
// Get the tool matrix.
toolMatrix = getToolMatrix(i);
@@ -1873,30 +1911,72 @@
toolColor = angularToolColor(myPosition, toolMatrix, lineColor, minRadius, maxRadius, startAngle, endAngle, angleInterval, lineWidth);
}
-
- // If the tool returns a non transparent color, mix it with the fragment color.
- if(toolColor.a > 0.0)
- {
- float originalLuminance = length(gl_FragColor.rgb);
-
- vec3 tempColor = vec3(gl_FragColor.rgb);
- tempColor += tool_alpha * toolColor.rgb;
- float newLuminance = length(tempColor.rgb);
-
- //gl_FragColor.rgb *= tempColor;
-
- // Rescale
- float t = 1.0;
- if(tool_alpha > 0.5)
- {
- t = 1.0 + (tool_alpha - 0.5);
- }
-
- gl_FragColor.rgb = ((originalLuminance / newLuminance) * t) * tempColor;
- }
+
+ if(tool_type == TOOL_IMAGE_TYPE)
+ {
+ float xDimension = tool_param_0;
+ float yDimension = tool_param_1;
+ vec3 transparentColor = vec3(tool_param_2,tool_param_3,tool_param_4);
+
+ if(i == 0)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool0Texture2D, transparentColor);
+ }
+ else if(i == 1)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool1Texture2D, transparentColor);
+ }
+ else if(i == 2)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool2Texture2D, transparentColor);
+ }
+ else if(i == 3)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool3Texture2D, transparentColor);
+ }
+ else if(i == 4)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool4Texture2D, transparentColor);
+ }
+ else if(i == 5)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool5Texture2D, transparentColor);
+ }
+ else if(i == 6)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool6Texture2D, transparentColor);
+ }
+ else if(i == 7)
+ {
+ toolColor = projectedImageColor(myPosition, toolMatrix, xDimension, yDimension, m_Tool7Texture2D, transparentColor);
+ }
+ }
}
- }
-
+ else
+ {
+ // Effective tool alpha is zero when tool is disabled.
+ toolsAlphas[i] = 0.0;
+ }
+
+ // Records the color produced by the tool.
+ toolsColors[i] = toolColor;
+ }
+
+ // Computes the color generated by all the tools.
+ vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
+
+ if(enabledToolCount > 0.0)
+ {
+ for(int i =0; i < NUMBER_OF_TOOLS; i++)
+ {
+ color = color * (1.0 - toolsAlphas[i]) + toolsAlphas[i] * toolsColors[i];
+ }
+
+ if(color.a > 1.0) color.a = 1.0;
+
+ gl_FragColor = gl_FragColor * (1.0 - color.a) + color.a * color;
+ }
+
// Experimental
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.j3md b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.j3md
index 6b8c00f..14e0fca 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.j3md
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/assets/MatDefs/TerrainLighting.j3md
@@ -142,6 +142,15 @@
Matrix4 Tool6Matrix
Matrix4 Tool7Matrix
+ Texture2D Tool0Texture2D
+ Texture2D Tool1Texture2D
+ Texture2D Tool2Texture2D
+ Texture2D Tool3Texture2D
+ Texture2D Tool4Texture2D
+ Texture2D Tool5Texture2D
+ Texture2D Tool6Texture2D
+ Texture2D Tool7Texture2D
+
FloatArray Tool0
FloatArray Tool1
FloatArray Tool2
@@ -156,8 +165,8 @@
LightMode MultiPass
- VertexShader GLSL100: MatDefs/TerrainLighting.vert
- FragmentShader GLSL100: MatDefs/TerrainLighting.frag
+ VertexShader GLSL120: MatDefs/TerrainLighting.vert
+ FragmentShader GLSL120: MatDefs/TerrainLighting.frag
WorldParameters {
WorldViewProjectionMatrix
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/src/org/eclipse/apogy/core/environment/surface/ui/jme3/scene_objects/CartesianTriangularMeshMapLayerNodeJM3SceneObject.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/src/org/eclipse/apogy/core/environment/surface/ui/jme3/scene_objects/CartesianTriangularMeshMapLayerNodeJM3SceneObject.java
index 08a1937..0446f58 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/src/org/eclipse/apogy/core/environment/surface/ui/jme3/scene_objects/CartesianTriangularMeshMapLayerNodeJM3SceneObject.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui.jme3/src/org/eclipse/apogy/core/environment/surface/ui/jme3/scene_objects/CartesianTriangularMeshMapLayerNodeJM3SceneObject.java
@@ -40,6 +40,7 @@
import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
import org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshMapLayer;
import org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshMapLayerNode;
+import org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool;
import org.eclipse.apogy.core.environment.surface.ShaderBasedMeshTool;
import org.eclipse.apogy.core.environment.surface.ui.scene_objects.CartesianTriangularMeshMapLayerNodeSceneObject;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -442,6 +443,9 @@
Matrix4f m = createMatrix4f(ApogyCommonMathFacade.INSTANCE.createIdentityMatrix4x4());
mat.setMatrix4(getToolMatrixNameForIndex(i), m);
+ // Initialise the textures.
+ mat.setTexture(getToolTextureNameForIndex(i), null);
+
// Initialises the tool parameters array.
float [] parameters = new float[NUMBER_OF_PARAMETERS];
mat.setParam(getToolParamNameForIndex(i), VarType.FloatArray, parameters);
@@ -507,6 +511,17 @@
Matrix4f m = createMatrix4f(tool.createToolMatrix());
mat.setParam(getToolMatrixNameForIndex(toolIndex), VarType.Matrix4, m);
+ if(tool instanceof ImageBasedShaderBasedMeshTool)
+ {
+ ImageBasedShaderBasedMeshTool t = (ImageBasedShaderBasedMeshTool) tool;
+ AbstractEImage image = t.getImage();
+ if(image != null)
+ {
+ Texture2D texture = createTexture(image);
+ mat.setTexture(getToolTextureNameForIndex(toolIndex), texture);
+ }
+ }
+
float [] parameters = tool.createShaderParameters();
mat.setParam(getToolParamNameForIndex(toolIndex), VarType.FloatArray, parameters);
@@ -517,7 +532,8 @@
{
Matrix4f m = createMatrix4f(ApogyCommonMathFacade.INSTANCE.createIdentityMatrix4x4());
mat.setParam(getToolMatrixNameForIndex(toolIndex), VarType.Matrix4, m);
- mat.setParam(getToolParamNameForIndex(toolIndex), VarType.FloatArray, new float[NUMBER_OF_PARAMETERS]);
+ mat.setParam(getToolParamNameForIndex(toolIndex), VarType.FloatArray, new float[NUMBER_OF_PARAMETERS]);
+ mat.setTexture(getToolTextureNameForIndex(i), null);
}
}
}
@@ -531,6 +547,17 @@
Matrix4f m = createMatrix4f(tool.createToolMatrix());
mat.setParam(getToolMatrixNameForIndex(toolIndex), VarType.Matrix4, m);
+ if(tool instanceof ImageBasedShaderBasedMeshTool)
+ {
+ ImageBasedShaderBasedMeshTool t = (ImageBasedShaderBasedMeshTool) tool;
+ AbstractEImage image = t.getImage();
+ if(image != null)
+ {
+ Texture2D texture = createTexture(image);
+ mat.setTexture(getToolTextureNameForIndex(toolIndex), texture);
+ }
+ }
+
float [] parameters = tool.createShaderParameters();
mat.setParam(getToolParamNameForIndex(toolIndex), VarType.FloatArray, parameters);
}
@@ -541,6 +568,11 @@
return "Tool" + toolIndex + "Matrix";
}
+ private String getToolTextureNameForIndex(int toolIndex)
+ {
+ return "Tool" + toolIndex + "Texture2D";
+ }
+
private String getToolParamNameForIndex(int toolIndex)
{
return "Tool" + toolIndex;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/model/apogy_core_environment_surface_ui.xcore b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/model/apogy_core_environment_surface_ui.xcore
index 89bc896..b73d0b8 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/model/apogy_core_environment_surface_ui.xcore
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/model/apogy_core_environment_surface_ui.xcore
@@ -746,3 +746,15 @@
class VariablePoseBullseyeToolWizardPagesProvider extends NamedDescribedElementEMFFormsWizardPageProvider
{
}
+
+// Wizard Support for ShaderBasedProjectedImageMeshTool
+@Apogy(hasCustomClass="true")
+class ShaderBasedProjectedImageMeshToolWizardPagesProvider extends NamedDescribedElementEMFFormsWizardPageProvider
+{
+}
+
+// Wizard Support for ShaderBasedProjectedImageMeshToolWizardPagesProvider
+@Apogy(hasCustomClass="true")
+class VariableShaderBasedProjectedImageMeshToolProvider extends ShaderBasedProjectedImageMeshToolWizardPagesProvider
+{
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/plugin.xml b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/plugin.xml
index 4bf9177..46e6161 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/plugin.xml
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/plugin.xml
@@ -164,6 +164,10 @@
<extension point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+<file filePath="viewModels/VariableShaderBasedProjectedImageMeshTool.view"/>
+
+<file filePath="viewModels/ShaderBasedProjectedImageMeshTool.view"/>
+
<file filePath="viewModels/VariableShaderBasedGridTool.view"/>
<file filePath="viewModels/VariableAngularDisplayMeshTool.view"/>
@@ -262,5 +266,13 @@
eClass="org.eclipse.apogy.core.environment.surface.VariableAngularDisplayMeshTool"
provider="org.eclipse.apogy.core.environment.surface.ui.VariableAngularDisplayMeshToolWizardPagesProvider">
</WizardPages>
+ <WizardPages
+ eClass="org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool"
+ provider="org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider">
+ </WizardPages>
+ <WizardPages
+ eClass="org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool"
+ provider="org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider">
+ </WizardPages>
</extension>
</plugin>
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl.java
new file mode 100644
index 0000000..05f26a0
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl.java
@@ -0,0 +1,65 @@
+package org.eclipse.apogy.core.environment.surface.ui.impl;
+
+import org.eclipse.apogy.common.emf.ApogyCommonEMFFacade;
+import org.eclipse.apogy.common.emf.ui.EClassSettings;
+import org.eclipse.apogy.common.emf.ui.MapBasedEClassSettings;
+import org.eclipse.apogy.common.images.ApogyCommonImagesFactory;
+import org.eclipse.apogy.common.images.URLEImage;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentFactory;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
+import org.eclipse.apogy.core.environment.surface.ui.wizards.ShaderBasedProjectedImageMeshToolImageURLWizardPage;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.wizard.WizardPage;
+
+public class ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl extends ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl
+{
+ @Override
+ public EObject createEObject(EClass eClass, EClassSettings settings)
+ {
+ ShaderBasedProjectedImageMeshTool tool = ApogySurfaceEnvironmentFactory.eINSTANCE.createShaderBasedProjectedImageMeshTool();
+ tool.setDescription(ApogyCommonEMFFacade.INSTANCE.getDocumentation(ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL));
+
+ // Force tool to update its position and rotation
+ tool.getPosition();
+ tool.getRotationMatrix();
+
+ URLEImage image = ApogyCommonImagesFactory.eINSTANCE.createURLEImage();
+ image.setUrl("file:///home/pallard/Pictures/Pattern.png");
+ tool.setImage(image);
+
+ if (settings instanceof MapBasedEClassSettings)
+ {
+ MapBasedEClassSettings mapBasedEClassSettings = (MapBasedEClassSettings) settings;
+
+ if(mapBasedEClassSettings.getUserDataMap().get("name") != null)
+ {
+ tool.setName((String) mapBasedEClassSettings.getUserDataMap().get("name"));
+ }
+ }
+ else
+ {
+ tool.setName(ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL.getName());
+ }
+
+ return tool;
+ }
+
+ @Override
+ public EList<WizardPage> instantiateWizardPages(EObject eObject, EClassSettings settings)
+ {
+ EList<WizardPage> list = new BasicEList<>();
+ list.addAll(super.instantiateWizardPages(eObject, settings));
+
+ ShaderBasedProjectedImageMeshTool tool = (ShaderBasedProjectedImageMeshTool) eObject;
+
+ // Add pages to create the image.
+ ShaderBasedProjectedImageMeshToolImageURLWizardPage page = new ShaderBasedProjectedImageMeshToolImageURLWizardPage(tool);
+ list.add(page);
+
+ return list;
+ }
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderCustomImpl.java
new file mode 100644
index 0000000..96acb02
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen-custom/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderCustomImpl.java
@@ -0,0 +1,81 @@
+package org.eclipse.apogy.core.environment.surface.ui.impl;
+
+import org.eclipse.apogy.common.emf.ApogyCommonEMFFacade;
+import org.eclipse.apogy.common.emf.ui.EClassSettings;
+import org.eclipse.apogy.common.emf.ui.MapBasedEClassSettings;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentFactory;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool;
+import org.eclipse.apogy.core.invocator.ApogyCoreInvocatorFactory;
+import org.eclipse.apogy.core.invocator.ui.wizards.VariableFeatureReferenceWizardPage;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.wizard.WizardPage;
+
+public class VariableShaderBasedProjectedImageMeshToolProviderCustomImpl extends VariableShaderBasedProjectedImageMeshToolProviderImpl
+{
+ public EObject createEObject(EClass eClass, EClassSettings settings)
+ {
+ VariableShaderBasedProjectedImageMeshTool tool = ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableShaderBasedProjectedImageMeshTool();
+ tool.setVariableFeatureReference(ApogyCoreInvocatorFactory.eINSTANCE.createVariableFeatureReference());
+ tool.setDescription(ApogyCommonEMFFacade.INSTANCE.getDocumentation(ApogySurfaceEnvironmentPackage.Literals.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL));
+
+ // Force position and rotation update
+ tool.getPosition();
+ tool.getRotationMatrix();
+ tool.getRelativePosition();
+ tool.getRelativeRotationMatrix();
+
+ if (settings instanceof MapBasedEClassSettings)
+ {
+ MapBasedEClassSettings mapBasedEClassSettings = (MapBasedEClassSettings) settings;
+
+ if(mapBasedEClassSettings.getUserDataMap().get("name") != null)
+ {
+ tool.setName((String) mapBasedEClassSettings.getUserDataMap().get("name"));
+ }
+ }
+ else
+ {
+ tool.setName(ApogySurfaceEnvironmentPackage.Literals.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL.getName());
+ }
+
+
+ return tool;
+ }
+
+ @Override
+ public EList<WizardPage> instantiateWizardPages(EObject eObject, EClassSettings settings)
+ {
+ EList<WizardPage> list = new BasicEList<>();
+ list.addAll(super.instantiateWizardPages(eObject, settings));
+
+ VariableShaderBasedProjectedImageMeshTool tool = (VariableShaderBasedProjectedImageMeshTool) eObject;
+
+ // Add pages to create the tool.
+ VariableFeatureReferenceWizardPage variableFeatureReferenceWizardPage = new VariableFeatureReferenceWizardPage(tool.getVariableFeatureReference())
+ {
+ @Override
+ protected void validate()
+ {
+ String errorStr = null;
+
+ if (getResolvedEObject().getVariable() == null)
+ {
+ errorStr = "Select the Variable.";
+ }
+ setErrorMessage(errorStr);
+ setPageComplete(errorStr == null);
+ }
+ };
+ variableFeatureReferenceWizardPage.setTitle("Variable Feature Selection.");
+ variableFeatureReferenceWizardPage.setDescription("Select Variable Feature for which to track the pose.");
+ pages.add(variableFeatureReferenceWizardPage);
+
+ return list;
+ }
+
+
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIFactory.java
index 416e1af..a47404c 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIFactory.java
@@ -413,6 +413,24 @@
VariablePoseBullseyeToolWizardPagesProvider createVariablePoseBullseyeToolWizardPagesProvider();
/**
+ * Returns a new object of class '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>'.
+ * @generated
+ */
+ ShaderBasedProjectedImageMeshToolWizardPagesProvider createShaderBasedProjectedImageMeshToolWizardPagesProvider();
+
+ /**
+ * Returns a new object of class '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>'.
+ * @generated
+ */
+ VariableShaderBasedProjectedImageMeshToolProvider createVariableShaderBasedProjectedImageMeshToolProvider();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIPackage.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIPackage.java
index 8d4b2f5..2ade500 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIPackage.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ApogySurfaceEnvironmentUIPackage.java
@@ -4877,6 +4877,188 @@
int VARIABLE_POSE_BULLSEYE_TOOL_WIZARD_PAGES_PROVIDER_OPERATION_COUNT = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER_OPERATION_COUNT + 0;
/**
+ * The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.ui.impl.ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl <em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getShaderBasedProjectedImageMeshToolWizardPagesProvider()
+ * @generated
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER = 49;
+
+ /**
+ * The feature id for the '<em><b>Pages</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER__PAGES = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER__PAGES;
+
+ /**
+ * The feature id for the '<em><b>EObject</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER__EOBJECT = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER__EOBJECT;
+
+ /**
+ * The number of structural features of the '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER_FEATURE_COUNT = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Pages</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_PAGES__ECLASS_ECLASSSETTINGS = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER___GET_PAGES__ECLASS_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Create EObject</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___CREATE_EOBJECT__ECLASS_ECLASSSETTINGS = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER___CREATE_EOBJECT__ECLASS_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Instantiate Wizard Pages</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___INSTANTIATE_WIZARD_PAGES__EOBJECT_ECLASSSETTINGS = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER___INSTANTIATE_WIZARD_PAGES__EOBJECT_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Get Perform Finish Commands</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_PERFORM_FINISH_COMMANDS__EOBJECT_ECLASSSETTINGS_EDITINGDOMAIN = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER___GET_PERFORM_FINISH_COMMANDS__EOBJECT_ECLASSSETTINGS_EDITINGDOMAIN;
+
+ /**
+ * The operation id for the '<em>Get Next Page</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_NEXT_PAGE__IWIZARDPAGE = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER___GET_NEXT_PAGE__IWIZARDPAGE;
+
+ /**
+ * The number of operations of the '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER_OPERATION_COUNT = ApogyCommonEMFUiEMFFormsPackage.NAMED_DESCRIBED_ELEMENT_EMF_FORMS_WIZARD_PAGE_PROVIDER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.ui.impl.VariableShaderBasedProjectedImageMeshToolProviderImpl <em>Variable Shader Based Projected Image Mesh Tool Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.VariableShaderBasedProjectedImageMeshToolProviderImpl
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getVariableShaderBasedProjectedImageMeshToolProvider()
+ * @generated
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER = 50;
+
+ /**
+ * The feature id for the '<em><b>Pages</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER__PAGES = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER__PAGES;
+
+ /**
+ * The feature id for the '<em><b>EObject</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER__EOBJECT = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER__EOBJECT;
+
+ /**
+ * The number of structural features of the '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER_FEATURE_COUNT = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER_FEATURE_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Pages</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER___GET_PAGES__ECLASS_ECLASSSETTINGS = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_PAGES__ECLASS_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Create EObject</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER___CREATE_EOBJECT__ECLASS_ECLASSSETTINGS = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___CREATE_EOBJECT__ECLASS_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Instantiate Wizard Pages</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER___INSTANTIATE_WIZARD_PAGES__EOBJECT_ECLASSSETTINGS = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___INSTANTIATE_WIZARD_PAGES__EOBJECT_ECLASSSETTINGS;
+
+ /**
+ * The operation id for the '<em>Get Perform Finish Commands</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER___GET_PERFORM_FINISH_COMMANDS__EOBJECT_ECLASSSETTINGS_EDITINGDOMAIN = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_PERFORM_FINISH_COMMANDS__EOBJECT_ECLASSSETTINGS_EDITINGDOMAIN;
+
+ /**
+ * The operation id for the '<em>Get Next Page</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER___GET_NEXT_PAGE__IWIZARDPAGE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER___GET_NEXT_PAGE__IWIZARDPAGE;
+
+ /**
+ * The number of operations of the '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER_OPERATION_COUNT = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER_OPERATION_COUNT + 0;
+
+ /**
* The meta object id for the '<em>List</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4884,7 +5066,7 @@
* @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getList()
* @generated
*/
- int LIST = 49;
+ int LIST = 51;
/**
* The meta object id for the '<em>Hash Map</em>' data type.
@@ -4894,7 +5076,7 @@
* @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getHashMap()
* @generated
*/
- int HASH_MAP = 50;
+ int HASH_MAP = 52;
/**
* The meta object id for the '<em>Point2d</em>' data type.
@@ -4904,7 +5086,7 @@
* @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getPoint2d()
* @generated
*/
- int POINT2D = 51;
+ int POINT2D = 53;
/**
* The meta object id for the '<em>Point3f</em>' data type.
@@ -4914,7 +5096,7 @@
* @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getPoint3f()
* @generated
*/
- int POINT3F = 52;
+ int POINT3F = 54;
/**
@@ -6151,6 +6333,26 @@
EClass getVariablePoseBullseyeToolWizardPagesProvider();
/**
+ * Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider <em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider
+ * @generated
+ */
+ EClass getShaderBasedProjectedImageMeshToolWizardPagesProvider();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider <em>Variable Shader Based Projected Image Mesh Tool Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider
+ * @generated
+ */
+ EClass getVariableShaderBasedProjectedImageMeshToolProvider();
+
+ /**
* Returns the meta object for data type '{@link java.util.List <em>List</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -7260,6 +7462,26 @@
EClass VARIABLE_POSE_BULLSEYE_TOOL_WIZARD_PAGES_PROVIDER = eINSTANCE.getVariablePoseBullseyeToolWizardPagesProvider();
/**
+ * The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.ui.impl.ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl <em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getShaderBasedProjectedImageMeshToolWizardPagesProvider()
+ * @generated
+ */
+ EClass SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER = eINSTANCE.getShaderBasedProjectedImageMeshToolWizardPagesProvider();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.ui.impl.VariableShaderBasedProjectedImageMeshToolProviderImpl <em>Variable Shader Based Projected Image Mesh Tool Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.VariableShaderBasedProjectedImageMeshToolProviderImpl
+ * @see org.eclipse.apogy.core.environment.surface.ui.impl.ApogySurfaceEnvironmentUIPackageImpl#getVariableShaderBasedProjectedImageMeshToolProvider()
+ * @generated
+ */
+ EClass VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER = eINSTANCE.getVariableShaderBasedProjectedImageMeshToolProvider();
+
+ /**
* The meta object literal for the '<em>List</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ShaderBasedProjectedImageMeshToolWizardPagesProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ShaderBasedProjectedImageMeshToolWizardPagesProvider.java
new file mode 100644
index 0000000..229cc18
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/ShaderBasedProjectedImageMeshToolWizardPagesProvider.java
@@ -0,0 +1,32 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui;
+
+import org.eclipse.apogy.common.emf.ui.emfforms.NamedDescribedElementEMFFormsWizardPageProvider;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shader Based Projected Image Mesh Tool Wizard Pages Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.apogy.core.environment.surface.ui.ApogySurfaceEnvironmentUIPackage#getShaderBasedProjectedImageMeshToolWizardPagesProvider()
+ * @model annotation="http://www.eclipse.org/apogy hasCustomClass='true'"
+ * @generated
+ */
+public interface ShaderBasedProjectedImageMeshToolWizardPagesProvider extends NamedDescribedElementEMFFormsWizardPageProvider {
+
+} // ShaderBasedProjectedImageMeshToolWizardPagesProvider
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/VariableShaderBasedProjectedImageMeshToolProvider.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/VariableShaderBasedProjectedImageMeshToolProvider.java
new file mode 100644
index 0000000..17d9028
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/VariableShaderBasedProjectedImageMeshToolProvider.java
@@ -0,0 +1,31 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Shader Based Projected Image Mesh Tool Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.apogy.core.environment.surface.ui.ApogySurfaceEnvironmentUIPackage#getVariableShaderBasedProjectedImageMeshToolProvider()
+ * @model annotation="http://www.eclipse.org/apogy hasCustomClass='true'"
+ * @generated
+ */
+public interface VariableShaderBasedProjectedImageMeshToolProvider extends ShaderBasedProjectedImageMeshToolWizardPagesProvider {
+
+} // VariableShaderBasedProjectedImageMeshToolProvider
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIFactoryImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIFactoryImpl.java
index eb0587f..030c1bf 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIFactoryImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIFactoryImpl.java
@@ -118,6 +118,8 @@
case ApogySurfaceEnvironmentUIPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL_WIZARD_PAGES_PROVIDER: return createVariableAngularDisplayMeshToolWizardPagesProvider();
case ApogySurfaceEnvironmentUIPackage.SHADER_BASED_BULLSEYE_TOOL_WIZARD_PAGES_PROVIDER: return createShaderBasedBullseyeToolWizardPagesProvider();
case ApogySurfaceEnvironmentUIPackage.VARIABLE_POSE_BULLSEYE_TOOL_WIZARD_PAGES_PROVIDER: return createVariablePoseBullseyeToolWizardPagesProvider();
+ case ApogySurfaceEnvironmentUIPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER: return createShaderBasedProjectedImageMeshToolWizardPagesProvider();
+ case ApogySurfaceEnvironmentUIPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER: return createVariableShaderBasedProjectedImageMeshToolProvider();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -632,6 +634,28 @@
* <!-- end-user-doc -->
* @generated
*/
+ @Override
+ public ShaderBasedProjectedImageMeshToolWizardPagesProvider createShaderBasedProjectedImageMeshToolWizardPagesProvider() {
+ ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl shaderBasedProjectedImageMeshToolWizardPagesProvider = new ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl();
+ return shaderBasedProjectedImageMeshToolWizardPagesProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public VariableShaderBasedProjectedImageMeshToolProvider createVariableShaderBasedProjectedImageMeshToolProvider() {
+ VariableShaderBasedProjectedImageMeshToolProviderImpl variableShaderBasedProjectedImageMeshToolProvider = new VariableShaderBasedProjectedImageMeshToolProviderCustomImpl();
+ return variableShaderBasedProjectedImageMeshToolProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public List<?> createListFromString(EDataType eDataType, String initialValue) {
return (List<?>)super.createFromString(initialValue);
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIPackageImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIPackageImpl.java
index 8076167..ba63af7 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIPackageImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ApogySurfaceEnvironmentUIPackageImpl.java
@@ -91,6 +91,7 @@
import org.eclipse.apogy.core.environment.surface.ui.ShaderBasedBullseyeToolWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.ShaderBasedDiscreteSlopesToolWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.ShaderBasedGridToolWizardPagesProvider;
+import org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.SurfaceWorksiteSettings;
import org.eclipse.apogy.core.environment.surface.ui.TopologyTreeMapLayerWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.TrajectoryPickingTool;
@@ -99,6 +100,7 @@
import org.eclipse.apogy.core.environment.surface.ui.VariableAngularDisplayMeshToolWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.VariablePoseBullseyeToolWizardPagesProvider;
import org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedGridToolWizardPagesProvider;
+import org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider;
import org.eclipse.apogy.core.environment.surface.ui.VariableTrajectoryAnnotation;
import org.eclipse.apogy.core.environment.surface.ui.VariableTrajectoryProvider;
import org.eclipse.apogy.core.environment.surface.ui.VehicleVariableAnnotation;
@@ -471,6 +473,20 @@
* <!-- end-user-doc -->
* @generated
*/
+ private EClass shaderBasedProjectedImageMeshToolWizardPagesProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableShaderBasedProjectedImageMeshToolProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EDataType listEDataType = null;
/**
@@ -1760,6 +1776,26 @@
* @generated
*/
@Override
+ public EClass getShaderBasedProjectedImageMeshToolWizardPagesProvider() {
+ return shaderBasedProjectedImageMeshToolWizardPagesProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVariableShaderBasedProjectedImageMeshToolProvider() {
+ return variableShaderBasedProjectedImageMeshToolProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EDataType getList() {
return listEDataType;
}
@@ -1990,6 +2026,10 @@
variablePoseBullseyeToolWizardPagesProviderEClass = createEClass(VARIABLE_POSE_BULLSEYE_TOOL_WIZARD_PAGES_PROVIDER);
+ shaderBasedProjectedImageMeshToolWizardPagesProviderEClass = createEClass(SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER);
+
+ variableShaderBasedProjectedImageMeshToolProviderEClass = createEClass(VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER);
+
// Create data types
listEDataType = createEDataType(LIST);
hashMapEDataType = createEDataType(HASH_MAP);
@@ -2090,6 +2130,8 @@
variableAngularDisplayMeshToolWizardPagesProviderEClass.getESuperTypes().add(theApogyCommonEMFUiEMFFormsPackage.getNamedDescribedElementEMFFormsWizardPageProvider());
shaderBasedBullseyeToolWizardPagesProviderEClass.getESuperTypes().add(theApogyCommonEMFUiEMFFormsPackage.getNamedDescribedElementEMFFormsWizardPageProvider());
variablePoseBullseyeToolWizardPagesProviderEClass.getESuperTypes().add(theApogyCommonEMFUiEMFFormsPackage.getNamedDescribedElementEMFFormsWizardPageProvider());
+ shaderBasedProjectedImageMeshToolWizardPagesProviderEClass.getESuperTypes().add(theApogyCommonEMFUiEMFFormsPackage.getNamedDescribedElementEMFFormsWizardPageProvider());
+ variableShaderBasedProjectedImageMeshToolProviderEClass.getESuperTypes().add(this.getShaderBasedProjectedImageMeshToolWizardPagesProvider());
// Initialize classes, features, and operations; add parameters
initEClass(abstractSurfaceWorksitePresentationEClass, AbstractSurfaceWorksitePresentation.class, "AbstractSurfaceWorksitePresentation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2312,6 +2354,10 @@
initEClass(variablePoseBullseyeToolWizardPagesProviderEClass, VariablePoseBullseyeToolWizardPagesProvider.class, "VariablePoseBullseyeToolWizardPagesProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEClass(shaderBasedProjectedImageMeshToolWizardPagesProviderEClass, ShaderBasedProjectedImageMeshToolWizardPagesProvider.class, "ShaderBasedProjectedImageMeshToolWizardPagesProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(variableShaderBasedProjectedImageMeshToolProviderEClass, VariableShaderBasedProjectedImageMeshToolProvider.class, "VariableShaderBasedProjectedImageMeshToolProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
// Initialize data types
initEDataType(listEDataType, List.class, "List", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(hashMapEDataType, HashMap.class, "HashMap", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
@@ -3121,6 +3167,18 @@
new String[] {
"hasCustomClass", "true"
});
+ addAnnotation
+ (shaderBasedProjectedImageMeshToolWizardPagesProviderEClass,
+ source,
+ new String[] {
+ "hasCustomClass", "true"
+ });
+ addAnnotation
+ (variableShaderBasedProjectedImageMeshToolProviderEClass,
+ source,
+ new String[] {
+ "hasCustomClass", "true"
+ });
}
} //ApogySurfaceEnvironmentUIPackageImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl.java
new file mode 100644
index 0000000..61cd741
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl.java
@@ -0,0 +1,52 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui.impl;
+
+import org.eclipse.apogy.common.emf.ui.emfforms.impl.NamedDescribedElementEMFFormsWizardPageProviderCustomImpl;
+
+import org.eclipse.apogy.core.environment.surface.ui.ApogySurfaceEnvironmentUIPackage;
+import org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shader Based Projected Image Mesh Tool Wizard Pages Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl extends NamedDescribedElementEMFFormsWizardPageProviderCustomImpl implements ShaderBasedProjectedImageMeshToolWizardPagesProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ApogySurfaceEnvironmentUIPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER;
+ }
+
+} //ShaderBasedProjectedImageMeshToolWizardPagesProviderImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderImpl.java
new file mode 100644
index 0000000..d041a85
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/impl/VariableShaderBasedProjectedImageMeshToolProviderImpl.java
@@ -0,0 +1,50 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ * Regent L'Archeveque
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.ui.impl;
+
+import org.eclipse.apogy.core.environment.surface.ui.ApogySurfaceEnvironmentUIPackage;
+import org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Shader Based Projected Image Mesh Tool Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class VariableShaderBasedProjectedImageMeshToolProviderImpl extends ShaderBasedProjectedImageMeshToolWizardPagesProviderCustomImpl implements VariableShaderBasedProjectedImageMeshToolProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableShaderBasedProjectedImageMeshToolProviderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ApogySurfaceEnvironmentUIPackage.Literals.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER;
+ }
+
+} //VariableShaderBasedProjectedImageMeshToolProviderImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUIAdapterFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUIAdapterFactory.java
index 5fa0412..52aeb24 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUIAdapterFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUIAdapterFactory.java
@@ -294,6 +294,14 @@
return createVariablePoseBullseyeToolWizardPagesProviderAdapter();
}
@Override
+ public Adapter caseShaderBasedProjectedImageMeshToolWizardPagesProvider(ShaderBasedProjectedImageMeshToolWizardPagesProvider object) {
+ return createShaderBasedProjectedImageMeshToolWizardPagesProviderAdapter();
+ }
+ @Override
+ public Adapter caseVariableShaderBasedProjectedImageMeshToolProvider(VariableShaderBasedProjectedImageMeshToolProvider object) {
+ return createVariableShaderBasedProjectedImageMeshToolProviderAdapter();
+ }
+ @Override
public Adapter caseNodePresentation(NodePresentation object) {
return createNodePresentationAdapter();
}
@@ -1040,6 +1048,34 @@
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider <em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.apogy.core.environment.surface.ui.ShaderBasedProjectedImageMeshToolWizardPagesProvider
+ * @generated
+ */
+ public Adapter createShaderBasedProjectedImageMeshToolWizardPagesProviderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider <em>Variable Shader Based Projected Image Mesh Tool Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.apogy.core.environment.surface.ui.VariableShaderBasedProjectedImageMeshToolProvider
+ * @generated
+ */
+ public Adapter createVariableShaderBasedProjectedImageMeshToolProviderAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.apogy.common.topology.ui.NodePresentation <em>Node Presentation</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUISwitch.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUISwitch.java
index 4624e3a..4b34665 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUISwitch.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src-gen/org/eclipse/apogy/core/environment/surface/ui/util/ApogySurfaceEnvironmentUISwitch.java
@@ -486,6 +486,23 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case ApogySurfaceEnvironmentUIPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_WIZARD_PAGES_PROVIDER: {
+ ShaderBasedProjectedImageMeshToolWizardPagesProvider shaderBasedProjectedImageMeshToolWizardPagesProvider = (ShaderBasedProjectedImageMeshToolWizardPagesProvider)theEObject;
+ T result = caseShaderBasedProjectedImageMeshToolWizardPagesProvider(shaderBasedProjectedImageMeshToolWizardPagesProvider);
+ if (result == null) result = caseNamedDescribedElementEMFFormsWizardPageProvider(shaderBasedProjectedImageMeshToolWizardPagesProvider);
+ if (result == null) result = caseWizardPagesProvider(shaderBasedProjectedImageMeshToolWizardPagesProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ApogySurfaceEnvironmentUIPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_PROVIDER: {
+ VariableShaderBasedProjectedImageMeshToolProvider variableShaderBasedProjectedImageMeshToolProvider = (VariableShaderBasedProjectedImageMeshToolProvider)theEObject;
+ T result = caseVariableShaderBasedProjectedImageMeshToolProvider(variableShaderBasedProjectedImageMeshToolProvider);
+ if (result == null) result = caseShaderBasedProjectedImageMeshToolWizardPagesProvider(variableShaderBasedProjectedImageMeshToolProvider);
+ if (result == null) result = caseNamedDescribedElementEMFFormsWizardPageProvider(variableShaderBasedProjectedImageMeshToolProvider);
+ if (result == null) result = caseWizardPagesProvider(variableShaderBasedProjectedImageMeshToolProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -1226,6 +1243,36 @@
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Shader Based Projected Image Mesh Tool Wizard Pages Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShaderBasedProjectedImageMeshToolWizardPagesProvider(ShaderBasedProjectedImageMeshToolWizardPagesProvider object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Variable Shader Based Projected Image Mesh Tool Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableShaderBasedProjectedImageMeshToolProvider(VariableShaderBasedProjectedImageMeshToolProvider object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Node Presentation</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/DEMsComposite.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/DEMsComposite.java
index fd09dc4..6a26f25 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/DEMsComposite.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/DEMsComposite.java
@@ -100,7 +100,7 @@
ECollectionCompositeSettings shaderBasedToolsListSettings = ApogyCommonEMFUIFactory.eINSTANCE.createECollectionCompositeSettings();
shaderBasedToolsListSettings.setCollectionSectionTitle("Shader Based Tools");
shaderBasedToolsListSettings.setDetailSectionTitle("Map Layer Presentations Details");
- shaderBasedToolsListSettings.setMultiSelection(false);
+ shaderBasedToolsListSettings.setMultiSelection(true);
shaderBasedMeshToolListComposite = new ShaderBasedMeshToolListComposite(folder, SWT.NONE, shaderBasedToolsListSettings);
GridData shaderBasedMeshToolListComposite_gd = new GridData(SWT.FILL, SWT.FILL, true, true);
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/ShaderBasedMeshToolListComposite.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/ShaderBasedMeshToolListComposite.java
index bf49aaf..24c93f4 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/ShaderBasedMeshToolListComposite.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/composites/ShaderBasedMeshToolListComposite.java
@@ -13,6 +13,10 @@
*******************************************************************************/
package org.eclipse.apogy.core.environment.surface.ui.composites;
+import java.util.List;
+
+import org.eclipse.apogy.common.emf.ApogyCommonTransactionFacade;
+import org.eclipse.apogy.common.emf.ui.ApogyCommonEMFUIFacade;
import org.eclipse.apogy.common.emf.ui.ECollectionCompositeSettings;
import org.eclipse.apogy.common.emf.ui.adapters.AbstractEListContentProvider;
import org.eclipse.apogy.common.emf.ui.emfforms.composites.EMFFormsEListComposite;
@@ -27,6 +31,9 @@
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
@@ -53,6 +60,11 @@
@Override
protected void createButtons(Composite parent, int style)
{
+ createActivateButton(parent, style);
+ createDeActivateButton(parent, style);
+
+ createSeparator(parent, style);
+
createNewButton(parent, style);
createDeleteButton(parent, style);
@@ -60,6 +72,7 @@
createUpButton(parent, style);
createDownButton(parent, style);
+
}
@Override
@@ -78,4 +91,66 @@
dialog.open();
}
+ @Override
+ protected void createActivateButtonBindings(Button button)
+ {
+ ApogyCommonEMFUIFacade.INSTANCE.createViewerSelectionControlEnabledBinding(getDataBindingContext(), getViewer(),
+ button, o ->
+ {
+ if(o instanceof ShaderBasedMeshTool)
+ {
+ ShaderBasedMeshTool tool = (ShaderBasedMeshTool) o;
+ return !tool.isEnabled();
+ }
+ return false;
+ });
+ }
+
+ @Override
+ protected void doActivate(List<ShaderBasedMeshTool> list)
+ {
+ for(ShaderBasedMeshTool tool : list)
+ {
+ ApogyCommonTransactionFacade.INSTANCE.basicSet(tool, ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__ENABLED, true, true);
+ }
+ }
+
+ /**
+ * Create the De-Activate button used to activate the selected items. By default,
+ * only one item must be selected. Overwrite the method
+ * #createDeActivateButtonBindings(Button) to implement a different behavior.
+ */
+ protected Button createDeActivateButton(Composite parent, int style) {
+ Button btnActivate = createButton(parent, SWT.NONE, "De-Activate", e -> {
+ BusyIndicator.showWhile(getDisplay(), () -> {
+ doDeActivate(getSelectedItemObjects());
+ refreshViewer();
+ });
+ });
+ createDeActivateButtonBindings(btnActivate);
+ return btnActivate;
+ }
+
+ protected void doDeActivate(List<ShaderBasedMeshTool> list)
+ {
+ for(ShaderBasedMeshTool tool : list)
+ {
+ ApogyCommonTransactionFacade.INSTANCE.basicSet(tool, ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__ENABLED, false, true);
+ }
+ }
+
+ protected void createDeActivateButtonBindings(Button button)
+ {
+ ApogyCommonEMFUIFacade.INSTANCE.createViewerSelectionControlEnabledBinding(getDataBindingContext(), getViewer(),
+ button, o ->
+ {
+ if(o instanceof ShaderBasedMeshTool)
+ {
+ ShaderBasedMeshTool tool = (ShaderBasedMeshTool) o;
+ return tool.isEnabled();
+ }
+ return false;
+ });
+ }
+
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/wizards/ShaderBasedProjectedImageMeshToolImageURLWizardPage.java b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/wizards/ShaderBasedProjectedImageMeshToolImageURLWizardPage.java
new file mode 100644
index 0000000..873804c
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/src/org/eclipse/apogy/core/environment/surface/ui/wizards/ShaderBasedProjectedImageMeshToolImageURLWizardPage.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ *
+ *******************************************************************************/
+package org.eclipse.apogy.core.environment.surface.ui.wizards;
+
+import org.eclipse.apogy.common.emf.ApogyCommonTransactionFacade;
+import org.eclipse.apogy.common.images.ApogyCommonImagesFactory;
+import org.eclipse.apogy.common.images.URLEImage;
+import org.eclipse.apogy.common.ui.composites.URLSelectionComposite;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+public class ShaderBasedProjectedImageMeshToolImageURLWizardPage extends WizardPage
+{
+ private final static String WIZARD_PAGE_ID = "org.eclipse.apogy.core.environment.surface.ui.wizards.ShaderBasedProjectedImageMeshToolImageURLWizardPage";
+
+ private final ShaderBasedProjectedImageMeshTool tool;
+ private URLSelectionComposite urlSelectionComposite;
+ private String urlString = null;
+
+ public ShaderBasedProjectedImageMeshToolImageURLWizardPage(ShaderBasedProjectedImageMeshTool shaderBasedProjectedImageMeshTool) {
+ super(WIZARD_PAGE_ID);
+ this.tool = shaderBasedProjectedImageMeshTool;
+
+ if (shaderBasedProjectedImageMeshTool != null)
+ {
+ if(shaderBasedProjectedImageMeshTool.getImage() instanceof URLEImage)
+ {
+ URLEImage urleImage = (URLEImage) shaderBasedProjectedImageMeshTool.getImage();
+ this.urlString = urleImage.getUrl();
+ }
+ }
+
+ setTitle("Shader Based Projected Image Mesh Tool : Image URL selection");
+ setDescription("Sets the Image URL.");
+
+ validate();
+ }
+
+ @Override
+ public void createControl(Composite parent)
+ {
+ Composite container = new Composite(parent, SWT.None);
+ container.setLayout(new GridLayout(1, false));
+
+ this.urlSelectionComposite = new URLSelectionComposite(container, SWT.None, new String[] { "*.png", "*.gif", "*.jpg", "*.jpeg"}, true,
+ true, true)
+ {
+ @Override
+ protected void urlStringSelected(String newURLString)
+ {
+ ShaderBasedProjectedImageMeshToolImageURLWizardPage.this.urlString = newURLString;
+ validate();
+
+ URLEImage urleImage = ApogyCommonImagesFactory.eINSTANCE.createURLEImage();
+ urleImage.setUrl(newURLString);
+
+ ApogyCommonTransactionFacade.INSTANCE.basicSet(
+ ShaderBasedProjectedImageMeshToolImageURLWizardPage.this.tool,
+ ApogySurfaceEnvironmentPackage.Literals.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE, urleImage, true);
+ }
+ };
+ this.urlSelectionComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ if (this.tool != null && this.tool.getImage() instanceof URLEImage)
+ {
+ URLEImage urleImage = (URLEImage) tool.getImage();
+ this.urlSelectionComposite.setUrlString(urleImage.getUrl());
+ }
+
+ setControl(container);
+ this.urlSelectionComposite.setFocus();
+ }
+
+ protected void validate() {
+ boolean urlValid = (this.urlString != null) && (this.urlString.length() > 0);
+ setPageComplete(urlValid);
+
+ if (urlValid) {
+ setErrorMessage(null);
+ } else {
+ setErrorMessage("Invalid URL specified !");
+ }
+ }
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/ShaderBasedProjectedImageMeshTool.view b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/ShaderBasedProjectedImageMeshTool.view
new file mode 100644
index 0000000..665904d
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/ShaderBasedProjectedImageMeshTool.view
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.ecp.view.group.model="http://org/eclipse/emf/ecp/view/group/model" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_qWqpEAHaEeuADKolW_MMqQ" name="ShaderBasedProjectedImageMeshTool">
+ <rootEClass href="org.eclipse.apogy.core.environment.surface#//ShaderBasedProjectedImageMeshTool"/>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_sdnHcAHaEeuADKolW_MMqQ" name="Overview" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dYAHaEeuADKolW_MMqQ" name="Control name">
+ <domainModelReference xmi:id="_qW3dYQHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dYgHaEeuADKolW_MMqQ" domainModelFeature="name"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dYwHaEeuADKolW_MMqQ" name="Control description">
+ <domainModelReference xmi:id="_qW3dZAHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dZQHaEeuADKolW_MMqQ" domainModelFeature="description"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3daQHaEeuADKolW_MMqQ" name="Control enabled">
+ <domainModelReference xmi:id="_qW3dagHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dawHaEeuADKolW_MMqQ" domainModelFeature="enabled"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dbAHaEeuADKolW_MMqQ" name="Control alpha">
+ <domainModelReference xmi:id="_qW3dbQHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dbgHaEeuADKolW_MMqQ" domainModelFeature="alpha"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_wfu5EAHaEeuADKolW_MMqQ" name="Dimensions" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dgQHaEeuADKolW_MMqQ" name="Control xDimension">
+ <domainModelReference xmi:id="_qW3dggHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dgwHaEeuADKolW_MMqQ" domainModelFeature="xDimension"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dhAHaEeuADKolW_MMqQ" name="Control yDimension">
+ <domainModelReference xmi:id="_qW3dhQHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dhgHaEeuADKolW_MMqQ" domainModelFeature="yDimension"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_3fVIcAHaEeuADKolW_MMqQ" name="Image" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_KQQqEAKaEeu8VZ_wPV3avQ" name="Control transparentColor">
+ <domainModelReference xmi:id="_KQQqEQKaEeu8VZ_wPV3avQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_KQQqEgKaEeu8VZ_wPV3avQ" domainModelFeature="transparentColor"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dfgHaEeuADKolW_MMqQ" name="Control image">
+ <domainModelReference xmi:id="_qW3dfwHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dgAHaEeuADKolW_MMqQ" domainModelFeature="image"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_1ycv4AHaEeuADKolW_MMqQ" name="Pose" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3deAHaEeuADKolW_MMqQ" name="Control position">
+ <domainModelReference xmi:id="_qW3deQHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3degHaEeuADKolW_MMqQ" domainModelFeature="position"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_qW3dewHaEeuADKolW_MMqQ" name="Control rotationMatrix">
+ <domainModelReference xmi:id="_qW3dfAHaEeuADKolW_MMqQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_qW3dfQHaEeuADKolW_MMqQ" domainModelFeature="rotationMatrix"/>
+ </domainModelReference>
+ </children>
+ </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/VariableShaderBasedProjectedImageMeshTool.view b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/VariableShaderBasedProjectedImageMeshTool.view
new file mode 100644
index 0000000..4b53559
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface.ui/viewModels/VariableShaderBasedProjectedImageMeshTool.view
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.ecp.view.group.model="http://org/eclipse/emf/ecp/view/group/model" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="__y9dAAJSEeuQgrUo19Ibgw" name="VariableShaderBasedProjectedImageMeshTool">
+ <rootEClass href="org.eclipse.apogy.core.environment.surface#//VariableShaderBasedProjectedImageMeshTool"/>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_CReG0AJTEeuQgrUo19Ibgw" name="Overview" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zIcIAJSEeuQgrUo19Ibgw" name="Control name">
+ <domainModelReference xmi:id="__zIcIQJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zIcIgJSEeuQgrUo19Ibgw" domainModelFeature="name"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zIcIwJSEeuQgrUo19Ibgw" name="Control description">
+ <domainModelReference xmi:id="__zIcJAJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zIcJQJSEeuQgrUo19Ibgw" domainModelFeature="description"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDMAJSEeuQgrUo19Ibgw" name="Control enabled">
+ <domainModelReference xmi:id="__zJDMQJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDMgJSEeuQgrUo19Ibgw" domainModelFeature="enabled"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDMwJSEeuQgrUo19Ibgw" name="Control alpha">
+ <domainModelReference xmi:id="__zJDNAJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDNQJSEeuQgrUo19Ibgw" domainModelFeature="alpha"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_Cv02wAJTEeuQgrUo19Ibgw" name="Dimensions" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDSAJSEeuQgrUo19Ibgw" name="Control xDimension">
+ <domainModelReference xmi:id="__zJDSQJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDSgJSEeuQgrUo19Ibgw" domainModelFeature="xDimension"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDSwJSEeuQgrUo19Ibgw" name="Control yDimension">
+ <domainModelReference xmi:id="__zJDTAJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDTQJSEeuQgrUo19Ibgw" domainModelFeature="yDimension"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_IGNFkAJTEeuQgrUo19Ibgw" name="Image" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_NdnW4AKaEeu8VZ_wPV3avQ" name="Control transparentColor">
+ <domainModelReference xmi:id="_NdnW4QKaEeu8VZ_wPV3avQ">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_NdnW4gKaEeu8VZ_wPV3avQ" domainModelFeature="transparentColor"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDRQJSEeuQgrUo19Ibgw" name="Control image">
+ <domainModelReference xmi:id="__zJDRgJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDRwJSEeuQgrUo19Ibgw" domainModelFeature="image"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_OSVQoAJTEeuQgrUo19Ibgw" name="Pose" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDPwJSEeuQgrUo19Ibgw" name="Control position">
+ <domainModelReference xmi:id="__zJDQAJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDQQJSEeuQgrUo19Ibgw" domainModelFeature="position"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_YYIKYAKfEeus9-VPvRfoIw" name="Control updatePosition">
+ <domainModelReference xmi:id="_YYIKYQKfEeus9-VPvRfoIw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_YYIKYgKfEeus9-VPvRfoIw" domainModelFeature="updatePosition"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDQgJSEeuQgrUo19Ibgw" name="Control rotationMatrix">
+ <domainModelReference xmi:id="__zJDQwJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDRAJSEeuQgrUo19Ibgw" domainModelFeature="rotationMatrix"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_YYL0wAKfEeus9-VPvRfoIw" name="Control updateOrientation">
+ <domainModelReference xmi:id="_YYL0wQKfEeus9-VPvRfoIw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="_YYL0wgKfEeus9-VPvRfoIw" domainModelFeature="updateOrientation"/>
+ </domainModelReference>
+ </children>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_TDf5kAJTEeuQgrUo19Ibgw" name="Pose Offsets" groupType="Collapsible">
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDUQJSEeuQgrUo19Ibgw" name="Control relativePosition">
+ <domainModelReference xmi:id="__zJDUgJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDUwJSEeuQgrUo19Ibgw" domainModelFeature="relativePosition"/>
+ </domainModelReference>
+ </children>
+ <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="__zJDVAJSEeuQgrUo19Ibgw" name="Control relativeRotationMatrix">
+ <domainModelReference xmi:id="__zJDVQJSEeuQgrUo19Ibgw">
+ <segments xsi:type="org.eclipse.emf.ecp.view.model:FeatureDomainModelReferenceSegment" xmi:id="__zJDVgJSEeuQgrUo19Ibgw" domainModelFeature="relativeRotationMatrix"/>
+ </domainModelReference>
+ </children>
+ </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/model/apogy_core_environment_surface.xcore b/bundles/core/org.eclipse.apogy.core.environment.surface/model/apogy_core_environment_surface.xcore
index 894824e..86efb80 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/model/apogy_core_environment_surface.xcore
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/model/apogy_core_environment_surface.xcore
@@ -39,15 +39,15 @@
import org.eclipse.apogy.common.Apogy
import org.eclipse.apogy.common.emf.Disposable
-import org.eclipse.apogy.common.emf.Startable
-import org.eclipse.apogy.common.emf.NamedDescribedElement
import org.eclipse.apogy.common.emf.Exception
+import org.eclipse.apogy.common.emf.NamedDescribedElement
+import org.eclipse.apogy.common.emf.Startable
import org.eclipse.apogy.common.emf.ui.RGBA
import org.eclipse.apogy.common.geometry.data3d.CartesianTriangularMesh
import org.eclipse.apogy.common.images.AbstractEImage
+import org.eclipse.apogy.common.math.Matrix3x3
import org.eclipse.apogy.common.math.Matrix4x4
import org.eclipse.apogy.common.math.Tuple3d
-import org.eclipse.apogy.common.math.Matrix3x3
import org.eclipse.apogy.common.topology.AggregateGroupNode
import org.eclipse.apogy.common.topology.Node
import org.eclipse.apogy.common.topology.TransformNode
@@ -497,10 +497,22 @@
DISCRETE_SLOPES as "Discrete Slopes" = 1,
GRID as "Grid" = 2,
BULLSEYE as "Bullseye" = 3,
- ANGULAR as "Angular" = 4
+ ANGULAR as "Angular" = 4,
+ IMAGE as "Image" = 5
}
/**
+ * Shader based tool that uses an image to its rendering.
+ */
+abstract class ImageBasedShaderBasedMeshTool extends ShaderBasedMeshTool
+{
+ /**
+ * The image.
+ *
+ */
+ contains AbstractEImage image
+}
+/**
* Abstract class representing a ShaderBasedMeshTool that is attached to a Variable with position and orientation offsets.
*/
@Apogy(hasCustomClass="true")
@@ -509,12 +521,16 @@
@GenModel(children="true", property="Editable")
contains VariableFeatureReference variableFeatureReference
+ boolean updatePosition = "true"
+
/**
* The position of the tool relative to the Variable.
*/
@GenModel(children="false", createChild="false")
contains Tuple3d relativePosition
+ boolean updateOrientation = "true"
+
/**
* The orientation of the tool relative to the Variable
*/
@@ -636,7 +652,7 @@
}
/**
- * Specialisation of ShaderBasedBullseyeTool which centre coordinates are updates to reflect the location
+ * Specialisation of ShaderBasedBullseyeTool which centre coordinates are updated to reflect the location
* of a Variable on that mesh.
*/
@Apogy(hasCustomClass="true", hasCustomItemProvider="true")
@@ -694,13 +710,48 @@
}
/**
- * Shader based tool that displays angles as radial lines.
+ * Shader based tool that displays angles as radial lines which centre coordinates are updated to reflect the location
+ * of a Variable on that mesh.
*/
@Apogy(hasCustomClass="true", hasCustomItemProvider="true")
class VariableAngularDisplayMeshTool extends ShaderBasedAngularDisplayMeshTool, VariableBasedShaderBasedMeshTool
{
}
+/**
+ * Shader based tool that displays an image on top of the mesh.
+ */
+@Apogy(hasCustomClass="true", hasCustomItemProvider="true")
+class ShaderBasedProjectedImageMeshTool extends ImageBasedShaderBasedMeshTool
+{
+ /**
+ * Size of the projected image along the X axis
+ */
+ @Apogy(units="m")
+ float xDimension = "1.0"
+
+ /**
+ * Size of the projected image along the Y axis
+ */
+ @Apogy(units="m")
+ float yDimension = "1.0"
+
+ /*
+ * The color that is interpreted as transparent.
+ */
+ @GenModel(property="Editable")
+ RGBA transparentColor = "255,255,255,255"
+}
+
+/**
+ * Shader based tool that displays an image on top of the mesh which centre coordinates are updated to reflect the location
+ * of a Variable on that mesh.
+ */
+@Apogy(hasCustomClass="true", hasCustomItemProvider="true")
+class VariableShaderBasedProjectedImageMeshTool extends ShaderBasedProjectedImageMeshTool, VariableBasedShaderBasedMeshTool
+{
+}
+
/*
* Abstract class defining an ImageMapLayer for which the image is derived from a Mesh.
*/
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedMeshToolCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedMeshToolCustomImpl.java
index 1d539f2..28e102b 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedMeshToolCustomImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedMeshToolCustomImpl.java
@@ -72,47 +72,7 @@
// Tool alpha
parameters[TOOL_ALPHA_INDEX] = getAlpha();
-
-
- // Position and orientation matrix
- /*
- Matrix4d matrix = new Matrix4d();
- matrix.setIdentity();
-
- if (getRotationMatrix() != null)
- {
- matrix.setRotation(getRotationMatrix().asMatrix3d());
- }
-
- if (getPosition() != null)
- {
- matrix.setTranslation(new Vector3d(getPosition().asTuple3d()));
- }
-
- // Invert the matrix, so the shader does not have to.
- matrix.invert();
-
- parameters[TOOL_MATRIX_0_0_INDEX] = new Float(matrix.m00);
- parameters[TOOL_MATRIX_0_1_INDEX] = new Float(matrix.m01);
- parameters[TOOL_MATRIX_0_2_INDEX] = new Float(matrix.m02);
- parameters[TOOL_MATRIX_0_3_INDEX] = new Float(matrix.m03);
-
- parameters[TOOL_MATRIX_1_0_INDEX] = new Float(matrix.m10);
- parameters[TOOL_MATRIX_1_1_INDEX] = new Float(matrix.m11);
- parameters[TOOL_MATRIX_1_2_INDEX] = new Float(matrix.m12);
- parameters[TOOL_MATRIX_1_3_INDEX] = new Float(matrix.m13);
-
- parameters[TOOL_MATRIX_2_0_INDEX] = new Float(matrix.m20);
- parameters[TOOL_MATRIX_2_1_INDEX] = new Float(matrix.m21);
- parameters[TOOL_MATRIX_2_2_INDEX] = new Float(matrix.m22);
- parameters[TOOL_MATRIX_2_3_INDEX] = new Float(matrix.m23);
-
- parameters[TOOL_MATRIX_3_0_INDEX] = new Float(matrix.m30);
- parameters[TOOL_MATRIX_3_1_INDEX] = new Float(matrix.m31);
- parameters[TOOL_MATRIX_3_2_INDEX] = new Float(matrix.m32);
- parameters[TOOL_MATRIX_3_3_INDEX] = new Float(matrix.m33);
- */
-
+
return parameters;
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolCustomImpl.java
new file mode 100644
index 0000000..31aa360
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolCustomImpl.java
@@ -0,0 +1,53 @@
+package org.eclipse.apogy.core.environment.surface.impl;
+
+import org.eclipse.apogy.core.environment.surface.ShaderBasedMeshToolType;
+
+public class ShaderBasedProjectedImageMeshToolCustomImpl extends ShaderBasedProjectedImageMeshToolImpl
+{
+ public static final int TOOL_IMAGE_X_DIMENSION_INDEX = TOOL_PARAM0_INDEX ; // Param 0
+ public static final int TOOL_IMAGE_Y_DIMENSION_INDEX = TOOL_IMAGE_X_DIMENSION_INDEX + 1 ; // Param 1
+
+ public static final int TOOL_TRANSPARENT_COLOR_RED_INDEX = TOOL_IMAGE_Y_DIMENSION_INDEX + 1 ; // Param 2
+ public static final int TOOL_TRANSPARENT_COLOR_GREEN_INDEX = TOOL_TRANSPARENT_COLOR_RED_INDEX + 1 ; // Param 3
+ public static final int TOOL_TRANSPARENT_COLOR_BLUE_INDEX = TOOL_TRANSPARENT_COLOR_GREEN_INDEX + 1 ; // Param 4
+
+
+ @Override
+ public ShaderBasedMeshToolType getToolType()
+ {
+ return ShaderBasedMeshToolType.IMAGE;
+ }
+
+ @Override
+ public void setXDimension(float newXDimension)
+ {
+ if(newXDimension != 0.0f)
+ {
+ super.setXDimension(Math.abs(newXDimension));
+ }
+ }
+
+ @Override
+ public void setYDimension(float newYDimension)
+ {
+ if(newYDimension != 0.0f)
+ {
+ super.setYDimension(Math.abs(newYDimension));
+ }
+ }
+
+ @Override
+ public float[] createShaderParameters()
+ {
+ float[] parameters = super.createShaderParameters();
+
+ parameters[TOOL_IMAGE_X_DIMENSION_INDEX] = getXDimension();
+ parameters[TOOL_IMAGE_Y_DIMENSION_INDEX] = getYDimension();
+
+ parameters[TOOL_TRANSPARENT_COLOR_RED_INDEX] = new Float((float) getTransparentColor().rgb.red / 255.0f);
+ parameters[TOOL_TRANSPARENT_COLOR_GREEN_INDEX] = new Float((float) getTransparentColor().rgb.green / 255.0f);
+ parameters[TOOL_TRANSPARENT_COLOR_BLUE_INDEX] = new Float((float) getTransparentColor().rgb.blue / 255.0f);
+
+ return parameters;
+ }
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolPoseAdapterCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolPoseAdapterCustomImpl.java
index 25b94a3..7c0c950 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolPoseAdapterCustomImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolPoseAdapterCustomImpl.java
@@ -158,8 +158,8 @@
@Override
public void run()
{
- ApogyCommonTransactionFacade.INSTANCE.basicSet(getVariableBasedShaderBasedMeshTool(), ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__POSITION, position, true);
- ApogyCommonTransactionFacade.INSTANCE.basicSet(getVariableBasedShaderBasedMeshTool(), ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__ROTATION_MATRIX, rotation, true);
+ if(getVariableBasedShaderBasedMeshTool().isUpdatePosition()) ApogyCommonTransactionFacade.INSTANCE.basicSet(getVariableBasedShaderBasedMeshTool(), ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__POSITION, position, true);
+ if(getVariableBasedShaderBasedMeshTool().isUpdateOrientation()) ApogyCommonTransactionFacade.INSTANCE.basicSet(getVariableBasedShaderBasedMeshTool(), ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_MESH_TOOL__ROTATION_MATRIX, rotation, true);
}
});
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolCustomImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolCustomImpl.java
new file mode 100644
index 0000000..132e2c4
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen-custom/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolCustomImpl.java
@@ -0,0 +1,82 @@
+package org.eclipse.apogy.core.environment.surface.impl;
+
+import javax.vecmath.Matrix4d;
+import javax.vecmath.Vector3d;
+
+import org.eclipse.apogy.common.math.ApogyCommonMathFacade;
+import org.eclipse.apogy.common.math.Matrix4x4;
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentFactory;
+import org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshToolPoseAdapter;
+
+public class VariableShaderBasedProjectedImageMeshToolCustomImpl extends VariableShaderBasedProjectedImageMeshToolImpl
+{
+ protected VariableBasedShaderBasedMeshToolPoseAdapter poseAdapter = null;
+
+ @Override
+ public void start()
+ {
+ if(!isStarted())
+ {
+ super.start();
+
+ getPoseDapter().setVariableBasedShaderBasedMeshTool(this);
+ }
+ }
+
+ @Override
+ public Matrix4x4 createToolMatrix()
+ {
+ // Position and orientation matrix
+ Matrix4d matrix = new Matrix4d();
+ matrix.setIdentity();
+
+ if (getRotationMatrix() != null)
+ {
+ matrix.setRotation(getRotationMatrix().asMatrix3d());
+ }
+
+ if (getPosition() != null)
+ {
+ matrix.setTranslation(new Vector3d(getPosition().asTuple3d()));
+ }
+
+ Matrix4d offsetSMatrix = new Matrix4d();
+ offsetSMatrix.setIdentity();
+
+ if(getRelativeRotationMatrix() != null)
+ {
+ offsetSMatrix.setRotation(getRelativeRotationMatrix().asMatrix3d());
+ }
+
+ if(getRelativePosition() != null)
+ {
+ offsetSMatrix.setTranslation(new Vector3d(getRelativePosition().asTuple3d()));
+ }
+
+ // Adds the offsets.
+ matrix.mul(offsetSMatrix);
+
+ // Invert the matrix, so the shader does not have to.
+ matrix.invert();
+
+ return ApogyCommonMathFacade.INSTANCE.createMatrix4x4(matrix);
+ }
+
+ @Override
+ public void dispose()
+ {
+ if(poseAdapter != null) poseAdapter.dispose();
+
+ super.dispose();
+ }
+
+ protected VariableBasedShaderBasedMeshToolPoseAdapter getPoseDapter()
+ {
+ if(poseAdapter == null)
+ {
+ poseAdapter = ApogySurfaceEnvironmentFactory.eINSTANCE.createVariableBasedShaderBasedMeshToolPoseAdapter();
+ }
+
+ return poseAdapter;
+ }
+}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentFactory.java
index 44d4012..fe2da0d 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentFactory.java
@@ -187,6 +187,24 @@
VariableAngularDisplayMeshTool createVariableAngularDisplayMeshTool();
/**
+ * Returns a new object of class '<em>Shader Based Projected Image Mesh Tool</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shader Based Projected Image Mesh Tool</em>'.
+ * @generated
+ */
+ ShaderBasedProjectedImageMeshTool createShaderBasedProjectedImageMeshTool();
+
+ /**
+ * Returns a new object of class '<em>Variable Shader Based Projected Image Mesh Tool</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Variable Shader Based Projected Image Mesh Tool</em>'.
+ * @generated
+ */
+ VariableShaderBasedProjectedImageMeshTool createVariableShaderBasedProjectedImageMeshTool();
+
+ /**
* Returns a new object of class '<em>Cartesian Triangular Mesh Slope Image Map Layer</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentPackage.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentPackage.java
index 7655728..c87af6e 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentPackage.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ApogySurfaceEnvironmentPackage.java
@@ -1879,6 +1879,169 @@
int SHADER_BASED_MESH_TOOL_OPERATION_COUNT = ApogyCommonEMFPackage.NAMED_DESCRIBED_ELEMENT_OPERATION_COUNT + 4;
/**
+ * The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.impl.ImageBasedShaderBasedMeshToolImpl <em>Image Based Shader Based Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.ImageBasedShaderBasedMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getImageBasedShaderBasedMeshTool()
+ * @generated
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL = 18;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__NAME = SHADER_BASED_MESH_TOOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__DESCRIPTION = SHADER_BASED_MESH_TOOL__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Started</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__STARTED = SHADER_BASED_MESH_TOOL__STARTED;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__ENABLED = SHADER_BASED_MESH_TOOL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__ALPHA = SHADER_BASED_MESH_TOOL__ALPHA;
+
+ /**
+ * The feature id for the '<em><b>Shader Parameter Array Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE = SHADER_BASED_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Tool Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__TOOL_TYPE = SHADER_BASED_MESH_TOOL__TOOL_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Mesh Map Layer</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__MESH_MAP_LAYER = SHADER_BASED_MESH_TOOL__MESH_MAP_LAYER;
+
+ /**
+ * The feature id for the '<em><b>Position</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__POSITION = SHADER_BASED_MESH_TOOL__POSITION;
+
+ /**
+ * The feature id for the '<em><b>Rotation Matrix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__ROTATION_MATRIX = SHADER_BASED_MESH_TOOL__ROTATION_MATRIX;
+
+ /**
+ * The feature id for the '<em><b>Image</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Image Based Shader Based Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Dispose</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL___DISPOSE = SHADER_BASED_MESH_TOOL___DISPOSE;
+
+ /**
+ * The operation id for the '<em>Start</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL___START = SHADER_BASED_MESH_TOOL___START;
+
+ /**
+ * The operation id for the '<em>Create Shader Parameters</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL___CREATE_SHADER_PARAMETERS = SHADER_BASED_MESH_TOOL___CREATE_SHADER_PARAMETERS;
+
+ /**
+ * The operation id for the '<em>Create Tool Matrix</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL___CREATE_TOOL_MATRIX = SHADER_BASED_MESH_TOOL___CREATE_TOOL_MATRIX;
+
+ /**
+ * The number of operations of the '<em>Image Based Shader Based Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMAGE_BASED_SHADER_BASED_MESH_TOOL_OPERATION_COUNT = SHADER_BASED_MESH_TOOL_OPERATION_COUNT + 0;
+
+ /**
* The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl <em>Variable Based Shader Based Mesh Tool</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1886,7 +2049,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableBasedShaderBasedMeshTool()
* @generated
*/
- int VARIABLE_BASED_SHADER_BASED_MESH_TOOL = 18;
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL = 19;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1988,13 +2151,31 @@
int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Update Position</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the '<em><b>Relative Position</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 1;
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Update Orientation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
@@ -2003,7 +2184,7 @@
* @generated
* @ordered
*/
- int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 2;
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>Variable Based Shader Based Mesh Tool</em>' class.
@@ -2012,7 +2193,7 @@
* @generated
* @ordered
*/
- int VARIABLE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 3;
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 5;
/**
* The operation id for the '<em>Dispose</em>' operation.
@@ -2067,7 +2248,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableBasedShaderBasedMeshToolPoseAdapter()
* @generated
*/
- int VARIABLE_BASED_SHADER_BASED_MESH_TOOL_POSE_ADAPTER = 19;
+ int VARIABLE_BASED_SHADER_BASED_MESH_TOOL_POSE_ADAPTER = 20;
/**
* The feature id for the '<em><b>Variable Based Shader Based Mesh Tool</b></em>' reference.
@@ -2113,7 +2294,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedGridTool()
* @generated
*/
- int SHADER_BASED_GRID_TOOL = 20;
+ int SHADER_BASED_GRID_TOOL = 21;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2357,7 +2538,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableShaderBasedGridTool()
* @generated
*/
- int VARIABLE_SHADER_BASED_GRID_TOOL = 21;
+ int VARIABLE_SHADER_BASED_GRID_TOOL = 22;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2549,13 +2730,31 @@
int VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Update Position</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the '<em><b>Relative Position</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 1;
+ int VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Update Orientation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
@@ -2564,7 +2763,7 @@
* @generated
* @ordered
*/
- int VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 2;
+ int VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>Variable Shader Based Grid Tool</em>' class.
@@ -2573,7 +2772,7 @@
* @generated
* @ordered
*/
- int VARIABLE_SHADER_BASED_GRID_TOOL_FEATURE_COUNT = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 3;
+ int VARIABLE_SHADER_BASED_GRID_TOOL_FEATURE_COUNT = SHADER_BASED_GRID_TOOL_FEATURE_COUNT + 5;
/**
* The operation id for the '<em>Dispose</em>' operation.
@@ -2628,7 +2827,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedDiscreteSlopesTool()
* @generated
*/
- int SHADER_BASED_DISCRETE_SLOPES_TOOL = 22;
+ int SHADER_BASED_DISCRETE_SLOPES_TOOL = 23;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2791,7 +2990,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedBullseyeTool()
* @generated
*/
- int SHADER_BASED_BULLSEYE_TOOL = 23;
+ int SHADER_BASED_BULLSEYE_TOOL = 24;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2981,7 +3180,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariablePoseBullseyeTool()
* @generated
*/
- int VARIABLE_POSE_BULLSEYE_TOOL = 24;
+ int VARIABLE_POSE_BULLSEYE_TOOL = 25;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -3119,13 +3318,31 @@
int VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Update Position</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the '<em><b>Relative Position</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 1;
+ int VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Update Orientation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
@@ -3134,7 +3351,7 @@
* @generated
* @ordered
*/
- int VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 2;
+ int VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>Variable Pose Bullseye Tool</em>' class.
@@ -3143,7 +3360,7 @@
* @generated
* @ordered
*/
- int VARIABLE_POSE_BULLSEYE_TOOL_FEATURE_COUNT = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 3;
+ int VARIABLE_POSE_BULLSEYE_TOOL_FEATURE_COUNT = SHADER_BASED_BULLSEYE_TOOL_FEATURE_COUNT + 5;
/**
* The operation id for the '<em>Dispose</em>' operation.
@@ -3198,7 +3415,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedAngularDisplayMeshTool()
* @generated
*/
- int SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL = 25;
+ int SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL = 26;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -3415,7 +3632,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableAngularDisplayMeshTool()
* @generated
*/
- int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL = 26;
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL = 27;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -3580,13 +3797,31 @@
int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Update Position</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the '<em><b>Relative Position</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 1;
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Update Orientation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
@@ -3595,7 +3830,7 @@
* @generated
* @ordered
*/
- int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 2;
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>Variable Angular Display Mesh Tool</em>' class.
@@ -3604,7 +3839,7 @@
* @generated
* @ordered
*/
- int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 3;
+ int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_FEATURE_COUNT + 5;
/**
* The operation id for the '<em>Dispose</em>' operation.
@@ -3652,6 +3887,431 @@
int VARIABLE_ANGULAR_DISPLAY_MESH_TOOL_OPERATION_COUNT = SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL_OPERATION_COUNT + 0;
/**
+ * The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl <em>Shader Based Projected Image Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL = 28;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__NAME = IMAGE_BASED_SHADER_BASED_MESH_TOOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__DESCRIPTION = IMAGE_BASED_SHADER_BASED_MESH_TOOL__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Started</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__STARTED = IMAGE_BASED_SHADER_BASED_MESH_TOOL__STARTED;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ENABLED = IMAGE_BASED_SHADER_BASED_MESH_TOOL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ALPHA = IMAGE_BASED_SHADER_BASED_MESH_TOOL__ALPHA;
+
+ /**
+ * The feature id for the '<em><b>Shader Parameter Array Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE = IMAGE_BASED_SHADER_BASED_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Tool Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TOOL_TYPE = IMAGE_BASED_SHADER_BASED_MESH_TOOL__TOOL_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Mesh Map Layer</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__MESH_MAP_LAYER = IMAGE_BASED_SHADER_BASED_MESH_TOOL__MESH_MAP_LAYER;
+
+ /**
+ * The feature id for the '<em><b>Position</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__POSITION = IMAGE_BASED_SHADER_BASED_MESH_TOOL__POSITION;
+
+ /**
+ * The feature id for the '<em><b>Rotation Matrix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ROTATION_MATRIX = IMAGE_BASED_SHADER_BASED_MESH_TOOL__ROTATION_MATRIX;
+
+ /**
+ * The feature id for the '<em><b>Image</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__IMAGE = IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE;
+
+ /**
+ * The feature id for the '<em><b>XDimension</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION = IMAGE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>YDimension</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION = IMAGE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Transparent Color</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR = IMAGE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Shader Based Projected Image Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT = IMAGE_BASED_SHADER_BASED_MESH_TOOL_FEATURE_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Dispose</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___DISPOSE = IMAGE_BASED_SHADER_BASED_MESH_TOOL___DISPOSE;
+
+ /**
+ * The operation id for the '<em>Start</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___START = IMAGE_BASED_SHADER_BASED_MESH_TOOL___START;
+
+ /**
+ * The operation id for the '<em>Create Shader Parameters</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_SHADER_PARAMETERS = IMAGE_BASED_SHADER_BASED_MESH_TOOL___CREATE_SHADER_PARAMETERS;
+
+ /**
+ * The operation id for the '<em>Create Tool Matrix</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_TOOL_MATRIX = IMAGE_BASED_SHADER_BASED_MESH_TOOL___CREATE_TOOL_MATRIX;
+
+ /**
+ * The number of operations of the '<em>Shader Based Projected Image Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_OPERATION_COUNT = IMAGE_BASED_SHADER_BASED_MESH_TOOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl <em>Variable Shader Based Projected Image Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL = 29;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__NAME = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__DESCRIPTION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Started</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__STARTED = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__STARTED;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ENABLED = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ALPHA = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ALPHA;
+
+ /**
+ * The feature id for the '<em><b>Shader Parameter Array Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__SHADER_PARAMETER_ARRAY_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Tool Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TOOL_TYPE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TOOL_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Mesh Map Layer</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__MESH_MAP_LAYER = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__MESH_MAP_LAYER;
+
+ /**
+ * The feature id for the '<em><b>Position</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__POSITION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__POSITION;
+
+ /**
+ * The feature id for the '<em><b>Rotation Matrix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ROTATION_MATRIX = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__ROTATION_MATRIX;
+
+ /**
+ * The feature id for the '<em><b>Image</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__IMAGE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__IMAGE;
+
+ /**
+ * The feature id for the '<em><b>XDimension</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION;
+
+ /**
+ * The feature id for the '<em><b>YDimension</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION;
+
+ /**
+ * The feature id for the '<em><b>Transparent Color</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR;
+
+ /**
+ * The feature id for the '<em><b>Variable Feature Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Update Position</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Relative Position</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Update Orientation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Variable Shader Based Projected Image Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_FEATURE_COUNT + 5;
+
+ /**
+ * The operation id for the '<em>Dispose</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___DISPOSE = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___DISPOSE;
+
+ /**
+ * The operation id for the '<em>Start</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___START = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___START;
+
+ /**
+ * The operation id for the '<em>Create Shader Parameters</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_SHADER_PARAMETERS = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_SHADER_PARAMETERS;
+
+ /**
+ * The operation id for the '<em>Create Tool Matrix</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_TOOL_MATRIX = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL___CREATE_TOOL_MATRIX;
+
+ /**
+ * The number of operations of the '<em>Variable Shader Based Projected Image Mesh Tool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_OPERATION_COUNT = SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL_OPERATION_COUNT + 0;
+
+ /**
* The meta object id for the '{@link org.eclipse.apogy.core.environment.surface.impl.CartesianTriangularMeshDerivedImageMapLayerImpl <em>Cartesian Triangular Mesh Derived Image Map Layer</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3659,7 +4319,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshDerivedImageMapLayer()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER = 27;
+ int CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER = 30;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -3849,7 +4509,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshSlopeImageMapLayer()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_SLOPE_IMAGE_MAP_LAYER = 28;
+ int CARTESIAN_TRIANGULAR_MESH_SLOPE_IMAGE_MAP_LAYER = 31;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -4066,7 +4726,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshDiscreteSlopeImageMapLayer()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_DISCRETE_SLOPE_IMAGE_MAP_LAYER = 29;
+ int CARTESIAN_TRIANGULAR_MESH_DISCRETE_SLOPE_IMAGE_MAP_LAYER = 32;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -4265,7 +4925,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshHeightImageMapLayer()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_HEIGHT_IMAGE_MAP_LAYER = 30;
+ int CARTESIAN_TRIANGULAR_MESH_HEIGHT_IMAGE_MAP_LAYER = 33;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -4482,7 +5142,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getSlopeRange()
* @generated
*/
- int SLOPE_RANGE = 31;
+ int SLOPE_RANGE = 34;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -4555,7 +5215,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getAbstractLineOfSightImageMapLayer()
* @generated
*/
- int ABSTRACT_LINE_OF_SIGHT_IMAGE_MAP_LAYER = 32;
+ int ABSTRACT_LINE_OF_SIGHT_IMAGE_MAP_LAYER = 35;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -4781,7 +5441,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getFixedPositionLineOfSightImageMapLayer()
* @generated
*/
- int FIXED_POSITION_LINE_OF_SIGHT_IMAGE_MAP_LAYER = 33;
+ int FIXED_POSITION_LINE_OF_SIGHT_IMAGE_MAP_LAYER = 36;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5016,7 +5676,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getAbstractShapeImageLayer()
* @generated
*/
- int ABSTRACT_SHAPE_IMAGE_LAYER = 34;
+ int ABSTRACT_SHAPE_IMAGE_LAYER = 37;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5215,7 +5875,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getEllipseShapeImageLayer()
* @generated
*/
- int ELLIPSE_SHAPE_IMAGE_LAYER = 35;
+ int ELLIPSE_SHAPE_IMAGE_LAYER = 38;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5441,7 +6101,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getRectangleShapeImageLayer()
* @generated
*/
- int RECTANGLE_SHAPE_IMAGE_LAYER = 36;
+ int RECTANGLE_SHAPE_IMAGE_LAYER = 39;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5667,7 +6327,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getPolygonShapeImageMapLayer()
* @generated
*/
- int POLYGON_SHAPE_IMAGE_MAP_LAYER = 37;
+ int POLYGON_SHAPE_IMAGE_MAP_LAYER = 40;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5875,7 +6535,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianCoordinatesPolygonShapeImageMapLayer()
* @generated
*/
- int CARTESIAN_COORDINATES_POLYGON_SHAPE_IMAGE_MAP_LAYER = 38;
+ int CARTESIAN_COORDINATES_POLYGON_SHAPE_IMAGE_MAP_LAYER = 41;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -6092,7 +6752,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getBasicCartesianTriangularMeshMapLayer()
* @generated
*/
- int BASIC_CARTESIAN_TRIANGULAR_MESH_MAP_LAYER = 39;
+ int BASIC_CARTESIAN_TRIANGULAR_MESH_MAP_LAYER = 42;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -6237,7 +6897,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshURLMapLayer()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_URL_MAP_LAYER = 40;
+ int CARTESIAN_TRIANGULAR_MESH_URL_MAP_LAYER = 43;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -6391,7 +7051,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getFeaturesOfInterestMapLayer()
* @generated
*/
- int FEATURES_OF_INTEREST_MAP_LAYER = 41;
+ int FEATURES_OF_INTEREST_MAP_LAYER = 44;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -6482,7 +7142,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getSurfaceWorksiteNode()
* @generated
*/
- int SURFACE_WORKSITE_NODE = 42;
+ int SURFACE_WORKSITE_NODE = 45;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -6582,7 +7242,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getMapsListNode()
* @generated
*/
- int MAPS_LIST_NODE = 43;
+ int MAPS_LIST_NODE = 46;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -6682,7 +7342,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getMapNode()
* @generated
*/
- int MAP_NODE = 44;
+ int MAP_NODE = 47;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -6818,7 +7478,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getAbstractMapLayerNode()
* @generated
*/
- int ABSTRACT_MAP_LAYER_NODE = 45;
+ int ABSTRACT_MAP_LAYER_NODE = 48;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -6918,7 +7578,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getCartesianTriangularMeshMapLayerNode()
* @generated
*/
- int CARTESIAN_TRIANGULAR_MESH_MAP_LAYER_NODE = 46;
+ int CARTESIAN_TRIANGULAR_MESH_MAP_LAYER_NODE = 49;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -7027,7 +7687,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getSurfaceEnvironmentUtilities()
* @generated
*/
- int SURFACE_ENVIRONMENT_UTILITIES = 47;
+ int SURFACE_ENVIRONMENT_UTILITIES = 50;
/**
* The number of structural features of the '<em>Surface Environment Utilities</em>' class.
@@ -7082,7 +7742,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getApogySurfaceEnvironmentFacade()
* @generated
*/
- int APOGY_SURFACE_ENVIRONMENT_FACADE = 48;
+ int APOGY_SURFACE_ENVIRONMENT_FACADE = 51;
/**
* The number of structural features of the '<em>Facade</em>' class.
@@ -7254,7 +7914,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedMeshToolType()
* @generated
*/
- int SHADER_BASED_MESH_TOOL_TYPE = 49;
+ int SHADER_BASED_MESH_TOOL_TYPE = 52;
/**
* The meta object id for the '<em>IProgress Monitor</em>' data type.
@@ -7264,7 +7924,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getIProgressMonitor()
* @generated
*/
- int IPROGRESS_MONITOR = 50;
+ int IPROGRESS_MONITOR = 53;
/**
* The meta object id for the '<em>List</em>' data type.
@@ -7274,7 +7934,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getList()
* @generated
*/
- int LIST = 51;
+ int LIST = 54;
/**
* The meta object id for the '<em>Float Array</em>' data type.
@@ -7283,7 +7943,7 @@
* @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getFloatArray()
* @generated
*/
- int FLOAT_ARRAY = 52;
+ int FLOAT_ARRAY = 55;
/**
@@ -8116,6 +8776,27 @@
EOperation getShaderBasedMeshTool__CreateToolMatrix();
/**
+ * Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool <em>Image Based Shader Based Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Image Based Shader Based Mesh Tool</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool
+ * @generated
+ */
+ EClass getImageBasedShaderBasedMeshTool();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool#getImage <em>Image</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Image</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool#getImage()
+ * @see #getImageBasedShaderBasedMeshTool()
+ * @generated
+ */
+ EReference getImageBasedShaderBasedMeshTool_Image();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool <em>Variable Based Shader Based Mesh Tool</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -8137,6 +8818,17 @@
EReference getVariableBasedShaderBasedMeshTool_VariableFeatureReference();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdatePosition <em>Update Position</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Update Position</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdatePosition()
+ * @see #getVariableBasedShaderBasedMeshTool()
+ * @generated
+ */
+ EAttribute getVariableBasedShaderBasedMeshTool_UpdatePosition();
+
+ /**
* Returns the meta object for the containment reference '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#getRelativePosition <em>Relative Position</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -8148,6 +8840,17 @@
EReference getVariableBasedShaderBasedMeshTool_RelativePosition();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdateOrientation <em>Update Orientation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Update Orientation</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdateOrientation()
+ * @see #getVariableBasedShaderBasedMeshTool()
+ * @generated
+ */
+ EAttribute getVariableBasedShaderBasedMeshTool_UpdateOrientation();
+
+ /**
* Returns the meta object for the containment reference '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -8492,6 +9195,59 @@
EClass getVariableAngularDisplayMeshTool();
/**
+ * Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool <em>Shader Based Projected Image Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shader Based Projected Image Mesh Tool</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool
+ * @generated
+ */
+ EClass getShaderBasedProjectedImageMeshTool();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getXDimension <em>XDimension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>XDimension</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getXDimension()
+ * @see #getShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ EAttribute getShaderBasedProjectedImageMeshTool_XDimension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getYDimension <em>YDimension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>YDimension</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getYDimension()
+ * @see #getShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ EAttribute getShaderBasedProjectedImageMeshTool_YDimension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getTransparentColor <em>Transparent Color</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Transparent Color</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getTransparentColor()
+ * @see #getShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ EAttribute getShaderBasedProjectedImageMeshTool_TransparentColor();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool <em>Variable Shader Based Projected Image Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Variable Shader Based Projected Image Mesh Tool</em>'.
+ * @see org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool
+ * @generated
+ */
+ EClass getVariableShaderBasedProjectedImageMeshTool();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshDerivedImageMapLayer <em>Cartesian Triangular Mesh Derived Image Map Layer</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -10010,6 +10766,24 @@
EOperation SHADER_BASED_MESH_TOOL___CREATE_TOOL_MATRIX = eINSTANCE.getShaderBasedMeshTool__CreateToolMatrix();
/**
+ * The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.impl.ImageBasedShaderBasedMeshToolImpl <em>Image Based Shader Based Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.ImageBasedShaderBasedMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getImageBasedShaderBasedMeshTool()
+ * @generated
+ */
+ EClass IMAGE_BASED_SHADER_BASED_MESH_TOOL = eINSTANCE.getImageBasedShaderBasedMeshTool();
+
+ /**
+ * The meta object literal for the '<em><b>Image</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE = eINSTANCE.getImageBasedShaderBasedMeshTool_Image();
+
+ /**
* The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl <em>Variable Based Shader Based Mesh Tool</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -10028,6 +10802,14 @@
EReference VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE = eINSTANCE.getVariableBasedShaderBasedMeshTool_VariableFeatureReference();
/**
+ * The meta object literal for the '<em><b>Update Position</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION = eINSTANCE.getVariableBasedShaderBasedMeshTool_UpdatePosition();
+
+ /**
* The meta object literal for the '<em><b>Relative Position</b></em>' containment reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -10036,6 +10818,14 @@
EReference VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION = eINSTANCE.getVariableBasedShaderBasedMeshTool_RelativePosition();
/**
+ * The meta object literal for the '<em><b>Update Orientation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION = eINSTANCE.getVariableBasedShaderBasedMeshTool_UpdateOrientation();
+
+ /**
* The meta object literal for the '<em><b>Relative Rotation Matrix</b></em>' containment reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -10308,6 +11098,50 @@
EClass VARIABLE_ANGULAR_DISPLAY_MESH_TOOL = eINSTANCE.getVariableAngularDisplayMeshTool();
/**
+ * The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl <em>Shader Based Projected Image Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ EClass SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL = eINSTANCE.getShaderBasedProjectedImageMeshTool();
+
+ /**
+ * The meta object literal for the '<em><b>XDimension</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION = eINSTANCE.getShaderBasedProjectedImageMeshTool_XDimension();
+
+ /**
+ * The meta object literal for the '<em><b>YDimension</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION = eINSTANCE.getShaderBasedProjectedImageMeshTool_YDimension();
+
+ /**
+ * The meta object literal for the '<em><b>Transparent Color</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR = eINSTANCE.getShaderBasedProjectedImageMeshTool_TransparentColor();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl <em>Variable Shader Based Projected Image Mesh Tool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl
+ * @see org.eclipse.apogy.core.environment.surface.impl.ApogySurfaceEnvironmentPackageImpl#getVariableShaderBasedProjectedImageMeshTool()
+ * @generated
+ */
+ EClass VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL = eINSTANCE.getVariableShaderBasedProjectedImageMeshTool();
+
+ /**
* The meta object literal for the '{@link org.eclipse.apogy.core.environment.surface.impl.CartesianTriangularMeshDerivedImageMapLayerImpl <em>Cartesian Triangular Mesh Derived Image Map Layer</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ImageBasedShaderBasedMeshTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ImageBasedShaderBasedMeshTool.java
new file mode 100644
index 0000000..081a44d
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ImageBasedShaderBasedMeshTool.java
@@ -0,0 +1,68 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface;
+
+import org.eclipse.apogy.common.images.AbstractEImage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Image Based Shader Based Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * *
+ * Shader based tool that uses an image to its rendering.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool#getImage <em>Image</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getImageBasedShaderBasedMeshTool()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ImageBasedShaderBasedMeshTool extends ShaderBasedMeshTool {
+ /**
+ * Returns the value of the '<em><b>Image</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * *
+ * The image.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Image</em>' containment reference.
+ * @see #setImage(AbstractEImage)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getImageBasedShaderBasedMeshTool_Image()
+ * @model containment="true"
+ * @generated
+ */
+ AbstractEImage getImage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool#getImage <em>Image</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Image</em>' containment reference.
+ * @see #getImage()
+ * @generated
+ */
+ void setImage(AbstractEImage value);
+
+
+} // ImageBasedShaderBasedMeshTool
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedMeshToolType.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedMeshToolType.java
index 5ccc06e..eac54ab 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedMeshToolType.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedMeshToolType.java
@@ -82,7 +82,17 @@
* @generated
* @ordered
*/
- ANGULAR(4, "ANGULAR", "Angular");
+ ANGULAR(4, "ANGULAR", "Angular"),
+
+ /**
+ * The '<em><b>IMAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ IMAGE(5, "IMAGE", "Image");
/**
* The '<em><b>NONE</b></em>' literal value.
@@ -140,6 +150,17 @@
public static final int ANGULAR_VALUE = 4;
/**
+ * The '<em><b>IMAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMAGE
+ * @model literal="Image"
+ * @generated
+ * @ordered
+ */
+ public static final int IMAGE_VALUE = 5;
+
+ /**
* An array of all the '<em><b>Shader Based Mesh Tool Type</b></em>' enumerators.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -152,6 +173,7 @@
GRID,
BULLSEYE,
ANGULAR,
+ IMAGE,
};
/**
@@ -213,6 +235,7 @@
case GRID_VALUE: return GRID;
case BULLSEYE_VALUE: return BULLSEYE;
case ANGULAR_VALUE: return ANGULAR;
+ case IMAGE_VALUE: return IMAGE;
}
return null;
}
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedProjectedImageMeshTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedProjectedImageMeshTool.java
new file mode 100644
index 0000000..cad53d0
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/ShaderBasedProjectedImageMeshTool.java
@@ -0,0 +1,127 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface;
+
+import org.eclipse.swt.graphics.RGBA;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shader Based Projected Image Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * *
+ * Shader based tool that displays an image on top of the mesh.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getXDimension <em>XDimension</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getYDimension <em>YDimension</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getTransparentColor <em>Transparent Color</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getShaderBasedProjectedImageMeshTool()
+ * @model annotation="http://www.eclipse.org/apogy hasCustomClass='true' hasCustomItemProvider='true'"
+ * @generated
+ */
+public interface ShaderBasedProjectedImageMeshTool extends ImageBasedShaderBasedMeshTool {
+ /**
+ * Returns the value of the '<em><b>XDimension</b></em>' attribute.
+ * The default value is <code>"1.0"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * *
+ * Size of the projected image along the X axis
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>XDimension</em>' attribute.
+ * @see #setXDimension(float)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getShaderBasedProjectedImageMeshTool_XDimension()
+ * @model default="1.0" unique="false"
+ * annotation="http://www.eclipse.org/apogy units='m'"
+ * @generated
+ */
+ float getXDimension();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getXDimension <em>XDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>XDimension</em>' attribute.
+ * @see #getXDimension()
+ * @generated
+ */
+ void setXDimension(float value);
+
+ /**
+ * Returns the value of the '<em><b>YDimension</b></em>' attribute.
+ * The default value is <code>"1.0"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * *
+ * Size of the projected image along the Y axis
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>YDimension</em>' attribute.
+ * @see #setYDimension(float)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getShaderBasedProjectedImageMeshTool_YDimension()
+ * @model default="1.0" unique="false"
+ * annotation="http://www.eclipse.org/apogy units='m'"
+ * @generated
+ */
+ float getYDimension();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getYDimension <em>YDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>YDimension</em>' attribute.
+ * @see #getYDimension()
+ * @generated
+ */
+ void setYDimension(float value);
+
+ /**
+ * Returns the value of the '<em><b>Transparent Color</b></em>' attribute.
+ * The default value is <code>"255,255,255,255"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The color that is interpreted as transparent.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Transparent Color</em>' attribute.
+ * @see #setTransparentColor(RGBA)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getShaderBasedProjectedImageMeshTool_TransparentColor()
+ * @model default="255,255,255,255" unique="false" dataType="org.eclipse.apogy.common.emf.ui.RGBA"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel property='Editable'"
+ * @generated
+ */
+ RGBA getTransparentColor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool#getTransparentColor <em>Transparent Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transparent Color</em>' attribute.
+ * @see #getTransparentColor()
+ * @generated
+ */
+ void setTransparentColor(RGBA value);
+
+
+} // ShaderBasedProjectedImageMeshTool
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableAngularDisplayMeshTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableAngularDisplayMeshTool.java
index 98d6405..d20d54a 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableAngularDisplayMeshTool.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableAngularDisplayMeshTool.java
@@ -22,7 +22,8 @@
*
* <!-- begin-model-doc -->
* *
- * Shader based tool that displays angles as radial lines.
+ * Shader based tool that displays angles as radial lines which centre coordinates are updated to reflect the location
+ * of a Variable on that mesh.
* <!-- end-model-doc -->
*
*
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableBasedShaderBasedMeshTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableBasedShaderBasedMeshTool.java
index 6c1ebd1..70a2746 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableBasedShaderBasedMeshTool.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableBasedShaderBasedMeshTool.java
@@ -34,7 +34,9 @@
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdatePosition <em>Update Position</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdateOrientation <em>Update Orientation</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
* </ul>
*
@@ -68,6 +70,29 @@
void setVariableFeatureReference(VariableFeatureReference value);
/**
+ * Returns the value of the '<em><b>Update Position</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Update Position</em>' attribute.
+ * @see #setUpdatePosition(boolean)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getVariableBasedShaderBasedMeshTool_UpdatePosition()
+ * @model default="true" unique="false"
+ * @generated
+ */
+ boolean isUpdatePosition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdatePosition <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Update Position</em>' attribute.
+ * @see #isUpdatePosition()
+ * @generated
+ */
+ void setUpdatePosition(boolean value);
+
+ /**
* Returns the value of the '<em><b>Relative Position</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -95,6 +120,29 @@
void setRelativePosition(Tuple3d value);
/**
+ * Returns the value of the '<em><b>Update Orientation</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Update Orientation</em>' attribute.
+ * @see #setUpdateOrientation(boolean)
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getVariableBasedShaderBasedMeshTool_UpdateOrientation()
+ * @model default="true" unique="false"
+ * @generated
+ */
+ boolean isUpdateOrientation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool#isUpdateOrientation <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Update Orientation</em>' attribute.
+ * @see #isUpdateOrientation()
+ * @generated
+ */
+ void setUpdateOrientation(boolean value);
+
+ /**
* Returns the value of the '<em><b>Relative Rotation Matrix</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariablePoseBullseyeTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariablePoseBullseyeTool.java
index e341e2e..e38e89f 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariablePoseBullseyeTool.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariablePoseBullseyeTool.java
@@ -22,7 +22,7 @@
*
* <!-- begin-model-doc -->
* *
- * Specialisation of ShaderBasedBullseyeTool which centre coordinates are updates to reflect the location
+ * Specialisation of ShaderBasedBullseyeTool which centre coordinates are updated to reflect the location
* of a Variable on that mesh.
* <!-- end-model-doc -->
*
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableShaderBasedProjectedImageMeshTool.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableShaderBasedProjectedImageMeshTool.java
new file mode 100644
index 0000000..2541f62
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/VariableShaderBasedProjectedImageMeshTool.java
@@ -0,0 +1,36 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Shader Based Projected Image Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * *
+ * Shader based tool that displays an image on top of the mesh which centre coordinates are updated to reflect the location
+ * of a Variable on that mesh.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage#getVariableShaderBasedProjectedImageMeshTool()
+ * @model annotation="http://www.eclipse.org/apogy hasCustomClass='true' hasCustomItemProvider='true'"
+ * @generated
+ */
+public interface VariableShaderBasedProjectedImageMeshTool extends ShaderBasedProjectedImageMeshTool, VariableBasedShaderBasedMeshTool {
+
+} // VariableShaderBasedProjectedImageMeshTool
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentFactoryImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentFactoryImpl.java
index 3baffda..41ff566 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentFactoryImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentFactoryImpl.java
@@ -90,6 +90,8 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL: return createVariablePoseBullseyeTool();
case ApogySurfaceEnvironmentPackage.SHADER_BASED_ANGULAR_DISPLAY_MESH_TOOL: return createShaderBasedAngularDisplayMeshTool();
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL: return createVariableAngularDisplayMeshTool();
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL: return createShaderBasedProjectedImageMeshTool();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL: return createVariableShaderBasedProjectedImageMeshTool();
case ApogySurfaceEnvironmentPackage.CARTESIAN_TRIANGULAR_MESH_SLOPE_IMAGE_MAP_LAYER: return createCartesianTriangularMeshSlopeImageMapLayer();
case ApogySurfaceEnvironmentPackage.CARTESIAN_TRIANGULAR_MESH_DISCRETE_SLOPE_IMAGE_MAP_LAYER: return createCartesianTriangularMeshDiscreteSlopeImageMapLayer();
case ApogySurfaceEnvironmentPackage.CARTESIAN_TRIANGULAR_MESH_HEIGHT_IMAGE_MAP_LAYER: return createCartesianTriangularMeshHeightImageMapLayer();
@@ -348,6 +350,28 @@
* @generated
*/
@Override
+ public ShaderBasedProjectedImageMeshTool createShaderBasedProjectedImageMeshTool() {
+ ShaderBasedProjectedImageMeshToolImpl shaderBasedProjectedImageMeshTool = new ShaderBasedProjectedImageMeshToolCustomImpl();
+ return shaderBasedProjectedImageMeshTool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public VariableShaderBasedProjectedImageMeshTool createVariableShaderBasedProjectedImageMeshTool() {
+ VariableShaderBasedProjectedImageMeshToolImpl variableShaderBasedProjectedImageMeshTool = new VariableShaderBasedProjectedImageMeshToolCustomImpl();
+ return variableShaderBasedProjectedImageMeshTool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public CartesianTriangularMeshSlopeImageMapLayer createCartesianTriangularMeshSlopeImageMapLayer() {
CartesianTriangularMeshSlopeImageMapLayerImpl cartesianTriangularMeshSlopeImageMapLayer = new CartesianTriangularMeshSlopeImageMapLayerCustomImpl();
return cartesianTriangularMeshSlopeImageMapLayer;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentPackageImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentPackageImpl.java
index e3fe7f6..1bb8f10 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentPackageImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ApogySurfaceEnvironmentPackageImpl.java
@@ -57,6 +57,7 @@
import org.eclipse.apogy.core.environment.surface.EllipseShapeImageLayer;
import org.eclipse.apogy.core.environment.surface.FeaturesOfInterestMapLayer;
import org.eclipse.apogy.core.environment.surface.FixedPositionLineOfSightImageMapLayer;
+import org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool;
import org.eclipse.apogy.core.environment.surface.ImageMapLayer;
import org.eclipse.apogy.core.environment.surface.ImageMapLayerPresentation;
import org.eclipse.apogy.core.environment.surface.Map;
@@ -77,6 +78,7 @@
import org.eclipse.apogy.core.environment.surface.ShaderBasedGridTool;
import org.eclipse.apogy.core.environment.surface.ShaderBasedMeshTool;
import org.eclipse.apogy.core.environment.surface.ShaderBasedMeshToolType;
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
import org.eclipse.apogy.core.environment.surface.SlopeRange;
import org.eclipse.apogy.core.environment.surface.SurfaceEnvironmentUtilities;
import org.eclipse.apogy.core.environment.surface.SurfaceWorksite;
@@ -90,6 +92,7 @@
import org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshToolPoseAdapter;
import org.eclipse.apogy.core.environment.surface.VariablePoseBullseyeTool;
import org.eclipse.apogy.core.environment.surface.VariableShaderBasedGridTool;
+import org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool;
import org.eclipse.apogy.core.invocator.ApogyCoreInvocatorPackage;
@@ -245,6 +248,13 @@
* <!-- end-user-doc -->
* @generated
*/
+ private EClass imageBasedShaderBasedMeshToolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass variableBasedShaderBasedMeshToolEClass = null;
/**
@@ -308,6 +318,20 @@
* <!-- end-user-doc -->
* @generated
*/
+ private EClass shaderBasedProjectedImageMeshToolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableShaderBasedProjectedImageMeshToolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass cartesianTriangularMeshDerivedImageMapLayerEClass = null;
/**
@@ -1347,6 +1371,26 @@
* @generated
*/
@Override
+ public EClass getImageBasedShaderBasedMeshTool() {
+ return imageBasedShaderBasedMeshToolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getImageBasedShaderBasedMeshTool_Image() {
+ return (EReference)imageBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getVariableBasedShaderBasedMeshTool() {
return variableBasedShaderBasedMeshToolEClass;
}
@@ -1367,8 +1411,28 @@
* @generated
*/
@Override
+ public EAttribute getVariableBasedShaderBasedMeshTool_UpdatePosition() {
+ return (EAttribute)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EReference getVariableBasedShaderBasedMeshTool_RelativePosition() {
- return (EReference)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(1);
+ return (EReference)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getVariableBasedShaderBasedMeshTool_UpdateOrientation() {
+ return (EAttribute)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(3);
}
/**
@@ -1378,7 +1442,7 @@
*/
@Override
public EReference getVariableBasedShaderBasedMeshTool_RelativeRotationMatrix() {
- return (EReference)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(2);
+ return (EReference)variableBasedShaderBasedMeshToolEClass.getEStructuralFeatures().get(4);
}
/**
@@ -1697,6 +1761,56 @@
* @generated
*/
@Override
+ public EClass getShaderBasedProjectedImageMeshTool() {
+ return shaderBasedProjectedImageMeshToolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getShaderBasedProjectedImageMeshTool_XDimension() {
+ return (EAttribute)shaderBasedProjectedImageMeshToolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getShaderBasedProjectedImageMeshTool_YDimension() {
+ return (EAttribute)shaderBasedProjectedImageMeshToolEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getShaderBasedProjectedImageMeshTool_TransparentColor() {
+ return (EAttribute)shaderBasedProjectedImageMeshToolEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVariableShaderBasedProjectedImageMeshTool() {
+ return variableShaderBasedProjectedImageMeshToolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getCartesianTriangularMeshDerivedImageMapLayer() {
return cartesianTriangularMeshDerivedImageMapLayerEClass;
}
@@ -2616,9 +2730,14 @@
createEOperation(shaderBasedMeshToolEClass, SHADER_BASED_MESH_TOOL___CREATE_SHADER_PARAMETERS);
createEOperation(shaderBasedMeshToolEClass, SHADER_BASED_MESH_TOOL___CREATE_TOOL_MATRIX);
+ imageBasedShaderBasedMeshToolEClass = createEClass(IMAGE_BASED_SHADER_BASED_MESH_TOOL);
+ createEReference(imageBasedShaderBasedMeshToolEClass, IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE);
+
variableBasedShaderBasedMeshToolEClass = createEClass(VARIABLE_BASED_SHADER_BASED_MESH_TOOL);
createEReference(variableBasedShaderBasedMeshToolEClass, VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE);
+ createEAttribute(variableBasedShaderBasedMeshToolEClass, VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION);
createEReference(variableBasedShaderBasedMeshToolEClass, VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION);
+ createEAttribute(variableBasedShaderBasedMeshToolEClass, VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION);
createEReference(variableBasedShaderBasedMeshToolEClass, VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX);
variableBasedShaderBasedMeshToolPoseAdapterEClass = createEClass(VARIABLE_BASED_SHADER_BASED_MESH_TOOL_POSE_ADAPTER);
@@ -2660,6 +2779,13 @@
variableAngularDisplayMeshToolEClass = createEClass(VARIABLE_ANGULAR_DISPLAY_MESH_TOOL);
+ shaderBasedProjectedImageMeshToolEClass = createEClass(SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL);
+ createEAttribute(shaderBasedProjectedImageMeshToolEClass, SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION);
+ createEAttribute(shaderBasedProjectedImageMeshToolEClass, SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION);
+ createEAttribute(shaderBasedProjectedImageMeshToolEClass, SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR);
+
+ variableShaderBasedProjectedImageMeshToolEClass = createEClass(VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL);
+
cartesianTriangularMeshDerivedImageMapLayerEClass = createEClass(CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER);
createEAttribute(cartesianTriangularMeshDerivedImageMapLayerEClass, CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER__REQUIRED_RESOLUTION);
createEReference(cartesianTriangularMeshDerivedImageMapLayerEClass, CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER__CARTESIAN_TRIANGULAR_MESH_MAP_LAYER);
@@ -2829,6 +2955,7 @@
shaderBasedMeshToolEClass.getESuperTypes().add(theApogyCommonEMFPackage.getNamedDescribedElement());
shaderBasedMeshToolEClass.getESuperTypes().add(theApogyCommonEMFPackage.getStartable());
shaderBasedMeshToolEClass.getESuperTypes().add(theApogyCommonEMFPackage.getDisposable());
+ imageBasedShaderBasedMeshToolEClass.getESuperTypes().add(this.getShaderBasedMeshTool());
variableBasedShaderBasedMeshToolEClass.getESuperTypes().add(this.getShaderBasedMeshTool());
variableBasedShaderBasedMeshToolPoseAdapterEClass.getESuperTypes().add(theApogyCommonEMFPackage.getDisposable());
shaderBasedGridToolEClass.getESuperTypes().add(this.getShaderBasedMeshTool());
@@ -2841,6 +2968,9 @@
shaderBasedAngularDisplayMeshToolEClass.getESuperTypes().add(this.getShaderBasedMeshTool());
variableAngularDisplayMeshToolEClass.getESuperTypes().add(this.getShaderBasedAngularDisplayMeshTool());
variableAngularDisplayMeshToolEClass.getESuperTypes().add(this.getVariableBasedShaderBasedMeshTool());
+ shaderBasedProjectedImageMeshToolEClass.getESuperTypes().add(this.getImageBasedShaderBasedMeshTool());
+ variableShaderBasedProjectedImageMeshToolEClass.getESuperTypes().add(this.getShaderBasedProjectedImageMeshTool());
+ variableShaderBasedProjectedImageMeshToolEClass.getESuperTypes().add(this.getVariableBasedShaderBasedMeshTool());
cartesianTriangularMeshDerivedImageMapLayerEClass.getESuperTypes().add(this.getImageMapLayer());
cartesianTriangularMeshSlopeImageMapLayerEClass.getESuperTypes().add(this.getCartesianTriangularMeshDerivedImageMapLayer());
cartesianTriangularMeshDiscreteSlopeImageMapLayerEClass.getESuperTypes().add(this.getCartesianTriangularMeshDerivedImageMapLayer());
@@ -2973,9 +3103,14 @@
initEOperation(getShaderBasedMeshTool__CreateToolMatrix(), theApogyCommonMathPackage.getMatrix4x4(), "createToolMatrix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ initEClass(imageBasedShaderBasedMeshToolEClass, ImageBasedShaderBasedMeshTool.class, "ImageBasedShaderBasedMeshTool", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getImageBasedShaderBasedMeshTool_Image(), theApogyCommonImagesPackage.getAbstractEImage(), null, "image", null, 0, 1, ImageBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
initEClass(variableBasedShaderBasedMeshToolEClass, VariableBasedShaderBasedMeshTool.class, "VariableBasedShaderBasedMeshTool", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getVariableBasedShaderBasedMeshTool_VariableFeatureReference(), theApogyCoreInvocatorPackage.getVariableFeatureReference(), null, "variableFeatureReference", null, 0, 1, VariableBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVariableBasedShaderBasedMeshTool_UpdatePosition(), theEcorePackage.getEBoolean(), "updatePosition", "true", 0, 1, VariableBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getVariableBasedShaderBasedMeshTool_RelativePosition(), theApogyCommonMathPackage.getTuple3d(), null, "relativePosition", null, 0, 1, VariableBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVariableBasedShaderBasedMeshTool_UpdateOrientation(), theEcorePackage.getEBoolean(), "updateOrientation", "true", 0, 1, VariableBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getVariableBasedShaderBasedMeshTool_RelativeRotationMatrix(), theApogyCommonMathPackage.getMatrix3x3(), null, "relativeRotationMatrix", null, 0, 1, VariableBasedShaderBasedMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(variableBasedShaderBasedMeshToolPoseAdapterEClass, VariableBasedShaderBasedMeshToolPoseAdapter.class, "VariableBasedShaderBasedMeshToolPoseAdapter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -3017,6 +3152,13 @@
initEClass(variableAngularDisplayMeshToolEClass, VariableAngularDisplayMeshTool.class, "VariableAngularDisplayMeshTool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEClass(shaderBasedProjectedImageMeshToolEClass, ShaderBasedProjectedImageMeshTool.class, "ShaderBasedProjectedImageMeshTool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getShaderBasedProjectedImageMeshTool_XDimension(), theEcorePackage.getEFloat(), "xDimension", "1.0", 0, 1, ShaderBasedProjectedImageMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getShaderBasedProjectedImageMeshTool_YDimension(), theEcorePackage.getEFloat(), "yDimension", "1.0", 0, 1, ShaderBasedProjectedImageMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getShaderBasedProjectedImageMeshTool_TransparentColor(), theApogyCommonEMFUIPackage.getRGBA(), "transparentColor", "255,255,255,255", 0, 1, ShaderBasedProjectedImageMeshTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(variableShaderBasedProjectedImageMeshToolEClass, VariableShaderBasedProjectedImageMeshTool.class, "VariableShaderBasedProjectedImageMeshTool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
initEClass(cartesianTriangularMeshDerivedImageMapLayerEClass, CartesianTriangularMeshDerivedImageMapLayer.class, "CartesianTriangularMeshDerivedImageMapLayer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getCartesianTriangularMeshDerivedImageMapLayer_RequiredResolution(), theEcorePackage.getEDouble(), "requiredResolution", "1.0", 0, 1, CartesianTriangularMeshDerivedImageMapLayer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getCartesianTriangularMeshDerivedImageMapLayer_CartesianTriangularMeshMapLayer(), this.getCartesianTriangularMeshMapLayer(), null, "cartesianTriangularMeshMapLayer", null, 0, 1, CartesianTriangularMeshDerivedImageMapLayer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -3223,6 +3365,7 @@
addEEnumLiteral(shaderBasedMeshToolTypeEEnum, ShaderBasedMeshToolType.GRID);
addEEnumLiteral(shaderBasedMeshToolTypeEEnum, ShaderBasedMeshToolType.BULLSEYE);
addEEnumLiteral(shaderBasedMeshToolTypeEEnum, ShaderBasedMeshToolType.ANGULAR);
+ addEEnumLiteral(shaderBasedMeshToolTypeEEnum, ShaderBasedMeshToolType.IMAGE);
// Initialize data types
initEDataType(iProgressMonitorEDataType, IProgressMonitor.class, "IProgressMonitor", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
@@ -3730,6 +3873,18 @@
"documentation", "*\nTool Type used in shader. Note that the enm value are used to switch between the function used to generate the visual in the fragment shader,"
});
addAnnotation
+ (imageBasedShaderBasedMeshToolEClass,
+ source,
+ new String[] {
+ "documentation", "*\n Shader based tool that uses an image to its rendering."
+ });
+ addAnnotation
+ (getImageBasedShaderBasedMeshTool_Image(),
+ source,
+ new String[] {
+ "documentation", "*\nThe image."
+ });
+ addAnnotation
(variableBasedShaderBasedMeshToolEClass,
source,
new String[] {
@@ -3860,7 +4015,7 @@
(variablePoseBullseyeToolEClass,
source,
new String[] {
- "documentation", "*\nSpecialisation of ShaderBasedBullseyeTool which centre coordinates are updates to reflect the location\nof a Variable on that mesh."
+ "documentation", "*\nSpecialisation of ShaderBasedBullseyeTool which centre coordinates are updated to reflect the location\nof a Variable on that mesh."
});
addAnnotation
(shaderBasedAngularDisplayMeshToolEClass,
@@ -3915,7 +4070,38 @@
(variableAngularDisplayMeshToolEClass,
source,
new String[] {
- "documentation", "*\nShader based tool that displays angles as radial lines."
+ "documentation", "*\nShader based tool that displays angles as radial lines which centre coordinates are updated to reflect the location\nof a Variable on that mesh."
+ });
+ addAnnotation
+ (shaderBasedProjectedImageMeshToolEClass,
+ source,
+ new String[] {
+ "documentation", "*\nShader based tool that displays an image on top of the mesh."
+ });
+ addAnnotation
+ (getShaderBasedProjectedImageMeshTool_XDimension(),
+ source,
+ new String[] {
+ "documentation", "*\nSize of the projected image along the X axis"
+ });
+ addAnnotation
+ (getShaderBasedProjectedImageMeshTool_YDimension(),
+ source,
+ new String[] {
+ "documentation", "*\nSize of the projected image along the Y axis"
+ });
+ addAnnotation
+ (getShaderBasedProjectedImageMeshTool_TransparentColor(),
+ source,
+ new String[] {
+ "documentation", "The color that is interpreted as transparent.",
+ "property", "Editable"
+ });
+ addAnnotation
+ (variableShaderBasedProjectedImageMeshToolEClass,
+ source,
+ new String[] {
+ "documentation", "*\nShader based tool that displays an image on top of the mesh which centre coordinates are updated to reflect the location\nof a Variable on that mesh."
});
addAnnotation
(cartesianTriangularMeshDerivedImageMapLayerEClass,
@@ -4689,6 +4875,32 @@
"hasCustomItemProvider", "true"
});
addAnnotation
+ (shaderBasedProjectedImageMeshToolEClass,
+ source,
+ new String[] {
+ "hasCustomClass", "true",
+ "hasCustomItemProvider", "true"
+ });
+ addAnnotation
+ (getShaderBasedProjectedImageMeshTool_XDimension(),
+ source,
+ new String[] {
+ "units", "m"
+ });
+ addAnnotation
+ (getShaderBasedProjectedImageMeshTool_YDimension(),
+ source,
+ new String[] {
+ "units", "m"
+ });
+ addAnnotation
+ (variableShaderBasedProjectedImageMeshToolEClass,
+ source,
+ new String[] {
+ "hasCustomClass", "true",
+ "hasCustomItemProvider", "true"
+ });
+ addAnnotation
(cartesianTriangularMeshDerivedImageMapLayerEClass,
source,
new String[] {
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ImageBasedShaderBasedMeshToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ImageBasedShaderBasedMeshToolImpl.java
new file mode 100644
index 0000000..fc1afe6
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ImageBasedShaderBasedMeshToolImpl.java
@@ -0,0 +1,190 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.impl;
+
+import org.eclipse.apogy.common.images.AbstractEImage;
+
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Image Based Shader Based Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.ImageBasedShaderBasedMeshToolImpl#getImage <em>Image</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ImageBasedShaderBasedMeshToolImpl extends ShaderBasedMeshToolCustomImpl implements ImageBasedShaderBasedMeshTool {
+ /**
+ * The cached value of the '{@link #getImage() <em>Image</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImage()
+ * @generated
+ * @ordered
+ */
+ protected AbstractEImage image;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImageBasedShaderBasedMeshToolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ApogySurfaceEnvironmentPackage.Literals.IMAGE_BASED_SHADER_BASED_MESH_TOOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AbstractEImage getImage() {
+ return image;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetImage(AbstractEImage newImage, NotificationChain msgs) {
+ AbstractEImage oldImage = image;
+ image = newImage;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE, oldImage, newImage);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setImage(AbstractEImage newImage) {
+ if (newImage != image) {
+ NotificationChain msgs = null;
+ if (image != null)
+ msgs = ((InternalEObject)image).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE, null, msgs);
+ if (newImage != null)
+ msgs = ((InternalEObject)newImage).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE, null, msgs);
+ msgs = basicSetImage(newImage, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE, newImage, newImage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ return basicSetImage(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ return getImage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ setImage((AbstractEImage)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ setImage((AbstractEImage)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL__IMAGE:
+ return image != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ImageBasedShaderBasedMeshToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolImpl.java
new file mode 100644
index 0000000..a40bd50
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/ShaderBasedProjectedImageMeshToolImpl.java
@@ -0,0 +1,293 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.impl;
+
+import org.eclipse.apogy.common.emf.ui.ApogyCommonEMFUIFactory;
+import org.eclipse.apogy.common.emf.ui.ApogyCommonEMFUIPackage;
+
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.swt.graphics.RGBA;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shader Based Projected Image Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl#getXDimension <em>XDimension</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl#getYDimension <em>YDimension</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.ShaderBasedProjectedImageMeshToolImpl#getTransparentColor <em>Transparent Color</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ShaderBasedProjectedImageMeshToolImpl extends ImageBasedShaderBasedMeshToolImpl implements ShaderBasedProjectedImageMeshTool {
+ /**
+ * The default value of the '{@link #getXDimension() <em>XDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXDimension()
+ * @generated
+ * @ordered
+ */
+ protected static final float XDIMENSION_EDEFAULT = 1.0F;
+
+ /**
+ * The cached value of the '{@link #getXDimension() <em>XDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXDimension()
+ * @generated
+ * @ordered
+ */
+ protected float xDimension = XDIMENSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getYDimension() <em>YDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getYDimension()
+ * @generated
+ * @ordered
+ */
+ protected static final float YDIMENSION_EDEFAULT = 1.0F;
+
+ /**
+ * The cached value of the '{@link #getYDimension() <em>YDimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getYDimension()
+ * @generated
+ * @ordered
+ */
+ protected float yDimension = YDIMENSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTransparentColor() <em>Transparent Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransparentColor()
+ * @generated
+ * @ordered
+ */
+ protected static final RGBA TRANSPARENT_COLOR_EDEFAULT = (RGBA)ApogyCommonEMFUIFactory.eINSTANCE.createFromString(ApogyCommonEMFUIPackage.eINSTANCE.getRGBA(), "255,255,255,255");
+
+ /**
+ * The cached value of the '{@link #getTransparentColor() <em>Transparent Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransparentColor()
+ * @generated
+ * @ordered
+ */
+ protected RGBA transparentColor = TRANSPARENT_COLOR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShaderBasedProjectedImageMeshToolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ApogySurfaceEnvironmentPackage.Literals.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public float getXDimension() {
+ return xDimension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setXDimension(float newXDimension) {
+ float oldXDimension = xDimension;
+ xDimension = newXDimension;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION, oldXDimension, xDimension));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public float getYDimension() {
+ return yDimension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setYDimension(float newYDimension) {
+ float oldYDimension = yDimension;
+ yDimension = newYDimension;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION, oldYDimension, yDimension));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RGBA getTransparentColor() {
+ return transparentColor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTransparentColor(RGBA newTransparentColor) {
+ RGBA oldTransparentColor = transparentColor;
+ transparentColor = newTransparentColor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR, oldTransparentColor, transparentColor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION:
+ return getXDimension();
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION:
+ return getYDimension();
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR:
+ return getTransparentColor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION:
+ setXDimension((Float)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION:
+ setYDimension((Float)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR:
+ setTransparentColor((RGBA)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION:
+ setXDimension(XDIMENSION_EDEFAULT);
+ return;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION:
+ setYDimension(YDIMENSION_EDEFAULT);
+ return;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR:
+ setTransparentColor(TRANSPARENT_COLOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__XDIMENSION:
+ return xDimension != XDIMENSION_EDEFAULT;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__YDIMENSION:
+ return yDimension != YDIMENSION_EDEFAULT;
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__TRANSPARENT_COLOR:
+ return TRANSPARENT_COLOR_EDEFAULT == null ? transparentColor != null : !TRANSPARENT_COLOR_EDEFAULT.equals(transparentColor);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (xDimension: ");
+ result.append(xDimension);
+ result.append(", yDimension: ");
+ result.append(yDimension);
+ result.append(", transparentColor: ");
+ result.append(transparentColor);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ShaderBasedProjectedImageMeshToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableAngularDisplayMeshToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableAngularDisplayMeshToolImpl.java
index 79b47e2..2fa102c 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableAngularDisplayMeshToolImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableAngularDisplayMeshToolImpl.java
@@ -40,7 +40,9 @@
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableAngularDisplayMeshToolImpl#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableAngularDisplayMeshToolImpl#isUpdatePosition <em>Update Position</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableAngularDisplayMeshToolImpl#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableAngularDisplayMeshToolImpl#isUpdateOrientation <em>Update Orientation</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableAngularDisplayMeshToolImpl#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
* </ul>
*
@@ -58,6 +60,26 @@
protected VariableFeatureReference variableFeatureReference;
/**
+ * The default value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_POSITION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected boolean updatePosition = UPDATE_POSITION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativePosition() <em>Relative Position</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -68,6 +90,26 @@
protected Tuple3d relativePosition;
/**
+ * The default value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_ORIENTATION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected boolean updateOrientation = UPDATE_ORIENTATION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativeRotationMatrix() <em>Relative Rotation Matrix</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -147,6 +189,29 @@
* @generated
*/
@Override
+ public boolean isUpdatePosition() {
+ return updatePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdatePosition(boolean newUpdatePosition) {
+ boolean oldUpdatePosition = updatePosition;
+ updatePosition = newUpdatePosition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION, oldUpdatePosition, updatePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Tuple3d getRelativePosition() {
return relativePosition;
}
@@ -192,6 +257,29 @@
* @generated
*/
@Override
+ public boolean isUpdateOrientation() {
+ return updateOrientation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdateOrientation(boolean newUpdateOrientation) {
+ boolean oldUpdateOrientation = updateOrientation;
+ updateOrientation = newUpdateOrientation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION, oldUpdateOrientation, updateOrientation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Matrix3x3 getRelativeRotationMatrix() {
return relativeRotationMatrix;
}
@@ -259,8 +347,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
return getVariableFeatureReference();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION:
+ return isUpdatePosition();
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION:
return getRelativePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION:
+ return isUpdateOrientation();
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
return getRelativeRotationMatrix();
}
@@ -278,9 +370,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)newValue);
return;
@@ -299,9 +397,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition(UPDATE_POSITION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation(UPDATE_ORIENTATION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)null);
return;
@@ -319,8 +423,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
return variableFeatureReference != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION:
+ return updatePosition != UPDATE_POSITION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION:
return relativePosition != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION:
+ return updateOrientation != UPDATE_ORIENTATION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
return relativeRotationMatrix != null;
}
@@ -337,7 +445,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (derivedFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -355,7 +465,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (baseFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_ANGULAR_DISPLAY_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -363,4 +475,22 @@
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (updatePosition: ");
+ result.append(updatePosition);
+ result.append(", updateOrientation: ");
+ result.append(updateOrientation);
+ result.append(')');
+ return result.toString();
+ }
+
} //VariableAngularDisplayMeshToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolImpl.java
index 5e6a808..3c85a84 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableBasedShaderBasedMeshToolImpl.java
@@ -39,7 +39,9 @@
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl#isUpdatePosition <em>Update Position</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl#isUpdateOrientation <em>Update Orientation</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableBasedShaderBasedMeshToolImpl#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
* </ul>
*
@@ -57,6 +59,26 @@
protected VariableFeatureReference variableFeatureReference;
/**
+ * The default value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_POSITION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected boolean updatePosition = UPDATE_POSITION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativePosition() <em>Relative Position</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -67,6 +89,26 @@
protected Tuple3d relativePosition;
/**
+ * The default value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_ORIENTATION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected boolean updateOrientation = UPDATE_ORIENTATION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativeRotationMatrix() <em>Relative Rotation Matrix</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -146,6 +188,29 @@
* @generated
*/
@Override
+ public boolean isUpdatePosition() {
+ return updatePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdatePosition(boolean newUpdatePosition) {
+ boolean oldUpdatePosition = updatePosition;
+ updatePosition = newUpdatePosition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION, oldUpdatePosition, updatePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Tuple3d getRelativePosition() {
return relativePosition;
}
@@ -191,6 +256,29 @@
* @generated
*/
@Override
+ public boolean isUpdateOrientation() {
+ return updateOrientation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdateOrientation(boolean newUpdateOrientation) {
+ boolean oldUpdateOrientation = updateOrientation;
+ updateOrientation = newUpdateOrientation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION, oldUpdateOrientation, updateOrientation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Matrix3x3 getRelativeRotationMatrix() {
return relativeRotationMatrix;
}
@@ -258,8 +346,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
return getVariableFeatureReference();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION:
+ return isUpdatePosition();
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION:
return getRelativePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION:
+ return isUpdateOrientation();
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
return getRelativeRotationMatrix();
}
@@ -277,9 +369,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)newValue);
return;
@@ -298,9 +396,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition(UPDATE_POSITION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation(UPDATE_ORIENTATION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)null);
return;
@@ -318,12 +422,34 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
return variableFeatureReference != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION:
+ return updatePosition != UPDATE_POSITION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION:
return relativePosition != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION:
+ return updateOrientation != UPDATE_ORIENTATION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
return relativeRotationMatrix != null;
}
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (updatePosition: ");
+ result.append(updatePosition);
+ result.append(", updateOrientation: ");
+ result.append(updateOrientation);
+ result.append(')');
+ return result.toString();
+ }
+
} //VariableBasedShaderBasedMeshToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariablePoseBullseyeToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariablePoseBullseyeToolImpl.java
index ae19ffd..0ebc8e5 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariablePoseBullseyeToolImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariablePoseBullseyeToolImpl.java
@@ -40,7 +40,9 @@
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariablePoseBullseyeToolImpl#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariablePoseBullseyeToolImpl#isUpdatePosition <em>Update Position</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariablePoseBullseyeToolImpl#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariablePoseBullseyeToolImpl#isUpdateOrientation <em>Update Orientation</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariablePoseBullseyeToolImpl#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
* </ul>
*
@@ -58,6 +60,26 @@
protected VariableFeatureReference variableFeatureReference;
/**
+ * The default value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_POSITION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected boolean updatePosition = UPDATE_POSITION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativePosition() <em>Relative Position</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -68,6 +90,26 @@
protected Tuple3d relativePosition;
/**
+ * The default value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_ORIENTATION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected boolean updateOrientation = UPDATE_ORIENTATION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativeRotationMatrix() <em>Relative Rotation Matrix</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -147,6 +189,29 @@
* @generated
*/
@Override
+ public boolean isUpdatePosition() {
+ return updatePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdatePosition(boolean newUpdatePosition) {
+ boolean oldUpdatePosition = updatePosition;
+ updatePosition = newUpdatePosition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION, oldUpdatePosition, updatePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Tuple3d getRelativePosition() {
return relativePosition;
}
@@ -192,6 +257,29 @@
* @generated
*/
@Override
+ public boolean isUpdateOrientation() {
+ return updateOrientation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdateOrientation(boolean newUpdateOrientation) {
+ boolean oldUpdateOrientation = updateOrientation;
+ updateOrientation = newUpdateOrientation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION, oldUpdateOrientation, updateOrientation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Matrix3x3 getRelativeRotationMatrix() {
return relativeRotationMatrix;
}
@@ -259,8 +347,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE:
return getVariableFeatureReference();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION:
+ return isUpdatePosition();
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION:
return getRelativePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION:
+ return isUpdateOrientation();
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX:
return getRelativeRotationMatrix();
}
@@ -278,9 +370,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION:
+ setUpdatePosition((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)newValue);
return;
@@ -299,9 +397,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION:
+ setUpdatePosition(UPDATE_POSITION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation(UPDATE_ORIENTATION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)null);
return;
@@ -319,8 +423,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE:
return variableFeatureReference != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION:
+ return updatePosition != UPDATE_POSITION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION:
return relativePosition != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION:
+ return updateOrientation != UPDATE_ORIENTATION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX:
return relativeRotationMatrix != null;
}
@@ -337,7 +445,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (derivedFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -355,7 +465,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (baseFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_POSE_BULLSEYE_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -363,4 +475,22 @@
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (updatePosition: ");
+ result.append(updatePosition);
+ result.append(", updateOrientation: ");
+ result.append(updateOrientation);
+ result.append(')');
+ return result.toString();
+ }
+
} //VariablePoseBullseyeToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedGridToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedGridToolImpl.java
index f27b434..3ba0aaa 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedGridToolImpl.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedGridToolImpl.java
@@ -40,7 +40,9 @@
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedGridToolImpl#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedGridToolImpl#isUpdatePosition <em>Update Position</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedGridToolImpl#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedGridToolImpl#isUpdateOrientation <em>Update Orientation</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedGridToolImpl#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
* </ul>
*
@@ -58,6 +60,26 @@
protected VariableFeatureReference variableFeatureReference;
/**
+ * The default value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_POSITION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected boolean updatePosition = UPDATE_POSITION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativePosition() <em>Relative Position</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -68,6 +90,26 @@
protected Tuple3d relativePosition;
/**
+ * The default value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_ORIENTATION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected boolean updateOrientation = UPDATE_ORIENTATION_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getRelativeRotationMatrix() <em>Relative Rotation Matrix</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -147,6 +189,29 @@
* @generated
*/
@Override
+ public boolean isUpdatePosition() {
+ return updatePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdatePosition(boolean newUpdatePosition) {
+ boolean oldUpdatePosition = updatePosition;
+ updatePosition = newUpdatePosition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION, oldUpdatePosition, updatePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Tuple3d getRelativePosition() {
return relativePosition;
}
@@ -192,6 +257,29 @@
* @generated
*/
@Override
+ public boolean isUpdateOrientation() {
+ return updateOrientation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdateOrientation(boolean newUpdateOrientation) {
+ boolean oldUpdateOrientation = updateOrientation;
+ updateOrientation = newUpdateOrientation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION, oldUpdateOrientation, updateOrientation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Matrix3x3 getRelativeRotationMatrix() {
return relativeRotationMatrix;
}
@@ -259,8 +347,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE:
return getVariableFeatureReference();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION:
+ return isUpdatePosition();
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION:
return getRelativePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION:
+ return isUpdateOrientation();
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX:
return getRelativeRotationMatrix();
}
@@ -278,9 +370,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION:
+ setUpdatePosition((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)newValue);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation((Boolean)newValue);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)newValue);
return;
@@ -299,9 +397,15 @@
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE:
setVariableFeatureReference((VariableFeatureReference)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION:
+ setUpdatePosition(UPDATE_POSITION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION:
setRelativePosition((Tuple3d)null);
return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation(UPDATE_ORIENTATION_EDEFAULT);
+ return;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX:
setRelativeRotationMatrix((Matrix3x3)null);
return;
@@ -319,8 +423,12 @@
switch (featureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE:
return variableFeatureReference != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION:
+ return updatePosition != UPDATE_POSITION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION:
return relativePosition != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION:
+ return updateOrientation != UPDATE_ORIENTATION_EDEFAULT;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX:
return relativeRotationMatrix != null;
}
@@ -337,7 +445,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (derivedFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -355,7 +465,9 @@
if (baseClass == VariableBasedShaderBasedMeshTool.class) {
switch (baseFeatureID) {
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_POSITION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__UPDATE_ORIENTATION;
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_GRID_TOOL__RELATIVE_ROTATION_MATRIX;
default: return -1;
}
@@ -363,4 +475,22 @@
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (updatePosition: ");
+ result.append(updatePosition);
+ result.append(", updateOrientation: ");
+ result.append(updateOrientation);
+ result.append(')');
+ return result.toString();
+ }
+
} //VariableShaderBasedGridToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolImpl.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolImpl.java
new file mode 100644
index 0000000..408ad3a
--- /dev/null
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/impl/VariableShaderBasedProjectedImageMeshToolImpl.java
@@ -0,0 +1,496 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2020 Agence spatiale canadienne / Canadian Space Agency
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pierre Allard - initial API and implementation
+ *
+ * SPDX-License-Identifier: EPL-1.0
+ * *******************************************************************************
+ */
+package org.eclipse.apogy.core.environment.surface.impl;
+
+import org.eclipse.apogy.common.math.Matrix3x3;
+import org.eclipse.apogy.common.math.Tuple3d;
+
+import org.eclipse.apogy.core.environment.surface.ApogySurfaceEnvironmentPackage;
+import org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool;
+import org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool;
+
+import org.eclipse.apogy.core.invocator.VariableFeatureReference;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Shader Based Projected Image Mesh Tool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl#getVariableFeatureReference <em>Variable Feature Reference</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl#isUpdatePosition <em>Update Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl#getRelativePosition <em>Relative Position</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl#isUpdateOrientation <em>Update Orientation</em>}</li>
+ * <li>{@link org.eclipse.apogy.core.environment.surface.impl.VariableShaderBasedProjectedImageMeshToolImpl#getRelativeRotationMatrix <em>Relative Rotation Matrix</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class VariableShaderBasedProjectedImageMeshToolImpl extends ShaderBasedProjectedImageMeshToolCustomImpl implements VariableShaderBasedProjectedImageMeshTool {
+ /**
+ * The cached value of the '{@link #getVariableFeatureReference() <em>Variable Feature Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVariableFeatureReference()
+ * @generated
+ * @ordered
+ */
+ protected VariableFeatureReference variableFeatureReference;
+
+ /**
+ * The default value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_POSITION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdatePosition() <em>Update Position</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdatePosition()
+ * @generated
+ * @ordered
+ */
+ protected boolean updatePosition = UPDATE_POSITION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRelativePosition() <em>Relative Position</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRelativePosition()
+ * @generated
+ * @ordered
+ */
+ protected Tuple3d relativePosition;
+
+ /**
+ * The default value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UPDATE_ORIENTATION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isUpdateOrientation() <em>Update Orientation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUpdateOrientation()
+ * @generated
+ * @ordered
+ */
+ protected boolean updateOrientation = UPDATE_ORIENTATION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRelativeRotationMatrix() <em>Relative Rotation Matrix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRelativeRotationMatrix()
+ * @generated
+ * @ordered
+ */
+ protected Matrix3x3 relativeRotationMatrix;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableShaderBasedProjectedImageMeshToolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ApogySurfaceEnvironmentPackage.Literals.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public VariableFeatureReference getVariableFeatureReference() {
+ return variableFeatureReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetVariableFeatureReference(VariableFeatureReference newVariableFeatureReference, NotificationChain msgs) {
+ VariableFeatureReference oldVariableFeatureReference = variableFeatureReference;
+ variableFeatureReference = newVariableFeatureReference;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE, oldVariableFeatureReference, newVariableFeatureReference);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVariableFeatureReference(VariableFeatureReference newVariableFeatureReference) {
+ if (newVariableFeatureReference != variableFeatureReference) {
+ NotificationChain msgs = null;
+ if (variableFeatureReference != null)
+ msgs = ((InternalEObject)variableFeatureReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE, null, msgs);
+ if (newVariableFeatureReference != null)
+ msgs = ((InternalEObject)newVariableFeatureReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE, null, msgs);
+ msgs = basicSetVariableFeatureReference(newVariableFeatureReference, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE, newVariableFeatureReference, newVariableFeatureReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isUpdatePosition() {
+ return updatePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdatePosition(boolean newUpdatePosition) {
+ boolean oldUpdatePosition = updatePosition;
+ updatePosition = newUpdatePosition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION, oldUpdatePosition, updatePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tuple3d getRelativePosition() {
+ return relativePosition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRelativePosition(Tuple3d newRelativePosition, NotificationChain msgs) {
+ Tuple3d oldRelativePosition = relativePosition;
+ relativePosition = newRelativePosition;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION, oldRelativePosition, newRelativePosition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRelativePosition(Tuple3d newRelativePosition) {
+ if (newRelativePosition != relativePosition) {
+ NotificationChain msgs = null;
+ if (relativePosition != null)
+ msgs = ((InternalEObject)relativePosition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION, null, msgs);
+ if (newRelativePosition != null)
+ msgs = ((InternalEObject)newRelativePosition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION, null, msgs);
+ msgs = basicSetRelativePosition(newRelativePosition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION, newRelativePosition, newRelativePosition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isUpdateOrientation() {
+ return updateOrientation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpdateOrientation(boolean newUpdateOrientation) {
+ boolean oldUpdateOrientation = updateOrientation;
+ updateOrientation = newUpdateOrientation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION, oldUpdateOrientation, updateOrientation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Matrix3x3 getRelativeRotationMatrix() {
+ return relativeRotationMatrix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRelativeRotationMatrix(Matrix3x3 newRelativeRotationMatrix, NotificationChain msgs) {
+ Matrix3x3 oldRelativeRotationMatrix = relativeRotationMatrix;
+ relativeRotationMatrix = newRelativeRotationMatrix;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX, oldRelativeRotationMatrix, newRelativeRotationMatrix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRelativeRotationMatrix(Matrix3x3 newRelativeRotationMatrix) {
+ if (newRelativeRotationMatrix != relativeRotationMatrix) {
+ NotificationChain msgs = null;
+ if (relativeRotationMatrix != null)
+ msgs = ((InternalEObject)relativeRotationMatrix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX, null, msgs);
+ if (newRelativeRotationMatrix != null)
+ msgs = ((InternalEObject)newRelativeRotationMatrix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX, null, msgs);
+ msgs = basicSetRelativeRotationMatrix(newRelativeRotationMatrix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX, newRelativeRotationMatrix, newRelativeRotationMatrix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ return basicSetVariableFeatureReference(null, msgs);
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ return basicSetRelativePosition(null, msgs);
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ return basicSetRelativeRotationMatrix(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ return getVariableFeatureReference();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION:
+ return isUpdatePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ return getRelativePosition();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION:
+ return isUpdateOrientation();
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ return getRelativeRotationMatrix();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ setVariableFeatureReference((VariableFeatureReference)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition((Boolean)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ setRelativePosition((Tuple3d)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation((Boolean)newValue);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ setRelativeRotationMatrix((Matrix3x3)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ setVariableFeatureReference((VariableFeatureReference)null);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION:
+ setUpdatePosition(UPDATE_POSITION_EDEFAULT);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ setRelativePosition((Tuple3d)null);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION:
+ setUpdateOrientation(UPDATE_ORIENTATION_EDEFAULT);
+ return;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ setRelativeRotationMatrix((Matrix3x3)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE:
+ return variableFeatureReference != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION:
+ return updatePosition != UPDATE_POSITION_EDEFAULT;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION:
+ return relativePosition != null;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION:
+ return updateOrientation != UPDATE_ORIENTATION_EDEFAULT;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX:
+ return relativeRotationMatrix != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == VariableBasedShaderBasedMeshTool.class) {
+ switch (derivedFeatureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == VariableBasedShaderBasedMeshTool.class) {
+ switch (baseFeatureID) {
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__VARIABLE_FEATURE_REFERENCE: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__VARIABLE_FEATURE_REFERENCE;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_POSITION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_POSITION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__UPDATE_ORIENTATION: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__UPDATE_ORIENTATION;
+ case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL__RELATIVE_ROTATION_MATRIX: return ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL__RELATIVE_ROTATION_MATRIX;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (updatePosition: ");
+ result.append(updatePosition);
+ result.append(", updateOrientation: ");
+ result.append(updateOrientation);
+ result.append(')');
+ return result.toString();
+ }
+
+} //VariableShaderBasedProjectedImageMeshToolImpl
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentAdapterFactory.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentAdapterFactory.java
index 14181bc..743a3de 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentAdapterFactory.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentAdapterFactory.java
@@ -170,6 +170,10 @@
return createShaderBasedMeshToolAdapter();
}
@Override
+ public Adapter caseImageBasedShaderBasedMeshTool(ImageBasedShaderBasedMeshTool object) {
+ return createImageBasedShaderBasedMeshToolAdapter();
+ }
+ @Override
public Adapter caseVariableBasedShaderBasedMeshTool(VariableBasedShaderBasedMeshTool object) {
return createVariableBasedShaderBasedMeshToolAdapter();
}
@@ -206,6 +210,14 @@
return createVariableAngularDisplayMeshToolAdapter();
}
@Override
+ public Adapter caseShaderBasedProjectedImageMeshTool(ShaderBasedProjectedImageMeshTool object) {
+ return createShaderBasedProjectedImageMeshToolAdapter();
+ }
+ @Override
+ public Adapter caseVariableShaderBasedProjectedImageMeshTool(VariableShaderBasedProjectedImageMeshTool object) {
+ return createVariableShaderBasedProjectedImageMeshToolAdapter();
+ }
+ @Override
public Adapter caseCartesianTriangularMeshDerivedImageMapLayer(CartesianTriangularMeshDerivedImageMapLayer object) {
return createCartesianTriangularMeshDerivedImageMapLayerAdapter();
}
@@ -626,6 +638,20 @@
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool <em>Image Based Shader Based Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.apogy.core.environment.surface.ImageBasedShaderBasedMeshTool
+ * @generated
+ */
+ public Adapter createImageBasedShaderBasedMeshToolAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.VariableBasedShaderBasedMeshTool <em>Variable Based Shader Based Mesh Tool</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
@@ -752,6 +778,34 @@
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool <em>Shader Based Projected Image Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.apogy.core.environment.surface.ShaderBasedProjectedImageMeshTool
+ * @generated
+ */
+ public Adapter createShaderBasedProjectedImageMeshToolAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool <em>Variable Shader Based Projected Image Mesh Tool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.apogy.core.environment.surface.VariableShaderBasedProjectedImageMeshTool
+ * @generated
+ */
+ public Adapter createVariableShaderBasedProjectedImageMeshToolAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshDerivedImageMapLayer <em>Cartesian Triangular Mesh Derived Image Map Layer</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentSwitch.java b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentSwitch.java
index 342340a..b39df50 100644
--- a/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentSwitch.java
+++ b/bundles/core/org.eclipse.apogy.core.environment.surface/src-gen/org/eclipse/apogy/core/environment/surface/util/ApogySurfaceEnvironmentSwitch.java
@@ -270,6 +270,18 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case ApogySurfaceEnvironmentPackage.IMAGE_BASED_SHADER_BASED_MESH_TOOL: {
+ ImageBasedShaderBasedMeshTool imageBasedShaderBasedMeshTool = (ImageBasedShaderBasedMeshTool)theEObject;
+ T result = caseImageBasedShaderBasedMeshTool(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseShaderBasedMeshTool(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseNamedDescribedElement(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseStartable(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseDisposable(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseNamed(imageBasedShaderBasedMeshTool);
+ if (result == null) result = caseDescribed(imageBasedShaderBasedMeshTool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case ApogySurfaceEnvironmentPackage.VARIABLE_BASED_SHADER_BASED_MESH_TOOL: {
VariableBasedShaderBasedMeshTool variableBasedShaderBasedMeshTool = (VariableBasedShaderBasedMeshTool)theEObject;
T result = caseVariableBasedShaderBasedMeshTool(variableBasedShaderBasedMeshTool);
@@ -379,6 +391,34 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case ApogySurfaceEnvironmentPackage.SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL: {
+ ShaderBasedProjectedImageMeshTool shaderBasedProjectedImageMeshTool = (ShaderBasedProjectedImageMeshTool)theEObject;
+ T result = caseShaderBasedProjectedImageMeshTool(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseImageBasedShaderBasedMeshTool(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseShaderBasedMeshTool(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseNamedDescribedElement(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseStartable(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseDisposable(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseNamed(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseDescribed(shaderBasedProjectedImageMeshTool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ApogySurfaceEnvironmentPackage.VARIABLE_SHADER_BASED_PROJECTED_IMAGE_MESH_TOOL: {
+ VariableShaderBasedProjectedImageMeshTool variableShaderBasedProjectedImageMeshTool = (VariableShaderBasedProjectedImageMeshTool)theEObject;
+ T result = caseVariableShaderBasedProjectedImageMeshTool(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseShaderBasedProjectedImageMeshTool(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseVariableBasedShaderBasedMeshTool(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseImageBasedShaderBasedMeshTool(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseShaderBasedMeshTool(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseNamedDescribedElement(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseStartable(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseDisposable(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseNamed(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = caseDescribed(variableShaderBasedProjectedImageMeshTool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case ApogySurfaceEnvironmentPackage.CARTESIAN_TRIANGULAR_MESH_DERIVED_IMAGE_MAP_LAYER: {
CartesianTriangularMeshDerivedImageMapLayer cartesianTriangularMeshDerivedImageMapLayer = (CartesianTriangularMeshDerivedImageMapLayer)theEObject;
T result = caseCartesianTriangularMeshDerivedImageMapLayer(cartesianTriangularMeshDerivedImageMapLayer);
@@ -932,6 +972,21 @@
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Image Based Shader Based Mesh Tool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Image Based Shader Based Mesh Tool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImageBasedShaderBasedMeshTool(ImageBasedShaderBasedMeshTool object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Variable Based Shader Based Mesh Tool</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -1067,6 +1122,36 @@
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Shader Based Projected Image Mesh Tool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Shader Based Projected Image Mesh Tool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShaderBasedProjectedImageMeshTool(ShaderBasedProjectedImageMeshTool object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Variable Shader Based Projected Image Mesh Tool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Variable Shader Based Projected Image Mesh Tool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableShaderBasedProjectedImageMeshTool(VariableShaderBasedProjectedImageMeshTool object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Cartesian Triangular Mesh Derived Image Map Layer</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;