|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <SurveyComplexItem.h>
Inheritance diagram for SurveyComplexItem:
Collaboration diagram for SurveyComplexItem:Public Types | |
| enum | EntryLocation { EntryLocationFirst , EntryLocationTopLeft = EntryLocationFirst , EntryLocationTopRight , EntryLocationBottomLeft , EntryLocationBottomRight , EntryLocationLast = EntryLocationBottomRight } |
Public Types inherited from VisualMissionItem | |
| enum | ReadyForSaveState { ReadyForSave , NotReadyForSaveTerrain , NotReadyForSaveData } |
Public Member Functions | |
| SurveyComplexItem (PlanMasterController *masterController, bool flyView, const QString &kmlOrShpFile) | |
| Fact * | gridAngle (void) |
| Fact * | flyAlternateTransects (void) |
| Fact * | splitConcavePolygons (void) |
| Q_INVOKABLE void | rotateEntryPoint (void) |
| QString | patternName (void) const final |
| void | applyPreviousAltitudeFrame (QGroundControlQmlGlobal::AltitudeFrame prevAltFrame, double prevAltitude) final |
| bool | load (const QJsonObject &complexObject, int sequenceNumber, QString &errorString) final |
| QString | mapVisualQML (void) const final |
| QString | presetsSettingsGroup (void) |
| void | savePreset (const QString &name) |
| void | loadPreset (const QString &name) |
| bool | isSurveyItem (void) const final |
| QGeoCoordinate | centerCoordinate (void) const |
| void | setCenterCoordinate (const QGeoCoordinate &coordinate) |
| void | save (QJsonArray &planItems) final |
| bool | specifiesCoordinate (void) const final |
| double | timeBetweenShots (void) final |
| QString | commandDescription (void) const final |
| QString | commandName (void) const final |
| QString | abbreviation (void) const final |
| ReadyForSaveState | readyForSaveState (void) const final |
| double | additionalTimeDelay (void) const final |
Public Member Functions inherited from TransectStyleComplexItem | |
| TransectStyleComplexItem (PlanMasterController *masterController, bool flyView, QString settignsGroup) | |
| QGCMapPolygon * | surveyAreaPolygon (void) |
| CameraCalc * | cameraCalc (void) |
| QVariantList | visualTransectPoints (void) |
| Fact * | turnAroundDistance (void) |
| Fact * | cameraTriggerInTurnAround (void) |
| Fact * | hoverAndCapture (void) |
| Fact * | refly90Degrees (void) |
| Fact * | terrainAdjustTolerance (void) |
| Fact * | terrainAdjustMaxDescentRate (void) |
| Fact * | terrainAdjustMaxClimbRate (void) |
| const Fact * | hoverAndCapture (void) const |
| int | cameraShots (void) const |
| double | coveredArea (void) const |
| bool | hoverAndCaptureAllowed (void) const |
| double | triggerDistance (void) const |
| bool | hoverAndCaptureEnabled (void) const |
| bool | triggerCamera (void) const |
| int | _transectCount (void) const |
| int | lastSequenceNumber (void) const final |
| void | addKMLVisuals (KMLPlanDomDocument &domDocument) final |
| double | complexDistance (void) const final |
| double | greatestDistanceTo (const QGeoCoordinate &other) const final |
| void | appendMissionItems (QList< MissionItem * > &items, QObject *missionItemParent) final |
| void | applyNewAltitude (double newAltitude) final |
| Adjust the altitude of the item if appropriate to the new altitude. | |
| bool | dirty (void) const final |
| bool | isSimpleItem (void) const final |
| bool | isStandaloneCoordinate (void) const final |
| bool | specifiesAltitudeOnly (void) const final |
| QGeoCoordinate | coordinate (void) const final |
| QGeoCoordinate | entryCoordinate (void) const final |
| QGeoCoordinate | exitCoordinate (void) const final |
| int | sequenceNumber (void) const final |
| double | specifiedFlightSpeed (void) final |
| double | specifiedGimbalYaw (void) final |
| double | specifiedGimbalPitch (void) final |
| void | setMissionFlightStatus (MissionFlightStatus_t &missionFlightStatus) final |
| ReadyForSaveState | readyForSaveState (void) const override |
| QString | commandDescription (void) const override |
| QString | commandName (void) const override |
| QString | abbreviation (void) const override |
| bool | exitCoordinateSameAsEntry (void) const final |
| void | setDirty (bool dirty) final |
| void | setCoordinate (const QGeoCoordinate &coordinate) override |
| void | setSequenceNumber (int sequenceNumber) final |
| double | editableAlt (void) const final |
| double | amslEntryAlt (void) const final |
| double | amslExitAlt (void) const final |
| double | minAMSLAltitude (void) const final |
| double | maxAMSLAltitude (void) const final |
Public Member Functions inherited from ComplexMissionItem | |
| ComplexMissionItem (PlanMasterController *masterController, bool flyView) | |
| const ComplexMissionItem & | operator= (const ComplexMissionItem &other) |
| QmlObjectListModel * | flightPathSegments (void) |
| virtual bool | terrainCollision (void) const |
| virtual bool | isSingleItem (void) const |
| Q_INVOKABLE void | deletePreset (const QString &name) |
| virtual QStringList | presetNames (void) |
| bool | presetsSupported (void) |
| bool | isIncomplete (void) const |
Public Member Functions inherited from VisualMissionItem | |
| VisualMissionItem (PlanMasterController *masterController, bool flyView) | |
| VisualMissionItem (const VisualMissionItem &other, bool flyView) | |
| ~VisualMissionItem () | |
| const VisualMissionItem & | operator= (const VisualMissionItem &other) |
| bool | homePosition (void) const |
| < Flight path cumalative horizontal distance from home point to this item | |
| double | altDifference (void) const |
| double | altPercent (void) const |
| double | terrainPercent (void) const |
| bool | terrainCollision (void) const |
| double | azimuth (void) const |
| double | distance (void) const |
| double | distanceFromStart (void) const |
| bool | isCurrentItem (void) const |
| bool | hasCurrentChildItem (void) const |
| double | terrainAltitude (void) const |
| bool | terrainQueryFailed (void) const |
| bool | flyView (void) const |
| bool | wizardMode (void) const |
| VisualMissionItem * | parentItem (void) |
| QmlObjectListModel * | childItems (void) |
| void | setIsCurrentItem (bool isCurrentItem) |
| void | setHasCurrentChildItem (bool hasCurrentChildItem) |
| void | setAltDifference (double altDifference) |
| void | setAltPercent (double altPercent) |
| void | setTerrainPercent (double terrainPercent) |
| void | setTerrainCollision (bool terrainCollision) |
| void | setAzimuth (double azimuth) |
| void | setDistance (double distance) |
| void | setDistanceFromStart (double distanceFromStart) |
| void | setWizardMode (bool wizardMode) |
| void | setParentItem (VisualMissionItem *parentItem) |
| void | setHomePositionSpecialCase (bool homePositionSpecialCase) |
| FlightPathSegment * | simpleFlightPathSegment (void) |
| void | setSimpleFlighPathSegment (FlightPathSegment *segment) |
| void | clearSimpleFlighPathSegment (void) |
| PlanMasterController * | masterController (void) |
| virtual bool | isTakeoffItem (void) const |
| virtual bool | isLandCommand (void) const |
| virtual double | specifiedVehicleYaw (void) |
| virtual QGCGeoBoundingCube * | boundingCube (void) |
| double | missionGimbalYaw (void) const |
| double | missionVehicleYaw (void) const |
| void | setMissionVehicleYaw (double vehicleYaw) |
Static Public Attributes | |
| static constexpr const char * | canonicalName = QT_TR_NOOP("Survey") |
| static constexpr const char * | jsonComplexItemTypeValue = "survey" |
| static constexpr const char * | jsonV3ComplexItemTypeValue = "survey" |
| static constexpr const char * | settingsGroup = "Survey" |
| static constexpr const char * | gridAngleName = "GridAngle" |
| static constexpr const char * | gridEntryLocationName = "GridEntryLocation" |
| static constexpr const char * | flyAlternateTransectsName = "FlyAlternateTransects" |
| static constexpr const char * | splitConcavePolygonsName = "SplitConcavePolygons" |
Static Public Attributes inherited from TransectStyleComplexItem | |
| static constexpr const char * | turnAroundDistanceName = "TurnAroundDistance" |
| static constexpr const char * | turnAroundDistanceMultiRotorName = "TurnAroundDistanceMultiRotor" |
| static constexpr const char * | cameraTriggerInTurnAroundName = "CameraTriggerInTurnAround" |
| static constexpr const char * | hoverAndCaptureName = "HoverAndCapture" |
| static constexpr const char * | refly90DegreesName = "Refly90Degrees" |
| static constexpr const char * | terrainAdjustToleranceName = "TerrainAdjustTolerance" |
| static constexpr const char * | terrainAdjustMaxClimbRateName = "TerrainAdjustMaxClimbRate" |
| static constexpr const char * | terrainAdjustMaxDescentRateName = "TerrainAdjustMaxDescentRate" |
Static Public Attributes inherited from ComplexMissionItem | |
| static constexpr const char * | jsonComplexItemTypeKey = "complexItemType" |
| This mission item attribute specifies the type of the complex item. | |
Static Public Attributes inherited from VisualMissionItem | |
| static constexpr const char * | jsonTypeKey = "type" |
| Json file attribute which specifies the item type. | |
| static constexpr const char * | jsonTypeSimpleItemValue = "SimpleItem" |
| Item type is MISSION_ITEM. | |
| static constexpr const char * | jsonTypeComplexItemValue = "ComplexItem" |
| Item type is Complex Item. | |
Additional Inherited Members | |
Protected Types inherited from TransectStyleComplexItem | |
| enum | CoordType { CoordTypeInterior , CoordTypeInteriorHoverTrigger , CoordTypeInteriorTerrainAdded , CoordTypeSurveyEntry , CoordTypeSurveyExit , CoordTypeTurnaround } |
Protected Slots inherited from TransectStyleComplexItem | |
| void | _setDirty (void) |
| void | _setIfDirty (bool dirty) |
| void | _updateCoordinateAltitudes (void) |
| void | _polyPathTerrainData (bool success, const QList< TerrainPathQuery::PathHeightInfo_t > &rgPathHeightInfo) |
| void | _missionItemCoordTerrainData (bool success, QList< double > heights) |
| void | _rebuildTransects (void) |
Protected Slots inherited from ComplexMissionItem | |
| virtual void | _segmentTerrainCollisionChanged (bool terrainCollision) |
Protected Slots inherited from VisualMissionItem | |
| void | _amslEntryAltChanged (void) |
| void | _amslExitAltChanged (void) |
Protected Member Functions inherited from TransectStyleComplexItem | |
| virtual void | _rebuildTransectsPhase1 (void)=0 |
| Rebuilds the _transects array. | |
| virtual void | _recalcCameraShots (void)=0 |
| void | _save (QJsonObject &saveObject) |
| bool | _load (const QJsonObject &complexObject, bool forPresets, QString &errorString) |
| void | _setExitCoordinate (const QGeoCoordinate &coordinate) |
| void | _setCameraShots (int cameraShots) |
| double | _triggerDistance (void) const |
| bool | _hasTurnaround (void) const |
| double | _turnAroundDistance (void) const |
| void | _appendWaypoint (QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, float holdTime, const QGeoCoordinate &coordinate) |
| void | _appendSinglePhotoCapture (QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum) |
| void | _appendConditionGate (QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, const QGeoCoordinate &coordinate) |
| void | _appendCameraTriggerDistance (QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, float triggerDistance) |
| void | _appendCameraTriggerDistanceUpdatePoint (QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, const QGeoCoordinate &coordinate, bool useConditionGate, float triggerDistance) |
| void | _buildAndAppendMissionItems (QList< MissionItem * > &items, QObject *missionItemParent) |
| void | _appendLoadedMissionItems (QList< MissionItem * > &items, QObject *missionItemParent) |
| void | _recalcComplexDistance (void) |
Protected Member Functions inherited from ComplexMissionItem | |
| void | _savePresetJson (const QString &name, QJsonObject &presetObject) |
| QJsonObject | _loadPresetJson (const QString &name) |
| void | _appendFlightPathSegment (FlightPathSegment::SegmentType segmentType, const QGeoCoordinate &coord1, double coord1AMSLAlt, const QGeoCoordinate &coord2, double coord2AMSLAlt) |
Protected Member Functions inherited from VisualMissionItem | |
| void | _setBoundingCube (QGCGeoBoundingCube bc) |
Protected Attributes inherited from TransectStyleComplexItem | |
| int | _sequenceNumber = 0 |
| QGeoCoordinate | _entryCoordinate |
| QGeoCoordinate | _exitCoordinate |
| QGCMapPolygon | _surveyAreaPolygon |
| QVariantList | _visualTransectPoints |
| Used to draw the flight path visuals on the screen. | |
| QList< QList< CoordInfo_t > > | _transects |
| QList< TerrainPathQuery::PathHeightInfo_t > | _rgPathHeightInfo |
| Path height for each segment includes turn segments. | |
| QList< QGeoCoordinate > | _rgFlyThroughMissionItemCoords |
| QList< double > | _rgFlyThroughMissionItemCoordsTerrainHeights |
| QList< CoordInfo_t > | _rgFlightPathCoordInfo |
| Fully calculated flight path (including terrain if needed) | |
| bool | _ignoreRecalc = false |
| double | _complexDistance = qQNaN() |
| int | _cameraShots = 0 |
| double | _timeBetweenShots = 0 |
| double | _vehicleSpeed = 5 |
| CameraCalc | _cameraCalc |
| double | _minAMSLAltitude = qQNaN() |
| double | _maxAMSLAltitude = qQNaN() |
| QObject * | _loadedMissionItemsParent = nullptr |
| Parent for all items in _loadedMissionItems for simpler delete. | |
| QList< MissionItem * > | _loadedMissionItems |
| Mission items loaded from plan file. | |
| QMap< QString, FactMetaData * > | _metaDataMap |
| SettingsFact | _turnAroundDistanceFact |
| SettingsFact | _cameraTriggerInTurnAroundFact |
| SettingsFact | _hoverAndCaptureFact |
| SettingsFact | _refly90DegreesFact |
| SettingsFact | _terrainAdjustToleranceFact |
| SettingsFact | _terrainAdjustMaxClimbRateFact |
| SettingsFact | _terrainAdjustMaxDescentRateFact |
Protected Attributes inherited from ComplexMissionItem | |
| bool | _isIncomplete = true |
| int | _cTerrainCollisionSegments = 0 |
| QmlObjectListModel | _flightPathSegments |
| QMap< QString, FactMetaData * > | _metaDataMap |
Protected Attributes inherited from VisualMissionItem | |
| bool | _flyView = false |
| bool | _isCurrentItem = false |
| bool | _hasCurrentChildItem = false |
| bool | _dirty = false |
| bool | _homePositionSpecialCase = false |
| true: This item is being used as a ui home position indicator | |
| bool | _wizardMode = false |
| true: Item editor is showing wizard completion panel | |
| double | _terrainAltitude = qQNaN() |
| Altitude of terrain at coordinate position, NaN for not known. | |
| bool | _terrainQueryFailed = false |
| true: Last terrain query failed | |
| double | _altDifference = 0 |
| Difference in altitude from previous waypoint. | |
| double | _altPercent = 0 |
| Percent of total altitude change in mission. | |
| double | _terrainPercent = qQNaN() |
| Percent of terrain altitude for coordinate. | |
| bool | _terrainCollision = false |
| true: item collides with terrain | |
| double | _azimuth = 0 |
| Azimuth to previous waypoint. | |
| double | _distance = 0 |
| Distance to previous waypoint. | |
| double | _distanceFromStart = 0 |
| Flight path cumalative horizontal distance from home point to this item. | |
| QString | _editorQml |
| Qml resource for editing item. | |
| double | _missionGimbalYaw = qQNaN() |
| double | _missionVehicleYaw = qQNaN() |
| QGCMAVLinkTypes::VehicleClass_t | _previousVTOLMode = QGCMAVLinkTypes::VehicleClassGeneric |
| Generic == unknown. | |
| PlanMasterController * | _masterController = nullptr |
| MissionController * | _missionController = nullptr |
| Vehicle * | _controllerVehicle = nullptr |
| FlightPathSegment * | _simpleFlightPathSegment = nullptr |
| The simple item flight segment (if any) which starts with this visual item. | |
| VisualMissionItem * | _parentItem = nullptr |
| QGCGeoBoundingCube | _boundingCube |
| The bounding "cube" of this element. | |
| QmlObjectListModel | _childItems |
| This is used to reference any subsequent mission items which do not specify a coordinate. | |
Static Protected Attributes inherited from TransectStyleComplexItem | |
| static constexpr const char * | _jsonTransectStyleComplexItemKey = "TransectStyleComplexItem" |
| static constexpr const char * | _jsonCameraCalcKey = "CameraCalc" |
| static constexpr const char * | _jsonVisualTransectPointsKey = "VisualTransectPoints" |
| static constexpr const char * | _jsonItemsKey = "Items" |
| static constexpr const char * | _jsonTerrainFlightSpeed = "TerrainFlightSpeed" |
| static constexpr const char * | _jsonCameraShotsKey = "CameraShots" |
| static constexpr int | _terrainQueryTimeoutMsecs = 1000 |
| static constexpr int | _hoverAndCaptureDelaySeconds = 4 |
| static constexpr double | _minimumTransectSpacingMeters = 0.3 |
| static constexpr double | _forceLargeTransectSpacingMeters = 100000 |
Static Protected Attributes inherited from ComplexMissionItem | |
| static constexpr const char * | _presetSettingsKey = "_presets" |
Definition at line 9 of file SurveyComplexItem.h.
| Enumerator | |
|---|---|
| EntryLocationFirst | |
| EntryLocationTopLeft | |
| EntryLocationTopRight | |
| EntryLocationBottomLeft | |
| EntryLocationBottomRight | |
| EntryLocationLast | |
Definition at line 54 of file SurveyComplexItem.h.
| SurveyComplexItem::SurveyComplexItem | ( | PlanMasterController * | masterController, |
| bool | flyView, | ||
| const QString & | kmlOrShpFile | ||
| ) |
| flyView | true: Created for use in the Fly View, false: Created for use in the Plan View |
| kmlOrShpFile | Polygon comes from this file, empty for default polygon |
Definition at line 20 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_rebuildTransects(), TransectStyleComplexItem::_setDirty(), SettingsManager::instance(), QGCMapPolygon::isValidChanged(), refly90DegreesChanged(), QGCMapPolygon::traceModeChanged(), and Fact::valueChanged().
|
inlinefinalvirtual |
Implements VisualMissionItem.
Definition at line 49 of file SurveyComplexItem.h.
|
finalvirtual |
Implements VisualMissionItem.
Definition at line 1344 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_hoverAndCaptureDelaySeconds, TransectStyleComplexItem::_transects, and TransectStyleComplexItem::hoverAndCaptureEnabled().
|
finalvirtual |
Called by MissionController after inserting a new item when a previous altitude is available and the global altitude frame is AltitudeFrameMixed. Override to apply altitude frame context to the item. The default implementation is a no-op.
| prevAltFrame | Altitude frame of the previous mission item |
| prevAltitude | Altitude of the previous mission item |
Reimplemented from ComplexMissionItem.
Definition at line 103 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_cameraCalc, and CameraCalc::setDistanceMode().
|
inline |
Definition at line 38 of file SurveyComplexItem.h.
References TransectStyleComplexItem::_surveyAreaPolygon, and QGCMapPolygon::center().
|
inlinefinalvirtual |
Implements VisualMissionItem.
Definition at line 47 of file SurveyComplexItem.h.
|
inlinefinalvirtual |
Implements VisualMissionItem.
Definition at line 48 of file SurveyComplexItem.h.
|
inline |
Definition at line 24 of file SurveyComplexItem.h.
|
inline |
Definition at line 23 of file SurveyComplexItem.h.
|
inlinefinalvirtual |
Reimplemented from VisualMissionItem.
Definition at line 37 of file SurveyComplexItem.h.
|
finalvirtual |
Load the complex mission item from Json
| complexObject | Complex mission item json object | |
| sequenceNumber | Sequence number for first MISSION_ITEM in survey | |
| [out] | errorString | Error if load fails |
Implements TransectStyleComplexItem.
Definition at line 109 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_cameraShots, TransectStyleComplexItem::_rebuildTransects(), TransectStyleComplexItem::_recalcComplexDistance(), errorString, ComplexMissionItem::jsonComplexItemTypeKey, jsonComplexItemTypeValue, VisualMissionItem::jsonTypeComplexItemValue, VisualMissionItem::jsonTypeKey, JsonParsing::jsonVersionKey, TransectStyleComplexItem::sequenceNumber(), and JsonParsing::validateKeys().
|
virtual |
Loads the specified preset into the complex item.
| name | Preset name. |
Reimplemented from ComplexMissionItem.
Definition at line 92 of file SurveyComplexItem.cc.
References ComplexMissionItem::_loadPresetJson(), TransectStyleComplexItem::_rebuildTransects(), errorString, and QGC::showAppMessage().
|
inlinefinalvirtual |
Implements TransectStyleComplexItem.
Definition at line 33 of file SurveyComplexItem.h.
|
inlinefinalvirtual |
Implements ComplexMissionItem.
Definition at line 30 of file SurveyComplexItem.h.
References canonicalName.
|
inlinevirtual |
Returns the name of the settings group for presets. Empty string signals no support for presets.
Reimplemented from ComplexMissionItem.
Definition at line 34 of file SurveyComplexItem.h.
References settingsGroup.
|
finalvirtual |
Reimplemented from VisualMissionItem.
Definition at line 1321 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::readyForSaveState().
|
signal |
Referenced by SurveyComplexItem().
| void SurveyComplexItem::rotateEntryPoint | ( | void | ) |
Definition at line 1326 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_rebuildTransects(), EntryLocationFirst, EntryLocationLast, and TransectStyleComplexItem::setDirty().
|
finalvirtual |
Save the item(s) in Json format
| missionItems | Current set of mission items, new items should be appended to the end |
Implements TransectStyleComplexItem.
Definition at line 60 of file SurveyComplexItem.cc.
|
virtual |
Saves the current state of the complex item as the named preset.
| name | User visible name for preset. Will replace existing preset if already exists. |
Reimplemented from ComplexMissionItem.
Definition at line 68 of file SurveyComplexItem.cc.
References ComplexMissionItem::_savePresetJson().
|
inline |
Definition at line 39 of file SurveyComplexItem.h.
References TransectStyleComplexItem::_surveyAreaPolygon, TransectStyleComplexItem::coordinate(), and QGCMapPolygon::setCenter().
|
inlinefinalvirtual |
Implements TransectStyleComplexItem.
Definition at line 43 of file SurveyComplexItem.h.
|
inline |
Definition at line 25 of file SurveyComplexItem.h.
|
finalvirtual |
Reimplemented from TransectStyleComplexItem.
Definition at line 1339 of file SurveyComplexItem.cc.
References TransectStyleComplexItem::_vehicleSpeed, and TransectStyleComplexItem::triggerDistance().
|
staticconstexpr |
Definition at line 63 of file SurveyComplexItem.h.
Referenced by QGCCorePlugin::complexMissionItemNames(), QGCCorePlugin::createComplexMissionItem(), SurveyPlanCreator::createPlan(), and patternName().
|
staticconstexpr |
Definition at line 71 of file SurveyComplexItem.h.
|
staticconstexpr |
Definition at line 69 of file SurveyComplexItem.h.
|
staticconstexpr |
Definition at line 70 of file SurveyComplexItem.h.
|
staticconstexpr |
Definition at line 65 of file SurveyComplexItem.h.
Referenced by QGCCorePlugin::createComplexMissionItem(), and load().
|
staticconstexpr |
Definition at line 66 of file SurveyComplexItem.h.
|
staticconstexpr |
Definition at line 68 of file SurveyComplexItem.h.
Referenced by presetsSettingsGroup().
|
staticconstexpr |
Definition at line 72 of file SurveyComplexItem.h.