anyKode Marilou
ContentsIndexHome
PreviousUpNext
TraceDisplay

Affichage d'une trace qui suit les mouvements des géométries.

C++
class TraceDisplay : public ModaEntity;

ModaCpp.h

TraceDisplay permet de créer et contrôler l'affichage d'une trace qui suit les mouvements de la géométrie parente. Il faut utiliser Geom::CreateTraceDisplay pour obtenir une instance TraceDisplay valide. 

 

Les fonctions de cet objet verrouillent le simulateur pour pouvoir manipuler les objets 3D et la mémoire. Il en résulte que les appels peuvent prendre un temps non négligeable : il est préférable de ne pas invoquer les fonctions de TraceDisplay dans une boucle fermée. 

 

 

//From [samples/simple/7.0_TraceDisplay] directory

#include "stdafx.h"
#include "Modacpp.h"
#include "conio.h"

#define MODASERVER "localhost"

using namespace ModaCPP;

//--------------------------------------------------
TraceDisplay * ConfigureTraceDisplay(Geom *pGeom)
    {
    TraceDisplay *pRet=NULL;
    if(pGeom)
        {
        pRet=pGeom->CreateTraceDisplay();
        }
    return(pRet);
    }

//--------------------------------------------------
int main(int argc, char* argv[])
{
Connection *pConnection=new Connection(true);

//Try connect to MODA server
if(pConnection->Connect(MODASERVER))
    {
    _cprintf("Connection ok to moda server\r\n");
    //Find the robot
    RobotPHX *pWorld=pConnection->QueryWorld();
    if(pWorld)
        {
        _cprintf("world found\r\n");

        Geom *pSphere=pWorld->QueryGeom("/sphere0");
        ConfigureTraceDisplay(pSphere);

        pSphere=pWorld->QueryGeom("/sphere1");
        ConfigureTraceDisplay(pSphere);

        pSphere=pWorld->QueryGeom("/sphere2");
        TraceDisplay *pTrace=ConfigureTraceDisplay(pSphere);

        Moda::Commons::TraceDisplayOptions opts;
        if(pTrace->GetOptions(&opts))
            {
            opts.SetColorRGBA(255,0,0,255);
            opts.UpdateDelay=100;
            pTrace->SetOptions(&opts);
            }

        while(!_kbhit())
            {
            pWorld->Sleep(500);
            }

        //destroy the path in the simulator
        pTrace->Destroy();
        //delete the C++ object
        delete pTrace;
        }
    else
        {
        _cprintf("robot not found\r\n");
        }
    }
else
    {
    _cprintf("Unable to connect to moda server\r\n");
    }
//Disconnect & delete
pConnection->Disconnect();
delete pConnection;
return 0;
}
Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.
What do you think about this topic? Send feedback!