Changeset 1032 for branches/Carsten_PtrWork2/Source/System/Cluster/Window/SortFirst/OSGSortFirstWindow.cpp
- Timestamp:
- 12/12/07 18:00:42 (9 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Carsten_PtrWork2/Source/System/Cluster/Window/SortFirst/OSGSortFirstWindow.cpp
r997 r1032 162 162 { 163 163 TileCameraDecoratorPtr deco; 164 Viewport Ptr serverPort;165 Viewport Ptr clientPort;164 ViewportRefPtr serverPort; 165 ViewportRefPtr clientPort; 166 166 UInt32 sv,cv,regionStart; 167 167 UInt32 vpWidth; … … 169 169 170 170 // duplicate viewports 171 for(cv =0,sv=0;cv<getPort().size();cv++)171 for(cv = 0, sv = 0; cv < getPort().size(); ++cv) 172 172 { 173 173 clientPort = getPort()[cv]; … … 176 176 // create new port 177 177 //serverPort = StereoBufferViewport::create(); 178 serverPort = dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 179 deco=TileCameraDecorator::create(); 180 181 serverWindow->addPort(serverPort); 182 serverPort->setCamera(deco); 178 serverPort = boost::dynamic_pointer_cast<Viewport>( 179 clientPort->shallowCopy()); 180 deco = TileCameraDecorator::create(); 181 182 serverWindow->addPort (serverPort); 183 serverPort ->setCamera(deco ); 183 184 } 184 185 else 185 186 { 186 187 serverPort = serverWindow->getPort()[sv]; 187 deco =dynamic_cast<TileCameraDecoratorPtr>(serverPort->getCamera());188 if(serverWindow->getPort()[sv]->getType() !=189 clientPort->getType())188 deco = dynamic_cast<TileCameraDecoratorPtr>( 189 serverPort->getCamera()); 190 if(serverWindow->getPort()[sv]->getType() != clientPort->getType()) 190 191 { 191 192 // there is a viewport with the wrong type 192 serverPort = dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 193 serverPort = boost::dynamic_pointer_cast<Viewport>( 194 clientPort->shallowCopy()); 193 195 serverWindow->replacePort(sv, serverPort);//[sv] = serverPort; 194 serverPort ->setCamera(deco);196 serverPort ->setCamera(deco); 195 197 } 196 198 else 197 199 { 198 deco=dynamic_cast<TileCameraDecoratorPtr>(serverPort->getCamera()); 200 deco = dynamic_cast<TileCameraDecoratorPtr>( 201 serverPort->getCamera()); 199 202 } 200 203 //serverPort = serverWindow->getPort()[sv]; … … 210 213 Real32(getRegion()[regionStart+3] + clientPort->getPixelBottom())); 211 214 212 serverPort->setRoot ( clientPort->getRoot() ); 213 serverPort->setBackground( clientPort->getBackground() ); 214 215 serverPort->setRoot (clientPort->getRoot() ); 216 serverPort->setBackground (clientPort->getBackground() ); 215 217 serverPort->assignForegrounds(clientPort->getForegrounds()); 216 217 serverPort->setTravMask ( clientPort->getTravMask() ); 218 serverPort->setTravMask (clientPort->getTravMask() ); 218 219 219 220 // calculate tile parameters … … 266 267 serverWindow->frameInit(); 267 268 action->setWindow( serverWindow ); 268 for(sv=0;sv<serverWindow->getPort().size();++sv) 269 { 270 ViewportPtr vp=serverWindow->getPort()[sv]; 269 270 for(sv = 0; sv < serverWindow->getPort().size(); ++sv) 271 { 272 ViewportPtr vp = serverWindow->getPort()[sv]; 271 273 vp->render( action ); 272 274 … … 299 301 { 300 302 TileCameraDecoratorPtr deco; 301 Viewport Ptr serverPort;302 Viewport Ptr clientPort;303 ViewportRefPtr serverPort; 304 ViewportRefPtr clientPort; 303 305 UInt32 sv,cv,regionStart; 304 306 UInt32 vpWidth; … … 306 308 307 309 // duplicate viewports 308 for(cv =0,sv=0;cv<getPort().size();cv++)310 for(cv = 0, sv = 0; cv < getPort().size(); ++cv) 309 311 { 310 312 clientPort = getPort()[cv]; … … 313 315 // create new port 314 316 //serverPort = StereoBufferViewport::create(); 315 serverPort = dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 316 deco=TileCameraDecorator::create(); 317 serverPort = boost::dynamic_pointer_cast<Viewport>( 318 clientPort->shallowCopy()); 319 deco = TileCameraDecorator::create(); 317 320 318 321 serverWindow->addPort(serverPort); 319 serverPort ->setCamera(deco);322 serverPort ->setCamera(deco); 320 323 } 321 324 else 322 325 { 323 326 serverPort = serverWindow->getPort()[sv]; 324 deco=dynamic_cast<TileCameraDecoratorPtr>(serverPort->getCamera()); 325 if(serverWindow->getPort()[sv]->getType() != 326 clientPort->getType()) 327 deco = dynamic_cast<TileCameraDecoratorPtr>( 328 serverPort->getCamera()); 329 330 if(serverWindow->getPort()[sv]->getType() != clientPort->getType()) 327 331 { 328 332 // there is a viewport with the wrong type 329 serverPort = dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 333 serverPort = boost::dynamic_pointer_cast<Viewport>( 334 clientPort->shallowCopy()); 330 335 serverWindow->replacePort(sv, serverPort);//[sv] = serverPort; 331 serverPort ->setCamera(deco);336 serverPort ->setCamera(deco); 332 337 } 333 338 else 334 339 { 335 deco=dynamic_cast<TileCameraDecoratorPtr>(serverPort->getCamera()); 340 deco = dynamic_cast<TileCameraDecoratorPtr>( 341 serverPort->getCamera()); 336 342 } 337 343 //serverPort = serverWindow->getPort()[sv]; … … 340 346 341 347 // duplicate values 342 regionStart =cv * getServers().size() * 4 + id * 4;348 regionStart = cv * getServers().size() * 4 + id * 4; 343 349 serverPort->setSize( 344 350 Real32(getRegion()[regionStart+0] + clientPort->getPixelLeft()), … … 347 353 Real32(getRegion()[regionStart+3] + clientPort->getPixelBottom())); 348 354 349 serverPort->setRoot ( clientPort->getRoot() ); 350 serverPort->setBackground( clientPort->getBackground() ); 351 355 serverPort->setRoot (clientPort->getRoot() ); 356 serverPort->setBackground (clientPort->getBackground() ); 352 357 serverPort->assignForegrounds(clientPort->getForegrounds()); 353 354 serverPort->setTravMask ( clientPort->getTravMask() ); 358 serverPort->setTravMask (clientPort->getTravMask() ); 355 359 356 360 // calculate tile parameters 357 vpWidth =clientPort->getPixelWidth();358 vpHeight =clientPort->getPixelHeight();361 vpWidth = clientPort->getPixelWidth(); 362 vpHeight = clientPort->getPixelHeight(); 359 363 360 364 deco->setFullWidth ( vpWidth ); … … 403 407 serverWindow->frameInit(); 404 408 action->setWindow( serverWindow ); 405 for(sv=0;sv<serverWindow->getPort().size();++sv) 406 { 407 ViewportPtr vp=serverWindow->getPort()[sv]; 409 410 for(sv = 0; sv < serverWindow->getPort().size(); ++sv) 411 { 412 ViewportPtr vp = serverWindow->getPort()[sv]; 408 413 vp->render( action ); 409 414
