Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of https://git.salome-platform.org/git/modules/hydro
[modules/hydro.git]
/
src
/
HYDROData
/
HYDROData_Zone.cxx
diff --git
a/src/HYDROData/HYDROData_Zone.cxx
b/src/HYDROData/HYDROData_Zone.cxx
index edd4169040c90629a63026d2e6e8bf284bdbd97a..661e23c9b6a757a4ba1df0d1047fad084edf98c1 100644
(file)
--- a/
src/HYDROData/HYDROData_Zone.cxx
+++ b/
src/HYDROData/HYDROData_Zone.cxx
@@
-1,8
+1,4
@@
-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015 EDF-R&D
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
@@
-26,22
+22,16
@@
#include "HYDROData_IAltitudeObject.h"
#include "HYDROData_Document.h"
#include "HYDROData_NaturalObject.h"
#include "HYDROData_IAltitudeObject.h"
#include "HYDROData_Document.h"
#include "HYDROData_NaturalObject.h"
-
-#include <TNaming_Builder.hxx>
-#include <TNaming_NamedShape.hxx>
-
-#include <TopoDS_Shape.hxx>
-
#include <QStringList>
#include <QStringList>
-
#include <TDataStd_Integer.hxx>
#include <TDataStd_Integer.hxx>
+#include <TopoDS_Shape.hxx>
IMPLEMENT_STANDARD_HANDLE(HYDROData_Zone, HYDROData_Entity)
IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Zone, HYDROData_Entity)
HYDROData_Zone::HYDROData_Zone()
IMPLEMENT_STANDARD_HANDLE(HYDROData_Zone, HYDROData_Entity)
IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Zone, HYDROData_Entity)
HYDROData_Zone::HYDROData_Zone()
-: HYDROData_Entity()
+: HYDROData_Entity(
Geom_2d
)
{
myInterpolator = NULL;
}
{
myInterpolator = NULL;
}
@@
-69,41
+59,33
@@
HYDROData_SequenceOfObjects HYDROData_Zone::GetAllReferenceObjects() const
{
HYDROData_SequenceOfObjects aResSeq = HYDROData_Entity::GetAllReferenceObjects();
{
HYDROData_SequenceOfObjects aResSeq = HYDROData_Entity::GetAllReferenceObjects();
- HYDROData_SequenceOfObjects aSeqOf
GeomObjects = GetGeometry
Objects();
- aResSeq.Append( aSeqOf
Geom
Objects );
+ HYDROData_SequenceOfObjects aSeqOf
Objects = Get
Objects();
+ aResSeq.Append( aSeqOfObjects );
return aResSeq;
}
void HYDROData_Zone::SetShape( const TopoDS_Shape& theShape )
{
return aResSeq;
}
void HYDROData_Zone::SetShape( const TopoDS_Shape& theShape )
{
- TNaming_Builder aBuilder( myLab.FindChild( DataTag_Shape ) );
- aBuilder.Generated( theShape );
+ HYDROData_Entity::SetShape( DataTag_Shape, theShape );
}
TopoDS_Shape HYDROData_Zone::GetShape() const
{
}
TopoDS_Shape HYDROData_Zone::GetShape() const
{
- TDF_Label aLabel = myLab.FindChild( DataTag_Shape, false );
- if ( !aLabel.IsNull() )
- {
- Handle(TNaming_NamedShape) aNamedShape;
- if( aLabel.FindAttribute( TNaming_NamedShape::GetID(), aNamedShape ) )
- return aNamedShape->Get();
- }
-
- return TopoDS_Shape();
+ return HYDROData_Entity::GetShape( DataTag_Shape );
}
bool HYDROData_Zone::IsMergingNeed() const
{
}
bool HYDROData_Zone::IsMergingNeed() const
{
+ // Zones based on geometry objects (compare altitudes)
Handle(HYDROData_IAltitudeObject) aRefAltitude;
Handle(HYDROData_IAltitudeObject) aRefAltitude;
- HYDROData_SequenceOfObjects a
GeomObjects = GetGeometry
Objects();
- HYDROData_SequenceOfObjects::Iterator a
GeomObjsIter( aGeom
Objects );
- for ( ; a
GeomObjsIter.More(); aGeom
ObjsIter.Next() )
+ HYDROData_SequenceOfObjects a
nObjects = Get
Objects();
+ HYDROData_SequenceOfObjects::Iterator a
nObjsIter( an
Objects );
+ for ( ; a
nObjsIter.More(); an
ObjsIter.Next() )
{
Handle(HYDROData_Object) aRefGeomObj =
{
Handle(HYDROData_Object) aRefGeomObj =
- Handle(HYDROData_Object)::DownCast( a
Geom
ObjsIter.Value() );
+ Handle(HYDROData_Object)::DownCast( a
n
ObjsIter.Value() );
if ( aRefGeomObj.IsNull() )
continue;
if ( aRefGeomObj.IsNull() )
continue;
@@
-134,43
+116,43
@@
HYDROData_IInterpolator* HYDROData_Zone::GetInterpolator() const
return myInterpolator;
}
return myInterpolator;
}
-void HYDROData_Zone::SetMergeType( const Merge
Altitudes
Type& theType )
+void HYDROData_Zone::SetMergeType( const MergeType& theType )
{
TDataStd_Integer::Set( myLab.FindChild( DataTag_MergeType ), (int)theType );
}
{
TDataStd_Integer::Set( myLab.FindChild( DataTag_MergeType ), (int)theType );
}
-HYDROData_Zone::Merge
Altitudes
Type HYDROData_Zone::GetMergeType() const
+HYDROData_Zone::MergeType HYDROData_Zone::GetMergeType() const
{
{
- Merge
Altitudes
Type aMergeType = Merge_UNKNOWN;
+ MergeType aMergeType = Merge_UNKNOWN;
TDF_Label aLabel = myLab.FindChild( DataTag_MergeType, false );
if ( !aLabel.IsNull() )
{
Handle(TDataStd_Integer) anInt;
if ( aLabel.FindAttribute( TDataStd_Integer::GetID(), anInt ) )
TDF_Label aLabel = myLab.FindChild( DataTag_MergeType, false );
if ( !aLabel.IsNull() )
{
Handle(TDataStd_Integer) anInt;
if ( aLabel.FindAttribute( TDataStd_Integer::GetID(), anInt ) )
- aMergeType = (Merge
Altitudes
Type)anInt->Get();
+ aMergeType = (MergeType)anInt->Get();
}
return aMergeType;
}
}
return aMergeType;
}
-void HYDROData_Zone::SetMerge
Altitude( const Handle(HYDROData_IAltitudeObject)& theAltitude
)
+void HYDROData_Zone::SetMerge
Object( const Handle(HYDROData_Entity)& theObject
)
{
{
- SetReferenceObject( the
Altitude, DataTag_MergeAltitude
);
+ SetReferenceObject( the
Object, DataTag_MergeObject
);
}
}
-Handle(HYDROData_
IAltitudeObject) HYDROData_Zone::GetMergeAltitude
() const
+Handle(HYDROData_
Entity) HYDROData_Zone::GetMergeObject
() const
{
{
- return Handle(HYDROData_
IAltitudeObject
)::DownCast(
- GetReferenceObject( DataTag_Merge
Altitude
) );
+ return Handle(HYDROData_
Entity
)::DownCast(
+ GetReferenceObject( DataTag_Merge
Object
) );
}
}
-void HYDROData_Zone::RemoveMerge
Altitude
()
+void HYDROData_Zone::RemoveMerge
Object
()
{
{
- ClearReferenceObjects( DataTag_Merge
Altitude
);
+ ClearReferenceObjects( DataTag_Merge
Object
);
}
}
-bool HYDROData_Zone::Add
GeometryObject( const Handle(HYDROData_Object
)& theObject )
+bool HYDROData_Zone::Add
Object( const Handle(HYDROData_Entity
)& theObject )
{
if ( theObject.IsNull() )
return false;
{
if ( theObject.IsNull() )
return false;
@@
-179,23
+161,38
@@
bool HYDROData_Zone::AddGeometryObject( const Handle(HYDROData_Object)& theObjec
!theObject->IsKind( STANDARD_TYPE(HYDROData_NaturalObject) ) )
return false; // Wrong type of object
!theObject->IsKind( STANDARD_TYPE(HYDROData_NaturalObject) ) )
return false; // Wrong type of object
- if ( HasReference( theObject, DataTag_
Geometry
Object ) )
+ if ( HasReference( theObject, DataTag_Object ) )
return false; // Object is already in reference list
return false; // Object is already in reference list
- AddReferenceObject( theObject, DataTag_
Geometry
Object );
+ AddReferenceObject( theObject, DataTag_Object );
return true;
}
return true;
}
-HYDROData_SequenceOfObjects HYDROData_Zone::Get
Geometry
Objects() const
+HYDROData_SequenceOfObjects HYDROData_Zone::GetObjects() const
{
{
- return GetReferenceObjects( DataTag_
Geometry
Object );
+ return GetReferenceObjects( DataTag_Object );
}
}
-void HYDROData_Zone::Remove
Geometry
Objects()
+void HYDROData_Zone::RemoveObjects()
{
{
- ClearReferenceObjects( DataTag_
Geometry
Object );
+ ClearReferenceObjects( DataTag_Object );
}
}
+bool HYDROData_Zone::IsSubmersible() const
+{
+ HYDROData_SequenceOfObjects anObjects = GetObjects();
+ HYDROData_SequenceOfObjects::Iterator anObjsIter( anObjects );
+ for ( ; anObjsIter.More(); anObjsIter.Next() )
+ {
+ Handle(HYDROData_Object) aRefGeomObj =
+ Handle(HYDROData_Object)::DownCast( anObjsIter.Value() );
+ if ( aRefGeomObj.IsNull() )
+ continue;
+ if( !aRefGeomObj->IsSubmersible() )
+ return false; //if one of geometry objects is not submersible the zone is considered as not submersible
+ }
+ return true;
+}