Open CASCADE Technology 7.8.2.dev
Hatch_Hatcher Class Reference

The Hatcher is an algorithm to compute cross hatchings in a 2d plane. It is mainly dedicated to display purpose. More...

#include <Hatch_Hatcher.hxx>

Public Member Functions

 Hatch_Hatcher (const Standard_Real Tol, const Standard_Boolean Oriented=Standard_True)
 Returns a empty hatcher. <Tol> is the tolerance for intersections.
 
void Tolerance (const Standard_Real Tol)
 
Standard_Real Tolerance () const
 
void AddLine (const gp_Lin2d &L, const Hatch_LineForm T=Hatch_ANYLINE)
 Add a line <L> to be trimmed. <T> the type is only kept from information. It is not used in the computation.
 
void AddLine (const gp_Dir2d &D, const Standard_Real Dist)
 Add an infinite line on direction <D> at distance <Dist> from the origin to be trimmed. <Dist> may be negative.
 
void AddXLine (const Standard_Real X)
 Add an infinite line parallel to the Y-axis at abciss <X>.
 
void AddYLine (const Standard_Real Y)
 Add an infinite line parallel to the X-axis at ordinate <Y>.
 
void Trim (const gp_Lin2d &L, const Standard_Integer Index=0)
 Trims the lines at intersections with <L>.
 
void Trim (const gp_Lin2d &L, const Standard_Real Start, const Standard_Real End, const Standard_Integer Index=0)
 Trims the lines at intersections with <L> in the parameter range <Start>, <End>
 
void Trim (const gp_Pnt2d &P1, const gp_Pnt2d &P2, const Standard_Integer Index=0)
 Trims the line at intersection with the oriented segment P1,P2.
 
Standard_Integer NbIntervals () const
 Returns the total number of intervals on all the lines.
 
Standard_Integer NbLines () const
 Returns the number of lines.
 
const gp_Lin2dLine (const Standard_Integer I) const
 Returns the line of index .
 
Hatch_LineForm LineForm (const Standard_Integer I) const
 Returns the type of the line of index .
 
Standard_Boolean IsXLine (const Standard_Integer I) const
 Returns True if the line of index has a constant X value.
 
Standard_Boolean IsYLine (const Standard_Integer I) const
 Returns True if the line of index has a constant Y value.
 
Standard_Real Coordinate (const Standard_Integer I) const
 Returns the X or Y coordinate of the line of index if it is a X or a Y line.
 
Standard_Integer NbIntervals (const Standard_Integer I) const
 Returns the number of intervals on line of index .
 
Standard_Real Start (const Standard_Integer I, const Standard_Integer J) const
 Returns the first parameter of interval <J> on line .
 
void StartIndex (const Standard_Integer I, const Standard_Integer J, Standard_Integer &Index, Standard_Real &Par2) const
 Returns the first Index and Par2 of interval <J> on line .
 
Standard_Real End (const Standard_Integer I, const Standard_Integer J) const
 Returns the last parameter of interval <J> on line .
 
void EndIndex (const Standard_Integer I, const Standard_Integer J, Standard_Integer &Index, Standard_Real &Par2) const
 Returns the last Index and Par2 of interval <J> on line .
 

Detailed Description

The Hatcher is an algorithm to compute cross hatchings in a 2d plane. It is mainly dedicated to display purpose.

Computing cross hatchings is a 3 steps process :

  1. The users stores in the Hatcher a set of 2d lines to be trimmed. Methods in the "Lines" category.
  2. The user trims the lines with a boundary. The inside of a boundary is on the left side. Methods in the "Trimming" category.
  3. The user reads back the trimmed lines. Methods in the "Results" category.

The result is a set of parameter intervals on the line. The first parameter of an Interval may be RealFirst() and the last may be RealLast().

