----------------------------------------------------------------------------- RENDERING
| 1120 | //----------------------------------------------------------------------------- |
| 1121 | // RENDERING |
| 1122 | bool GuiShapeEdPreview::getCameraTransform(MatrixF* cameraMatrix) |
| 1123 | { |
| 1124 | // Adjust the camera so that we are still facing the model |
| 1125 | if ( mDisplayType == DisplayTypePerspective ) |
| 1126 | { |
| 1127 | Point3F vec; |
| 1128 | MatrixF xRot, zRot; |
| 1129 | xRot.set( EulerF( mCameraRot.x, 0.0f, 0.0f )); |
| 1130 | zRot.set( EulerF( 0.0f, 0.0f, mCameraRot.z )); |
| 1131 | |
| 1132 | cameraMatrix->mul( zRot, xRot ); |
| 1133 | cameraMatrix->getColumn( 1, &vec ); |
| 1134 | cameraMatrix->setColumn( 3, mOrbitPos - vec*mOrbitDist ); |
| 1135 | } |
| 1136 | else |
| 1137 | { |
| 1138 | cameraMatrix->identity(); |
| 1139 | if ( mModel ) |
| 1140 | { |
| 1141 | Point3F camPos = mModel->getShape()->bounds.getCenter(); |
| 1142 | F32 offset = mModel->getShape()->bounds.len(); |
| 1143 | |
| 1144 | switch (mDisplayType) |
| 1145 | { |
| 1146 | case DisplayTypeTop: camPos.z += offset; break; |
| 1147 | case DisplayTypeBottom: camPos.z -= offset; break; |
| 1148 | case DisplayTypeFront: camPos.y += offset; break; |
| 1149 | case DisplayTypeBack: camPos.y -= offset; break; |
| 1150 | case DisplayTypeRight: camPos.x += offset; break; |
| 1151 | case DisplayTypeLeft: camPos.x -= offset; break; |
| 1152 | default: |
| 1153 | break; |
| 1154 | } |
| 1155 | |
| 1156 | cameraMatrix->setColumn( 3, camPos ); |
| 1157 | } |
| 1158 | } |
| 1159 | |
| 1160 | return true; |
| 1161 | } |
| 1162 | |
| 1163 | void GuiShapeEdPreview::computeSceneBounds(Box3F& bounds) |
| 1164 | { |