// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _IntPatch_PrmPrmIntersection_HeaderFile #define _IntPatch_PrmPrmIntersection_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _IntPatch_SequenceOfLine_HeaderFile #include #endif #ifndef _Handle_Adaptor3d_HSurface_HeaderFile #include #endif #ifndef _Handle_Adaptor3d_TopolTool_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_IntPatch_Line_HeaderFile #include #endif #ifndef _Handle_IntSurf_LineOn2S_HeaderFile #include #endif class Standard_OutOfRange; class StdFail_NotDone; class Adaptor3d_HSurface; class IntPatch_Polyhedron; class Adaptor3d_TopolTool; class IntSurf_ListOfPntOn2S; class IntPatch_Line; class IntPatch_PrmPrmIntersection_T3Bits; class IntSurf_LineOn2S; //! Implementation of the Intersection between two
//! bi-parametrised surfaces.
//!
//! To avoid multiple constructions of the approximated
//! polyhedron of the surfaces, the algorithm can be
//! called whith the two surfaces and their associated
//! polyhedron.
//!
class IntPatch_PrmPrmIntersection { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Empty Constructor
Standard_EXPORT IntPatch_PrmPrmIntersection(); //! Performs the intersection between and
//! . Associated Polyhedrons
//! and are given.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const IntPatch_Polyhedron& Polyhedron1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const IntPatch_Polyhedron& Polyhedron2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const IntPatch_Polyhedron& Polyhedron1,const Handle(Adaptor3d_TopolTool)& Domain1,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; //! Performs the intersection between and
//! . The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment,const Standard_Boolean ClearFlag = Standard_True) ; //! Performs the intersection between and
//! . The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment,IntSurf_ListOfPntOn2S& ListOfPnts,const Standard_Boolean RestrictLine) ; //! Performs the intersection between and
//! . The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real U1,const Standard_Real V1,const Standard_Real U2,const Standard_Real V2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; //! Performs the intersection between and
//! . The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_TopolTool)& Domain1,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; //! Performs the intersection between and
//! .
//!
//! The polyhedron which approximates ,
//! is given. The other one is
//! computed.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const IntPatch_Polyhedron& Polyhedron2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; //! Performs the intersection between and
//! .
//!
//! The polyhedron which approximates ,
//! is given. The other one is
//! computed.
Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& Caro1,const IntPatch_Polyhedron& Polyhedron1,const Handle(Adaptor3d_TopolTool)& Domain1,const Handle(Adaptor3d_HSurface)& Caro2,const Handle(Adaptor3d_TopolTool)& Domain2,const Standard_Real TolTangency,const Standard_Real Epsilon,const Standard_Real Deflection,const Standard_Real Increment) ; //! Returns true if the calculus was succesfull.
Standard_Boolean IsDone() const; //! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const; //! Returns the number of intersection lines.
Standard_Integer NbLines() const; //! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle_IntPatch_Line& Line(const Standard_Integer Index) const; //! Computes about Intersection Points on
//! the Line between the Points of Index
//! and .
//!
//! All the points of the line of index
//! with an index between and
//! are in the returned line. New Points are inserted
//! between existing points if those points are not
//! too closed.
//!
//! An exception is raised if Index<=0 or Index>NbLine.
//! or if IsDone returns False
Standard_EXPORT Handle_IntPatch_Line NewLine(const Handle(Adaptor3d_HSurface)& Caro1,const Handle(Adaptor3d_HSurface)& Caro2,const Standard_Integer IndexLine,const Standard_Integer LowPoint,const Standard_Integer HighPoint,const Standard_Integer NbPoints) const; Standard_Integer GrilleInteger(const Standard_Integer ix,const Standard_Integer iy,const Standard_Integer iz) const; void IntegerGrille(const Standard_Integer t,Standard_Integer& ix,Standard_Integer& iy,Standard_Integer& iz) const; Standard_Integer DansGrille(const Standard_Integer t) const; Standard_Integer NbPointsGrille() const; Standard_EXPORT void RemplitLin(const Standard_Integer x1,const Standard_Integer y1,const Standard_Integer z1,const Standard_Integer x2,const Standard_Integer y2,const Standard_Integer z2,IntPatch_PrmPrmIntersection_T3Bits& Map) const; Standard_EXPORT void RemplitTri(const Standard_Integer x1,const Standard_Integer y1,const Standard_Integer z1,const Standard_Integer x2,const Standard_Integer y2,const Standard_Integer z2,const Standard_Integer x3,const Standard_Integer y3,const Standard_Integer z3,IntPatch_PrmPrmIntersection_T3Bits& Map) const; Standard_EXPORT void Remplit(const Standard_Integer a,const Standard_Integer b,const Standard_Integer c,IntPatch_PrmPrmIntersection_T3Bits& Map) const; Standard_EXPORT Standard_Integer CodeReject(const Standard_Real x1,const Standard_Real y1,const Standard_Real z1,const Standard_Real x2,const Standard_Real y2,const Standard_Real z2,const Standard_Real x3,const Standard_Real y3,const Standard_Real z3) const; Standard_EXPORT void PointDepart(Handle(IntSurf_LineOn2S)& LineOn2S,const Handle(Adaptor3d_HSurface)& S1,const Standard_Integer SU1,const Standard_Integer SV1,const Handle(Adaptor3d_HSurface)& S2,const Standard_Integer SU2,const Standard_Integer SV2) const; protected: private: Standard_Boolean done; Standard_Boolean empt; Standard_Real Preci; Standard_Real Fleche; Standard_Real Pas; IntPatch_SequenceOfLine SLin; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif