134{
135 using namespace Eigen;
137 glPushAttrib(GL_ENABLE_BIT | GL_LIGHTING_BIT | GL_DEPTH_BUFFER_BIT | GL_LINE_BIT);
138 glDisable(GL_LIGHTING);
139 glDisable(GL_DEPTH_TEST);
140 glLineWidth(2.0);
141 auto draw_axes = [&]()
142 {
143 glBegin(GL_LINES);
144 glColor3f(1,0,0);
145 glVertex3f(0,0,0);
146 glVertex3f(1,0,0);
147 glColor3f(0,1,0);
148 glVertex3f(0,0,0);
149 glVertex3f(0,1,0);
150 glColor3f(0,0,1);
151 glVertex3f(0,0,0);
152 glVertex3f(0,0,1);
153 glEnd();
154 };
155 auto draw_cube = []
156 {
157 glBegin(GL_LINES);
158 glVertex3f(-1.0f, 1.0f, 1.0f);
159 glVertex3f(1.0f, 1.0f, 1.0f);
160 glVertex3f(1.0f, 1.0f, 1.0f);
161 glVertex3f(1.0f, -1.0f, 1.0f);
162 glVertex3f(1.0f, -1.0f, 1.0f);
163 glVertex3f(-1.0f, -1.0f, 1.0f);
164 glVertex3f(-1.0f, -1.0f, 1.0f);
165 glVertex3f(-1.0f, 1.0f, 1.0f);
166 glVertex3f(1.0f, 1.0f, 1.0f);
167 glVertex3f(1.0f, 1.0f, -1.0f);
168 glVertex3f(1.0f, 1.0f, -1.0f);
169 glVertex3f(1.0f, -1.0f, -1.0f);
170 glVertex3f(1.0f, -1.0f, -1.0f);
171 glVertex3f(1.0f, -1.0f, 1.0f);
172 glVertex3f(1.0f, 1.0f, -1.0f);
173 glVertex3f(-1.0f, 1.0f, -1.0f);
174 glVertex3f(-1.0f, -1.0f, -1.0f);
175 glVertex3f(1.0f, -1.0f, -1.0f);
176 glVertex3f(-1.0f, -1.0f, -1.0f);
177 glVertex3f(-1.0f, 1.0f, -1.0f);
178 glVertex3f(-1.0f, 1.0f, -1.0f);
179 glVertex3f(-1.0f, 1.0f, 1.0f);
180 glVertex3f(-1.0f, -1.0f, 1.0f);
181 glVertex3f(-1.0f, -1.0f, -1.0f);
182 glEnd();
183 };
184 glPushMatrix();
186
187 {
188 Vector3d off,ppos,ppos_off,pos_off;
190 ppos_off = ppos;
191 ppos_off(0) +=
m_len;
194 glScaled(r,r,r);
195 }
196
197 draw_axes();
198 glScaled(0.05,0.05,0.05);
200 {
202 }else
203 {
205 }
206 draw_cube();
207 glPopMatrix();
208 glPopAttrib();
209}
const Eigen::Vector4f MAYA_YELLOW(255./255., 247./255., 50./255., 1.)
const Eigen::Vector4f MAYA_GREY(0.5, 0.5, 0.5, 1.0)