36#include <visp3/core/vpConfig.h>
38#if defined(VISP_HAVE_MODULE_GUI) && ((defined(_WIN32) && !defined(WINRT_8_0)) || defined(VISP_HAVE_PTHREAD))
39#include <visp3/robot/vpRobotWireFrameSimulator.h>
40#include <visp3/robot/vpSimulatorViper850.h>
42#include "../wireframe-simulator/vpBound.h"
43#include "../wireframe-simulator/vpScene.h"
44#include "../wireframe-simulator/vpVwstack.h"
51 artCoord(), artVel(), velocity(),
53#elif defined(VISP_HAVE_PTHREAD)
56 m_mutex_fMi(), m_mutex_eMc(), m_mutex_artVel(), m_mutex_artCoord(), m_mutex_velocity(), m_mutex_display(), m_mutex_robotStop(), m_mutex_frame(), m_mutex_setVelocityCalled(), m_mutex_scene(),
58 robotStop(false), jointLimit(false), jointLimitArt(false), singularityManagement(true), cameraParam(),
59#if defined(VISP_HAVE_DISPLAY)
62 displayType(MODEL_3D), displayAllowed(true), constantSamplingTimeMode(false), setVelocityCalled(false),
69#if defined(VISP_HAVE_DISPLAY)
80 artCoord(), artVel(), velocity(),
82#elif defined(VISP_HAVE_PTHREAD)
85 m_mutex_fMi(), m_mutex_eMc(), m_mutex_artVel(), m_mutex_artCoord(), m_mutex_velocity(), m_mutex_display(), m_mutex_robotStop(), m_mutex_frame(), m_mutex_setVelocityCalled(), m_mutex_scene(),
86 displayBusy(false), robotStop(false), jointLimit(false), jointLimitArt(false), singularityManagement(true),
88#if defined(VISP_HAVE_DISPLAY)
91 displayType(MODEL_3D), displayAllowed(do_display), constantSamplingTimeMode(false), setVelocityCalled(false),
99#if defined(VISP_HAVE_DISPLAY)
130 free_Bound_scene(&(this->
camera));
134 free_Bound_scene(&(this->
camera));
154 free_Bound_scene(&(this->
camera));
158 free_Bound_scene(&(this->
camera));
178 free_Bound_scene(&(this->
camera));
182 free_Bound_scene(&(this->
camera));
200 free_Bound_scene(&(this->
camera));
204 free_Bound_scene(&(this->
camera));
239 float o44c[4][4], o44cd[4][4], x, y, z;
240 Matrix
id = IDENTITY_MATRIX;
253 add_vwstack(
"start",
"cop", o44c[3][0], o44c[3][1], o44c[3][2]);
254 x = o44c[2][0] + o44c[3][0];
255 y = o44c[2][1] + o44c[3][1];
256 z = o44c[2][2] + o44c[3][2];
257 add_vwstack(
"start",
"vrp", x, y, z);
258 add_vwstack(
"start",
"vpn", o44c[2][0], o44c[2][1], o44c[2][2]);
259 add_vwstack(
"start",
"vup", o44c[1][0], o44c[1][1], o44c[1][2]);
260 add_vwstack(
"start",
"window", -u, u, -v, v);
264 add_vwstack(
"start",
"cop", o44cd[3][0], o44cd[3][1], o44cd[3][2]);
265 x = o44cd[2][0] + o44cd[3][0];
266 y = o44cd[2][1] + o44cd[3][1];
267 z = o44cd[2][2] + o44cd[3][2];
268 add_vwstack(
"start",
"vrp", x, y, z);
269 add_vwstack(
"start",
"vpn", o44cd[2][0], o44cd[2][1], o44cd[2][2]);
270 add_vwstack(
"start",
"vup", o44cd[1][0], o44cd[1][1], o44cd[1][2]);
271 add_vwstack(
"start",
"window", -u, u, -v, v);
312 float o44c[4][4], o44cd[4][4], x, y, z;
313 Matrix
id = IDENTITY_MATRIX;
326 add_vwstack(
"start",
"cop", o44c[3][0], o44c[3][1], o44c[3][2]);
327 x = o44c[2][0] + o44c[3][0];
328 y = o44c[2][1] + o44c[3][1];
329 z = o44c[2][2] + o44c[3][2];
330 add_vwstack(
"start",
"vrp", x, y, z);
331 add_vwstack(
"start",
"vpn", o44c[2][0], o44c[2][1], o44c[2][2]);
332 add_vwstack(
"start",
"vup", o44c[1][0], o44c[1][1], o44c[1][2]);
333 add_vwstack(
"start",
"window", -u, u, -v, v);
338 add_vwstack(
"start",
"cop", o44cd[3][0], o44cd[3][1], o44cd[3][2]);
339 x = o44cd[2][0] + o44cd[3][0];
340 y = o44cd[2][1] + o44cd[3][1];
341 z = o44cd[2][2] + o44cd[3][2];
342 add_vwstack(
"start",
"vrp", x, y, z);
343 add_vwstack(
"start",
"vpn", o44cd[2][0], o44cd[2][1], o44cd[2][2]);
344 add_vwstack(
"start",
"vup", o44cd[1][0], o44cd[1][1], o44cd[1][2]);
345 add_vwstack(
"start",
"window", -u, u, -v, v);
371#elif !defined(VISP_BUILD_SHARED_LIBS)
374void dummy_vpRobotWireFrameSimulator(){};
void resize(unsigned int i, bool flagNullify=true)
void init(vpImage< unsigned char > &I, int win_x=-1, int win_y=-1, const std::string &win_title="")
Implementation of an homogeneous matrix and operations on such kind of matrices.
vpHomogeneousMatrix inverse() const
Definition of the vpImage class member functions.
unsigned int getWidth() const
void resize(unsigned int h, unsigned int w)
resize the image : Image initialization
unsigned int getHeight() const
static Type maximum(const Type &a, const Type &b)
static Type minimum(const Type &a, const Type &b)
This class aims to be a basis used to create all the robot simulators.
vpHomogeneousMatrix get_cMo()
void initScene(const vpSceneObject &obj, const vpSceneDesiredObject &desiredObject)
vpRobotWireFrameSimulator()
void set_displayBusy(const bool &status)
void getInternalView(vpImage< vpRGBa > &I)
virtual ~vpRobotWireFrameSimulator()
virtual void get_fMi(vpHomogeneousMatrix *fMit)=0
void setSamplingTime(const double &delta_t)
Implementation of a wire frame simulator. Compared to the vpSimulator class, it does not require thir...
vpSceneDesiredObject desiredObject
@ D_TOOL
A cylindrical tool is attached to the camera.
void initScene(const vpSceneObject &obj, const vpSceneDesiredObject &desiredObject)
void display_scene(Matrix mat, Bound_scene &sc, const vpImage< vpRGBa > &I, const vpColor &color)
bool displayDesiredObject
VISP_EXPORT int wait(double t0, double t)