| 840 | } |
| 841 | |
| 842 | void CornerControllerObject::draw( const Viewport& vp, const AffineXf3f& rotXf, const AffineXf3f& vpInvXf ) |
| 843 | { |
| 844 | if ( !rootObj_ || !rootObj_->isVisible( vp.id ) ) |
| 845 | return; |
| 846 | const auto& childern = rootObj_->children(); |
| 847 | auto arrowsXf = rotXf * vpInvXf; |
| 848 | for ( int i = 0; i < childern.size(); ++i ) |
| 849 | { |
| 850 | const auto& xf = i == 0 || i == 3 ? rotXf : arrowsXf; |
| 851 | childern[i]->setXf( xf, vp.id ); |
| 852 | if ( !childern[i]->isVisible( vp.id ) ) |
| 853 | continue; |
| 854 | if ( auto visObj = childern[i]->asType<VisualObject>() ) |
| 855 | vp.drawOrthoFixedPos( *visObj, xf, DepthFunction::Always ); |
| 856 | } |
| 857 | // second pass |
| 858 | for ( const auto& child : childern ) |
| 859 | { |
| 860 | if ( !child->isVisible( vp.id ) ) |
| 861 | continue; |
| 862 | if ( auto visObj = child->asType<VisualObject>() ) |
| 863 | vp.drawOrthoFixedPos( *visObj, visObj->xf( vp.id ) ); |
| 864 | } |
| 865 | } |
| 866 | |
| 867 | bool CornerControllerObject::getRedrawFlag( ViewportMask mask ) const |
| 868 | { |
nothing calls this directly
no test coverage detected