CommonPhysicalProperties.java
- /* Copyright 2002-2024 CS GROUP
- * Licensed to CS GROUP (CS) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * CS licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.orekit.files.ccsds.ndm;
- import org.hipparchus.complex.Quaternion;
- import org.orekit.files.ccsds.definitions.FrameFacade;
- import org.orekit.files.ccsds.definitions.OrbitRelativeFrame;
- import org.orekit.files.ccsds.ndm.cdm.AdditionalParameters;
- import org.orekit.files.ccsds.ndm.odm.ocm.OrbitPhysicalProperties;
- import org.orekit.files.ccsds.section.CommentsContainer;
- import org.orekit.time.AbsoluteDate;
- /** Container for common physical properties for both {@link OrbitPhysicalProperties} and {@link AdditionalParameters}.
- *
- * @author Maxime Journot
- * @since 11.3
- */
- public class CommonPhysicalProperties extends CommentsContainer {
- /** Optimally Enclosing Box parent reference frame. */
- private FrameFacade oebParentFrame;
- /** Optimally Enclosing Box parent reference frame epoch. */
- private AbsoluteDate oebParentFrameEpoch;
- /** Quaternion defining Optimally Enclosing Box. */
- private final double[] oebQ;
- /** Maximum physical dimension of Optimally Enclosing Box. */
- private double oebMax;
- /** Intermediate physical dimension of Optimally Enclosing Box. */
- private double oebIntermediate;
- /** Minimum physical dimension of Optimally Enclosing Box. */
- private double oebMin;
- /** Cross-sectional area of Optimally Enclosing Box when viewed along the maximum OEB direction. */
- private double oebAreaAlongMax;
- /** Cross-sectional area of Optimally Enclosing Box when viewed along the intermediate OEB direction. */
- private double oebAreaAlongIntermediate;
- /** Cross-sectional area of Optimally Enclosing Box when viewed along the minimum OEB direction. */
- private double oebAreaAlongMin;
- /** Typical (50th percentile) radar cross-section. */
- private double rcs;
- /** Minimum radar cross-section. */
- private double minRcs;
- /** Maximum radar cross-section. */
- private double maxRcs;
- /** Typical (50th percentile) visual magnitude. */
- private double vmAbsolute;
- /** Minimum apparent visual magnitude. */
- private double vmApparentMin;
- /** Typical (50th percentile) apparent visual magnitude. */
- private double vmApparent;
- /** Maximum apparent visual magnitude. */
- private double vmApparentMax;
- /** Typical (50th percentile) coefficient of reflectivity. */
- private double reflectance;
- /** Simple constructor.
- */
- public CommonPhysicalProperties() {
- oebParentFrame = new FrameFacade(null, null, OrbitRelativeFrame.RIC, null,
- OrbitRelativeFrame.RIC.name());
- oebParentFrameEpoch = AbsoluteDate.ARBITRARY_EPOCH;
- oebQ = new double[4];
- oebMax = Double.NaN;
- oebIntermediate = Double.NaN;
- oebMin = Double.NaN;
- oebAreaAlongMax = Double.NaN;
- oebAreaAlongIntermediate = Double.NaN;
- oebAreaAlongMin = Double.NaN;
- rcs = Double.NaN;
- minRcs = Double.NaN;
- maxRcs = Double.NaN;
- vmAbsolute = Double.NaN;
- vmApparentMin = Double.NaN;
- vmApparent = Double.NaN;
- vmApparentMax = Double.NaN;
- reflectance = Double.NaN;
- }
- /** {@inheritDoc} */
- @Override
- public void validate(final double version) {
- super.validate(version);
- }
- /** Get the Optimally Enclosing Box parent reference frame.
- * @return Optimally Enclosing Box parent reference frame
- */
- public FrameFacade getOebParentFrame() {
- return oebParentFrame;
- }
- /** Set the Optimally Enclosing Box parent reference frame.
- * @param oebParentFrame Optimally Enclosing Box parent reference frame
- */
- public void setOebParentFrame(final FrameFacade oebParentFrame) {
- refuseFurtherComments();
- this.oebParentFrame = oebParentFrame;
- }
- /** Get the Optimally Enclosing Box parent reference frame epoch.
- * @return Optimally Enclosing Box parent reference frame epoch
- */
- public AbsoluteDate getOebParentFrameEpoch() {
- return oebParentFrameEpoch;
- }
- /** Set the Optimally Enclosing Box parent reference frame epoch.
- * @param oebParentFrameEpoch Optimally Enclosing Box parent reference frame epoch
- */
- public void setOebParentFrameEpoch(final AbsoluteDate oebParentFrameEpoch) {
- refuseFurtherComments();
- this.oebParentFrameEpoch = oebParentFrameEpoch;
- }
- /** Get the quaternion defining Optimally Enclosing Box.
- * @return quaternion defining Optimally Enclosing Box
- */
- public Quaternion getOebQ() {
- return new Quaternion(oebQ[0], oebQ[1], oebQ[2], oebQ[3]);
- }
- /** set the component of quaternion defining Optimally Enclosing Box.
- * @param i index of the component
- * @param qI component of quaternion defining Optimally Enclosing Box
- */
- public void setOebQ(final int i, final double qI) {
- refuseFurtherComments();
- oebQ[i] = qI;
- }
- /** Get the maximum physical dimension of the OEB.
- * @return maximum physical dimension of the OEB.
- */
- public double getOebMax() {
- return oebMax;
- }
- /** Set the maximum physical dimension of the OEB.
- * @param oebMax maximum physical dimension of the OEB.
- */
- public void setOebMax(final double oebMax) {
- refuseFurtherComments();
- this.oebMax = oebMax;
- }
- /** Get the intermediate physical dimension of the OEB.
- * @return intermediate physical dimension of the OEB.
- */
- public double getOebIntermediate() {
- return oebIntermediate;
- }
- /** Set the intermediate physical dimension of the OEB.
- * @param oebIntermediate intermediate physical dimension of the OEB.
- */
- public void setOebIntermediate(final double oebIntermediate) {
- refuseFurtherComments();
- this.oebIntermediate = oebIntermediate;
- }
- /** Get the minimum physical dimension of the OEB.
- * @return dimensions the minimum physical dimension of the OEB.
- */
- public double getOebMin() {
- return oebMin;
- }
- /** Set the minimum physical dimension of the OEB.
- * @param oebMin the minimum physical dimension of the OEB.
- */
- public void setOebMin(final double oebMin) {
- refuseFurtherComments();
- this.oebMin = oebMin;
- }
- /** Get the cross-sectional area of Optimally Enclosing Box when viewed along the maximum OEB direction.
- * @return cross-sectional area of Optimally Enclosing Box when viewed along the maximum OEB direction.
- */
- public double getOebAreaAlongMax() {
- return oebAreaAlongMax;
- }
- /** Set the cross-sectional area of Optimally Enclosing Box when viewed along the maximum OEB direction.
- * @param oebAreaAlongMax cross-sectional area of Optimally Enclosing Box when viewed along the maximum OEB direction.
- */
- public void setOebAreaAlongMax(final double oebAreaAlongMax) {
- refuseFurtherComments();
- this.oebAreaAlongMax = oebAreaAlongMax;
- }
- /** Get the cross-sectional area of Optimally Enclosing Box when viewed along the intermediate OEB direction.
- * @return cross-sectional area of Optimally Enclosing Box when viewed along the intermediate OEB direction.
- */
- public double getOebAreaAlongIntermediate() {
- return oebAreaAlongIntermediate;
- }
- /** Set the cross-sectional area of Optimally Enclosing Box when viewed along the intermediate OEB direction.
- * @param oebAreaAlongIntermediate cross-sectional area of Optimally Enclosing Box when viewed along the intermediate OEB direction.
- */
- public void setOebAreaAlongIntermediate(final double oebAreaAlongIntermediate) {
- refuseFurtherComments();
- this.oebAreaAlongIntermediate = oebAreaAlongIntermediate;
- }
- /** Get the cross-sectional area of Optimally Enclosing Box when viewed along the minimum OEB direction.
- * @return cross-sectional area of Optimally Enclosing Box when viewed along the minimum OEB direction.
- */
- public double getOebAreaAlongMin() {
- return oebAreaAlongMin;
- }
- /** Set the cross-sectional area of Optimally Enclosing Box when viewed along the minimum OEB direction.
- * @param oebAreaAlongMin cross-sectional area of Optimally Enclosing Box when viewed along the minimum OEB direction.
- */
- public void setOebAreaAlongMin(final double oebAreaAlongMin) {
- refuseFurtherComments();
- this.oebAreaAlongMin = oebAreaAlongMin;
- }
- /** Get the typical (50th percentile) radar cross-section.
- * @return typical (50th percentile) radar cross-section
- */
- public double getRcs() {
- return rcs;
- }
- /** Set the typical (50th percentile) radar cross-section.
- * @param rcs typical (50th percentile) radar cross-section
- */
- public void setRcs(final double rcs) {
- refuseFurtherComments();
- this.rcs = rcs;
- }
- /** Get the minimum radar cross-section.
- * @return minimum radar cross-section
- */
- public double getMinRcs() {
- return minRcs;
- }
- /** Set the minimum radar cross-section.
- * @param minRcs minimum radar cross-section
- */
- public void setMinRcs(final double minRcs) {
- refuseFurtherComments();
- this.minRcs = minRcs;
- }
- /** Get the maximum radar cross-section.
- * @return maximum radar cross-section
- */
- public double getMaxRcs() {
- return maxRcs;
- }
- /** Set the maximum radar cross-section.
- * @param maxRcs maximum radar cross-section
- */
- public void setMaxRcs(final double maxRcs) {
- refuseFurtherComments();
- this.maxRcs = maxRcs;
- }
- /** Get the typical (50th percentile) visual magnitude.
- * @return typical (50th percentile) visual magnitude
- */
- public double getVmAbsolute() {
- return vmAbsolute;
- }
- /** Set the typical (50th percentile) visual magnitude.
- * @param vmAbsolute typical (50th percentile) visual magnitude
- */
- public void setVmAbsolute(final double vmAbsolute) {
- refuseFurtherComments();
- this.vmAbsolute = vmAbsolute;
- }
- /** Get the minimum apparent visual magnitude.
- * @return minimum apparent visual magnitude
- */
- public double getVmApparentMin() {
- return vmApparentMin;
- }
- /** Set the minimum apparent visual magnitude.
- * @param vmApparentMin minimum apparent visual magnitude
- */
- public void setVmApparentMin(final double vmApparentMin) {
- refuseFurtherComments();
- this.vmApparentMin = vmApparentMin;
- }
- /** Get the typical (50th percentile) apparent visual magnitude.
- * @return typical (50th percentile) apparent visual magnitude
- */
- public double getVmApparent() {
- return vmApparent;
- }
- /** Set the typical (50th percentile) apparent visual magnitude.
- * @param vmApparent typical (50th percentile) apparent visual magnitude
- */
- public void setVmApparent(final double vmApparent) {
- refuseFurtherComments();
- this.vmApparent = vmApparent;
- }
- /** Get the maximum apparent visual magnitude.
- * @return maximum apparent visual magnitude
- */
- public double getVmApparentMax() {
- return vmApparentMax;
- }
- /** Set the maximum apparent visual magnitude.
- * @param vmApparentMax maximum apparent visual magnitude
- */
- public void setVmApparentMax(final double vmApparentMax) {
- refuseFurtherComments();
- this.vmApparentMax = vmApparentMax;
- }
- /** Get the typical (50th percentile) coefficient of reflectance.
- * @return typical (50th percentile) coefficient of reflectance
- */
- public double getReflectance() {
- return reflectance;
- }
- /** Set the typical (50th percentile) coefficient of reflectance.
- * @param reflectance typical (50th percentile) coefficient of reflectance
- */
- public void setReflectance(final double reflectance) {
- refuseFurtherComments();
- this.reflectance = reflectance;
- }
- }