#include "HYDROData_Bathymetry.h"
#include <vector>
+#include <set>
#include <gp_Pnt2d.hxx>
class Handle_HYDROData_Profile;
class gp_Vec2d;
class TopoDS_Edge;
class TopoDS_Wire;
+class TopoDS_Face;
class TopoDS_Compound;
+class Handle_Geom_Plane;
+class TopTools_IndexedMapOfOrientedShape;
DEFINE_STANDARD_HANDLE( HYDROData_DTM, HYDROData_Bathymetry )
DataTag_Profiles,
DataTag_DDZ,
DataTag_SpatialStep,
- DataTag_DTM_Shape,
+ DataTag_LeftBankShape,
+ DataTag_RightBankShape,
+ DataTag_InletShape,
+ DataTag_OutletShape,
+ DataTag_3DShape,
+ DataTag_2DShape
};
public:
double theXCurv, double theMinZ, double theMaxZ, double theDDZ,
CurveUZ& theMidPointCurve,
CurveUZ& theWidthCurve,
+ int& intersection_nb,
double theTolerance = 1E-6 );
static void CurveTo3D( const Handle_Geom2d_BSplineCurve& theHydraulicAxis,
double theXCurvA,
const Handle_HYDROData_Profile& theProfileB,
double theXCurvB,
- double theDDZ, int theNbSteps, bool isAddSecond );
+ double theDDZ, int theNbSteps, bool isAddSecond,
+ int& inter_nb_1, int& inter_nb_2 );
static AltitudePoints Interpolate( const std::vector<Handle_HYDROData_Profile>& theProfiles,
double theDDZ, double theSpatialStep,
AltitudePoints& theLeft,
AltitudePoints& theRight,
- std::vector<AltitudePoints>& theMainProfiles );
+ std::vector<AltitudePoints>& theMainProfiles,
+ std::set<int>& invalInd );
static void PointToWire(const AltitudePoints& pnts, TopoDS_Wire& W );
- static TopoDS_Compound Create3DShape(const AltitudePoints& left,
- const AltitudePoints& right,
- const std::vector<AltitudePoints>& main_profiles);
+ static void ProjWireOnPlane(const TopoDS_Wire& inpWire, const Handle_Geom_Plane& RefPlane, TopoDS_Wire& outWire);
+
+ static TopTools_IndexedMapOfOrientedShape Create3DShape(const AltitudePoints& left,
+ const AltitudePoints& right,
+ const std::vector<AltitudePoints>& main_profiles);
+
+ static void CreateProfiles(const std::vector<Handle_HYDROData_Profile>& theProfiles,
+ double theDDZ,
+ double theSpatialStep,
+ AltitudePoints& theOutLeft,
+ AltitudePoints& theOutRight,
+ AltitudePoints& theOutPoints,
+ std::vector<AltitudePoints>& theOutMainProfiles,
+ TopoDS_Shape& Out3dPres,
+ TopoDS_Shape& Out2dPres,
+ TopoDS_Shape& OutLeftB,
+ TopoDS_Shape& OutRightB,
+ TopoDS_Shape& OutInlet,
+ TopoDS_Shape& OutOutlet,
+ bool Create3dPres,
+ bool Create2dPres,
+ std::set<int>& InvInd );
+
+ static void Get2dFaceFrom3dPres(const TopoDS_Compound& cmp, TopoDS_Face& outF );
+
+ void GetPresentationShapes( TopoDS_Shape& Out3dPres,
+ TopoDS_Shape& Out2dPres,
+ TopoDS_Shape& OutLeftB,
+ TopoDS_Shape& OutRightB,
+ TopoDS_Shape& OutInlet,
+ TopoDS_Shape& OutOutlet );
+public:
+
+ HYDRODATA_EXPORT static void CreateProfilesFromDTM ( const HYDROData_SequenceOfObjects& InpProfiles,
+ double ddz,
+ double step,
+ AltitudePoints& points,
+ TopoDS_Shape& Out3dPres,
+ TopoDS_Shape& Out2dPres,
+ TopoDS_Shape& OutLeftB,
+ TopoDS_Shape& OutRightB,
+ TopoDS_Shape& OutInlet,
+ TopoDS_Shape& OutOutlet,
+ bool Create3dPres,
+ bool Create2dPres,
+ std::set<int>& InvInd );
};
+
+
+
#endif