Rhino C++ API  8.14
Public Member Functions | Static Public Member Functions | List of all members
ON_Hatch Class Reference

#include <opennurbs_hatch.h>

Inheritance diagram for ON_Hatch:
ON_Geometry ON_Object

Public Member Functions

 ON_Hatch ()=default
 Default constructor. More...
 
 ON_Hatch (const ON_Hatch &)
 
 ~ON_Hatch ()
 
void AddLoop (ON_HatchLoop *loop)
 
ON_3dPoint BasePoint () const
 
ON_2dPoint BasePoint2d () const
 
class ON_BrepBrepForm (class ON_Brep *brep=nullptr) const override
 
bool Create (const ON_Plane &plane, const ON_SimpleArray< const ON_Curve * > loops, int pattern_index, double pattern_rotation, double pattern_scale)
 Interface. More...
 
int Dimension () const override
 ON_Geometry overrides. More...
 
void Dump (ON_TextLog &) const override
 
virtual ON_HatchDuplicateHatch () const
 
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
More...
 
void GetGradientColors (ON_SimpleArray< ON_ColorStop > &colors) const
 
void GetGradientEndPoints (ON_3dPoint &startPoint, ON_3dPoint &endPoint) const
 
double GetGradientRepeat () const
 
ON_GradientType GetGradientType () const
 
bool GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const override
 virtual ON_Geometry GetTightBoundingBox override
More...
 
bool InsertLoop (int index, ON_HatchLoop *loop)
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 ON_Object overrides. More...
 
const ON_HatchLoopLoop (int index) const
 
int LoopCount () const
 
ON_CurveLoopCurve3d (int index) const
 
ON::object_type ObjectType () const override
 
ON_Hatchoperator= (const ON_Hatch &)
 
int PatternIndex () const
 
double PatternRotation () const
 
double PatternScale () const
 
const ON_PlanePlane () const
 
bool Read (ON_BinaryArchive &) override
 
bool RemoveLoop (int index)
 
bool ReplaceLoops (ON_SimpleArray< const ON_Curve * > &loops)
 
bool ScalePattern (ON_Xform xform)
 
void SetBasePoint (ON_2dPoint basepoint)
 Basepoint functions added March 23, 2008 -LW. More...
 
void SetBasePoint (ON_3dPoint point)
 
bool SetGradientColors (const ON_SimpleArray< ON_ColorStop > &colors)
 
bool SetGradientEndPoints (ON_3dPoint startpoint, ON_3dPoint endPoint)
 
bool SetGradientRepeat (double repeat)
 
void SetGradientType (ON_GradientType gt)
 
void SetPatternIndex (int index)
 
void SetPatternRotation (double rotation)
 
void SetPatternScale (double scale)
 
void SetPlane (const ON_Plane &plane)
 
bool Transform (const ON_Xform &) override
 
bool Write (ON_BinaryArchive &) const override
 
- Public Member Functions inherited from ON_Geometry
 ON_Geometry ()=default
 
 ON_Geometry (const ON_Geometry &)=default
 
 ~ON_Geometry ()=default
 
ON_BoundingBox BoundingBox () const
 
virtual void ClearBoundingBox ()
 
virtual ON_COMPONENT_INDEX ComponentIndex () const
 
virtual bool EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const
 
bool GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const
 
bool GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const
 
virtual bool HasBrepForm () const
 
virtual bool IsDeformable () const
 
virtual bool IsMorphable () const
 
virtual bool MakeDeformable ()
 
virtual bool Morph (const class ON_SpaceMorph &morph)
 
ON_Geometryoperator= (const ON_Geometry &)=default
 
bool Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Scale (double scale_factor)
 
virtual bool SwapCoordinates (int i, int j)
 
const ON_BoundingBox TightBoundingBox () const
 
bool Translate (const ON_3dVector &translation_vector)
 
- Public Member Functions inherited from ON_Object
 ON_Object () ON_NOEXCEPT
 
 ON_Object (const ON_Object &)
 
virtual ~ON_Object ()
 
virtual ON_AggregateComponentStatus AggregateComponentStatus () const
 
bool AttachUserData (class ON_UserData *pUserData)
 
unsigned int ClearAllComponentStates () const
 
virtual unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const
 
virtual unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const
 
void CopyUserData (const ON_Object &source_object)
 
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
virtual ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
 
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
virtual void DestroyRuntimeCache (bool bDelete=true)
 
bool DetachUserData (class ON_UserData *pUserData)
 
void EmergencyDestroy ()
 
class ON_UserDataFirstUserData () const
 
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
 
class ON_UserDataGetUserData (const ON_UUID &userdata_uuid) const
 
bool GetUserString (const wchar_t *key, ON_wString &string_value) const
 
int GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const
 
int GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const
 
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
 
bool IsKindOf (const ON_ClassId *pClassId) const
 
virtual void MarkAggregateComponentStatusAsNotCurrent () const
 
virtual void MemoryRelocate ()
 
virtual ON_UUID ModelObjectId () const
 
void MoveUserData (ON_Object &source_object)
 
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
 
ON_Objectoperator= (const ON_Object &)
 
void PurgeUserData ()
 
virtual unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const
 
virtual unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const
 
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
 
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
 
virtual unsigned int SizeOf () const
 
bool ThisIsNullptr (bool bSilentError) const
 
void TransformUserData (const class ON_Xform &xform)
 
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
 
int UserStringCount () const
 

Static Public Member Functions

static ON_HatchHatchFromBrep (ON_Hatch *use_this_hatch, const ON_Brep *brep, int face_index, int pattern_index, double pattern_rotation_radians, double pattern_scale, ON_3dPoint basepoint)
 

Additional Inherited Members

- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
}
 
- Static Public Attributes inherited from ON_Geometry
const static ON_Geometry Unset
 

Detailed Description

class ON_Hatch /////////////////////////////////////////////////////////////// Represents a hatch in planar boundary loop or loops This is a 2d entity with a plane defining a local coordinate system The loops, patterns, angles, etc are all in this local coordinate system

The ON_Hatch object manages the plane and loop array Fill definitions are in the ON_HatchPattern or class derived from ON_HatchPattern ON_Hatch has an index to get the pattern definition from the pattern table

Constructor & Destructor Documentation

◆ ON_Hatch() [1/2]

ON_Hatch::ON_Hatch ( )
default

Default constructor.

◆ ~ON_Hatch()

ON_Hatch::~ON_Hatch ( )

◆ ON_Hatch() [2/2]

ON_Hatch::ON_Hatch ( const ON_Hatch )

Member Function Documentation

◆ AddLoop()

void ON_Hatch::AddLoop ( ON_HatchLoop loop)

Description: Add a loop to the hatch Parameters: loop - [in] the loop to add. Memory management for the loop is managed by this class. Returns:

◆ BasePoint()

ON_3dPoint ON_Hatch::BasePoint ( ) const

Description: Return 3d WCS point that lies on hatch's plane used for pattern origin.

◆ BasePoint2d()

ON_2dPoint ON_Hatch::BasePoint2d ( ) const

Description: Return 2d ECS point used for pattern origin.

◆ BrepForm()

class ON_Brep* ON_Hatch::BrepForm ( class ON_Brep brep = nullptr) const
overridevirtual

Description: If possible, BrepForm() creates a brep form of the ON_Geometry. Parameters: brep - [in] if not nullptr, brep is used to store the brep form of the geometry. Result: Returns a pointer to on ON_Brep or nullptr. If the brep parameter is not nullptr, then brep is returned if the geometry has a brep form and nullptr is returned if the geometry does not have a brep form. Remarks: The caller is responsible for managing the brep memory. See Also ON_Geometry::HasBrepForm

Reimplemented from ON_Geometry.

◆ Create()

bool ON_Hatch::Create ( const ON_Plane plane,
const ON_SimpleArray< const ON_Curve * >  loops,
int  pattern_index,
double  pattern_rotation,
double  pattern_scale 
)

Interface.

Description: Create a hatch from input geometry and parameters Parameters: plane [I] - ON_Plane to make the hatch on loops [I] - Array of boundary loops with the outer one first pattern_index [I] - Index into the hatch table pattern_rotation [I] - ccw in radians about plane origin pattern_scale [I] - Scale factor for pattern definition Returns: true = success, false = failure

◆ Dimension()

int ON_Hatch::Dimension ( ) const
overridevirtual

ON_Geometry overrides.

Returns the geometric dimension of the object ( usually 3)

Reimplemented from ON_Geometry.

◆ Dump()

void ON_Hatch::Dump ( ON_TextLog ) const
overridevirtual

Description: Creates a text dump of the object. Remarks: Dump() is intended for debugging and is not suitable for creating high quality text descriptions of an object.

The default implementations of this virtual function prints the class's name.

Reimplemented from ON_Object.

◆ DuplicateHatch()

virtual ON_Hatch* ON_Hatch::DuplicateHatch ( ) const
virtual

