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);