Rhino C++ API  8.7
Public Member Functions | Public Attributes | List of all members
CRhinoMaelstromSpaceMorph Class Reference

#include <RhinoSdkSpaceMorph.h>

Inheritance diagram for CRhinoMaelstromSpaceMorph:
CRhinoSpaceMorph ON_SpaceMorph

Public Member Functions

 CRhinoMaelstromSpaceMorph ()
 
 ~CRhinoMaelstromSpaceMorph ()
 
bool IsIdentity (const ON_BoundingBox &bbox) const
 
ON_3dPoint MorphPoint (ON_3dPoint pt) const
 
- 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
 

Public Attributes

double m_a
 angle in radians More...
 
ON_Circle m_circle
 
double m_r0
 fixed radius More...
 
double m_r1
 rotated radius More...
 

Detailed Description

Maelstrom Deforms objects in a spiral as if they were caught in a whirlpool.

Constructor & Destructor Documentation

◆ CRhinoMaelstromSpaceMorph()

CRhinoMaelstromSpaceMorph::CRhinoMaelstromSpaceMorph ( )

◆ ~CRhinoMaelstromSpaceMorph()

CRhinoMaelstromSpaceMorph::~CRhinoMaelstromSpaceMorph ( )

Member Function Documentation

◆ IsIdentity()

bool CRhinoMaelstromSpaceMorph::IsIdentity ( const ON_BoundingBox bbox) const
virtual

Description: Provides a quick way to determine if a morph function is the identity (doesn't move the points) on a region of space. Parameters: bbox - [in] region of space to test. Returns: The default always returns false. If you override this function, then return true when every point in the bounding box is fixed by the morph.

Reimplemented from ON_SpaceMorph.

◆ MorphPoint()

ON_3dPoint CRhinoMaelstromSpaceMorph::MorphPoint ( ON_3dPoint  pt) const
virtual

Description: virtual ON_SpaceMorph override

If m_r0 = m_r1 > 0, then the morph is a rotation where the angle of rotation is proportional to the radius.

If m_r0 < m_r1, then everything inside of the circle of radius m_r0 if fixed, the rotation angle increases smoothly from 0 at m_r0 to m_a at m_r1, and everything outside of the circle of radius m_r1 is rotated by m_a.

If m_r0 > m_r1, then everything outside of the circle of radius m_r0 if fixed, the rotation angle increases smoothly from 0 at m_r0 to m_a at m_r1, and everything inside of the circle of radius m_r1 is rotated by m_a.

Implements ON_SpaceMorph.

Member Data Documentation

◆ m_a

double CRhinoMaelstromSpaceMorph::m_a

angle in radians

◆ m_circle

ON_Circle CRhinoMaelstromSpaceMorph::m_circle

◆ m_r0

double CRhinoMaelstromSpaceMorph::m_r0

fixed radius

◆ m_r1

double CRhinoMaelstromSpaceMorph::m_r1

rotated radius