Rhino C++ API  8.4
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
CRhinoBendSpaceMorph Class Reference

#include <RhinoSdkSpaceMorph.h>

Inheritance diagram for CRhinoBendSpaceMorph:
CRhinoSpaceMorph ON_SpaceMorph

Public Member Functions

 CRhinoBendSpaceMorph ()
 CRhinoBendSpaceMorph (const CRhinoBendSpaceMorph &)
 ~CRhinoBendSpaceMorph ()
bool IsIdentity (const ON_BoundingBox &bbox) const
 virtual ON_SpaceMorph override More...
bool IsValid () const
ON_3dPoint MorphPoint (ON_3dPoint pt) const
 virtual ON_SpaceMorph override More...
bool NewBendPoint (ON_3dPoint bend_point, double bend_angle_degrees) const
bool NonAttenuated () const
CRhinoBendSpaceMorphoperator= (const CRhinoBendSpaceMorph &)
bool SetArc (ON_3dPoint bend_pt, double bend_angle_degrees)
void SetNonAttenuated (bool bNonAttenuated)
bool SetSpine (ON_Line spine)
- Public Member Functions inherited from CRhinoSpaceMorph
 CRhinoSpaceMorph ()
virtual ~CRhinoSpaceMorph ()
- Public Member Functions inherited from ON_SpaceMorph
 ON_SpaceMorph ()
virtual ~ON_SpaceMorph ()
virtual bool Ev1Der (ON_3dPoint rst, ON_3dPoint &xyz, ON_3dVector &Dr, ON_3dVector &Ds, ON_3dVector &Dt) const
bool IsIdentity (const class ON_Curve &Crv, double tol) const
bool IsIdentity (const class ON_Surface &Srf, double tol) const
bool IsIdentity (const ON_SimpleArray< ON_3dPoint > &Points, double tol) const
virtual ON_4dPoint Morph4dPoint (ON_4dPoint point) const
void MorphPointList (int dim, bool is_rat, int count, int stride, double *point) const
void MorphPointList (int dim, bool is_rat, int count, int stride, float *point) const
virtual ON_3dVector MorphVector (ON_3dPoint tail_point, ON_3dVector vector) const
bool PreserveStructure () const
bool QuickPreview () const
void SetPreserveStructure (bool bPreserveStructure)
void SetQuickPreview (bool bQuickPreview)
void SetTolerance (double tolerance)
double Tolerance () const

Static Public Member Functions

static bool ValidBendAngle (double bend_angle_degrees)

Public Attributes

bool m_bStraightEnd
 bend morph options More...
bool m_bSymmetric
 If m_bSymmetric is true, then the bend arc is mirrored. More...

Protected Attributes

ON_Arc m_arc
ON_3dPoint m_arc_endpt
double m_arc_length
double m_bend_angle
ON_3dPoint m_bend_point
bool m_bHaveArc
bool m_bHaveSpine
ON_Line m_spine
 line More...
double m_spine_length

Detailed Description

Bend morph Deforms objects by bending along a spine arc.

Constructor & Destructor Documentation

◆ CRhinoBendSpaceMorph() [1/2]

CRhinoBendSpaceMorph::CRhinoBendSpaceMorph ( )

◆ ~CRhinoBendSpaceMorph()

CRhinoBendSpaceMorph::~CRhinoBendSpaceMorph ( )

◆ CRhinoBendSpaceMorph() [2/2]

CRhinoBendSpaceMorph::CRhinoBendSpaceMorph ( const CRhinoBendSpaceMorph )

Member Function Documentation

◆ IsIdentity()

bool CRhinoBendSpaceMorph::IsIdentity ( const ON_BoundingBox bbox) const

virtual ON_SpaceMorph override

Reimplemented from ON_SpaceMorph.

◆ IsValid()

bool CRhinoBendSpaceMorph::IsValid ( ) const

Description: Checks whether arc and spine values have been set Returns: true if both arc and spine values are set

◆ MorphPoint()

ON_3dPoint CRhinoBendSpaceMorph::MorphPoint ( ON_3dPoint  pt) const

virtual ON_SpaceMorph override

Implements ON_SpaceMorph.

◆ NewBendPoint()

bool CRhinoBendSpaceMorph::NewBendPoint ( ON_3dPoint  bend_point,
double  bend_angle_degrees 
) const

Description: Checks to see if a bend point and bend angle have been updated and are valid Parameters: ON_3dPoint bend_point - [in] double bend_angle_degrees - [in] Returns: true if bend point and angle are valid and new, otherwise false

◆ NonAttenuated()

bool CRhinoBendSpaceMorph::NonAttenuated ( ) const

◆ operator=()

CRhinoBendSpaceMorph& CRhinoBendSpaceMorph::operator= ( const CRhinoBendSpaceMorph )

◆ SetArc()

bool CRhinoBendSpaceMorph::SetArc ( ON_3dPoint  bend_pt,
double  bend_angle_degrees 

Description: Defines the arc about which to bend using a point and angle Parameters: ON_3dPoint bend_pt - [in] double bend_angle_degrees - [in] Returns: true if the arc has been successfully created from the supplied point and angle

◆ SetNonAttenuated()

void CRhinoBendSpaceMorph::SetNonAttenuated ( bool  bNonAttenuated)

If false (default), the morph will be attenuated at arc ends, making it suitable for morphing parts of objects. If true, the morph will uniformly affect the entire region along the arc. Most suitable for morphing whole objects.

◆ SetSpine()

bool CRhinoBendSpaceMorph::SetSpine ( ON_Line  spine)

Description: Checks if the bend spine line is valid, then sets the spine parameter Parameters: ON_Line spine - [in] Returns: true if successfully set spine

◆ ValidBendAngle()

static bool CRhinoBendSpaceMorph::ValidBendAngle ( double  bend_angle_degrees)

Description: Checks whether a supplied angle in degrees is valid Parameters: double bend_angle_degrees - [in] angle in degrees to verify Returns: true if the angle is valid

Member Data Documentation

◆ m_arc

ON_Arc CRhinoBendSpaceMorph::m_arc

◆ m_arc_endpt

ON_3dPoint CRhinoBendSpaceMorph::m_arc_endpt

◆ m_arc_length

double CRhinoBendSpaceMorph::m_arc_length

◆ m_bend_angle

double CRhinoBendSpaceMorph::m_bend_angle

◆ m_bend_point

ON_3dPoint CRhinoBendSpaceMorph::m_bend_point

◆ m_bHaveArc

bool CRhinoBendSpaceMorph::m_bHaveArc

m_arc starts at m_spine.from, is tangent to m_spine.Direction, and ends at m_arc_endpt. The length of this arc is generally different that the length of the spine. This is the raw input information. The DrawSpineAndArc() and MorphPoint() functions extend/shorten this arc based on the value m_bStraightEnd.

◆ m_bHaveSpine

bool CRhinoBendSpaceMorph::m_bHaveSpine

◆ m_bStraightEnd

bool CRhinoBendSpaceMorph::m_bStraightEnd

bend morph options

If m_bStraightEnd is true, then the length of the bend arc = length of the spine. If m_bStraightEnd is false, then the bend arc ends at the bend point. The option is poorly named, because even when m_bStraightEnd=false, the bend is straight after the bend point.

◆ m_bSymmetric

bool CRhinoBendSpaceMorph::m_bSymmetric

If m_bSymmetric is true, then the bend arc is mirrored.

◆ m_spine

ON_Line CRhinoBendSpaceMorph::m_spine


◆ m_spine_length

double CRhinoBendSpaceMorph::m_spine_length