PCL
ProcessInterface.h
Go to the documentation of this file.
1 // ____ ______ __
2 // / __ \ / ____// /
3 // / /_/ // / / /
4 // / ____// /___ / /___ PixInsight Class Library
5 // /_/ \____//_____/ PCL 2.7.0
6 // ----------------------------------------------------------------------------
7 // pcl/ProcessInterface.h - Released 2024-06-18T15:48:54Z
8 // ----------------------------------------------------------------------------
9 // This file is part of the PixInsight Class Library (PCL).
10 // PCL is a multiplatform C++ framework for development of PixInsight modules.
11 //
12 // Copyright (c) 2003-2024 Pleiades Astrophoto S.L. All Rights Reserved.
13 //
14 // Redistribution and use in both source and binary forms, with or without
15 // modification, is permitted provided that the following conditions are met:
16 //
17 // 1. All redistributions of source code must retain the above copyright
18 // notice, this list of conditions and the following disclaimer.
19 //
20 // 2. All redistributions in binary form must reproduce the above copyright
21 // notice, this list of conditions and the following disclaimer in the
22 // documentation and/or other materials provided with the distribution.
23 //
24 // 3. Neither the names "PixInsight" and "Pleiades Astrophoto", nor the names
25 // of their contributors, may be used to endorse or promote products derived
26 // from this software without specific prior written permission. For written
27 // permission, please contact info@pixinsight.com.
28 //
29 // 4. All products derived from this software, in any form whatsoever, must
30 // reproduce the following acknowledgment in the end-user documentation
31 // and/or other materials provided with the product:
32 //
33 // "This product is based on software from the PixInsight project, developed
34 // by Pleiades Astrophoto and its contributors (https://pixinsight.com/)."
35 //
36 // Alternatively, if that is where third-party acknowledgments normally
37 // appear, this acknowledgment must be reproduced in the product itself.
38 //
39 // THIS SOFTWARE IS PROVIDED BY PLEIADES ASTROPHOTO AND ITS CONTRIBUTORS
40 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
41 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PLEIADES ASTROPHOTO OR ITS
43 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
44 // EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, BUSINESS
45 // INTERRUPTION; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; AND LOSS OF USE,
46 // DATA OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
47 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
48 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
49 // POSSIBILITY OF SUCH DAMAGE.
50 // ----------------------------------------------------------------------------
51 
52 #ifndef __PCL_ProcessInterface_h
53 #define __PCL_ProcessInterface_h
54 
56 
57 #ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
58 
59 #include <pcl/Defs.h>
60 
61 #include <pcl/Control.h>
62 #include <pcl/ImageVariant.h>
63 #include <pcl/Flags.h>
64 #include <pcl/MetaObject.h>
65 
66 #endif // __PCL_BUILDING_PIXINSIGHT_APPLICATION
67 
68 namespace pcl
69 {
70 
71 // ----------------------------------------------------------------------------
72 
173 namespace InterfaceFeature
174 {
175  enum mask_type
176  {
177  None = 0x00000000, // This effectively suppresses a interface's control bar
178  DragObject = 0x00000001, // Process drag object - To generate new process instances
179  ApplyToViewButton = 0x00000002, // Apply button - To execute a process on the active view
180  ApplyGlobalButton = 0x00000004, // Apply Global button - To execute a process in the global context
181  RealTimeButton = 0x00000008, // Real-Time Preview button - To activate the real-time preview interface
182  ExecuteButton = 0x00000010, // Execute button - To commit a dynamic interface
183  CancelButton = 0x00000020, // Cancel button - To cancel a dynamic interface
184  BrowseDocumentationButton = 0x00000080, // Browse Documentation button - To browse process-specific documentation
185  TrackViewButton = 0x00000100, // Track View check box - To activate/deactivate tracking of the current view
186  PreferencesButton = 0x00000400, // Preferences button - To edit process and interface-specific preferences
187  ResetButton = 0x00000800, // Reset button - To reset process instance parameters
188  InfoArea = 0x00010000, // Info Area - To create a single-line text area
189  Default = DragObject | ApplyToViewButton | BrowseDocumentationButton | ResetButton, // A default set of flags for static interfaces
190  DefaultGlobal = DragObject | ApplyGlobalButton | BrowseDocumentationButton | ResetButton, // A default set of flags for static interfaces that execute globally
191  DefaultDynamic = DragObject | ExecuteButton | CancelButton | BrowseDocumentationButton | ResetButton // A default set of flags for dynamic interfaces
192  };
193 }
194 
199 using InterfaceFeatures = Flags<InterfaceFeature::mask_type>;
200 
201 // ----------------------------------------------------------------------------
202 
216 namespace RealTimePreviewGenerationFlag
217 {
218  enum mask_type
219  {
220  None = 0x00000000, // No real-time preview generation flags
221  DisableMask = 0x00000010, // Do not render a masked real-time preview
222  Invalid = 0xFFFFFFFF
223  };
224 }
225 
230 using RealTimePreviewGenerationFlags = Flags<RealTimePreviewGenerationFlag::mask_type>;
231 
232 // ----------------------------------------------------------------------------
233 
234 #ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
235 
236 // ----------------------------------------------------------------------------
237 
238 class PCL_CLASS MetaProcess;
239 class PCL_CLASS ProcessImplementation;
240 class PCL_CLASS ProcessInstance;
241 class PCL_CLASS VectorGraphics;
242 class PCL_CLASS View;
243 
244 // ----------------------------------------------------------------------------
245 
255 class PCL_CLASS ProcessInterface : public Control, public MetaObject
256 {
257 public:
258 
263 
267  ~ProcessInterface() noexcept( false ) override
268  {
269  }
270 
277 
290  virtual IsoString Id() const = 0;
291 
315  virtual IsoString Aliases() const
316  {
317  return IsoString();
318  }
319 
327  virtual MetaProcess* Process() const = 0;
328 
341  virtual uint32 Version() const
342  {
343  return 0x100;
344  }
345 
358  virtual String Description() const
359  {
360  return String();
361  }
362 
390  virtual IsoString IconImageSVG() const
391  {
392  return IsoString();
393  }
394 
429  virtual String IconImageSVGFile() const
430  {
431  return String();
432  }
433 
461  virtual const char** IconImageXPM() const
462  {
463  return nullptr;
464  }
465 
487  virtual String IconImageFile() const
488  {
489  return String();
490  }
491 
520  virtual const char** SmallIconImageXPM() const
521  {
522  return nullptr;
523  }
524 
546  virtual String SmallIconImageFile() const
547  {
548  return String();
549  }
550 
564  virtual InterfaceFeatures Features() const
565  {
566  return InterfaceFeature::Default;
567  }
568 
581  virtual void ApplyInstance() const;
582 
595  virtual void ApplyInstanceGlobal() const;
596 
612  virtual void Execute()
613  {
614  }
615 
629  virtual void Cancel();
630 
649  virtual void RealTimePreviewUpdated( bool active )
650  {
651  }
652 
678  virtual bool BrowseDocumentation() const;
679 
702  virtual void TrackViewUpdated( bool active )
703  {
704  }
705 
724  virtual void EditPreferences()
725  {
726  }
727 
741  virtual void ResetInstance()
742  {
743  }
744 
767  virtual void Initialize()
768  {
769  }
770 
842  virtual bool Launch( const MetaProcess& process,
843  const ProcessImplementation* instance, bool& dynamic, unsigned& flags )
844  {
845  dynamic = false; // interfaces are static by default
846  return true;
847  }
848 
873  bool Launch( unsigned flags = 0 );
874 
882  {
883  return m_launchCount;
884  }
885 
915  {
916  return nullptr;
917  }
918 
956  {
957  return NewProcess();
958  }
959 
979  virtual bool IsInstanceGenerator() const
980  {
981  return true;
982  }
983 
1007  virtual bool DistinguishesTestInstances() const
1008  {
1009  return false;
1010  }
1011 
1037  virtual bool ValidateProcess( const ProcessImplementation& instance, String& whyNot ) const
1038  {
1039  whyNot.Clear();
1040  return false; // Force a reimplementation if RequiresInstanceValidation() = true
1041  }
1042 
1056  virtual bool RequiresInstanceValidation() const
1057  {
1058  return false;
1059  }
1060 
1095  virtual bool ImportProcess( const ProcessImplementation& )
1096  {
1097  return false;
1098  }
1099 
1110  virtual bool CanImportInstances() const
1111  {
1112  return true;
1113  }
1114 
1165  virtual bool RequiresRealTimePreviewUpdate( const UInt16Image& image, const View& view,
1166  const Rect& rect, int zoomLevel ) const
1167  {
1168  return false;
1169  }
1170 
1197  const Rect& rect, int zoomLevel ) const
1198  {
1199  return RealTimePreviewGenerationFlag::None;
1200  }
1201 
1266  virtual bool GenerateRealTimePreview( UInt16Image& image, const View& view,
1267  const Rect& rect, int zoomLevel, String& info ) const
1268  {
1269  return false;
1270  }
1271 
1293  virtual void CancelRealTimePreview()
1294  {
1295  DeactivateRealTimePreview();
1296  }
1297 
1323  virtual bool IsDynamicInterface() const
1324  {
1325  return false;
1326  }
1327 
1337  virtual bool EnterDynamicMode()
1338  {
1339  return true;
1340  }
1341 
1349  virtual void ExitDynamicMode()
1350  {
1351  }
1352 
1362  virtual void DynamicMouseEnter( View& view )
1363  {
1364  }
1365 
1375  virtual void DynamicMouseLeave( View& view )
1376  {
1377  }
1378 
1401  virtual void DynamicMouseMove( View& view, const DPoint& cursorPos,
1402  unsigned buttons, unsigned modifiers )
1403  {
1404  }
1405 
1431  virtual void DynamicMousePress( View& view, const DPoint& cursorPos,
1432  int button, unsigned buttons, unsigned modifiers )
1433  {
1434  }
1435 
1461  virtual void DynamicMouseRelease( View& view, const DPoint& cursorPos,
1462  int button, unsigned buttons, unsigned modifiers )
1463  {
1464  }
1465 
1488  virtual void DynamicMouseDoubleClick( View& view, const DPoint& cursorPos,
1489  unsigned buttons, unsigned modifiers )
1490  {
1491  }
1492 
1515  virtual bool DynamicKeyPress( View& view, int key, unsigned modifiers )
1516  {
1517  return false;
1518  }
1519 
1542  virtual bool DynamicKeyRelease( View& view, int key, unsigned modifiers )
1543  {
1544  return false;
1545  }
1546 
1580  virtual bool DynamicMouseWheel( View& view, const DPoint& cursorPos,
1581  int wheelDelta, unsigned buttons, unsigned modifiers )
1582  {
1583  return false;
1584  }
1585 
1608  virtual bool RequiresDynamicUpdate( const View& view, const DRect& rect ) const
1609  {
1610  return false;
1611  }
1612 
1647  virtual void DynamicPaint( const View& view, VectorGraphics& graphics, const DRect& rect ) const
1648  {
1649  }
1650 
1671  virtual bool WantsImageNotifications() const
1672  {
1673  return false;
1674  }
1675 
1685  virtual void ImageCreated( const View& view )
1686  {
1687  }
1688 
1698  virtual void ImageUpdated( const View& view )
1699  {
1700  }
1701 
1711  virtual void ImageRenamed( const View& view )
1712  {
1713  }
1714 
1728  virtual void ImageDeleted( const View& view )
1729  {
1730  }
1731 
1749  virtual void ImageFocused( const View& view )
1750  {
1751  }
1752 
1762  virtual void ImageLocked( const View& view )
1763  {
1764  }
1765 
1775  virtual void ImageUnlocked( const View& view )
1776  {
1777  }
1778 
1788  virtual void ImageSTFEnabled( const View& view )
1789  {
1790  }
1791 
1801  virtual void ImageSTFDisabled( const View& view )
1802  {
1803  }
1804 
1814  virtual void ImageSTFUpdated( const View& view )
1815  {
1816  }
1817 
1827  virtual void ImageRGBWSUpdated( const View& view )
1828  {
1829  }
1830 
1841  virtual void ImageCMEnabled( const View& view )
1842  {
1843  }
1844 
1855  virtual void ImageCMDisabled( const View& view )
1856  {
1857  }
1858 
1873  virtual void ImageCMUpdated( const View& view )
1874  {
1875  }
1876 
1886  virtual void ImageSaved( const View& view )
1887  {
1888  }
1889 
1910  virtual bool WantsMaskNotifications() const
1911  {
1912  return false;
1913  }
1914 
1926  virtual void MaskUpdated( const View& view )
1927  {
1928  }
1929 
1939  virtual void MaskEnabled( const View& view )
1940  {
1941  }
1942 
1952  virtual void MaskDisabled( const View& view )
1953  {
1954  }
1955 
1966  virtual void MaskShown( const View& view )
1967  {
1968  }
1969 
1980  virtual void MaskHidden( const View& view )
1981  {
1982  }
1983 
2006  virtual bool WantsTransparencyNotifications() const
2007  {
2008  return false;
2009  }
2010 
2022  virtual void TransparencyHidden( const View& view )
2023  {
2024  }
2025 
2037  virtual void TransparencyModeUpdated( const View& view )
2038  {
2039  }
2040 
2062  virtual bool WantsViewPropertyNotifications() const
2063  {
2064  return false;
2065  }
2066 
2079  virtual void ViewPropertyUpdated( const View& view, const IsoString& property )
2080  {
2081  }
2082 
2093  virtual void ViewPropertyDeleted( const View& view, const IsoString& property )
2094  {
2095  }
2096 
2126  virtual bool WantsReadoutNotifications() const
2127  {
2128  return false;
2129  }
2130 
2140  virtual void BeginReadout( const View& view )
2141  {
2142  }
2143 
2162  virtual void UpdateReadout( const View& view, const DPoint& position, double R, double G, double B, double A )
2163  {
2164  }
2165 
2175  virtual void EndReadout( const View& view )
2176  {
2177  }
2178 
2200  virtual bool WantsProcessNotifications() const
2201  {
2202  return false;
2203  }
2204 
2214  virtual void ProcessCreated( const ProcessInstance& instance )
2215  {
2216  }
2217 
2226  virtual void ProcessUpdated( const ProcessInstance& instance )
2227  {
2228  }
2229 
2238  virtual void ProcessDeleted( const ProcessInstance& instance )
2239  {
2240  }
2241 
2252  virtual void ProcessSaved( const ProcessInstance& instance )
2253  {
2254  }
2255 
2279  {
2280  return false;
2281  }
2282 
2294  {
2295  }
2296 
2311  virtual void RealTimePreviewLUTUpdated( int colorModel )
2312  {
2313  }
2314 
2323  {
2324  }
2325 
2334  {
2335  }
2336 
2357  virtual bool WantsGlobalNotifications() const
2358  {
2359  return false;
2360  }
2361 
2369  virtual void GlobalRGBWSUpdated()
2370  {
2371  }
2372 
2379  virtual void GlobalCMEnabled()
2380  {
2381  }
2382 
2389  virtual void GlobalCMDisabled()
2390  {
2391  }
2392 
2402  virtual void GlobalCMUpdated()
2403  {
2404  }
2405 
2412  virtual void ReadoutOptionsUpdated()
2413  {
2414  }
2415 
2424  {
2425  }
2426 
2437  virtual void GlobalFiltersUpdated()
2438  {
2439  }
2440 
2456  {
2457  return IsoString( "Interfaces/" ) + Id() + '/';
2458  }
2459 
2480  virtual void SaveSettings() const
2481  {
2482  }
2483 
2508  virtual void LoadSettings()
2509  {
2510  }
2511 
2541  void SaveGeometry() const;
2542 
2560 
2571 
2590  {
2591  return m_autoSaveGeometry;
2592  }
2593 
2601  void EnableAutoSaveGeometry( bool enable = true )
2602  {
2603  m_autoSaveGeometry = enable;
2604  }
2605 
2613  void DisableAutoSaveGeometry( bool disable = true )
2614  {
2615  EnableAutoSaveGeometry( !disable );
2616  }
2617 
2643  static void BroadcastImageUpdated( const View& view );
2644 
2669  static void ProcessEvents( bool excludeUserInputEvents = false );
2670 
2671 protected:
2672 
2676  ProcessInterface( int );
2677 
2678 private:
2679 
2680  size_type m_launchCount = 0;
2681  bool m_autoSaveGeometry = true;
2682 
2683  void PerformAPIDefinitions() const override;
2684 
2685  friend class InterfaceDispatcher;
2686 };
2687 
2688 // ----------------------------------------------------------------------------
2689 
2690 #endif // __PCL_BUILDING_PIXINSIGHT_APPLICATION
2691 
2692 } // pcl
2693 
2694 #endif // __PCL_ProcessInterface_h
2695 
2696 // ----------------------------------------------------------------------------
2697 // EOF pcl/ProcessInterface.h - Released 2024-06-18T15:48:54Z
Client-side interface to a PixInsight Control object.
Definition: Control.h:126
A type-safe collection of enumerated flags.
Definition: Flags.h:85
Implements a generic, two-dimensional, shared or local image.
Definition: Image.h:278
A generic point in the two-dimensional space.
Definition: Point.h:100
A generic rectangle in the two-dimensional space.
Definition: Rectangle.h:314
A collection of interface feature flags.
Eight-bit string (ISO/IEC-8859-1 or UTF-8 string)
Definition: String.h:5425
Root base class for all PixInsight module components.
Definition: MetaObject.h:86
A formal description of a PixInsight process.
Definition: MetaProcess.h:107
Implementation of a PixInsight process instance.
High-level interface to a process instance.
Client-side interface to a PixInsight process interface window.
virtual String Description() const
static void ProcessEvents(bool excludeUserInputEvents=false)
virtual bool WantsImageNotifications() const
virtual ProcessImplementation * NewTestProcess() const
virtual bool DynamicMouseWheel(View &view, const DPoint &cursorPos, int wheelDelta, unsigned buttons, unsigned modifiers)
virtual void CancelRealTimePreview()
bool Launch(unsigned flags=0)
virtual InterfaceFeatures Features() const
virtual String SmallIconImageFile() const
void EnableAutoSaveGeometry(bool enable=true)
virtual bool EnterDynamicMode()
virtual void DynamicMousePress(View &view, const DPoint &cursorPos, int button, unsigned buttons, unsigned modifiers)
virtual bool ImportProcess(const ProcessImplementation &)
virtual bool WantsViewPropertyNotifications() const
virtual bool ValidateProcess(const ProcessImplementation &instance, String &whyNot) const
virtual IsoString Aliases() const
virtual void DynamicMouseDoubleClick(View &view, const DPoint &cursorPos, unsigned buttons, unsigned modifiers)
virtual bool CanImportInstances() const
IsoString SettingsKey() const
virtual void SaveSettings() const
virtual bool BrowseDocumentation() const
virtual bool DynamicKeyRelease(View &view, int key, unsigned modifiers)
virtual MetaProcess * Process() const =0
bool IsAutoSaveGeometryEnabled() const
static void BroadcastImageUpdated(const View &view)
virtual String IconImageSVGFile() const
virtual void EditPreferences()
virtual void DynamicMouseRelease(View &view, const DPoint &cursorPos, int button, unsigned buttons, unsigned modifiers)
virtual bool Launch(const MetaProcess &process, const ProcessImplementation *instance, bool &dynamic, unsigned &flags)
virtual bool DynamicKeyPress(View &view, int key, unsigned modifiers)
virtual pcl::RealTimePreviewGenerationFlags RealTimePreviewGenerationFlags(UInt16Image &image, const View &view, const Rect &rect, int zoomLevel) const
virtual void DynamicPaint(const View &view, VectorGraphics &graphics, const DRect &rect) const
virtual void ResetInstance()
virtual void RealTimePreviewUpdated(bool active)
virtual bool RequiresInstanceValidation() const
virtual void DynamicMouseLeave(View &view)
virtual const char ** IconImageXPM() const
virtual bool RequiresDynamicUpdate(const View &view, const DRect &rect) const
virtual String IconImageFile() const
virtual void DynamicMouseMove(View &view, const DPoint &cursorPos, unsigned buttons, unsigned modifiers)
void DisableAutoSaveGeometry(bool disable=true)
size_type LaunchCount() const
virtual bool WantsRealTimePreviewNotifications() const
virtual bool WantsMaskNotifications() const
virtual void Initialize()
void SaveGeometry() const
static ProcessInterface & Null()
~ProcessInterface() noexcept(false) override
virtual const char ** SmallIconImageXPM() const
virtual void DynamicMouseEnter(View &view)
virtual bool DistinguishesTestInstances() const
virtual uint32 Version() const
virtual bool IsDynamicInterface() const
virtual void TrackViewUpdated(bool active)
virtual bool WantsTransparencyNotifications() const
virtual bool WantsReadoutNotifications() const
virtual bool WantsProcessNotifications() const
virtual void ApplyInstanceGlobal() const
virtual bool RequiresRealTimePreviewUpdate(const UInt16Image &image, const View &view, const Rect &rect, int zoomLevel) const
virtual void ExitDynamicMode()
virtual IsoString IconImageSVG() const
virtual void LoadSettings()
virtual bool IsInstanceGenerator() const
virtual void Cancel()
virtual ProcessImplementation * NewProcess() const
virtual IsoString Id() const =0
virtual bool GenerateRealTimePreview(UInt16Image &image, const View &view, const Rect &rect, int zoomLevel, String &info) const
virtual bool WantsGlobalNotifications() const
virtual void ApplyInstance() const
A collection of real-time preview generation flags.
Unicode (UTF-16) string.
Definition: String.h:8113
Client-side interface to a PixInsight vector graphics context.
Definition: Graphics.h:1463
High-level interface to a PixInsight view object.
Definition: View.h:213
virtual void GlobalCMDisabled()
virtual void GlobalRGBWSUpdated()
virtual void GlobalCMEnabled()
virtual void GlobalCMUpdated()
virtual void GlobalFiltersUpdated()
virtual void ReadoutOptionsUpdated()
virtual void GlobalPreferencesUpdated()
virtual void ImageDeleted(const View &view)
virtual void ImageSTFEnabled(const View &view)
virtual void ImageLocked(const View &view)
virtual void ImageSTFDisabled(const View &view)
virtual void ImageSaved(const View &view)
virtual void ImageSTFUpdated(const View &view)
virtual void ImageFocused(const View &view)
virtual void ImageUnlocked(const View &view)
virtual void ImageCreated(const View &view)
virtual void ImageUpdated(const View &view)
virtual void ImageRenamed(const View &view)
virtual void ImageRGBWSUpdated(const View &view)
virtual void ImageCMEnabled(const View &view)
virtual void ImageCMUpdated(const View &view)
virtual void ImageCMDisabled(const View &view)
virtual void MaskEnabled(const View &view)
virtual void MaskHidden(const View &view)
virtual void MaskDisabled(const View &view)
virtual void MaskUpdated(const View &view)
virtual void MaskShown(const View &view)
unsigned int uint32
Definition: Defs.h:666
virtual void ProcessUpdated(const ProcessInstance &instance)
virtual void ProcessDeleted(const ProcessInstance &instance)
virtual void ProcessSaved(const ProcessInstance &instance)
virtual void ProcessCreated(const ProcessInstance &instance)
virtual void EndReadout(const View &view)
virtual void UpdateReadout(const View &view, const DPoint &position, double R, double G, double B, double A)
virtual void BeginReadout(const View &view)
virtual void RealTimePreviewGenerationStarted()
virtual void RealTimePreviewGenerationFinished()
virtual void RealTimePreviewOwnerChanged(ProcessInterface &iface)
virtual void RealTimePreviewLUTUpdated(int colorModel)
size_t size_type
Definition: Defs.h:609
virtual void TransparencyHidden(const View &view)
virtual void TransparencyModeUpdated(const View &view)
virtual void ViewPropertyUpdated(const View &view, const IsoString &property)
virtual void ViewPropertyDeleted(const View &view, const IsoString &property)
String Id(value_type operation)
PCL root namespace.
Definition: AbstractImage.h:77