Skip to content
Snippets Groups Projects
Commit 26ba454a authored by Joseph Mirabel's avatar Joseph Mirabel Committed by Joseph Mirabel
Browse files

Follow changes in gepetto-viewer package

* Use class graphics::WindowsManager to handle windows.
parent cc857b68
No related branches found
No related tags found
No related merge requests found
...@@ -30,6 +30,7 @@ SET(PROJECT_DESCRIPTION "Corba server for gepetto-viewer") ...@@ -30,6 +30,7 @@ SET(PROJECT_DESCRIPTION "Corba server for gepetto-viewer")
SET(PROJECT_URL "") SET(PROJECT_URL "")
SET(${PROJECT_NAME}_HEADERS SET(${PROJECT_NAME}_HEADERS
include/gepetto/viewer/corba/server.hh
include/gepetto/viewer/corba/client.hh include/gepetto/viewer/corba/client.hh
include/gepetto/viewer/corba/se3.hh include/gepetto/viewer/corba/se3.hh
) )
......
...@@ -17,9 +17,9 @@ module corbaserver { ...@@ -17,9 +17,9 @@ module corbaserver {
// the "refresh" function each time you want actualize position of the Viewer. // the "refresh" function each time you want actualize position of the Viewer.
// This system is used to synchronize movement of all objects. // This system is used to synchronize movement of all objects.
typedef double Transform [7]; typedef float Transform [7];
typedef double Position [3]; typedef float Position [3];
typedef double Color [4]; typedef float Color [4];
/// Corba exception travelling through the Corba channel /// Corba exception travelling through the Corba channel
interface GraphicalInterface { interface GraphicalInterface {
...@@ -181,7 +181,7 @@ typedef double Color [4]; ...@@ -181,7 +181,7 @@ typedef double Color [4];
/// Set a new configuration to a node. THIS CONFIGURATION WILL AFFECTIVE ONLY AFTER CALLING REFRESH FUNCTION!!! /// Set a new configuration to a node. THIS CONFIGURATION WILL AFFECTIVE ONLY AFTER CALLING REFRESH FUNCTION!!!
/// \param input nodeName : name of the node. /// \param input nodeName : name of the node.
/// \param input configuration : Double[7] new configuration. /// \param input configuration : Float[7] new configuration.
boolean applyConfiguration(in string nodeName, in Transform configuration) raises (Error); boolean applyConfiguration(in string nodeName, in Transform configuration) raises (Error);
/// Add Landmark at the center of a node /// Add Landmark at the center of a node
......
...@@ -24,12 +24,13 @@ private: ...@@ -24,12 +24,13 @@ private:
CORBA::ORB_var orb_; CORBA::ORB_var orb_;
gepetto::corbaserver::GraphicalInterface_var manager_; gepetto::corbaserver::GraphicalInterface_var manager_;
static void se3ToCorba(CORBA::Double* corbaPosition, const se3::SE3& se3position); static void se3ToCorba(CORBA::Float* corbaPosition, const se3::SE3& se3position);
protected: protected:
public: public:
typedef CORBA::ULong WindowID; typedef CORBA::ULong WindowID;
typedef float value_type;
// Default constructor // Default constructor
ClientCpp(); ClientCpp();
...@@ -52,27 +53,27 @@ public: ...@@ -52,27 +53,27 @@ public:
bool addSceneToWindow(const char* sceneName, const WindowID windowId) ; bool addSceneToWindow(const char* sceneName, const WindowID windowId) ;
bool addBox(const char* boxName, const float boxSize1, const float boxSize2, const float boxSize3, const double* color); bool addBox(const char* boxName, const float boxSize1, const float boxSize2, const float boxSize3, const value_type* color);
//bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3) ; //bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3) ;
//bool addCapsule(const char* capsuleName, float radius, float height) ; //bool addCapsule(const char* capsuleName, float radius, float height) ;
bool addCapsule(const char* capsuleName, const float radius, const float height, const double* color); bool addCapsule(const char* capsuleName, const float radius, const float height, const value_type* color);
bool addMesh(const char* meshName, const char* meshPath) ; bool addMesh(const char* meshName, const char* meshPath) ;
//bool addCone(const char* coneName, float radius, float height) ; //bool addCone(const char* coneName, float radius, float height) ;
bool addCone(const char* coneName, const float radius, const float height, const double* color); bool addCone(const char* coneName, const float radius, const float height, const value_type* color);
//bool addCylinder(const char* cylinderName, float radius, float height) ; //bool addCylinder(const char* cylinderName, float radius, float height) ;
bool addCylinder(const char* cylinderName, const float radius, const float height, const double* color); bool addCylinder(const char* cylinderName, const float radius, const float height, const value_type* color);
//bool addSphere(const char* sphereName, float radius) ; //bool addSphere(const char* sphereName, float radius) ;
bool addSphere(const char* sphereName, const float radius, const double* color); bool addSphere(const char* sphereName, const float radius, const value_type* color);
bool addLine(const char* lineName, const double* pos1, const double* pos2, const double* color); bool addLine(const char* lineName, const value_type* pos1, const value_type* pos2, const value_type* color);
bool addTriangleFace(const char* lineName, const double* pos1, const double* pos2, const double* pos3, const double* color); bool addTriangleFace(const char* lineName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* color);
bool addSquareFace(const char* lineName, const double* pos1, const double* pos2, const double* pos3, const double* pos4, const double* color); bool addSquareFace(const char* lineName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* pos4, const value_type* color);
bool addURDF(const char* urdfName, const char* urdfPath, const char* urdfPackagePath); bool addURDF(const char* urdfName, const char* urdfPath, const char* urdfPackagePath);
......
...@@ -124,7 +124,7 @@ private: ...@@ -124,7 +124,7 @@ private:
Matrix3 rot; Matrix3 rot;
Vector3 trans; Vector3 trans;
}; };
typedef SE3Tpl<double,0> SE3; typedef SE3Tpl<float,0> SE3;
} // namespace se3 } // namespace se3
#endif // ifndef __se3_se3_hpp__ #endif // ifndef __se3_se3_hpp__
...@@ -33,7 +33,6 @@ ADD_LIBRARY(${LIBRARY_NAME} ...@@ -33,7 +33,6 @@ ADD_LIBRARY(${LIBRARY_NAME}
graphical-interfaceSK.cc graphical-interfaceSK.cc
graphical-interface.impl.cpp graphical-interface.impl.cpp
graphical-interface.impl.hh graphical-interface.impl.hh
server.hh
server.cc server.cc
server-private.cc server-private.cc
server-private.hh server-private.hh
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
namespace graphics { namespace graphics {
namespace corbaServer { namespace corbaServer {
void ClientCpp::se3ToCorba(CORBA::Double* corbaPosition, const se3::SE3& se3position) void ClientCpp::se3ToCorba(CORBA::Float* corbaPosition, const se3::SE3& se3position)
{ {
Eigen::Quaternion<double> q(se3position.rotation()); Eigen::Quaternion<value_type> q(se3position.rotation());
corbaPosition[0] = se3position.translation()(0); corbaPosition[0] = se3position.translation()(0);
corbaPosition[1] = se3position.translation()(1); corbaPosition[1] = se3position.translation()(1);
corbaPosition[2] = se3position.translation()(2); corbaPosition[2] = se3position.translation()(2);
...@@ -110,7 +110,7 @@ bool ClientCpp::addSceneToWindow(const char* sceneName, const ClientCpp::WindowI ...@@ -110,7 +110,7 @@ bool ClientCpp::addSceneToWindow(const char* sceneName, const ClientCpp::WindowI
return manager_->addBox(boxName, boxSize1, boxSize2, boxSize3); return manager_->addBox(boxName, boxSize1, boxSize2, boxSize3);
}*/ }*/
bool ClientCpp::addBox(const char* boxName, const float boxSize1, const float boxSize2, const float boxSize3, const double* color) bool ClientCpp::addBox(const char* boxName, const float boxSize1, const float boxSize2, const float boxSize3, const value_type* color)
{ {
return manager_->addBox(boxName, boxSize1, boxSize2, boxSize3, color); return manager_->addBox(boxName, boxSize1, boxSize2, boxSize3, color);
} }
...@@ -120,7 +120,7 @@ bool ClientCpp::addBox(const char* boxName, const float boxSize1, const float bo ...@@ -120,7 +120,7 @@ bool ClientCpp::addBox(const char* boxName, const float boxSize1, const float bo
return manager_->addCapsule(capsuleName, radius, height); return manager_->addCapsule(capsuleName, radius, height);
}*/ }*/
bool ClientCpp::addCapsule(const char* capsuleName, const float radius, const float height, const double* color) bool ClientCpp::addCapsule(const char* capsuleName, const float radius, const float height, const value_type* color)
{ {
return manager_->addCapsule(capsuleName, radius, height, color); return manager_->addCapsule(capsuleName, radius, height, color);
} }
...@@ -135,7 +135,7 @@ bool ClientCpp::addMesh(const char* meshName, const char* meshPath) ...@@ -135,7 +135,7 @@ bool ClientCpp::addMesh(const char* meshName, const char* meshPath)
return manager_->addCone(coneName, radius, height); return manager_->addCone(coneName, radius, height);
}*/ }*/
bool ClientCpp::addCone(const char* coneName, const float radius, const float height, const double* color) bool ClientCpp::addCone(const char* coneName, const float radius, const float height, const value_type* color)
{ {
return manager_->addCone(coneName, radius, height, color); return manager_->addCone(coneName, radius, height, color);
} }
...@@ -145,7 +145,7 @@ bool ClientCpp::addCone(const char* coneName, const float radius, const float he ...@@ -145,7 +145,7 @@ bool ClientCpp::addCone(const char* coneName, const float radius, const float he
return manager_->addCylinder(cylinderName, radius, height); return manager_->addCylinder(cylinderName, radius, height);
}*/ }*/
bool ClientCpp::addCylinder(const char* cylinderName, const float radius, const float height, const double* color) bool ClientCpp::addCylinder(const char* cylinderName, const float radius, const float height, const value_type* color)
{ {
return manager_->addCylinder(cylinderName, radius, height, color); return manager_->addCylinder(cylinderName, radius, height, color);
} }
...@@ -155,22 +155,22 @@ bool ClientCpp::addCylinder(const char* cylinderName, const float radius, const ...@@ -155,22 +155,22 @@ bool ClientCpp::addCylinder(const char* cylinderName, const float radius, const
return manager_->addSphere(sphereName, radius); return manager_->addSphere(sphereName, radius);
}*/ }*/
bool ClientCpp::addSphere(const char* sphereName, const float radius, const double* color) bool ClientCpp::addSphere(const char* sphereName, const float radius, const value_type* color)
{ {
return manager_->addSphere(sphereName, radius, color); return manager_->addSphere(sphereName, radius, color);
} }
bool ClientCpp::addLine(const char* lineName, const double* pos1, const double* pos2, const double* color) bool ClientCpp::addLine(const char* lineName, const value_type* pos1, const value_type* pos2, const value_type* color)
{ {
return manager_->addLine(lineName, pos1, pos2, color); return manager_->addLine(lineName, pos1, pos2, color);
} }
bool ClientCpp::addTriangleFace(const char* faceName, const double* pos1, const double* pos2, const double* pos3, const double* color) bool ClientCpp::addTriangleFace(const char* faceName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* color)
{ {
return manager_->addTriangleFace(faceName, pos1, pos2, pos3, color); return manager_->addTriangleFace(faceName, pos1, pos2, pos3, color);
} }
bool ClientCpp::addSquareFace(const char* faceName, const double* pos1, const double* pos2, const double* pos3, const double* pos4, const double* color) bool ClientCpp::addSquareFace(const char* faceName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* pos4, const value_type* color)
{ {
return manager_->addSquareFace(faceName, pos1, pos2, pos3, pos4, color); return manager_->addSquareFace(faceName, pos1, pos2, pos3, pos4, color);
} }
...@@ -192,7 +192,7 @@ bool ClientCpp::addToGroup(const char* nodeName, const char* groupName) ...@@ -192,7 +192,7 @@ bool ClientCpp::addToGroup(const char* nodeName, const char* groupName)
bool ClientCpp::applyConfiguration(const char* nodeName, const se3::SE3& se3position) bool ClientCpp::applyConfiguration(const char* nodeName, const se3::SE3& se3position)
{ {
CORBA::Double corbaPosition[7]; CORBA::Float corbaPosition[7];
ClientCpp::se3ToCorba(corbaPosition, se3position); ClientCpp::se3ToCorba(corbaPosition, se3position);
return manager_->applyConfiguration(nodeName, corbaPosition); return manager_->applyConfiguration(nodeName, corbaPosition);
} }
......
...@@ -9,14 +9,15 @@ ...@@ -9,14 +9,15 @@
// See the COPYING file for more information. // See the COPYING file for more information.
#include <iostream> #include <iostream>
#include "server.hh" #include "gepetto/viewer/corba/server.hh"
using graphics::corbaServer::Server; using graphics::corbaServer::Server;
int int
main (int argc, const char* argv[]) main (int argc, const char* argv[])
{ {
Server server (argc, argv, true); graphics::WindowsManagerPtr_t wm = graphics::WindowsManager::create ();
Server server (wm, argc, argv, true);
server.startCorbaServer (); server.startCorbaServer ();
server.processRequest(true); server.processRequest(true);
......
This diff is collapsed.
...@@ -10,26 +10,8 @@ ...@@ -10,26 +10,8 @@
#define SCENEVIEWER_CORBASERVER_GRAPHICALINTERFACE_HH #define SCENEVIEWER_CORBASERVER_GRAPHICALINTERFACE_HH
#include <omniORB4/CORBA.h> #include <omniORB4/CORBA.h>
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp> #include "gepetto/viewer/corba/server.hh"
#include <gepetto/viewer/window-manager.h>
#include <gepetto/viewer/node.h>
#include <gepetto/viewer/group-node.h>
#include <gepetto/viewer/leaf-node-box.h>
#include <gepetto/viewer/leaf-node-capsule.h>
#include <gepetto/viewer/leaf-node-cone.h>
#include <gepetto/viewer/leaf-node-cylinder.h>
#include <gepetto/viewer/leaf-node-line.h>
#include <gepetto/viewer/leaf-node-face.h>
#include <gepetto/viewer/leaf-node-sphere.h>
#include <gepetto/viewer/macros.h>
#include <gepetto/viewer/config-osg.h>
#include <gepetto/viewer/leaf-node-ground.h>
#include <gepetto/viewer/leaf-node-collada.h>
#include <gepetto/viewer/urdf-parser.h>
#include "server.hh"
#include "graphical-interface.hh" #include "graphical-interface.hh"
namespace graphics { namespace graphics {
...@@ -42,35 +24,15 @@ struct NodeConfiguration { ...@@ -42,35 +24,15 @@ struct NodeConfiguration {
osgQuat quat; osgQuat quat;
}; };
using graphics::WindowsManagerPtr_t;
class GraphicalInterface : class GraphicalInterface :
public virtual POA_gepetto::corbaserver::GraphicalInterface public virtual POA_gepetto::corbaserver::GraphicalInterface
{ {
private: private:
WindowsManagerPtr_t windowsManager_;
typedef gepetto::Error Error; typedef gepetto::Error Error;
typedef CORBA::ULong WindowID; typedef CORBA::ULong WindowID;
typedef std::vector <WindowManagerPtr_t> WindowManagers_t; typedef graphics::WindowsManager::value_type value_type;
WindowManagers_t windowManagers_;
std::map<std::string, NodePtr_t> nodes_;
std::map<std::string, GroupNodePtr_t> groupNodes_;
corbaServer::Server* server_;
boost::mutex mtx_;
int rate_;
std::list<NodeConfiguration> newNodeConfigurations_;
static osgVector4 getColor(const std::string& colorName);
static osgVector4 getColor(const double* color);
static std::string parentName(const std::string& name);
static VisibilityMode getVisibility(const std::string& visibilityName);
static WireFrameMode getWire(const std::string& wireName);
static LightingMode getLight(const std::string& lightName);
void initParent(const std::string& nodeName, NodePtr_t node);
void addNode(const std::string& nodeName, NodePtr_t node);
void addGroup(const std::string& groupName, GroupNodePtr_t group);
void threadRefreshing(WindowManagerPtr_t window);
static osgQuat corbaConfToOsgQuat(const double* configurationCorba);
static osgVector3 corbaConfToOsgVec3(const double* configurationCorba);
protected:
public: public:
/** /**
...@@ -91,22 +53,22 @@ public: ...@@ -91,22 +53,22 @@ public:
virtual bool addSceneToWindow(const char* sceneNameCorba, const WindowID windowId) throw (Error); virtual bool addSceneToWindow(const char* sceneNameCorba, const WindowID windowId) throw (Error);
virtual bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3, const double* color) throw (Error); virtual bool addBox(const char* boxName, float boxSize1, float boxSize2, float boxSize3, const value_type* color) throw (Error);
virtual bool addCapsule(const char* capsuleName, float radius, float height, const double* color) throw (Error); virtual bool addCapsule(const char* capsuleName, float radius, float height, const value_type* color) throw (Error);
virtual bool addMesh(const char* meshNameCorba, const char* meshPathCorba) throw (Error); virtual bool addMesh(const char* meshNameCorba, const char* meshPathCorba) throw (Error);
virtual bool addCone(const char* coneName, float radius, float height, const double* color) throw (Error); virtual bool addCone(const char* coneName, float radius, float height, const value_type* color) throw (Error);
virtual bool addCylinder(const char* cylinderName, float radius, float height, const double* color) throw (Error); virtual bool addCylinder(const char* cylinderName, float radius, float height, const value_type* color) throw (Error);
virtual bool addSphere(const char* sphereName, float radius, const double* color) throw (Error); virtual bool addSphere(const char* sphereName, float radius, const value_type* color) throw (Error);
virtual bool addLine(const char* lineName, const double* pos1, const double* pos2, const double* color) throw (Error); virtual bool addLine(const char* lineName, const value_type* pos1, const value_type* pos2, const value_type* color) throw (Error);
virtual bool addSquareFace(const char* faceName, const double* pos1, const double* pos2, const double* pos3, const double* pos4, const double* color) throw (Error); virtual bool addSquareFace(const char* faceName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* pos4, const value_type* color) throw (Error);
virtual bool addTriangleFace(const char* faceName, const double* pos1, const double* pos2, const double* pos3, const double* color) throw (Error); virtual bool addTriangleFace(const char* faceName, const value_type* pos1, const value_type* pos2, const value_type* pos3, const value_type* color) throw (Error);
virtual bool addURDF(const char* urdfNameCorba, const char* urdfPathCorba, const char* urdfPackagePathCorba) throw (Error); virtual bool addURDF(const char* urdfNameCorba, const char* urdfPathCorba, const char* urdfPackagePathCorba) throw (Error);
...@@ -124,7 +86,7 @@ public: ...@@ -124,7 +86,7 @@ public:
virtual bool createGroup(const char* groupNameCorba) throw (Error); virtual bool createGroup(const char* groupNameCorba) throw (Error);
virtual bool addToGroup(const char* nodeNameCorba, const char* groupNameCorba) throw (Error); virtual bool addToGroup(const char* nodeNameCorba, const char* groupNameCorba) throw (Error);
virtual bool applyConfiguration(const char* nodeNameCorba, const double* configuration) throw (Error); virtual bool applyConfiguration(const char* nodeNameCorba, const value_type* configuration) throw (Error);
virtual bool addLandmark(const char* nodeNameCorba, float size) throw (Error); virtual bool addLandmark(const char* nodeNameCorba, float size) throw (Error);
virtual bool deleteLandmark(const char* nodeNameCorba) throw (Error); virtual bool deleteLandmark(const char* nodeNameCorba) throw (Error);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "graphical-interface.impl.hh" #include "graphical-interface.impl.hh"
#include "server-private.hh" #include "server-private.hh"
#include "fwd.hh" #include "gepetto/viewer/corba/fwd.hh"
namespace graphics namespace graphics
{ {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# define SCENVIEWER_CORBASERVER_SERVER_PRIVATE_HH # define SCENVIEWER_CORBASERVER_SERVER_PRIVATE_HH
# include "graphical-interface.impl.hh" # include "graphical-interface.impl.hh"
# include "fwd.hh" # include "gepetto/viewer/corba/fwd.hh"
namespace graphics namespace graphics
{ {
......
...@@ -12,11 +12,10 @@ ...@@ -12,11 +12,10 @@
#include <pthread.h> #include <pthread.h>
#include <iostream> #include <iostream>
#include <stdexcept> #include <stdexcept>
#include "server.hh"
#include "gepetto/viewer/corba/server.hh"
#include "server-private.hh" #include "server-private.hh"
namespace graphics namespace graphics
{ {
namespace corbaServer namespace corbaServer
...@@ -42,7 +41,8 @@ namespace graphics ...@@ -42,7 +41,8 @@ namespace graphics
//} // end of anonymous namespace. //} // end of anonymous namespace.
Server::Server(int argc, const char *argv[], bool inMultiThread) Server::Server(WindowsManagerPtr_t wm, int argc, const char *argv[],
bool inMultiThread) : windowsManager_ (wm)
{ {
private_ = new impl::Server; private_ = new impl::Server;
......
...@@ -11,13 +11,16 @@ ...@@ -11,13 +11,16 @@
#ifndef SCENEVIEWER_CORBASERVER_SERVER_HH #ifndef SCENEVIEWER_CORBASERVER_SERVER_HH
# define SCENEVIEWER_CORBASERVER_SERVER_HH # define SCENEVIEWER_CORBASERVER_SERVER_HH
#include "gepetto/viewer/corba/fwd.hh"
#include "fwd.hh" #include <gepetto/viewer/windows-manager.h>
namespace graphics namespace graphics
{ {
namespace corbaServer namespace corbaServer
{ {
using graphics::WindowsManager;
using graphics::WindowsManagerPtr_t;
/// Implementation of Hpp module Corba server. /// Implementation of Hpp module Corba server.
/// This class initializes the Corba server and starts the following Corba interface implementations. /// This class initializes the Corba server and starts the following Corba interface implementations.
...@@ -50,6 +53,7 @@ namespace graphics ...@@ -50,6 +53,7 @@ namespace graphics
{ {
public: public:
/// Constructor /// Constructor
/// \param the object that handles CORBA requests.
/// \param argc, argv parameter to feed ORB initialization. /// \param argc, argv parameter to feed ORB initialization.
/// \param multiThread whether the server may process request using /// \param multiThread whether the server may process request using
/// multithred policy. /// multithred policy.
...@@ -59,7 +63,8 @@ namespace graphics ...@@ -59,7 +63,8 @@ namespace graphics
/// \note It is highly recommended not to enable multi-thread policy in /// \note It is highly recommended not to enable multi-thread policy in
/// CORBA request processing if this library is run from an openGL /// CORBA request processing if this library is run from an openGL
/// based GUI, since OpenGL does not support multithreading. /// based GUI, since OpenGL does not support multithreading.
Server (int argc, const char* argv[], bool multiThread = false); Server (WindowsManagerPtr_t windowsManager, int argc,
const char* argv[], bool multiThread = false);
/// \brief Shutdown CORBA server /// \brief Shutdown CORBA server
~Server (); ~Server ();
...@@ -74,8 +79,10 @@ namespace graphics ...@@ -74,8 +79,10 @@ namespace graphics
/// returns. /// returns.
int processRequest (bool loop); int processRequest (bool loop);
//core::ProblemSolverPtr_t problemSolver () const; WindowsManagerPtr_t windowsManager () const
//core::ProblemSolverPtr_t problemSolver (); {
return windowsManager_;
}
private: private:
...@@ -92,6 +99,7 @@ namespace graphics ...@@ -92,6 +99,7 @@ namespace graphics
impl::Server* private_; impl::Server* private_;
WindowsManagerPtr_t windowsManager_;
}; };
} // end of namespace corbaServer. } // end of namespace corbaServer.
......
...@@ -29,12 +29,12 @@ int main(int, const char **) ...@@ -29,12 +29,12 @@ int main(int, const char **)
sleep(5); sleep(5);
//vector<double> tri01 (3); //vector<float> tri01 (3);
double pos1[3]= {1.,0.,0.}; float pos1[3]= {1.,0.,0.};
double pos2[3] = {0.,1.,0.}; float pos2[3] = {0.,1.,0.};
double pos3[3]= {0.,1.,1.}; float pos3[3]= {0.,1.,1.};
double color[4] = {1.,1.,1.,1.}; float color[4] = {1.,1.,1.,1.};
client.addTriangleFace("scene1/triangle", pos1, pos2, pos3, color); client.addTriangleFace("scene1/triangle", pos1, pos2, pos3, color);
sleep(15); sleep(15);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment