return getShape3D();
}
-void HYDROData_Profile::UpdateShape3D()
+void HYDROData_Profile::Update()
{
+ HYDROData_Object::Update();
+
BRepBuilderAPI_MakeWire aMakeWire;
ProfilePoints aProfilePoints = GetProfilePoints();
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
+
+ SetToUpdate( true );
}
bool HYDROData_Profile::GetFirstPoint( gp_XY& thePoint ) const
anArray->SetValue( 0, thePoint.X() );
anArray->SetValue( 1, thePoint.Y() );
+
+ SetToUpdate( true );
}
bool HYDROData_Profile::GetLastPoint( gp_XY& thePoint ) const
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) aProfileUZ = GetProfileUZ( false );
if ( !aProfileUZ.IsNull() )
+ {
aProfileUZ->RemoveSections();
+ SetToUpdate( true );
+ }
}
void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsList& thePoints )
const HYDROData_ProfileUZ::Point& aPoint = thePoints.Value( i );
aProfileUZ->AddPoint( 0, aPoint );
}
+
+ SetToUpdate( true );
}
HYDROData_ProfileUZ::PointsList HYDROData_Profile::GetParametricPoints() const
if ( !aFile.IsOpen() )
return false;
- bool aRes = true;
-
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 );
- 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 )
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 );
else if ( anIsGeoref )
{
SetProfilePoints( aPointsXYZ );
+ Update();
}
}