本文整理汇总了C++中Interpolator::GetKeyGroup方法的典型用法代码示例。如果您正苦于以下问题:C++ Interpolator::GetKeyGroup方法的具体用法?C++ Interpolator::GetKeyGroup怎么用?C++ Interpolator::GetKeyGroup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Interpolator
的用法示例。
在下文中一共展示了Interpolator::GetKeyGroup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnDescritionText
void KeyListCtrl::OnDescritionText(wxCommandEvent& event)
{
if (m_editing_item == -1)
return;
wxString str = GetItemText(m_editing_item);
long id;
str.ToLong(&id);
VRenderFrame* vr_frame = (VRenderFrame*)m_frame;
if (!vr_frame)
return;
Interpolator* interpolator = vr_frame->GetInterpolator();
if (!interpolator)
return;
int index = interpolator->GetKeyIndex(int(id));
FlKeyGroup* keygroup = interpolator->GetKeyGroup(index);
if (keygroup)
{
str = m_description_text->GetValue();
keygroup->desc = str.ToStdString();
SetText(m_editing_item, 4, str);
}
}
示例2: OnInterpoCmb
void KeyListCtrl::OnInterpoCmb(wxCommandEvent& event)
{
if (m_editing_item == -1)
return;
wxString str = GetItemText(m_editing_item);
long id;
str.ToLong(&id);
VRenderFrame* vr_frame = (VRenderFrame*)m_frame;
if (!vr_frame)
return;
Interpolator* interpolator = vr_frame->GetInterpolator();
if (!interpolator)
return;
int index = interpolator->GetKeyIndex(int(id));
FlKeyGroup* keygroup = interpolator->GetKeyGroup(index);
if (keygroup)
{
int sel = m_interpolation_cmb->GetSelection();
keygroup->type = sel;
str = sel==0?"Linear":"Smooth";
SetText(m_editing_item, 3, str);
}
}
示例3: InsertKey
//.........这里部分代码省略.........
//y2
plane = (*planes)[3];
plane->get_copy(abcd);
keycode.l2 = 0;
keycode.l2_name = "y2_val";
flkey = new FlKeyDouble(keycode, abs(abcd[3]));
interpolator->AddKey(flkey);
//z1
plane = (*planes)[4];
plane->get_copy(abcd);
keycode.l2 = 0;
keycode.l2_name = "z1_val";
flkey = new FlKeyDouble(keycode, abs(abcd[3]));
interpolator->AddKey(flkey);
//z2
plane = (*planes)[5];
plane->get_copy(abcd);
keycode.l2 = 0;
keycode.l2_name = "z2_val";
flkey = new FlKeyDouble(keycode, abs(abcd[3]));
interpolator->AddKey(flkey);
}
//for the view
keycode.l0 = 1;
keycode.l0_name = m_view->GetName();
keycode.l1 = 1;
keycode.l1_name = m_view->GetName();
//rotation
keycode.l2 = 0;
keycode.l2_name = "rotation";
double rotx, roty, rotz;
m_view->GetRotations(rotx, roty, rotz);
Quaternion q;
q.FromEuler(rotx, roty, rotz);
flkeyQ = new FlKeyQuaternion(keycode, q);
interpolator->AddKey(flkeyQ);
//translation
double tx, ty, tz;
m_view->GetTranslations(tx, ty, tz);
//x
keycode.l2_name = "translation_x";
flkey = new FlKeyDouble(keycode, tx);
interpolator->AddKey(flkey);
//y
keycode.l2_name = "translation_y";
flkey = new FlKeyDouble(keycode, ty);
interpolator->AddKey(flkey);
//z
keycode.l2_name = "translation_z";
flkey = new FlKeyDouble(keycode, tz);
interpolator->AddKey(flkey);
//centers
m_view->GetCenters(tx, ty, tz);
//x
keycode.l2_name = "center_x";
flkey = new FlKeyDouble(keycode, tx);
interpolator->AddKey(flkey);
//y
keycode.l2_name = "center_y";
flkey = new FlKeyDouble(keycode, ty);
interpolator->AddKey(flkey);
//z
keycode.l2_name = "center_z";
flkey = new FlKeyDouble(keycode, tz);
interpolator->AddKey(flkey);
//obj traslation
m_view->GetObjTrans(tx, ty, tz);
//x
keycode.l2_name = "obj_trans_x";
flkey = new FlKeyDouble(keycode, tx);
interpolator->AddKey(flkey);
//y
keycode.l2_name = "obj_trans_y";
flkey = new FlKeyDouble(keycode, ty);
interpolator->AddKey(flkey);
//z
keycode.l2_name = "obj_trans_z";
flkey = new FlKeyDouble(keycode, tz);
interpolator->AddKey(flkey);
//scale
double scale = m_view->m_glview->m_scale_factor;
keycode.l2_name = "scale";
flkey = new FlKeyDouble(keycode, scale);
interpolator->AddKey(flkey);
//intermixing mode
int ival = m_view->GetVolMethod();
keycode.l2_name = "volmethod";
flkeyI = new FlKeyInt(keycode, ival);
interpolator->AddKey(flkeyI);
interpolator->End();
FlKeyGroup* group = interpolator->GetKeyGroup(interpolator->GetLastIndex());
if (group)
group->type = interpolation;
//insert
//if (index >= 0)
// interpolator->MoveKeyBefore(interpolator->GetLastIndex(), index+1);
}