Rhino C++ API  8.6
Static Public Member Functions | List of all members
RhDevelopableSurface Class Reference

#include <rhinoSdkUnrollSrf.h>

Static Public Member Functions

static double CalcRulingTwist (const ON_Curve *rail0, const ON_Curve *rail1, double t0, double t1)
 Calc twist across one ruling. More...
 
static bool FindMinTwist (const ON_Curve *rail0, const ON_Curve *rail1, double t0, double t1, ON_Interval domain0, ON_Interval domain1, double &t0_out, double &t1_out, double &max_cos_twist)
 
static bool FindMinTwist (const ON_Curve *rail0, const ON_Curve *rail1, double t0, double t1, ON_Interval domain1, double &t1_out, double &max_cos_twist)
 
static bool UntwistSurface (const ON_Curve *rail0, const ON_Curve *rail1, int rulingcount, ON_2dPoint *rulings)
 

Member Function Documentation

◆ CalcRulingTwist()

static double RhDevelopableSurface::CalcRulingTwist ( const ON_Curve rail0,
const ON_Curve rail1,
double  t0,
double  t1 
)
static

Calc twist across one ruling.

For a ruling between two rails, rail0 and rail1, from rail0(t0) to rial1(t1), the ruling twist is: V = rail0(t1) - rail1(t0) N0 = rail0.TangentAt(t0) cross V N1 = rail1.TangentAt(t1) cross V Twist = acos(N0 * N1)

◆ FindMinTwist() [1/2]

static bool RhDevelopableSurface::FindMinTwist ( const ON_Curve rail0,
const ON_Curve rail1,
double  t0,
double  t1,
ON_Interval  domain0,
ON_Interval  domain1,
double &  t0_out,
double &  t1_out,
double &  max_cos_twist 
)
static

Find a ruling from rail0(t0_out) to rail1(t1_out) that has the least twist across the ruling with t0_out in domain0 and t1_out in domain1. max_cos_twist is cos(twist) for the returned ruling

Parameters
t0param on rail0
t1param on rail1
domain0search domain on rail0
domain1search domain on rail1
t0_outbest t on rail0
t1_outbest t on rail1
max_cos_twisttwist at rail0(t0_out), rail1(t1_out)

◆ FindMinTwist() [2/2]

static bool RhDevelopableSurface::FindMinTwist ( const ON_Curve rail0,
const ON_Curve rail1,
double  t0,
double  t1,
ON_Interval  domain1,
double &  t1_out,
double &  max_cos_twist 
)
static

Find a ruling from rail0(t0) to rail1(t1_out) that has the least twist across the ruling with t1_out in domain1. max_cos_twist is cos(twist) for the returned ruling

Parameters
t0param on rail0
t1seed param on rail1
domain1search domain on rail1
t1_outbest t on rail1
max_cos_twistcos(twist) at rail0(t0_out), rail1(t1_out)

◆ UntwistSurface()

static bool RhDevelopableSurface::UntwistSurface ( const ON_Curve rail0,
const ON_Curve rail1,
int  rulingcount,
ON_2dPoint rulings 
)
static