本文整理汇总了C++中CAMptr::height方法的典型用法代码示例。如果您正苦于以下问题:C++ CAMptr::height方法的具体用法?C++ CAMptr::height怎么用?C++ CAMptr::height使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAMptr
的用法示例。
在下文中一共展示了CAMptr::height方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: data
int
Cam_int::zoom(
CEvent &e,
State *&
)
{
if (debug_fsa)
cerr << "Cam_int::zoom"
<< endl;
DEVice_2d *ptr=(DEVice_2d *)e._d;
CAMptr cam (e.view()->cam());
CAMdataptr data (cam->data());
XYvec delta(ptr->delta());
double ratio;
if (data->persp()) {
Wvec movec(_down_pt - data->from());
data->set_center(_down_pt);
data->translate(movec.normalized() * (movec.length() * delta[1] * -4));
ratio = cam->height() / cam->width() *
(movec * data->at_v()) * data->width() / data->focal();
} else {
Wpt spt (XYpt(ptr->cur()[0],_scale_pt[1]));
Wvec svec (spt - Wline(data->from(), data->at_v()).project(spt));
double sfact(1 + delta[1]);
data->translate( svec * (1.0 - sfact));
data->set_width (data->width() * sfact);
data->set_height(data->height()* sfact);
ratio = data->height();
}
data->translate(-delta[0]/2 * data->right_v() * ratio);
data->set_at(Wline(data->from(), data->at_v()).project(data->center()));
data->set_center(data->at());
return 0;
}