- 私信
|
发表时间 : 2011-9-27 10:44:48
|
浏览 : 1269 评论 : 2
- // 取得检测得到高度
- // 第一步:新建vpIsectorZ实例
- m_pIsector = new vpIsectorZ();
- m_pIsector->setName( "myLandingIsector" );
- m_pIsector->setEnable( true );
- m_pIsector->setRenderEnable( false );
- m_pIsector->setTranslate( 0 , 0 , 0 );
- m_pIsector->setRotate( 0 , 0 , 0 );
- m_pIsector->setMode( 0x02E );
- m_pIsector->setIsectMask( 0x00000FF00 );
- m_pIsector->setStrategyEnable( true );
- m_pIsector->setSegmentZExtent( -500000.000000f , 500.0000f );
- m_pIsector->setTarget( pScene );
- // 第二步:实时检测
- //传入参数为 飞机的位置
- double getIsectorZ(double & x, double & y, double & z, double & h, double & p, double & r)
- {
- double Height=0;
- if (m_pIsector != NULL)
- {
- if ( m_pIsector->isOfClassType(vpIsectorZ::getStaticClassType()) )
- {
- m_pIsector->setPosition ( x, y, z );
- m_pIsector->setOrientation(h, p, r );
- m_pIsector->update();
- if ( m_pIsector->getHit() == true )
- {
- Height = m_pIsector->getZ();
- }
- }
- else
- {
- VUNOTIFY_PRINT( ( vuNotify::LEVEL_WARN, NULL,
- "LandingClamp::compute -- Isector is not a vpIsectorZ." ) );
- }
- }
- return Height;
- }
复制代码 |
|