◆ GetBBox()

bool ON_Hatch::GetBBox ( double *  boxmin,
double *  boxmax,
bool  bGrowBox = false 
) const
overridevirtual

virtual ON_Geometry GetBBox override

Reimplemented from ON_Geometry.

◆ GetGradientColors()

void ON_Hatch::GetGradientColors ( ON_SimpleArray< ON_ColorStop > &  colors) const

Description: Get list of color stops used for gradient drawing.

◆ GetGradientEndPoints()

void ON_Hatch::GetGradientEndPoints ( ON_3dPoint startPoint,
ON_3dPoint endPoint 
) const

Description: Get the start and end points for gradient drawing in 3d

◆ GetGradientRepeat()

double ON_Hatch::GetGradientRepeat ( ) const

Description: Get gradient repeat factor for gradient drawing.

1 repeat reflected number of times between start and end point

< -1 repeat wrap number of times between start and end point any other value does not affect repeat on a gradient

◆ GetGradientType()

ON_GradientType ON_Hatch::GetGradientType ( ) const

Description: Returns gradient fill type for this hatch

◆ GetTightBoundingBox()

bool ON_Hatch::GetTightBoundingBox ( class ON_BoundingBox tight_bbox,
bool  bGrowBox = false,
const class ON_Xform xform = nullptr 
) const
overridevirtual

virtual ON_Geometry GetTightBoundingBox override

Reimplemented from ON_Geometry.

◆ HatchFromBrep()

static ON_Hatch* ON_Hatch::HatchFromBrep ( ON_Hatch use_this_hatch,
const ON_Brep brep,
int  face_index,
int  pattern_index,
double  pattern_rotation_radians,
double  pattern_scale,
ON_3dPoint  basepoint 
)
static

◆ InsertLoop()

bool ON_Hatch::InsertLoop ( int  index,
ON_HatchLoop loop 
)

Description: Insert a loop to the hatch at the specified index Parameters: index - [in] zero based index of the position where insert the loop to. loop - [in] the loop to insert. Memory management for the loop is managed by this class on success. Returns: true if success false if index is lower than 0 or greater than current loop count.

◆ IsValid()

bool ON_Hatch::IsValid ( class ON_TextLog text_log = nullptr) const
overridevirtual

ON_Object overrides.

Reimplemented from ON_Geometry.

◆ Loop()

const ON_HatchLoop* ON_Hatch::Loop ( int  index) const

Description: Get the loop at index Parameters: index - [in] which loop to get Returns: pointer to loop at index nullptr if index is out of range

◆ LoopCount()

int ON_Hatch::LoopCount ( ) const

Description: Get the number of loops used by this hatch Parameters: Returns: the number of loops

◆ LoopCurve3d()

ON_Curve* ON_Hatch::LoopCurve3d ( int  index) const

Description: Get the 3d curve corresponding to loop[index] Parameters: index - [in] which loop to get Returns: pointer to 3d curve of loop at index nullptr if index is out of range or curve can't be made Caller deletes the returned curve

◆ ObjectType()

ON::object_type ON_Hatch::ObjectType ( ) const
overridevirtual

Description: Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

Returns: ON::object_type enum value.

Remarks: The default implementation of this virtual function returns ON::unknown_object_type

Reimplemented from ON_Object.

◆ operator=()

ON_Hatch& ON_Hatch::operator= ( const ON_Hatch )

◆ PatternIndex()

int ON_Hatch::PatternIndex ( ) const

Description: Get the index of the hatch's pattern Parameters: Returns: index of the pattern

◆ PatternRotation()

double ON_Hatch::PatternRotation ( ) const

Description: Gets the rotation applied to the hatch pattern when it is mapped to the hatch's plane Returns: The rotation in radians Remarks: The pattern is rotated counter-clockwise around the hatch's plane origin by this value

◆ PatternScale()

double ON_Hatch::PatternScale ( ) const

Description: Gets the scale applied to the hatch pattern when it is mapped to the hatch's plane Returns: The scale Remarks: The pattern is scaled around the hatch's plane origin by this value

◆ Plane()

const ON_Plane& ON_Hatch::Plane ( ) const

Description: Get the plane defining the hatch's coordinate system Parameters: Returns: the plane

◆ Read()

bool ON_Hatch::Read ( ON_BinaryArchive binary_archive)
overridevirtual

Description: Low level archive writing tool used by ON_BinaryArchive::ReadObject(). Parameters: binary_archive - archive to read from Returns: Returns true if the read is successful. Remarks: Use ON_BinaryArchive::ReadObject() to read objects. This Read() function should read the objects definition back into its data members.

