class TopoDS_Compound;
class Handle_Geom_Plane;
class TopTools_IndexedMapOfOrientedShape;
+class TopTools_DataMapOfShapeListOfShape;
+class TopTools_SequenceOfShape;
DEFINE_STANDARD_HANDLE( HYDROData_DTM, HYDROData_Bathymetry )
class CurveUZ : public std::vector<PointUZ>
{
public:
- CurveUZ( double theXcurv, const gp_Vec2d& theProfileDir = gp_Vec2d() );
+ CurveUZ( double theXcurv, const gp_Vec2d& theProfileDir, double theDeltaZ );
~CurveUZ();
double Xcurv() const;
- gp_Vec2d ProfileDir() const;
+ gp_Vec2d ProfileDir() const;
+ double DeltaZ() const;
CurveUZ operator + ( const CurveUZ& ) const;
CurveUZ operator * ( double ) const;
private:
double myXcurv;
gp_Vec2d myProfileDir;
+ double myDeltaZ;
};
protected:
static void CurveTo3D( const Handle_Geom2d_BSplineCurve& theHydraulicAxis,
const CurveUZ& theMidCurve, const CurveUZ& theWidthCurve,
- AltitudePoints& thePoints, double dz );
+ AltitudePoints& thePoints );
static void Interpolate( const CurveUZ& theCurveA, const CurveUZ& theCurveB,
int theNbSteps, std::vector<CurveUZ>& theInterpolation,
static void PointToWire(const AltitudePoints& pnts, TopoDS_Wire& W );
- static void ProjWireOnPlane(const TopoDS_Wire& inpWire, const Handle_Geom_Plane& RefPlane, TopoDS_Wire& outWire);
+ static void ProjWireOnPlane(const TopoDS_Shape& inpWire, const Handle_Geom_Plane& RefPlane,
+ TopTools_DataMapOfShapeListOfShape* E2PE);
static TopTools_IndexedMapOfOrientedShape Create3DShape(const AltitudePoints& left,
const AltitudePoints& right,
TopoDS_Shape& OutOutlet,
bool Create3dPres,
bool Create2dPres,
- std::set<int>& InvInd );
+ std::set<int>& InvInd,
+ bool& WireIntersections);
+
+ static bool Get2dFaceFrom3dPres(const TopoDS_Compound& cmp, TopoDS_Face& outF,
+ TopTools_SequenceOfShape* Boundr = NULL, std::set<int> ind = std::set<int>() );
+
+ static int EstimateNbPoints( const std::vector<Handle_HYDROData_Profile>& theProfiles,
+ double theDDZ, double theSpatialStep );
- static void Get2dFaceFrom3dPres(const TopoDS_Compound& cmp, TopoDS_Face& outF );
-
void GetPresentationShapes( TopoDS_Shape& Out3dPres,
TopoDS_Shape& Out2dPres,
TopoDS_Shape& OutLeftB,
TopoDS_Shape& OutOutlet,
bool Create3dPres,
bool Create2dPres,
- std::set<int>& InvInd );
+ std::set<int>& InvInd,
+ int thePntsLimit,
+ bool& WireIntersections);
};