18 #include <Inventor/nodes/SoLevelOfDetail.h>
19 #include <Inventor/nodes/SoSeparator.h>
58 messageDebug(
"WARNING: Destructed before event data cleared!");
74 if ( attachnode && attachsep_simple && attachnode->findChild(attachsep_simple)>-1)
75 attachnode->removeChild(attachsep_simple);
81 if ( attachnode && attachnode_lod && attachnode->findChild(attachnode_lod)>-1)
82 attachnode->removeChild(attachnode_lod);
89 if ( attachnode && attachsep_simple && attachnode->findChild(attachsep_simple)<0)
90 attachnode->addChild(attachsep_simple);
92 ensureSimpleDetached();
96 if ( attachnode && attachsep_detailed && attachnode->findChild(attachsep_detailed)<0)
97 attachnode->addChild(attachsep_detailed);
99 ensureDetailedDetached();
103 if ( attachnode && attachnode_lod && attachnode->findChild(attachnode_lod)<0)
104 attachnode->addChild(attachnode_lod);
125 message(
"setAttachNode ERROR: Received null pointer!");
129 message(
"setAttachNode ERROR: Received new attachment group pointer while still having previous one!");
155 messageDebug(
"eraseEventData WARNING: - called before attachment node was set!");
200 message(
"getTrackLODHandle ERROR: Called before attachment node was set!");
220 int i,
const double&
c)
221 : attachGroup_LOD(ag),
222 attachHelper_simple(shs),
223 attachHelper_detailed(shd),
227 sep_detailed(nullptr),
228 sep_simple(nullptr) {}
241 lod->screenArea.setValue(crossVal*sqrt(sep_detailed->getNumChildren())+0.1);
250 int regionindex,
const double& crossover_value)
251 :
m_d(
new Imp(attachgroup_LOD,sephelper_simple,sephelper_detailed,regionindex,crossover_value))
256 if (!attachgroup_LOD||!sephelper_simple||!sephelper_detailed)
282 m_d->
lod =
new SoLevelOfDetail;
343 VP1Msg::messageVerbose(
"TrackLODHandle ERROR: removeNodes called for detailed node which is not already added");
347 VP1Msg::messageVerbose(
"TrackLODHandle ERROR: removeNodes called for simple node which is not already added");