geometryconfig#
-
namespace saltro
-
namespace disturbances
-
class GeometryConfig#
- #include <geometryconfig.h>
Static, flight-safe configuration for satellite geometry.
The GeometryConfig class defines the geometric and aerodynamic properties of the satellite’s external surfaces. This configuration is used by disturbance models (e.g., drag, solar radiation pressure) to compute forces and torques.
This implementation uses static allocation with a maximum number of faces defined by saltro::limits::MAX_NUM_GEOMETRY_FACES, ensuring no dynamic memory allocation occurs during runtime (flight-safe).
Public Types
-
using Vec3 = Eigen::Vector3d#
-
using FaceArray = std::array<GeometryFace, saltro::limits::MAX_NUM_GEOMETRY_FACES>#
Public Functions
-
GeometryConfig()#
Default constructor creates an empty geometry configuration.
-
bool addFace(const GeometryFace &face)#
Add a face to the geometry configuration.
- Parameters:
face – The GeometryFace to add
- Returns:
true if face was added successfully, false if max capacity reached
-
inline size_t numFaces() const#
Get the number of faces currently configured.
- Returns:
Number of faces
-
const GeometryFace &getFace(size_t index) const#
Get a reference to a specific face.
- Parameters:
index – Face index [0, numFaces())
- Returns:
Reference to the GeometryFace
-
GeometryFace &getFace(size_t index)#
Get mutable reference to a specific face.
- Parameters:
index – Face index [0, numFaces())
- Returns:
Reference to the GeometryFace
-
void clear()#
Clear all faces from the configuration.
Public Static Functions
-
static inline constexpr size_t maxFaces()#
Get the maximum number of faces that can be stored.
- Returns:
Maximum capacity
-
using Vec3 = Eigen::Vector3d#
-
struct GeometryFace#
- #include <geometryconfig.h>
Represents a single geometric face/surface element of a satellite.
Each face has:
Geometric properties: area, centroid, normal vector
Optical properties: specular (eta_s), diffuse (eta_d), absorptivity (eta_a)
Aerodynamic properties: drag coefficient (CD)
Public Types
-
using Vec3 = Eigen::Vector3d#
Public Functions
-
GeometryFace()#
Default constructor initializes all values to zero.
-
GeometryFace(double area_, const Vec3 ¢roid_, const Vec3 &normal_, double eta_s_ = 0.0, double eta_d_ = 0.0, double eta_a_ = 0.0, double CD_ = 0.0)#
Construct a GeometryFace with specified parameters.
- Parameters:
area_ – Surface area [m²]
centroid_ – Centroid position vector [m]
normal_ – Surface normal unit vector
eta_s_ – Specular reflection coefficient (default: 0)
eta_d_ – Diffuse reflection coefficient (default: 0)
eta_a_ – Absorptivity coefficient (default: 0)
CD_ – Drag coefficient (default: 0)
-
class GeometryConfig#
-
namespace disturbances