本文整理汇总了C++中Viewpoint::lens方法的典型用法代码示例。如果您正苦于以下问题:C++ Viewpoint::lens方法的具体用法?C++ Viewpoint::lens怎么用?C++ Viewpoint::lens使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Viewpoint
的用法示例。
在下文中一共展示了Viewpoint::lens方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onDraw
virtual void onDraw(Graphics& g, const Viewpoint& v){
Frustumd fr;
v.lens().frustum(fr, v.worldTransform(), v.viewport().aspect());
// printf("ntl: %g %g %g\n", fr.ntl[0], fr.ntl[1], fr.ntl[2]);
// printf("ftl: %g %g %g\n", fr.ftl[0], fr.ftl[1], fr.ftl[2]);
Mesh& m = g.mesh();
m.reset();
m.primitive(g.LINES);
m.vertex(-1,-1, -11);
m.vertex( 1, 1, -12);
for(int i=0; i<m.vertices().size(); ++i){
int r = fr.testPoint(m.vertices()[i]);
m.color(HSV(r ? 0.3 : 0));
}
g.lineWidth(10);
g.antialiasing(g.NICEST);
g.draw();
{
// int r = fr.testPoint(Vec3d(0,0,15));
// printf("%d\n", r);
}
// draw rectangle across frustum diagonal
m.reset();
m.color(Color(0.5));
m.vertex(fr.nbl);
m.vertex(fr.fbr);
m.vertex(fr.ntr);
m.vertex(fr.ftl);
m.primitive(g.LINE_LOOP);
g.draw();
}