Skip to content

[BUG?] This motion is allowed? #9

@kazogihara

Description

@kazogihara

Hi!
I found module motion that seems to be not allowed.
Could you check it?

#include "myMotionTestCode.hpp"

MyMotionTestCode::MyMotionTestCode(Catoms3DBlock *host) : Catoms3DBlockCode(host), module(host)
{
    // @warning Do not remove block below, as a blockcode with a NULL host might be created
    //  for command line parsing
    if (not host)
        return;
}

void MyMotionTestCode::startup()
{
    console << "start " << module->blockId << "\n";
    if (module->blockId == 2)
    {
        module->setColor(RED);
        Cell3DPosition target_pos = module->position + Cell3DPosition(1, 1, -1);
        module->moveTo(target_pos);
    }else if(module->blockId == 3){
        module->setColor(RED);
        Cell3DPosition target_pos = module->position + Cell3DPosition(0, 1, -1);
        module->moveTo(target_pos);        
    }
}
  • myMotionTestCode.hpp
#ifndef myMotionTestCode_H_
#define myMotionTestCode_H_

#include "robots/catoms3D/catoms3DSimulator.h"
#include "robots/catoms3D/catoms3DWorld.h"
#include "robots/catoms3D/catoms3DBlockCode.h"
#include "robots/catoms3D/catoms3DMotionEngine.h" 
#include "robots/catoms3D/catoms3DRotationEvents.h"

using namespace Catoms3D;

class MyMotionTestCode : public Catoms3DBlockCode {
private:
	Catoms3DBlock *module = nullptr;
public :
	MyMotionTestCode(Catoms3DBlock *host);
	~MyMotionTestCode() {};
  Cell3DPosition targetPos;
/**
  * This function is called on startup of the blockCode, it can be used to perform initial
  *  configuration of the host or this instance of the program.
  * @note this can be thought of as the main function of the module
  */
    void startup() override;

/*****************************************************************************/
/** needed to associate code to module                                      **/
	static BlockCode *buildNewBlockCode(BuildingBlock *host) {
	    return(new MyMotionTestCode((Catoms3DBlock*)host));
	}
/*****************************************************************************/
};

#endif /* myMotionTestCode_H_ */
  • myMotionTest.cpp
#include <iostream>
#include "myMotionTestCode.hpp"

using namespace std;
using namespace Catoms3D;

int main(int argc, char **argv) {
    try {
        createSimulator(argc, argv, MyMotionTestCode::buildNewBlockCode);
        getSimulator()->printInfo();
        BaseSimulator::getWorld()->printInfo();
        deleteSimulator();
    } catch(std::exception const& e) {
        cerr << "Uncaught exception: " << e.what();
    }

    return 0;
}

config.xml

<?xml version="1.0" standalone="no" ?>
<world gridSize="26,26,26" visual="1024,800">
    <camera target="54.5554,56.3875,22.0596" directionSpherical="-2561.64,33.8501,220" angle="45.000000" near="0.100000" far="2000.000000" />
    <spotlight target="0,0,0" directionSpherical="135,80,800" angle="43.152390" />
    <blockList blockSize="10,10,10">
        <block position="5,5,0" color="255,140,0" orientation="0" />
        <block position="5,4,1" color="255,140,0" orientation="0" />
        <block position="7,4,1" color="255,140,0" orientation="0" />
        <block position="8,5,0" color="255,140,0" orientation="0" />
    </blockList>
</world>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions