iCub-main
Loading...
Searching...
No Matches
fakePalm.h
Go to the documentation of this file.
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3/*
4 * Copyright (C) 2009 RobotCub Consortium
5 * Author: Marco Maggiali marco.maggiali@iit.it
6 * CopyPolicy: Released under the terms of the GNU GPL v2.0.
7 *
8 */
9
10#include "include/TouchSensor.h"
11
12#ifndef __ALE_FPALM_H__
13#define __ALE_FPALM_H__
14
15class fakePalm : public TouchSensor
16{
17public:
18 fakePalm(double cx,double cy,double th,double gain=1.0,int layoutNum=0,int lrMirror=0)
19 {
20 const double DEG2RAD=M_PI/180.0;
21
22 const double CST=cos(DEG2RAD*th);
23 const double SNT=sin(DEG2RAD*th);
24
25 const double H=sin(DEG2RAD*60.0);
26 const double L=2.0*H/9.0;
27
28 dGain=gain;
29 dGain=0.0; // for now to stick the dots to be always OFF
30 ilrMirror=lrMirror;
31 ilayoutNum=layoutNum;
32 nVerts=4;
33 nTaxels=1;
34 m_RadiusOrig=0.1;
35
36 for (int i=0; i<nTaxels; ++i)
37 {
38 dX[0]=15; //not used
39 dY[0]=15; //not used
40 dX[i] = 0.0; dY[i] = 0.0;
41 }
42
43
44
45
46
47 for (int i=0; i<nTaxels; ++i)
48 {
49 double x=1.2*dX[i]-0.0;
50 double y=1.2*dY[i]-0.0;
51
52 if (lrMirror==1) x=-x;
53 dX[i]=cx+CST*x-SNT*y;
54 dY[i]=cy+SNT*x+CST*y;
55 }
56
57 dXv[0]=-25;
58 dYv[0]=-50;
59 dXv[1]=+50;
60 dYv[1]=-50;
61 dXv[2]=+50;
62 dYv[2]=+50;
63 dXv[3]=-25;
64 dYv[3]=+50;
65
66 for (int i=0; i<nVerts; ++i)
67 {
68 double x=dXv[i];
69 double y=dYv[i];
70 if (lrMirror==1) x=-x;
71 dXv[i]=cx+CST*x-SNT*y;
72 dYv[i]=cy+SNT*x+CST*y;
73 }
74
75 // in static definition
76 //dXmin=dYmin= HUGE;
77 //dXmax=dYmax=-HUGE;
78
79 for (int i=0; i<nVerts; ++i)
80 {
81 if (dXv[i]<dXmin) dXmin=dXv[i];
82 if (dXv[i]>dXmax) dXmax=dXv[i];
83 if (dYv[i]<dYmin) dYmin=dYv[i];
84 if (dYv[i]>dYmax) dYmax=dYv[i];
85 }
86
87 dXc=cx;
88 dYc=cy;
89 }
90 void draw(unsigned char *image)
91 {
92 for (int i=0; i<nVerts; ++i)
93 {
94 //drawLine(image,xv[i],yv[i],xv[(i+1)%nVerts],yv[(i+1)%nVerts]);
95 }
96
97 for (int i=0; i<nTaxels; ++i)
98 {
99 if ((i==43) || (i==23) || (i==11) || (i==35) )
100 {
101 drawCircle(image,x[i],y[i],m_Radius/2);
102 }
103 else
104 drawCircle(image,x[i],y[i],m_Radius);
105 }
106 }
107};
108
109#endif
#define M_PI
Definition XSensMTx.cpp:24
double dX[MAX_TAXELS]
double m_Radius
int x[MAX_TAXELS]
double m_RadiusOrig
static double dXmin
static double dYmax
double dXv[8]
double dY[MAX_TAXELS]
static double dXmax
double dYv[8]
int y[MAX_TAXELS]
void drawCircle(unsigned char *image, int cx, int cy, double radius)
static double dYmin
fakePalm(double cx, double cy, double th, double gain=1.0, int layoutNum=0, int lrMirror=0)
Definition fakePalm.h:18
void draw(unsigned char *image)
Definition fakePalm.h:90
#define DEG2RAD