bool medAnnIntSeedPointHelper::addAnnotation( medAnnotationData* annData ) { medSeedPointAnnotationData * spad = qobject_cast<medSeedPointAnnotationData*>(annData); if ( !spad ) return false; medAbstractImageView * view = this->getView(); medVtkViewBackend* backend = static_cast<medVtkViewBackend*>(view->backend()); //double zero[2] = {0,0}; typedef vtkSmartPointer<medVtkSeedPointHandle> RepSmartPointer; RepSmartPointer handleRep = RepSmartPointer::New(); // Blue, close to selected color in table widget. handleRep->GetSelectedProperty()->SetColor(0x33/255., 0x99/255., 0xff/255.); vtkSmartPointer<vtkSeedWidget> seedActor2d = vtkSmartPointer<vtkSeedWidget>::New(); seedActor2d->SetCurrentRenderer(backend->view2D->GetRenderer()); seedActor2d->SetInteractor(backend->view2D->GetRenderer()->GetRenderWindow()->GetInteractor()); seedActor2d->SetEnabled(1); seedActor2d->GetSeedRepresentation()->SetHandleRepresentation( handleRep ); seedActor2d->CreateDefaultRepresentation(); seedActor2d->CompleteInteraction(); // view->renderer2d()->AddActor(seedActor2d->GetRepresentation()); vtkSmartPointer<vtkSeedWidget> seedActor3d = vtkSmartPointer<vtkSeedWidget>::New(); seedActor3d->SetCurrentRenderer(backend->view3D->GetRenderer()); seedActor3d->SetInteractor(backend->view3D->GetRenderer()->GetRenderWindow()->GetInteractor()); seedActor3d->SetEnabled(1); seedActor3d->GetSeedRepresentation()->SetHandleRepresentation( handleRep ); seedActor3d->CreateDefaultRepresentation(); seedActor3d->CompleteInteraction(); //view->renderer3d()->AddActor(seedActor3d->GetRepresentation()); ActorInfo & actorInfo(this->getActorMap()[spad]); actorInfo.actor2d = seedActor2d; actorInfo.actor3d = seedActor3d; this->annotationModified(annData); d->spCbk->helper = this; // widget->AddObserver(vtkCommand::PlacePointEvent,scbk); seedActor2d->AddObserver(vtkCommand::EndInteractionEvent,d->spCbk); seedActor3d->AddObserver(vtkCommand::EndInteractionEvent,d->spCbk); backend->view2D->Render(); backend->view3D->Render(); return true; }
void medAnnIntSeedPointHelper::removeAnnotation( medAnnotationData * annData ) { medSeedPointAnnotationData * spad = qobject_cast<medSeedPointAnnotationData*>(annData); medAbstractImageView * view = this->getView(); medVtkViewBackend* backend = static_cast<medVtkViewBackend*>(view->backend()); ActorInfo & actorInfo(this->getActorMap()[spad]); backend->view2D->GetRenderer()->RemoveActor(actorInfo.actor2d->GetRepresentation()); backend->view2D->GetRenderer()->RemoveActor(actorInfo.actor3d->GetRepresentation()); d->actors.erase(spad); backend->view2D->Render(); backend->view3D->Render(); }
void LinkAggregationManager::populatePartnerPairs( std::vector<LacpPartnerPair>& partnerPairs) { // TODO(samank): CHECK in Thrift worker thread partnerPairs.clear(); folly::SharedMutexWritePriority::ReadHolder g(&controllersLock_); partnerPairs.reserve( std::distance(portToController_.begin(), portToController_.end())); for (const auto& portAndController : portToController_) { auto controller = portAndController.second; partnerPairs.emplace_back(); controller->actorInfo().populate(partnerPairs.back().localEndpoint); controller->partnerInfo().populate(partnerPairs.back().remoteEndpoint); } }
void CActorSystem::OnSpawn(IEntity *pEntity,SEntitySpawnParams ¶ms) { EMonoActorType actorType = GetMonoActorType(pEntity->GetClass()->GetName()); if(actorType != EMonoActorType_None) { if(IActor *pActor = gEnv->pGameFramework->GetIActorSystem()->GetActor(pEntity->GetId())) { IMonoObject *pScript = g_pScriptSystem->InstantiateScript(pEntity->GetClass()->GetName(), eScriptFlag_Actor); IMonoClass *pActorInfoClass = g_pScriptSystem->GetCryBraryAssembly()->GetClass("ActorInfo"); SMonoActorInfo actorInfo(pActor); pScript->CallMethod("InternalSpawn", pActorInfoClass->BoxObject(&actorInfo)); if(actorType == EMonoActorType_Managed) static_cast<CActor *>(pActor)->SetScript(pScript); } } }
void CScriptbind_ActorSystem::OnSpawn(IEntity *pEntity,SEntitySpawnParams ¶ms) { EMonoActorType actorType = GetMonoActorType(pEntity->GetClass()->GetName()); if(actorType != EMonoActorType_None) { if(IActor *pActor = static_cast<CScriptSystem *>(GetMonoScriptSystem())->GetIGameFramework()->GetIActorSystem()->GetActor(pEntity->GetId())) { ICryScriptInstance *pScript = GetMonoScriptSystem()->InstantiateScript(pEntity->GetClass()->GetName(), eScriptFlag_Actor); IMonoClass *pActorInfoClass = GetMonoScriptSystem()->GetCryBraryAssembly()->GetClass("ActorInitializationParams", "CryEngine.Native"); SMonoActorInfo actorInfo(pActor); IMonoArray *pArgs = CreateMonoArray(1); pArgs->InsertMonoObject(pActorInfoClass->BoxObject(&actorInfo)); static_cast<CScriptSystem *>(GetMonoScriptSystem())->InitializeScriptInstance(pScript, pArgs); SAFE_RELEASE(pArgs); } } }
void medAnnIntSeedPointHelper::annotationModified( medAnnotationData* annData ) { medSeedPointAnnotationData * spad = qobject_cast<medSeedPointAnnotationData*>(annData); vtkScopedCommandDisabler disabler( d->spCbk ); ActorInfo & actorInfo(this->getActorMap()[spad]); vtkSeedWidget * seedActor2d = vtkSeedWidget::SafeDownCast(actorInfo.actor2d); vtkSeedWidget * seedActor3d = vtkSeedWidget::SafeDownCast(actorInfo.actor3d); const int numSeeds = spad->getNumberOfSeeds(); // Delete excess seeds, and add new seeds. vtkSeedRepresentation * rep2d = seedActor2d->GetSeedRepresentation(); while ( rep2d->GetNumberOfSeeds() > numSeeds ) { seedActor2d->DeleteSeed(rep2d->GetNumberOfSeeds() - 1); } while ( rep2d->GetNumberOfSeeds() < numSeeds ) { int iSeed = rep2d->GetNumberOfSeeds(); seedActor2d->CreateNewHandle()->EnabledOn(); seedActor2d->GetCurrentRenderer()->AddActor( rep2d->GetHandleRepresentation(iSeed) ); } vtkSeedRepresentation * rep3d = seedActor3d->GetSeedRepresentation(); while ( rep3d->GetNumberOfSeeds() > numSeeds ) { seedActor3d->DeleteSeed(rep3d->GetNumberOfSeeds() - 1); } while ( rep3d->GetNumberOfSeeds() < numSeeds ) { int iSeed = rep3d->GetNumberOfSeeds(); seedActor3d->CreateNewHandle()->EnabledOn(); seedActor3d->GetCurrentRenderer()->AddActor( rep3d->GetHandleRepresentation(iSeed) ); } const int selectedSeed = spad->selectedSeed(); // for ( int iSeed(0); iSeed<numSeeds; ++iSeed) { // medAbstractViewCoordinates::qtVector3dToDouble(spad->centerWorld(iSeed), p); // rep2d->GetHandleRepresentation(iSeed)->SetWorldPosition(p); // rep3d->GetHandleRepresentation(iSeed)->SetWorldPosition(p); // int isHighlighted = ( iSeed == selectedSeed ) ? 1 : 0; // rep2d->GetHandleRepresentation(iSeed)->Highlight(isHighlighted); // rep3d->GetHandleRepresentation(iSeed)->Highlight(isHighlighted); // } if ( selectedSeed >= 0 ) { seedActor2d->RestartInteraction(); seedActor3d->RestartInteraction(); } else { seedActor2d->CompleteInteraction(); seedActor3d->CompleteInteraction(); } medAbstractImageView * view = this->getView(); medVtkViewBackend* backend = static_cast<medVtkViewBackend*>(view->backend()); //this->getmseg()->currentView()->Modified(); backend->view2D->Render(); backend->view3D->Render(); return; }