PocMethodType.java

  1. /* Copyright 2002-2023 CS GROUP
  2.  * Licensed to CS GROUP (CS) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * CS licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *   http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package org.orekit.files.ccsds.definitions;

  18. import org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethodType;
  19. import org.orekit.files.ccsds.ndm.cdm.Cdm;

  20. /**
  21.  * Type of probability of collision method used in CCSDS {@link Cdm Conjunction Data Messages}.
  22.  * <p>
  23.  * The list of available methods is available on the SANA.
  24.  * </p>
  25.  *
  26.  * @author Bryan Cazabonne
  27.  * @author Vincent Cucchietti
  28.  * @see <a href="https://sanaregistry.org/r/cdm_cpm/">SANA CDM Collision Probability Methods</a>
  29.  * @since 11.2
  30.  */
  31. public enum PocMethodType {

  32.     /** Akella and Alfriend - 2000 method. */
  33.     AKELLAALFRIEND_2000 {
  34.         @Override
  35.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  36.             return null;
  37.         }
  38.     },

  39.     /** Alfano 2005 method. */
  40.     ALFANO_2005 {
  41.         @Override
  42.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  43.             return ShortTermEncounter2DPOCMethodType.ALFANO_2005;
  44.         }
  45.     },

  46.     /** Maximum conjunction probability method from Alfano. */
  47.     ALFANO_MAX_PROBABILITY {
  48.         @Override
  49.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  50.             return null;
  51.         }
  52.     },

  53.     /** Adjoining parallelepipeds method from Alfano. */
  54.     ALFANO_PARAL_2007 {
  55.         @Override
  56.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  57.             return null;
  58.         }
  59.     },

  60.     /** Adjoining tubes method from Alfano. */
  61.     ALFANO_TUBES_2007 {
  62.         @Override
  63.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  64.             return null;
  65.         }
  66.     },

  67.     /** Voxels method from Alfano. */
  68.     ALFANO_VOXELS_2006 {
  69.         @Override
  70.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  71.             return null;
  72.         }
  73.     },

  74.     /** Alfriend 1999 method. */
  75.     ALFRIEND_1999 {
  76.         @Override
  77.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  78.             return ShortTermEncounter2DPOCMethodType.ALFRIEND_1999;
  79.         }
  80.     },

  81.     /** Chan 1997 method. */
  82.     CHAN_1997 {
  83.         @Override
  84.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  85.             return ShortTermEncounter2DPOCMethodType.CHAN_1997;
  86.         }
  87.     },

  88.     /** Chan 2003 method. */
  89.     CHAN_2003 {
  90.         @Override
  91.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  92.             return null;
  93.         }
  94.     },

  95.     /** Foster 1992 method. */
  96.     FOSTER_1992 {
  97.         @Override
  98.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  99.             return null;
  100.         }
  101.     },

  102.     /** McKinley 2006 method. */
  103.     MCKINLEY_2006 {
  104.         @Override
  105.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  106.             return null;
  107.         }
  108.     },

  109.     /** Patera 2001 method. */
  110.     PATERA_2001 {
  111.         @Override
  112.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  113.             return null;
  114.         }
  115.     },

  116.     /** Patera 2003 method. */
  117.     PATERA_2003 {
  118.         @Override
  119.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  120.             return null;
  121.         }
  122.     },

  123.     /** Patera 2005 method. */
  124.     PATERA_2005 {
  125.         @Override
  126.         public ShortTermEncounter2DPOCMethodType getMethodType() {
  127.             return ShortTermEncounter2DPOCMethodType.PATERA_2005;
  128.         }
  129.     };

  130.     /**
  131.      * Get a probability of collision computing method type based on the short term encounter model.
  132.      *
  133.      * @return probability of collision computing method type based on the short term encounter model
  134.      */
  135.     public abstract ShortTermEncounter2DPOCMethodType getMethodType();

  136.     /** Get CCSDS compatible name.
  137.      * @return CCSDS compatible name
  138.      */
  139.     public String getCCSDSName() {
  140.         return this.name().replace("_", "-");
  141.     }

  142. }