The default implementation of this virtual function returns false and does nothing.

Reimplemented from ON_Object.

◆ RemoveLoop()

bool ON_Hatch::RemoveLoop ( int  index)

Description: Remove a loop in the hatch Parameters: loop - [in] zero based index of the loop to remove. Returns: true if success

◆ ReplaceLoops()

bool ON_Hatch::ReplaceLoops ( ON_SimpleArray< const ON_Curve * > &  loops)

Function added June 12 2008 LW Description: Remove all of the loops on the hatch and add the curves in 'loops' as new loops Parameters: loops - [in] An array of pointers to 2d or 3d curves If the curves are 2d, add them to the hatch directly If they are 3d, project them to the hatch's plane first Returns: true - success false - no loops in input array or an error adding them

◆ ScalePattern()

bool ON_Hatch::ScalePattern ( ON_Xform  xform)

Description: Scales the hatch's pattern by a 4x4 xform matrix Parameters: [in] xform - An ON_Xform with the transformation information Returns: true = Success false = Failure Remarks: The hatch pattern scale is multiplied by the change in length of a unit vector in the hatch plane x direction when that vector is scaled by the input xform

◆ SetBasePoint() [1/2]

void ON_Hatch::SetBasePoint ( ON_2dPoint  basepoint)

Basepoint functions added March 23, 2008 -LW.

Description: Set 2d Base point for hatch pattern alignment. Parameters: basepoint - 2d point in hatch's ECS

◆ SetBasePoint() [2/2]

void ON_Hatch::SetBasePoint ( ON_3dPoint  point)

Description: Set 3d Base point for hatch pattern alignment. Parameters: point - 3d WCS point Remarks: Projects point to hatch's plane and sets 2d point

◆ SetGradientColors()

bool ON_Hatch::SetGradientColors ( const ON_SimpleArray< ON_ColorStop > &  colors)

Description: Set list of color stops used for gradient drawing.

◆ SetGradientEndPoints()

bool ON_Hatch::SetGradientEndPoints ( ON_3dPoint  startpoint,
ON_3dPoint  endPoint 
)

Description: Set the start and end points for gradient drawing

◆ SetGradientRepeat()

bool ON_Hatch::SetGradientRepeat ( double  repeat)

Description: Set gradient repeat factor for gradient drawing

1 repeat reflected number of times between start and end point

< -1 repeat wrap number of times between start and end point any other value does not affect repeat on a gradient Returns: True if the repeat factor was successfully set

◆ SetGradientType()

void ON_Hatch::SetGradientType ( ON_GradientType  gt)

Description: Set the gradient fill type for this hatch

◆ SetPatternIndex()

void ON_Hatch::SetPatternIndex ( int  index)

Description: Set the index of the hatch's pattern Parameters: index - [in] pattern index to set Returns:

◆ SetPatternRotation()

void ON_Hatch::SetPatternRotation ( double  rotation)

Description: Sets the rotation applied to the hatch pattern when it is mapped to the hatch's plane Parameters: rotation - [in] The rotation in radians Remarks: The pattern is rotated counter-clockwise around the hatch's plane origin by this value

◆ SetPatternScale()

void ON_Hatch::SetPatternScale ( double  scale)

Description: Sets the scale applied to the hatch pattern when it is mapped to the hatch's plane Parameters: scale - [in] The scale Remarks: The pattern is scaled around the hatch's plane origin by this value

◆ SetPlane()

void ON_Hatch::SetPlane ( const ON_Plane plane)

Description: Set the plane defining the hatch's coordinate system Parameters: plane - [in] the plane to set Returns:

◆ Transform()

bool ON_Hatch::Transform ( const ON_Xform )
overridevirtual

Description: Transform the object by a 4x4 xform matrix

Parameters: [in] xform - An ON_Xform with the transformation information Returns: true = Success false = Failure Remarks: The object has been transformed when the function returns.

Reimplemented from ON_Geometry.

◆ Write()

bool ON_Hatch::Write ( ON_BinaryArchive binary_archive) const
overridevirtual

Description: Low level archive writing tool used by ON_BinaryArchive::WriteObject(). Parameters: binary_archive - archive to write to Returns: Returns true if the write is successful. Remarks: Use ON_BinaryArchive::WriteObject() to write objects. This Write() function should just write the specific definition of this object. It should not write and any chunk typecode or length information.

The default implementation of this virtual function returns false and does nothing.

Reimplemented from ON_Object.