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);
  }
}
Exemplo n.º 4
0
void CActorSystem::OnSpawn(IEntity *pEntity,SEntitySpawnParams &params)
{
	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);
		}
	}
}
Exemplo n.º 5
0
void CScriptbind_ActorSystem::OnSpawn(IEntity *pEntity,SEntitySpawnParams &params)
{
	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;
}