1、长方体由8点6面12线构成,使用vtk画矩形,需生成面与线的actor,因为要隐藏部分直线,所以直线的actor分成两组,一组隐藏一组显示。
设置actor隐藏的函数为VisibilityOff()
2、需要隐藏的三根线公用一点,该点的display坐标的z的值是最大的,所以只要在旋转过程中不断获取8个点中display坐标的z值最大的那个点,并不断更新需要隐藏的actor即可。
RemoveVRCropedLineActors();
InitializeOrResetModelBoxLineIndexs(nHidePointIndex);
UpdataBoxModelLineShowActors(nActorIndex);
UpdataBoxModelLineHideActors(nActorIndex);
GetRenderer()->AddActor(m_mapModelBoxLineActorsShow[0]);
GetRenderer()->AddActor(m_mapModelBoxLineActorsHide[0]);
void DxVRViewer::UpdataBoxModelLineShowActors( int i )
{
vtkSmartPointer boxLines = vtkSmartPointer::New();
for (int j = 0; j < m_vecModelBoxLinePointIndex