14        auto edgeInteractor = std::make_shared<EdgeInteraction<TDataType>>();
 
   19        this->varInteractionRadius()->connect(
edgeInteractor->varInteractionRadius());
 
   20        this->varInteractionRadius()->connect(
pointInteractor->varInteractionRadius());
 
   25        this->varToggleIndexOutput()->connect(
edgeInteractor->varToggleIndexOutput());
 
   26        this->varToggleIndexOutput()->connect(
pointInteractor->varToggleIndexOutput());
 
   34        auto edgeRender1 = std::make_shared<GLWireframeVisualModule>();
 
   35        this->varEdgeSelectedSize()->connect(edgeRender1->varRadius());
 
   36        edgeRender1->setColor(
Color(0.8f, 0.0f, 0.0f));
 
   37        this->
edgeInteractor->outSelectedEdgeSet()->connect(edgeRender1->inEdgeSet());
 
   40        auto edgeRender2 = std::make_shared<GLWireframeVisualModule>();
 
   41        this->varEdgeOtherSize()->connect(edgeRender2->varRadius());
 
   42        edgeRender2->setColor(
Color(0.0f, 0.0f, 0.0f));
 
   43        this->
edgeInteractor->outOtherEdgeSet()->connect(edgeRender2->inEdgeSet());
 
   46        auto pointRender1 = std::make_shared<GLPointVisualModule>();
 
   47        this->varPointSelectedSize()->connect(pointRender1->varPointSize());
 
   48        pointRender1->setColor(
Color(1.0f, 0.0f, 0.0f));
 
   49        this->
pointInteractor->outSelectedPointSet()->connect(pointRender1->inPointSet());
 
   52        auto pointRender2 = std::make_shared<GLPointVisualModule>();
 
   53        this->varPointOtherSize()->connect(pointRender2->varPointSize());
 
   54        pointRender2->setColor(
Color(0.0f, 0.0f, 1.0f));
 
   55        this->
pointInteractor->outOtherPointSet()->connect(pointRender2->inPointSet());
 
   58        this->varInteractionRadius()->setRange(0.001f, 0.2f);
 
   59        this->varInteractionRadius()->setValue(0.01f);
 
   60        this->varPointSelectedSize()->setRange(0.0f, 0.1f);
 
   61        this->varPointOtherSize()->setRange(0.0f, 0.1f);
 
   65        this->varPickingElementType()->attach(callback1);
 
   69        this->varPickingType()->attach(callback2);
 
   73        this->varMultiSelectionType()->attach(callback3);
 
 
   99        this->
edgeInteractor->outOtherEdgeSet()->getDataPtr()->copyFrom(this->inTopology()->getData());
 
  103        this->
pointInteractor->outOtherPointSet()->getDataPtr()->copyFrom(this->inTopology()->getData());
 
 
  109        if (this->varPickingElementType()->getValue() == PickingElementTypeSelection::Edge)
 
  114        else if (this->varPickingElementType()->getValue() == PickingElementTypeSelection::Point)
 
  119        else if (this->varPickingElementType()->getValue() == PickingElementTypeSelection::All)
 
 
  130        if (this->varPickingType()->getValue() == PickingTypeSelection::Click)
 
  132            this->
edgeInteractor->varEdgePickingType()->getDataPtr()->setCurrentKey(0);
 
  133            this->
pointInteractor->varPointPickingType()->getDataPtr()->setCurrentKey(0);
 
  135        else if (this->varPickingType()->getValue() == PickingTypeSelection::Drag)
 
  137            this->
edgeInteractor->varEdgePickingType()->getDataPtr()->setCurrentKey(1);
 
  138            this->
pointInteractor->varPointPickingType()->getDataPtr()->setCurrentKey(1);
 
  140        else if (this->varPickingType()->getValue() == PickingTypeSelection::Both)
 
  142            this->
edgeInteractor->varEdgePickingType()->getDataPtr()->setCurrentKey(2);
 
  143            this->
pointInteractor->varPointPickingType()->getDataPtr()->setCurrentKey(2);
 
 
  151        if (this->varMultiSelectionType()->getValue() == MultiSelectionType::OR)
 
  153            this->
edgeInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(0);
 
  154            this->
pointInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(0);
 
  156        else if (this->varMultiSelectionType()->getValue() == MultiSelectionType::XOR)
 
  158            this->
edgeInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(1);
 
  159            this->
pointInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(1);
 
  161        else if (this->varMultiSelectionType()->getValue() == MultiSelectionType::C)
 
  163            this->
edgeInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(2);
 
  164            this->
pointInteractor->varMultiSelectionType()->getDataPtr()->setCurrentKey(2);