OCC Main Page | ModelingAlgorithms | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingAlgorithms
TKGeomAlgo
Hatch


Hatch_Hatcher Class Reference

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.

.

#include <Hatch_Hatcher.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT 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
Standard_EXPORT 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.

.
Standard_EXPORT 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.

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

.
Standard_EXPORT void AddXLine (const Standard_Real X)
 Add an infinite line parallel to the Y-axis at
abciss <x>.

.
Standard_EXPORT void AddYLine (const Standard_Real Y)
 Add an infinite line parallel to the X-axis at
ordinate <y>.

.
Standard_EXPORT void Trim (const gp_Lin2d &L, const Standard_Integer Index=0)
 Trims the lines at intersections with <l>.

.
Standard_EXPORT 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>

.
Standard_EXPORT 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_EXPORT Standard_Integer NbIntervals () const
 Returns the total number of intervals on all the
lines.
.
Standard_EXPORT Standard_Integer NbLines () const
 Returns the number of lines.
.
Standard_EXPORT const gp_Lin2d & Line (const Standard_Integer I) const
 Returns the line of index .
.

Standard_EXPORT 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_EXPORT 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_EXPORT Standard_Integer NbIntervals (const Standard_Integer I) const
 Returns the number of intervals on line of index .
.

Standard_EXPORT Standard_Real Start (const Standard_Integer I, const Standard_Integer J) const
 Returns the first parameter of interval <j> on
line .
.

Standard_EXPORT 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_EXPORT Standard_Real End (const Standard_Integer I, const Standard_Integer J) const
 Returns the last parameter of interval <j> on
line .
.

Standard_EXPORT 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 .
.


Private Attributes

Standard_Real myToler
Hatch_SequenceOfLine myLines
Standard_Boolean myOrient


Constructor & Destructor Documentation

Standard_EXPORT Hatch_Hatcher::Hatch_Hatcher const Standard_Real  Tol,
const Standard_Boolean  Oriented = Standard_True
 


Member Function Documentation

Standard_EXPORT void Hatch_Hatcher::AddLine const gp_Dir2d &  D,
const Standard_Real  Dist
 

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

Standard_EXPORT void Hatch_Hatcher::AddXLine const Standard_Real  X  ) 
 

Standard_EXPORT void Hatch_Hatcher::AddYLine const Standard_Real  Y  ) 
 

Standard_EXPORT Standard_Real Hatch_Hatcher::Coordinate const Standard_Integer  I  )  const
 

Standard_EXPORT Standard_Real Hatch_Hatcher::End const Standard_Integer  I,
const Standard_Integer  J
const
 

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

Standard_Boolean Hatch_Hatcher::IsXLine const Standard_Integer  I  )  const [inline]
 

Standard_Boolean Hatch_Hatcher::IsYLine const Standard_Integer  I  )  const [inline]
 

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

Standard_EXPORT Hatch_LineForm Hatch_Hatcher::LineForm const Standard_Integer  I  )  const
 

Standard_EXPORT Standard_Integer Hatch_Hatcher::NbIntervals const Standard_Integer  I  )  const
 

Standard_EXPORT Standard_Integer Hatch_Hatcher::NbIntervals  )  const
 

Standard_EXPORT Standard_Integer Hatch_Hatcher::NbLines  )  const
 

void Hatch_Hatcher::operator delete void *  anAddress  )  [inline]
 

void* Hatch_Hatcher::operator new size_t  size  )  [inline]
 

void* Hatch_Hatcher::operator new size_t  ,
void *  anAddress
[inline]
 

Standard_EXPORT Standard_Real Hatch_Hatcher::Start const Standard_Integer  I,
const Standard_Integer  J
const
 

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

Standard_Real Hatch_Hatcher::Tolerance  )  const [inline]
 

void Hatch_Hatcher::Tolerance const Standard_Real  Tol  )  [inline]
 

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

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

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


Field Documentation

Hatch_SequenceOfLine Hatch_Hatcher::myLines [private]
 

Standard_Boolean Hatch_Hatcher::myOrient [private]
 

Standard_Real Hatch_Hatcher::myToler [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:42:01 2008 for OpenCASCADE by  doxygen 1.4.1