Aggiunto cambio direzione per corretta visualizzaione dx/sx

This commit is contained in:
2026-06-19 19:04:28 +02:00
parent a16cc97048
commit fa6d6cf76e
7 changed files with 30 additions and 8 deletions
+9 -1
View File
@@ -13,6 +13,11 @@ enum class ReferencePlane {
XZN
};
enum class Direction {
L,
R
};
//classi
class PieceInterface{
protected:
@@ -25,7 +30,7 @@ class PieceInterface{
shapeXZ->setFillColor(color);
shapeYZ->setFillColor(color);
}
Direction direction = Direction::L;
public:
sf::Shape* shapeXZ, *shapeYZ;
rb::Vector3 globalPos;
@@ -35,6 +40,9 @@ class PieceInterface{
virtual void update(sf::Clock cl) = 0;
virtual sf::Shape* draw(ReferencePlane plane) = 0;
virtual ~PieceInterface(){}
virtual void setDirection(Direction dir){
direction = dir;
}
};
+3 -2
View File
@@ -62,6 +62,7 @@ sf::Shape* Sensore::draw(ReferencePlane plane){
{
case ReferencePlane::XZ:
{
sf::Shape* shape = shapeXZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[1])));
shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]});
@@ -85,7 +86,7 @@ sf::Shape* Sensore::draw(ReferencePlane plane){
void Sensore::calcRotWithG(unsigned int index){ // calcolo rotazione con valori della gravità
int dir = direction == Direction::R ? -1 : 1;
std::vector<float> grav = gData[index];
float modG = sqrt(pow(grav[0],2)+pow(grav[1],2)+pow(grav[2],2));
@@ -95,7 +96,7 @@ void Sensore::calcRotWithG(unsigned int index){ // calcolo rotazione con valori
float tmpSinY = -grav[1] / modG;
float tmpSinZ = -grav[2] / modG;
float tmpAX = acos(tmpSinX);
float tmpAX = acos(dir*tmpSinX);
float tmpAY = acos(tmpSinY);
float tmpAZ = acos(tmpSinZ);