| /** |
| * ******************************************************************************* |
| * 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: |
| * Regent L'Archeveque - initial API and implementation |
| * |
| * SPDX-License-Identifier: EPL-1.0 |
| * ******************************************************************************* |
| */ |
| package org.eclipse.apogy.core.environment.earth.orbit.planner; |
| |
| import java.util.List; |
| |
| import org.eclipse.apogy.common.emf.EObjectReferencesList; |
| |
| import org.eclipse.apogy.core.environment.earth.orbit.VisibilityPass; |
| |
| import org.eclipse.core.runtime.IProgressMonitor; |
| |
| import org.eclipse.emf.ecore.EObject; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Facade</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <!-- begin-model-doc --> |
| * Planner Facade. |
| * <!-- end-model-doc --> |
| * |
| * |
| * @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getApogyCoreEnvironmentEarthOrbitPlannerFacade() |
| * @model annotation="http://www.eclipse.org/apogy isSingleton='true' hasCustomClass='true'" |
| * @generated |
| */ |
| public interface ApogyCoreEnvironmentEarthOrbitPlannerFacade extends EObject { |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Analyzes and generate the opportunities plan tree. This tree contains all the possible sequences |
| * to handle the requested observation target. This method runs inside a Job. |
| * @param passes List of passes to analyze. |
| * @param monitor Progress monitor. If null, NullProgressMonitor will be used. |
| * @return Refers the root node of the tree. |
| * <!-- end-model-doc --> |
| * @model unique="false" passesDataType="org.eclipse.apogy.core.environment.earth.orbit.planner.VisibilityPassesList" passesUnique="false" monitorDataType="org.eclipse.apogy.core.environment.earth.orbit.planner.IProgressMonitor" monitorUnique="false" |
| * @generated |
| */ |
| ObservationAnalysisPlannerNode generateObservationsPlanTree(List<VisibilityPass> passes, IProgressMonitor monitor); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Browses and processes the cost of each branches contained in the plan tree. This method runs in a job. |
| * @param data Observation analysis data that contains the context and the results required to conduct the analysis. |
| * @param monitor Progress monitor. If null, NullProgressMonitor will be used. |
| * @return Refers to the original planner but with updated data. |
| * <!-- end-model-doc --> |
| * @model unique="false" plannerUnique="false" monitorDataType="org.eclipse.apogy.core.environment.earth.orbit.planner.IProgressMonitor" monitorUnique="false" |
| * @generated |
| */ |
| ObservationAnalysisPlanner computePlanCosts(ObservationAnalysisPlanner planner, IProgressMonitor monitor); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the {@link ObservationAnalysisPlannerTool} singleton of the active session. |
| * @return The reference to the {@link ObservationAnalysisPlannerTool} or null if not found. |
| * <!-- end-model-doc --> |
| * @model kind="operation" unique="false" |
| * @generated |
| */ |
| ObservationAnalysisPlannerTool getObservationAnalysisPlannerTool(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * This method returns all the leafs of the specified root node. Each path from root to the leafs represents a solution. |
| * @param root Refers to the root of the tree structure. |
| * @return List of Observation Analysis Planner Leaf Nodes. |
| * <!-- end-model-doc --> |
| * @model dataType="org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNodeList" unique="false" rootUnique="false" |
| * @generated |
| */ |
| List<ObservationAnalysisPlannerNode> getLeafs(ObservationAnalysisPlannerNode root); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * This method solution path based on the specified leaf. |
| * @param leaf Refers to a leaf that represents a solution of the tree structure. |
| * @return List of {@link ObservationAnalysisPlannerNode} from root to leaf. The leaf |
| * is included in the list but not the root. |
| * <!-- end-model-doc --> |
| * @model dataType="org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationPlan" unique="false" leafUnique="false" |
| * @generated |
| */ |
| EObjectReferencesList<ObservationAnalysisPlannerNode> getPlannerSolution(ObservationAnalysisPlannerNode leaf); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the list of {@link VisibilityPass} contains in the specified list of nodes. |
| * @param nodesList List of nodes. |
| * @return Refers the list of passes. |
| * <!-- end-model-doc --> |
| * @model dataType="org.eclipse.apogy.core.environment.earth.orbit.planner.VisibilityPassReferencesList" unique="false" nodesListDataType="org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNodeList" nodesListUnique="false" |
| * @generated |
| */ |
| EObjectReferencesList<VisibilityPass> getVisibilityPasses(List<ObservationAnalysisPlannerNode> nodesList); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the total cost of all the stateless cost functions applicable to the specified visibility pass. |
| * @param node Refers the planner node. |
| * @return The total cost after the application of {@link AbstractCostFunction#getCoefficient()}. |
| * <!-- end-model-doc --> |
| * @model unique="false" nodeUnique="false" |
| * @generated |
| */ |
| double getNodeStatelessTotalCost(ObservationAnalysisPlannerNode node); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the total cost of all the stateful cost functions applicable to the specified planner node. |
| * @param node Refers the planner node. |
| * @return The total cost after the application of {@link AbstractCostFunction#getCoefficient()}. |
| * <!-- end-model-doc --> |
| * @model unique="false" nodeUnique="false" |
| * @generated |
| */ |
| double getNodeStatefulTotalCost(ObservationAnalysisPlannerNode node); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the total cost of all cost functions applicable to the specified planner node. |
| * @param node Refers the planner node. |
| * @return The total cost after the application of {@link AbstractCostFunction#getCoefficient()}. |
| * @see #getStatelessCostFunctionTotalCost(VisibilityPass) |
| * @see #getStatefulCostFunctionTotalCost(ObservationAnalysisPlannerNode) |
| * <!-- end-model-doc --> |
| * @model unique="false" nodeUnique="false" |
| * @generated |
| */ |
| double getNodeTotalCost(ObservationAnalysisPlannerNode node); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Returns the total cost of the specified plan. |
| * @param plan Refers the plan. |
| * @return The total cost after the application of {@link AbstractCostFunction#getCoefficient()}. |
| * @see #getStatelessCostFunctionTotalCost(VisibilityPass) |
| * @see #getStatefulCostFunctionTotalCost(ObservationAnalysisPlannerNode) |
| * <!-- end-model-doc --> |
| * @model unique="false" planDataType="org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationPlan" planUnique="false" |
| * @generated |
| */ |
| double getSolutionTotalCost(EObjectReferencesList<ObservationAnalysisPlannerNode> plan); |
| |
| |
| /** |
| * Returns a '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerFacade}' singleton. |
| * @generated |
| */ |
| public static ApogyCoreEnvironmentEarthOrbitPlannerFacade INSTANCE = ApogyCoreEnvironmentEarthOrbitPlannerFactory.eINSTANCE.createApogyCoreEnvironmentEarthOrbitPlannerFacade(); |
| |
| } // ApogyCoreEnvironmentEarthOrbitPlannerFacade |