#include "HYDROData_DummyObject3D.h"
#include "HYDROData_ShapesGroup.h"
+#include "HYDROData_Tool.h"
#include "HYDROData_Iterator.h"
#include "HYDROData_IAltitudeObject.h"
if ( aGroup.IsNull() )
continue;
- QString aGroupName = aGroup->GetName();
- if ( anOldObjName.isEmpty() )
- aGroupName.prepend( theName + "_" );
- else if ( aGroupName.startsWith( anOldObjName ) )
- aGroupName.replace( anOldObjName, theName );
- else
- continue;
-
- aGroup->SetName( aGroupName );
+ HYDROData_Tool::UpdateChildObjectName( anOldObjName, theName, aGroup );
}
+
+ Handle(HYDROData_DummyObject3D) anObject3D = GetObject3D();
+ if ( !anObject3D.IsNull() )
+ HYDROData_Tool::UpdateChildObjectName( anOldObjName, theName, anObject3D );
+
+ Handle(HYDROData_IAltitudeObject) anAltitudeObj = getChildAltitudeObject();
+ if ( !anAltitudeObj.IsNull() )
+ HYDROData_Tool::UpdateChildObjectName( anOldObjName, theName, anAltitudeObj );
}
HYDROData_Entity::SetName( theName );
void HYDROData_Object::Update()
{
- HYDROData_Entity::Update();
removeTopShape();
removeShape3D();
removeGroupObjects();
+ checkAndSetAltitudeObject();
+ HYDROData_Entity::Update();
}
HYDROData_SequenceOfObjects HYDROData_Object::GetAllReferenceObjects() const
return GetReferenceObjects( DataTag_EdgesGroup );
}
+Handle(HYDROData_ShapesGroup) HYDROData_Object::GetGroup( const int theGroupId ) const
+{
+ Handle(HYDROData_ShapesGroup) aResGroup;
+
+ HYDROData_SequenceOfObjects aGroups = GetGroups();
+ if ( theGroupId < 0 || theGroupId >= aGroups.Length() )
+ return aResGroup;
+
+ aResGroup = Handle(HYDROData_ShapesGroup)::DownCast( aGroups.Value( theGroupId + 1 ) );
+
+ return aResGroup;
+}
+
+int HYDROData_Object::GetGroupId( const Handle(HYDROData_ShapesGroup)& theGroup ) const
+{
+ int aRes = -1;
+
+ HYDROData_SequenceOfObjects aGroups = GetGroups();
+ for ( int i = 1, n = aGroups.Length(); i <= n; ++i )
+ {
+ Handle(HYDROData_ShapesGroup) aGroup =
+ Handle(HYDROData_ShapesGroup)::DownCast( aGroups.Value( i ) );
+ if ( IsEqual( theGroup, aGroup ) )
+ {
+ aRes = i - 1;
+ break;
+ }
+ }
+
+ return aRes;
+}
+
bool HYDROData_Object::SetAltitudeObject(
const Handle(HYDROData_IAltitudeObject)& theAltitude )
{
return GetColor( getDefaultBorderColor(), DataTag_BorderColor );
}
-QColor HYDROData_Object::DefaultFillingColor()
+QColor HYDROData_Object::getDefaultFillingColor() const
{
return QColor( Qt::yellow );
}
-QColor HYDROData_Object::DefaultBorderColor()
+QColor HYDROData_Object::getDefaultBorderColor() const
{
return QColor( Qt::transparent );
}
-QColor HYDROData_Object::getDefaultFillingColor() const
+QStringList HYDROData_Object::dumpObjectCreation( MapOfTreatedObjects& theTreatedObjects ) const
+{
+ QStringList aResList = HYDROData_Entity::dumpObjectCreation( theTreatedObjects );
+ if ( aResList.isEmpty() )
+ return aResList; //Object was not created
+
+ QStringList aColorsDef;
+
+ QColor aFillingColor = GetFillingColor();
+ setPythonObjectColor( aColorsDef, aFillingColor, getDefaultFillingColor(), "SetFillingColor" );
+
+ QColor aBorderColor = GetBorderColor();
+ setPythonObjectColor( aColorsDef, aBorderColor, getDefaultBorderColor(), "SetBorderColor" );
+
+ if ( !aColorsDef.isEmpty() )
+ {
+ aResList << aColorsDef;
+ aResList << QString( "" );
+ }
+
+ return aResList;
+}
+
+ObjectKind HYDROData_Object::getAltitudeObjectType() const
{
- return DefaultFillingColor();
+ return KIND_UNKNOWN;
}
-QColor HYDROData_Object::getDefaultBorderColor() const
+Handle(HYDROData_IAltitudeObject) HYDROData_Object::getChildAltitudeObject() const
+{
+ Handle(HYDROData_IAltitudeObject) anObject;
+
+ TDF_Label aLabel = myLab.FindChild( DataTag_ChildAltitudeObject, false );
+ if ( !aLabel.IsNull() )
+ {
+ TDF_Label aChildLabel = aLabel.FindChild( 0, false );
+ if ( !aChildLabel.IsNull() )
+ {
+ anObject = Handle(HYDROData_IAltitudeObject)::DownCast(
+ HYDROData_Iterator::Object( aChildLabel ) );
+ }
+ }
+
+ return anObject;
+}
+
+void HYDROData_Object::checkAndSetAltitudeObject()
{
- return DefaultBorderColor();
+ Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
+
+ ObjectKind anAltitudeObjectType = getAltitudeObjectType();
+ if ( anAltitudeObjectType == KIND_UNKNOWN )
+ return; // No need to create altitude object
+
+ TDF_Label aLabel = myLab.FindChild( DataTag_ChildAltitudeObject, false );
+ if ( !aLabel.IsNull() )
+ return;
+
+ TDF_Label aChildLabel = myLab.FindChild( DataTag_ChildAltitudeObject ).FindChild( 0 );
+
+ Handle(HYDROData_IAltitudeObject) anAltitudeObject =
+ Handle(HYDROData_IAltitudeObject)::DownCast(
+ HYDROData_Iterator::CreateObject( aChildLabel, anAltitudeObjectType ) );
+
+ QString anAltitudePref = GetName() + "_Altitude";
+ QString anAltitudeName = HYDROData_Tool::GenerateObjectName( aDocument, anAltitudePref );
+ anAltitudeObject->SetName( anAltitudeName );
+
+ SetAltitudeObject( anAltitudeObject );
}
Handle(HYDROData_ShapesGroup) HYDROData_Object::createGroupObject()
return aNewGroup;
}
-void HYDROData_Object::createGroupObjects()
-{
-}
-
void HYDROData_Object::removeGroupObjects()
{
TDF_Label aLabel = myLab.FindChild( DataTag_EdgesGroup, false );