WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
PlanetRelativeStatesModel.h
Go to the documentation of this file.
1/******************************************************************************
2* Copyright (c) ATTX INC 2025. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX INC. The Software is
6* furnished under a license agreement between ATTX and the user organization
7* and may be used or copied only in accordance with the terms of the agreement.
8* Refer to 'license/attx_license.adoc' for standard license terms.
9*
10* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
11* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
12* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
13* transmitted in any form or by any means, for any purpose, without the express
14* written permission of ATTX INC.
15******************************************************************************/
16/*
17Planet relative states model header file
18
19Author: Gabriel Heredia Acevedo
20*/
21/*
22Metadata for MS GUI:
23imdata = {"exclude" : True}
24*/
25
26#ifndef MODELS_STATES_PLANET_RELATIVE_STATES_MODEL_H
27#define MODELS_STATES_PLANET_RELATIVE_STATES_MODEL_H
28
29#include "simulation/Model.h"
31
32namespace warptwin {
33
47 MODEL(PlanetRelativeStatesModel)
48 public:
49 // Model params
50 // NAME TYPE DEFAULT VALUE
53 SIGNAL(equatorial_radius, double, warpos::earth_wgs84.eq_radius)
55 SIGNAL(flattening, double, warpos::earth_wgs84.flattening)
57
58 // Model inputs
59 // NAME TYPE DEFAULT VALUE
61 //TODO: Inputs might not be needed
63 SIGNAL(pos__pcr, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
65 SIGNAL(vel__pcr, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
67 SIGNAL(quat_obj_pcr, clockwerk::Quaternion, clockwerk::Quaternion({1.0, 0.0, 0.0, 0.0}))
69 SIGNAL(angular_velocity_wrt_PCR,CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
71
72 // Model outputs
73 // NAME TYPE DEFAULT VALUE
76 SIGNAL(latitude_detic, double, 0.0)
78 SIGNAL(latitude_centric, double, 0.0)
80 SIGNAL(altitude_detic, double, 0.0)
82 SIGNAL(altitude_centric, double, 0.0)
84 SIGNAL(longitude, double, 0.0)
86
87 protected:
88 int16 start() override;
89 int16 execute() override;
90
91 int _updateStates();
92
94 double _radius;
96 };
97}
98
99#endif
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition appmacros.h:27
#define START_PARAMS
Definition appmacros.h:42
#define END_OUTPUTS
Definition appmacros.h:33
#define END_PARAMS
Definition appmacros.h:47
#define START_OUTPUTS
Definition appmacros.h:28
#define END_INPUTS
Definition appmacros.h:40
#define START_INPUTS
Definition appmacros.h:35
#define CartesianVector3
Definition mathmacros.h:43
PlanetDefaults earth_wgs84
Definition planetdefaults.cpp:22
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
int16 start() override
Class to execute logging.
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
double _polar_radius
Definition PlanetRelativeStatesModel.h:95
int _updateStates()
Definition PlanetRelativeStatesModel.cpp:57
@ MODEL
Simplified dynamics model representing motion in the circular restricted 3 body problem.
Definition ImNode.h:31
double _radius
The radius set by the enum centric_by.
Definition PlanetRelativeStatesModel.h:94
int16 execute() override
Function to check monitor input conditions and set trigger flag accordingly. Should be implemented in...