57 lines
2.0 KiB
C++
57 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "ControlledMotor.h"
|
|
#include "DistanceSensor.h"
|
|
#include "Motor.h"
|
|
#include "Thing.h"
|
|
#include "Vector2.h"
|
|
#include "Vector3.h"
|
|
|
|
namespace Passer {
|
|
namespace RoboidControl {
|
|
|
|
/// @brief A plament is used to specify where a Thing is placed on the Roboid.
|
|
class Placement {
|
|
public:
|
|
/// @brief Default constructor with a zero placement
|
|
Placement();
|
|
/// @brief Placement of a Thing on the Roboid
|
|
/// @param thing The Thing which is placed
|
|
/// @param position The position of the Thing in carthesian coordinated
|
|
/// @param horizontalDirection The horizontal direction angle of the Thing
|
|
/// @param verticalAngle The vertical direction angle of the Thing
|
|
Placement(Thing* thing,
|
|
Vector3 position = Vector3::zero,
|
|
float horizontalDirection = 0.0F,
|
|
float verticalAngle = 0.0F);
|
|
/// @brief Placement of a Thing on the roboit without position
|
|
/// @param thing The Thing which is place
|
|
/// @param horizontalDirection The horizontal direction angle of the Thing
|
|
/// @param verticalAngle The vertical direction angle of the Thing
|
|
Placement(Thing* thing,
|
|
float horizontalDirection,
|
|
float verticalAnlge = 0.0F);
|
|
|
|
/// @brief The parent placement in the Roboid hierarchy
|
|
/// @remark Reserved for future use
|
|
Placement* parent = nullptr;
|
|
/// @brief An array of children of this placement in the Roboid hierarchy
|
|
/// @remark Reserved for future use
|
|
Placement** children = nullptr;
|
|
/// @brief The number of children of this placemet in the Roboid hierarchy
|
|
/// @remark Reserved for future use
|
|
unsigned int childCount = 0;
|
|
|
|
/// @brief The Thing which is placed
|
|
Thing* thing;
|
|
/// @brief The position of the Thing in carthesian coordinates
|
|
Vector3 position;
|
|
/// @brief The angle or direction of the Thing in the horizontal plane
|
|
float horizontalDirection;
|
|
/// @brief The angle or direction of the Thing in the vertical plane
|
|
float verticalDirection;
|
|
};
|
|
|
|
} // namespace RoboidControl
|
|
} // namespace Passer
|
|
using namespace Passer::RoboidControl; |