X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Entity.cxx;h=fc5fe6c2d82493c5dc07de427a120fdc2e67090f;hb=81c9f5cdf82909d0aebd2c491c50fa7516cc80b7;hp=f3f37eeb9f0fab5e5dde63df7420ea9eddaf7537;hpb=c98df203674d941d6cf50a63a0320f49aee9d5be;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Entity.cxx b/src/HYDROData/HYDROData_Entity.cxx index f3f37eeb..fc5fe6c2 100644 --- a/src/HYDROData/HYDROData_Entity.cxx +++ b/src/HYDROData/HYDROData_Entity.cxx @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -59,62 +60,31 @@ QStringList HYDROData_Entity::DumpToPython( MapOfTreatedObjects& theTreatedObjec return anEmptyList; } -QStringList HYDROData_Entity::dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const +void HYDROData_Entity::Update() { - QStringList aResList; - - Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); - if ( aDocument.IsNull() ) - return aResList; - - QString aDocName = aDocument->GetDocPyName(); - QString aName = GetObjPyName(); - - aResList << QString( "%1 = %2.CreateObject( %3 );" ) - .arg( aName ).arg( aDocName ).arg( getPyTypeID() ); - aResList << QString( "%1.SetName( \"%2\" );" ) - .arg( aName ).arg( GetName() ); - aResList << QString( "" ); + SetToUpdate( false ); +} - return aResList; +void HYDROData_Entity::UpdateLocalCS( double theDx, double theDy ) +{ + //On the base level no actions are necessary } -void HYDROData_Entity::Update() +bool HYDROData_Entity::IsHas2dPrs() const { - SetToUpdate( false ); + return false; } -QString HYDROData_Entity::getPyTypeID() const +void HYDROData_Entity::Show() { - switch( GetKind() ) - { - case KIND_IMAGE: return "KIND_IMAGE"; - case KIND_POLYLINE: return "KIND_POLYLINE"; - case KIND_BATHYMETRY: return "KIND_BATHYMETRY"; - case KIND_ALTITUDE: return "KIND_ALTITUDE"; - case KIND_IMMERSIBLE_ZONE: return "KIND_IMMERSIBLE_ZONE"; - case KIND_RIVER: return "KIND_RIVER"; - case KIND_STREAM: return "KIND_STREAM"; - case KIND_CONFLUENCE: return "KIND_CONFLUENCE"; - case KIND_CHANNEL: return "KIND_CHANNEL"; - case KIND_OBSTACLE: return "KIND_OBSTACLE"; - case KIND_DIGUE: return "KIND_DIGUE"; - case KIND_PROFILE: return "KIND_PROFILE"; - case KIND_PROFILEUZ: return "KIND_PROFILEUZ"; - case KIND_POLYLINEXY: return "KIND_POLYLINEXY"; - case KIND_CALCULATION: return "KIND_CALCULATION"; - case KIND_ZONE: return "KIND_ZONE"; - case KIND_REGION: return "KIND_REGION"; - case KIND_VISUAL_STATE: return "KIND_VISUAL_STATE"; - case KIND_ARTIFICIAL_OBJECT: return "KIND_ARTIFICIAL_OBJECT"; - case KIND_NATURAL_OBJECT: return "KIND_NATURAL_OBJECT"; - case KIND_DUMMY_3D: return "KIND_DUMMY_3D"; - case KIND_SHAPES_GROUP: return "KIND_SHAPES_GROUP"; - case KIND_SPLITTED_GROUP: return "KIND_SPLITTED_GROUP"; - case KIND_STREAM_ALTITUDE: return "KIND_STREAM_ALTITUDE"; - case KIND_OBSTACLE_ALTITUDE: return "KIND_OBSTACLE_ALTITUDE"; - default: return "KIND_UNKNOWN"; ///! Unrecognized object - } + if ( !IsHas2dPrs() ) + return; + + Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); + if ( aDocument.IsNull() ) + return; + + aDocument->Show( this ); } QVariant HYDROData_Entity::GetDataVariant() @@ -206,13 +176,44 @@ HYDROData_SequenceOfObjects HYDROData_Entity::GetAllReferenceObjects() const return HYDROData_SequenceOfObjects(); } -void HYDROData_Entity::SetLabel(TDF_Label theLabel) +Standard_Boolean HYDROData_Entity::GetZLevel( Standard_Integer& theLevel ) const +{ + theLevel = -1; + + TDF_Label aLabel = myLab.FindChild( DataTag_ZLevel, false ); + if ( !aLabel.IsNull() ) + { + Handle(TDataStd_Integer) anIntVal; + if ( aLabel.FindAttribute( TDataStd_Integer::GetID(), anIntVal ) ) + { + theLevel = anIntVal->Get(); + return Standard_True; + } + } + + return Standard_False; +} + +void HYDROData_Entity::SetZLevel( const Standard_Integer& theLevel ) +{ + TDataStd_Integer::Set( myLab.FindChild( DataTag_ZLevel ), theLevel ); +} + +void HYDROData_Entity::RemoveZLevel() +{ + TDF_Label aLabel = myLab.FindChild( DataTag_ZLevel, false ); + if ( !aLabel.IsNull() ) + aLabel.ForgetAllAttributes(); +} + +void HYDROData_Entity::SetLabel( const TDF_Label& theLabel ) { myLab = theLabel; } -void HYDROData_Entity::SaveByteArray(const int theTag, - const char* theData, const int theLen) +void HYDROData_Entity::SaveByteArray( const int theTag, + const char* theData, + const int theLen ) { TDF_Label aLab = theTag == 0 ? myLab : myLab.FindChild(theTag); // array is empty, remove the attribute @@ -494,6 +495,71 @@ QColor HYDROData_Entity::GetColor( const QColor& theDefColor, return aResColor; } +QStringList HYDROData_Entity::dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const +{ + QStringList aResList; + + Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); + if ( aDocument.IsNull() ) + return aResList; + + QString aDocName = aDocument->GetDocPyName(); + QString aName = GetObjPyName(); + + aResList << QString( "%1 = %2.CreateObject( %3 );" ) + .arg( aName ).arg( aDocName ).arg( getPyTypeID() ); + aResList << QString( "%1.SetName( \"%2\" );" ) + .arg( aName ).arg( GetName() ); + aResList << QString( "" ); + + if ( IsHas2dPrs() ) + { + // Dump object z-level in viewer + Standard_Integer anObjZLevel = -1; + if ( GetZLevel( anObjZLevel ) ) + { + aResList << QString( "%1.SetZLevel( %2 );" ) + .arg( aName ).arg( anObjZLevel ); + aResList << QString( "" ); + } + } + + return aResList; +} + +QString HYDROData_Entity::getPyTypeID() const +{ + switch( GetKind() ) + { + case KIND_IMAGE: return "KIND_IMAGE"; + case KIND_POLYLINE: return "KIND_POLYLINE"; + case KIND_BATHYMETRY: return "KIND_BATHYMETRY"; + case KIND_ALTITUDE: return "KIND_ALTITUDE"; + case KIND_IMMERSIBLE_ZONE: return "KIND_IMMERSIBLE_ZONE"; + case KIND_RIVER: return "KIND_RIVER"; + case KIND_STREAM: return "KIND_STREAM"; + case KIND_CONFLUENCE: return "KIND_CONFLUENCE"; + case KIND_CHANNEL: return "KIND_CHANNEL"; + case KIND_OBSTACLE: return "KIND_OBSTACLE"; + case KIND_DIGUE: return "KIND_DIGUE"; + case KIND_PROFILE: return "KIND_PROFILE"; + case KIND_PROFILEUZ: return "KIND_PROFILEUZ"; + case KIND_POLYLINEXY: return "KIND_POLYLINEXY"; + case KIND_CALCULATION: return "KIND_CALCULATION"; + case KIND_ZONE: return "KIND_ZONE"; + case KIND_REGION: return "KIND_REGION"; + case KIND_VISUAL_STATE: return "KIND_VISUAL_STATE"; + case KIND_ARTIFICIAL_OBJECT: return "KIND_ARTIFICIAL_OBJECT"; + case KIND_NATURAL_OBJECT: return "KIND_NATURAL_OBJECT"; + case KIND_DUMMY_3D: return "KIND_DUMMY_3D"; + case KIND_SHAPES_GROUP: return "KIND_SHAPES_GROUP"; + case KIND_SPLITTED_GROUP: return "KIND_SPLITTED_GROUP"; + case KIND_STREAM_ALTITUDE: return "KIND_STREAM_ALTITUDE"; + case KIND_OBSTACLE_ALTITUDE: return "KIND_OBSTACLE_ALTITUDE"; + default: return "KIND_UNKNOWN"; ///! Unrecognized object + } +} + void HYDROData_Entity::setPythonReferenceObject( MapOfTreatedObjects& theTreatedObjects, QStringList& theScript, const Handle(HYDROData_Entity)& theRefObject, @@ -516,7 +582,7 @@ bool HYDROData_Entity::checkObjectPythonDefinition( MapOfTreatedObjects& if ( theRefObject.IsNull() ) return false; - QString aRefObjName = theRefObject->GetObjPyName(); + QString aRefObjName = theRefObject->GetName(); if ( aRefObjName.isEmpty() ) return false;