The Object Filer example will demonstrate how to show or hide an object based on filter criteria. A few filters are defined for the demo, however, more filters may be added.
In the Launcher, click the Plug-ins button to bring up the Plug-ins Selection dialog. Enable the plugin.
#include <vlpi/appearance.h>
#include <boost/bind/bind.hpp>
#include <QMenu>
#include <QString>
#include <QtCore/QCoreApplication>
using namespace makVrv;
class DtObjectVisibilityMenu :
public DtMenu
{
public:
DtObjectVisibilityMenu(
DtDe& de)
:
DtMenu(de,
"DtObjectVisibilityMenu")
{
}
virtual ~DtObjectVisibilityMenu() override {}
virtual QMenu* createMenu(
DtDe& de, QWidget* parent)
override
{
QMenu* menu =
new QMenu(QObject::tr(
"Visibility"), parent);
return menu;
}
};
template <typename _Filter>
{
public:
{
}
virtual ~DtObjectVisibilityMenuItem() override {}
virtual QAction* createAction(
DtDe& de, QWidget* parent)
override
{
myOffText = text.
translate<QString, QCoreApplication>();
myToolTip = toolTip.
translate<QString, QCoreApplication>();
updateValue();
return retVal;
}
virtual bool getValue() const override {
}
protected:
_Filter myFilter;
};
template <typename _Filter>
{
public:
{
}
virtual ~DtListViewObjectVisibilityMenuItem() override {}
virtual QAction* createAction(
DtDe& de, QWidget* parent)
override
{
myOffText = text.
translate<QString, QCoreApplication>();
myToolTip = toolTip.
translate<QString, QCoreApplication>();
updateValue();
return retVal;
}
virtual void setValue(bool value) override
{
if (value)
{
}
else
{
}
}
virtual bool getValue() const override
{
}
protected:
_Filter myFilter;
};
{
public:
DtHideEntitiesFilter()
: DtVrfKindLessThanFilter(
"DtHideEntitiesFilterId", makVrv::
DtUnicode::tr(
"Entities"), DtEntityType(11, -1, -1, -1, -1, -1, -1))
{
}
virtual DtVrfSelectionFilter* clone() const override { return new DtHideEntitiesFilter(*this); };
};
{
public:
DtHideM1A2Filter()
{
}
virtual DtVrfSelectionFilter* clone() const override { return new DtHideM1A2Filter(*this); };
};
{
public:
: DtVrfKindLessThanFilter(("DtHideEntitiesByForceFilterId" + forceName.toAscii()),
(forceName + makVrv::
DtUnicode::tr(
" Entities")), DtEntityType(11, -1, -1, -1, -1, -1, -1), force)
{
}
};
class DtHideEntitiesByForceFriendlyFilter : public DtHideEntitiesByForceFilter
{
public:
DtHideEntitiesByForceFriendlyFilter()
: DtHideEntitiesByForceFilter(1, makVrv::
DtUnicode::tr(
"Friendly"))
{
}
virtual DtVrfSelectionFilter* clone() const override { return new DtHideEntitiesByForceFriendlyFilter(*this); };
};
class DtHideEntitiesByForceOpposingFilter : public DtHideEntitiesByForceFilter
{
public:
DtHideEntitiesByForceOpposingFilter()
: DtHideEntitiesByForceFilter(2, makVrv::
DtUnicode::tr(
"Opposing"))
{
}
virtual DtVrfSelectionFilter* clone() const override { return new DtHideEntitiesByForceOpposingFilter(*this); };
};
class DtHideEntitiesByForceNeutralFilter : public DtHideEntitiesByForceFilter
{
public:
DtHideEntitiesByForceNeutralFilter()
: DtHideEntitiesByForceFilter(3, makVrv::
DtUnicode::tr(
"Neutral"))
{
}
virtual DtVrfSelectionFilter* clone() const override { return new DtHideEntitiesByForceNeutralFilter(*this); };
};
{
public:
DtDestroyedFilter()
: DtVrfSelectionFilter(
"DtDestroyedFilterId", makVrv::
DtUnicode::tr(
"Destroyed"))
{
}
DtDestroyedFilter(const DtDestroyedFilter& orig)
: DtVrfSelectionFilter(orig)
{
}
{
}
virtual void setForce(int) override {
}
virtual DtVrfSelectionFilter* clone() const override { return new DtDestroyedFilter(*this); };
};
{
item(DtHideEntitiesByForceFriendlyFilter().className()));
item(DtHideEntitiesByForceOpposingFilter().className()));
item(DtHideEntitiesByForceNeutralFilter().className()));
}
{
}
{
if(igApp)
{
initPluginMenus(*igApp, *de);
if (announcer)
{
}
return true;
}
else
{
return false;
}
}
{
info.
pluginDescription =
"This example shows how to filter objects for visibility on the GUI.";
}