A line can be a line parallel to the axis (X or Y line or a 2D line.

The Hatcher has two modes :

  • The "Oriented" mode, where the orientation of the trimming curves is considered. The hatch are kept on the left of the trimming curve. In this mode infinite hatch can be computed.
  • The "UnOriented" mode, where the hatch are always finite.

Constructor & Destructor Documentation

◆ Hatch_Hatcher()

Hatch_Hatcher::Hatch_Hatcher ( const Standard_Real Tol,
const Standard_Boolean Oriented = Standard_True )

Returns a empty hatcher. <Tol> is the tolerance for intersections.

Member Function Documentation

◆ AddLine() [1/2]

void Hatch_Hatcher::AddLine ( const gp_Dir2d & D,
const Standard_Real Dist )

Add an infinite line on direction <D> at distance <Dist> from the origin to be trimmed. <Dist> may be negative.

If O is the origin of the 2D plane, and V the vector perpendicular to D (in the direct direction).

A point P is on the line if : OP dot V = Dist The parameter of P on the line is OP dot D

◆ AddLine() [2/2]

void Hatch_Hatcher::AddLine ( const gp_Lin2d & L,
const Hatch_LineForm T = Hatch_ANYLINE )

Add a line <L> to be trimmed. <T> the type is only kept from information. It is not used in the computation.

◆ AddXLine()

void Hatch_Hatcher::AddXLine ( const Standard_Real X)

Add an infinite line parallel to the Y-axis at abciss <X>.

◆ AddYLine()

void Hatch_Hatcher::AddYLine ( const Standard_Real Y)

Add an infinite line parallel to the X-axis at ordinate <Y>.

◆ Coordinate()

Standard_Real Hatch_Hatcher::Coordinate ( const Standard_Integer I) const

Returns the X or Y coordinate of the line of index if it is a X or a Y line.

◆ End()

Standard_Real Hatch_Hatcher::End ( const Standard_Integer I,
const Standard_Integer J ) const

Returns the last parameter of interval <J> on line .

◆ EndIndex()

void Hatch_Hatcher::EndIndex ( const Standard_Integer I,
const Standard_Integer J,
Standard_Integer & Index,
Standard_Real & Par2 ) const

Returns the last Index and Par2 of interval <J> on line .

◆ IsXLine()

Standard_Boolean Hatch_Hatcher::IsXLine ( const Standard_Integer I) const

Returns True if the line of index has a constant X value.

◆ IsYLine()

Standard_Boolean Hatch_Hatcher::IsYLine ( const Standard_Integer I) const

Returns True if the line of index has a constant Y value.

◆ Line()

const gp_Lin2d & Hatch_Hatcher::Line ( const Standard_Integer I) const

Returns the line of index .

◆ LineForm()

Hatch_LineForm Hatch_Hatcher::LineForm ( const Standard_Integer I) const

Returns the type of the line of index .

◆ NbIntervals() [1/2]

Standard_Integer Hatch_Hatcher::NbIntervals ( ) const

Returns the total number of intervals on all the lines.

◆ NbIntervals() [2/2]

Standard_Integer Hatch_Hatcher::NbIntervals ( const Standard_Integer I) const

Returns the number of intervals on line of index .

◆ NbLines()

Standard_Integer Hatch_Hatcher::NbLines ( ) const

Returns the number of lines.

◆ Start()

Standard_Real Hatch_Hatcher::Start ( const Standard_Integer I,
const Standard_Integer J ) const

Returns the first parameter of interval <J> on line .

◆ StartIndex()

void Hatch_Hatcher::StartIndex ( const Standard_Integer I,
const Standard_Integer J,
Standard_Integer & Index,
Standard_Real & Par2 ) const

Returns the first Index and Par2 of interval <J> on line .

◆ Tolerance() [1/2]

Standard_Real Hatch_Hatcher::Tolerance ( ) const

◆ Tolerance() [2/2]

void Hatch_Hatcher::Tolerance ( const Standard_Real Tol)

◆ Trim() [1/3]

void Hatch_Hatcher::Trim ( const gp_Lin2d & L,
const Standard_Integer Index = 0 )

Trims the lines at intersections with <L>.

◆ Trim() [2/3]

void Hatch_Hatcher::Trim ( const gp_Lin2d & L,
const Standard_Real Start,
const Standard_Real End,
const Standard_Integer Index = 0 )

Trims the lines at intersections with <L> in the parameter range <Start>, <End>

◆ Trim() [3/3]

void Hatch_Hatcher::Trim ( const gp_Pnt2d & P1,
const gp_Pnt2d & P2,
const Standard_Integer Index = 0 )

Trims the line at intersection with the oriented segment P1,P2.


The documentation for this class was generated from the following file: