本文整理汇总了C++中Vector4f::data方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector4f::data方法的具体用法?C++ Vector4f::data怎么用?C++ Vector4f::data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector4f
的用法示例。
在下文中一共展示了Vector4f::data方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lights
// Set up double-sided lights
void lights()
{
using namespace std;
using namespace Eigen;
glEnable(GL_LIGHTING);
//glLightModelf(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
glEnable(GL_LIGHT0);
float WHITE[4] = {1,1,1,1.};
float GREY[4] = {0.4,0.4,0.4,1.};
float BLACK[4] = {0.,0.,0.,1.};
float NEAR_BLACK[4] = {0.1,0.1,0.1,1.};
Vector4f pos = light_pos;
glLightfv(GL_LIGHT0,GL_AMBIENT,BLACK);
glLightfv(GL_LIGHT0,GL_DIFFUSE,WHITE);
glLightfv(GL_LIGHT0,GL_SPECULAR,BLACK);
glLightfv(GL_LIGHT0,GL_POSITION,pos.data());
//glEnable(GL_LIGHT1);
//pos(0) *= -1;
//pos(1) *= -1;
//pos(2) *= -1;
//glLightfv(GL_LIGHT1,GL_AMBIENT,BLACK);
//glLightfv(GL_LIGHT1,GL_DIFFUSE,NEAR_BLACK);
//glLightfv(GL_LIGHT1,GL_SPECULAR,BLACK);
//glLightfv(GL_LIGHT1,GL_POSITION,pos.data());
}
示例2: vertex
inline void vertex(const Vector4d& v, const Vector4f& color)
{
#if USE_VERTEX_BUFFER
data[currentPosition++] = v.cast<float>();
++currentStripLength;
if (currentPosition == capacity)
{
flush();
data[0] = v.cast<float>();
currentPosition = 1;
currentStripLength = 1;
}
#else
glColor4fv(color.data());
glVertex3dv(v.data());
#endif
}
示例3: draw_self
void Splitter::draw_self() const
{
using namespace igl;
using namespace std;
using namespace Eigen;
glEnable(GL_NORMALIZE);
double eff_alpha = alpha;
const Vector4f HAND_COLOR(1.0,0.7,0.7,1.0);
const float * color = (is_hand?HAND_COLOR.data():
(Node::color_parts?
Node::part_color[SPLITTER_C_PART]:
this->color.data()));
pickles[max_children].activate_pickle_or_diffuse_material(color,eff_alpha);
// Draw plug to parent
glPushMatrix();
glTranslated(0,0,-radius/0.65*0.34);
// http://stackoverflow.com/a/6506716/148668
bool some_child_is_hover =
find(child_is_hover.begin(), child_is_hover.end(), true) !=
child_is_hover.end();
bool some_child_is_selected =
find(child_is_selected.begin(), child_is_selected.end(), true) !=
child_is_selected.end();
// Dim if hovered over
if(is_hover && ! some_child_is_hover)
{
dim_lights(0.25);
}else if (is_selected && !some_child_is_selected)
{
dim_lights(0.365);
}
Node::part[TBT_PLUG_PART].draw_and_cache();
glPopMatrix();
// Draw sphere
GLUquadricObj * sphere = gluNewQuadric();
assert(sphere);
gluQuadricNormals(sphere, GLU_SMOOTH);
//gluQuadricDrawStyle(sphere, GLU_SILHOUETTE);
gluQuadricDrawStyle(sphere, GLU_FILL);
gluQuadricTexture(sphere, GL_TRUE); // Tried both GL_TRUE and GL_FALSE
gluSphere(sphere,radius/0.65*0.57,20,20);
// Dim if hovered over
if(is_hover && ! some_child_is_hover)
{
dim_lights(1./0.25);
}else if (is_selected && !some_child_is_selected)
{
dim_lights(1./0.365);
}
// Draw outlets to children
for(int i =0;i<max_children;i++)
{
glPushMatrix();
Quat q;
Vec3 v;
rigid_to_child(i,q,v);
glTranslatef(v(0),v(1),v(2));
glMultMatrixd(Affine3d(q).data());
glTranslated(0,0,radius + radius/0.65 * 0.34);
const float * color = (is_hand?HAND_COLOR.data():
(Node::color_parts?
Node::part_color[TERMINATOR_PART]:
this->color.data()));
pickles[i].activate_pickle_or_diffuse_material(color,eff_alpha=alpha);
// Dim if hovered over
float ld[4];
glGetLightfv(GL_LIGHT0,GL_DIFFUSE,ld);
if(child_is_hover[i])
{
dim_lights(0.25);
}else if (child_is_selected[i])
{
dim_lights(0.365);
}
Node::part[TBT_SOCKET_PART].draw_and_cache();
// Reset lighting
if(child_is_hover[i])
{
dim_lights(1./0.25);
}else if (child_is_selected[i])
{
dim_lights(1./0.365);
}
glPopMatrix();
}
}