#include <NCollection_Sequence.hxx>
#include <TDF_Label.hxx>
+#include <QMap>
#include <QString>
///! Kind of an object in a document
///! Unrecognized object
const ObjectKind KIND_UNKNOWN = 0;
const ObjectKind KIND_IMAGE = 1;
+const ObjectKind KIND_POLYLINE = 2;
+const ObjectKind KIND_VISUAL_STATE = 3;
+const ObjectKind KIND_BATHYMETRY = 4;
DEFINE_STANDARD_HANDLE(HYDROData_Object, MMgt_TShared)
*/
class HYDROData_Object : public MMgt_TShared
{
+protected:
+ /**
+ * Enumeration of tags corresponding to the persistent object parameters.
+ */
+ enum DataTag
+ {
+ DataTag_First = 0, ///< first tag, to reserve
+ DataTag_ViewId, ///< visual state, array of view ids
+ DataTag_Visibility, ///< visual state, array of visibility states
+ DataTag_Transparency, ///< visual state, array of transparency values
+ DataTag_ZValue ///< visual state, array of z-values
+ };
+
+public:
+ /**
+ * Visual state data.
+ */
+ struct VisualState
+ {
+ bool Visibility;
+ double Transparency;
+ double ZValue;
+ VisualState() : Visibility( false ), Transparency( 1.0 ), ZValue( 0.0 ) {}
+ };
+ typedef QMap < int, VisualState > ViewId2VisualStateMap;
+ typedef QMapIterator< int, VisualState > ViewId2VisualStateMapIterator;
+
public:
DEFINE_STANDARD_RTTI(HYDROData_Object);
*/
HYDRODATA_EXPORT void SetName(const QString& theName);
+ /**
+ * Returns the object visibility state for the view with specified id.
+ * \param theViewId view id
+ * \returns visibility state
+ */
+ HYDRODATA_EXPORT bool IsVisible( const int theViewId ) const;
+
+ /**
+ * Sets the object visibility state for the view with specified id.
+ * \param theViewId view id
+ * \param theVal visibility state
+ */
+ HYDRODATA_EXPORT void SetVisible( const int theViewId,
+ const bool theVal );
+
/**
* Checks is object exists in the data structure.
* \returns true is object is not exists in the data model
*/
const char* ByteArray(const int theTag, int& theLen);
+ /**
+ * Returns the map containing the visual states for the specified views.
+ * \param theMap map of visual states
+ */
+ void GetViewId2VisualStateMap( ViewId2VisualStateMap& theMap ) const;
+
+ /**
+ * Sets the map containing the visual states for the specified views.
+ * \param theMap map of visual states
+ */
+ void SetViewId2VisualStateMap( const ViewId2VisualStateMap& theMap );
+
protected:
/// Array of pointers to the properties of this object; index in this array is returned by \a AddProperty.
TDF_Label myLab; ///< label of this object