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
6.12.2013.Fix of HasIntersection method.
[modules/hydro.git]
/
src
/
HYDROData
/
HYDROData_Profile.cxx
diff --git
a/src/HYDROData/HYDROData_Profile.cxx
b/src/HYDROData/HYDROData_Profile.cxx
index 257dc01eb6387cc9427bc49e26ee2c95797749e7..85f5fd72f07ae74bf124245c180134735e364f2b 100755
(executable)
--- a/
src/HYDROData/HYDROData_Profile.cxx
+++ b/
src/HYDROData/HYDROData_Profile.cxx
@@
-62,8
+62,10
@@
TopoDS_Shape HYDROData_Profile::GetShape3D() const
return getShape3D();
}
return getShape3D();
}
-void HYDROData_Profile::Update
Shape3D
()
+void HYDROData_Profile::Update()
{
{
+ HYDROData_Object::Update();
+
BRepBuilderAPI_MakeWire aMakeWire;
ProfilePoints aProfilePoints = GetProfilePoints();
BRepBuilderAPI_MakeWire aMakeWire;
ProfilePoints aProfilePoints = GetProfilePoints();
@@
-129,6
+131,8
@@
void HYDROData_Profile::SetFirstPoint( const gp_XY& thePoint )
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
+
+ SetToUpdate( true );
}
bool HYDROData_Profile::GetFirstPoint( gp_XY& thePoint ) const
}
bool HYDROData_Profile::GetFirstPoint( gp_XY& thePoint ) const
@@
-157,6
+161,8
@@
void HYDROData_Profile::SetLastPoint( const gp_XY& thePoint )
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
+
+ SetToUpdate( true );
}
bool HYDROData_Profile::GetLastPoint( gp_XY& thePoint ) const
}
bool HYDROData_Profile::GetLastPoint( gp_XY& thePoint ) const
@@
-184,6
+190,8
@@
void HYDROData_Profile::Invalidate()
TDF_Label aLastLabel = myLab.FindChild( DataTag_LastPoint, false );
if ( !aLastLabel.IsNull() )
aLastLabel.ForgetAllAttributes();
TDF_Label aLastLabel = myLab.FindChild( DataTag_LastPoint, false );
if ( !aLastLabel.IsNull() )
aLastLabel.ForgetAllAttributes();
+
+ SetToUpdate( true );
}
Handle(HYDROData_ProfileUZ) HYDROData_Profile::GetProfileUZ( const bool theIsCreate ) const
}
Handle(HYDROData_ProfileUZ) HYDROData_Profile::GetProfileUZ( const bool theIsCreate ) const
@@
-214,7
+222,10
@@
void HYDROData_Profile::RemovePoints()
{
Handle(HYDROData_ProfileUZ) aProfileUZ = GetProfileUZ( false );
if ( !aProfileUZ.IsNull() )
{
Handle(HYDROData_ProfileUZ) aProfileUZ = GetProfileUZ( false );
if ( !aProfileUZ.IsNull() )
+ {
aProfileUZ->RemoveSections();
aProfileUZ->RemoveSections();
+ SetToUpdate( true );
+ }
}
void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsList& thePoints )
}
void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsList& thePoints )
@@
-227,6
+238,8
@@
void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsLi
const HYDROData_ProfileUZ::Point& aPoint = thePoints.Value( i );
aProfileUZ->AddPoint( 0, aPoint );
}
const HYDROData_ProfileUZ::Point& aPoint = thePoints.Value( i );
aProfileUZ->AddPoint( 0, aPoint );
}
+
+ SetToUpdate( true );
}
HYDROData_ProfileUZ::PointsList HYDROData_Profile::GetParametricPoints() const
}
HYDROData_ProfileUZ::PointsList HYDROData_Profile::GetParametricPoints() const
@@
-339,40
+352,38
@@
bool HYDROData_Profile::ImportFromFile( const Handle(HYDROData_Document)& theDoc
if ( !aFile.IsOpen() )
return false;
if ( !aFile.IsOpen() )
return false;
- bool aRes = true;
-
NCollection_Sequence<Handle(HYDROData_Profile)> aCreatedProfiles;
NCollection_Sequence<Handle(HYDROData_Profile)> aCreatedProfiles;
- while ( aRes && !aFile.IsAtEnd() )
+ Handle(HYDROData_Profile) aNewProfile;
+ while ( !aFile.IsAtEnd() )
{
{
- Handle(HYDROData_Profile) aNewProfile =
- Handle(HYDROData_Profile)::DownCast( theDoc->CreateObject( KIND_PROFILE ) );
+ if ( aNewProfile.IsNull() )
+
aNewProfile =
Handle(HYDROData_Profile)::DownCast( theDoc->CreateObject( KIND_PROFILE ) );
- aRes = aNewProfile->ImportFromFile( aFile );
-
- aCreatedProfiles.Append( aNewProfile );
+ if ( aNewProfile->ImportFromFile( aFile ) )
+ {
+ aCreatedProfiles.Append( aNewProfile );
+ aNewProfile.Nullify();
+ }
}
}
+ if ( !aNewProfile.IsNull() )
+ aNewProfile->Remove();
+
// Close the file
aFile.Close();
for ( int i = 1, n = aCreatedProfiles.Length(); i <= n ; ++i )
{
Handle(HYDROData_Profile) aProfile = aCreatedProfiles.Value( i );
// Close the file
aFile.Close();
for ( int i = 1, n = aCreatedProfiles.Length(); i <= n ; ++i )
{
Handle(HYDROData_Profile) aProfile = aCreatedProfiles.Value( i );
- if ( aRes )
- {
- QString aProfileName = HYDROData_Tool::GenerateObjectName( theDoc, "Profile" );
- aProfile->SetName( aProfileName );
- aProfile->SetFilePath( theFileName );
- }
- else
- {
- aProfile->Remove();
- }
+ QString aProfileName = HYDROData_Tool::GenerateObjectName( theDoc, "Profile" );
+ aProfile->SetName( aProfileName );
+
+ aProfile->SetFilePath( theFileName );
}
}
- return
aRes
;
+ return
!aCreatedProfiles.IsEmpty()
;
}
bool HYDROData_Profile::ImportFromFile( const TCollection_AsciiString& theFileName )
}
bool HYDROData_Profile::ImportFromFile( const TCollection_AsciiString& theFileName )
@@
-422,7
+433,12
@@
bool HYDROData_Profile::ImportFromFile( OSD_File& theFile )
aLine.LeftAdjust(); aLine.RightAdjust();
if ( aLine.IsEmpty() )
aLine.LeftAdjust(); aLine.RightAdjust();
if ( aLine.IsEmpty() )
- continue;
+ {
+ if ( !anIsParametric && !anIsGeoref )
+ continue; // Definition is not started yet
+
+ break; // Next profile started
+ }
TCollection_AsciiString aValX = aLine.Token( " \t", 1 );
TCollection_AsciiString aValY = aLine.Token( " \t", 2 );
TCollection_AsciiString aValX = aLine.Token( " \t", 1 );
TCollection_AsciiString aValY = aLine.Token( " \t", 2 );
@@
-485,6
+501,7
@@
bool HYDROData_Profile::ImportFromFile( OSD_File& theFile )
else if ( anIsGeoref )
{
SetProfilePoints( aPointsXYZ );
else if ( anIsGeoref )
{
SetProfilePoints( aPointsXYZ );
+ Update();
}
}
}
}