| 556 | } |
| 557 | |
| 558 | void TSStatic::prepRenderImage( SceneRenderState* state ) |
| 559 | { |
| 560 | if( !mShapeInstance ) |
| 561 | return; |
| 562 | |
| 563 | Point3F cameraOffset; |
| 564 | getRenderTransform().getColumn(3,&cameraOffset); |
| 565 | cameraOffset -= state->getDiffuseCameraPosition(); |
| 566 | F32 dist = cameraOffset.len(); |
| 567 | if (dist < 0.01f) |
| 568 | dist = 0.01f; |
| 569 | |
| 570 | if (mUseAlphaFade) |
| 571 | { |
| 572 | mAlphaFade = 1.0f; |
| 573 | if ((mAlphaFadeStart < mAlphaFadeEnd) && mAlphaFadeStart > 0.1f) |
| 574 | { |
| 575 | if (mInvertAlphaFade) |
| 576 | { |
| 577 | if (dist <= mAlphaFadeStart) |
| 578 | { |
| 579 | return; |
| 580 | } |
| 581 | if (dist < mAlphaFadeEnd) |
| 582 | { |
| 583 | mAlphaFade = ((dist - mAlphaFadeStart) / (mAlphaFadeEnd - mAlphaFadeStart)); |
| 584 | } |
| 585 | } |
| 586 | else |
| 587 | { |
| 588 | if (dist >= mAlphaFadeEnd) |
| 589 | { |
| 590 | return; |
| 591 | } |
| 592 | if (dist > mAlphaFadeStart) |
| 593 | { |
| 594 | mAlphaFade -= ((dist - mAlphaFadeStart) / (mAlphaFadeEnd - mAlphaFadeStart)); |
| 595 | } |
| 596 | } |
| 597 | } |
| 598 | } |
| 599 | |
| 600 | F32 invScale = (1.0f/getMax(getMax(mObjScale.x,mObjScale.y),mObjScale.z)); |
| 601 | |
| 602 | // If we're currently rendering our own reflection we |
| 603 | // don't want to render ourselves into it. |
| 604 | if ( mCubeReflector.isRendering() ) |
| 605 | return; |
| 606 | |
| 607 | |
| 608 | if ( mForceDetail == -1 ) |
| 609 | mShapeInstance->setDetailFromDistance( state, dist * invScale ); |
| 610 | else |
| 611 | mShapeInstance->setCurrentDetail( mForceDetail ); |
| 612 | |
| 613 | if ( mShapeInstance->getCurrentDetail() < 0 ) |
| 614 | return; |
| 615 |
nothing calls this directly
no test coverage detected