Blender  V2.93
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
blender::double3 Struct Reference

#include <BLI_double3.hh>

Public Member Functions

 double3 ()=default
 
 double3 (const double *ptr)
 
 double3 (const double(*ptr)[3])
 
 double3 (double value)
 
 double3 (int value)
 
 double3 (double x, double y, double z)
 
 operator const double * () const
 
 operator double * ()
 
double normalize_and_get_length ()
 
double3 normalized () const
 
double length () const
 
double length_squared () const
 
void reflect (const double3 &normal)
 
double3 reflected (const double3 &normal) const
 
void invert ()
 
void operator+= (const double3 &b)
 
void operator-= (const double3 &b)
 
void operator*= (const double &scalar)
 
void operator*= (const double3 &other)
 

Static Public Member Functions

static double3 safe_divide (const double3 &a, const double3 &b)
 
static double dot (const double3 &a, const double3 &b)
 
static double3 cross_high_precision (const double3 &a, const double3 &b)
 
static double3 project (const double3 &a, const double3 &b)
 
static double distance (const double3 &a, const double3 &b)
 
static double distance_squared (const double3 &a, const double3 &b)
 
static double3 interpolate (const double3 &a, const double3 &b, double t)
 
static double3 abs (const double3 &a)
 
static int dominant_axis (const double3 &a)
 
static double3 cross_poly (Span< double3 > poly)
 

Public Attributes

double x
 
double y
 
double z
 

Friends

double3 operator+ (const double3 &a, const double3 &b)
 
double3 operator- (const double3 &a, const double3 &b)
 
double3 operator- (const double3 &a)
 
double3 operator* (const double3 &a, const double3 &b)
 
double3 operator* (const double3 &a, const double &b)
 
double3 operator* (const double &a, const double3 &b)
 
double3 operator/ (const double3 &a, const double &b)
 
bool operator== (const double3 &a, const double3 &b)
 
bool operator!= (const double3 &a, const double3 &b)
 
std::ostream & operator<< (std::ostream &stream, const double3 &v)
 

Detailed Description

Definition at line 30 of file BLI_double3.hh.

Constructor & Destructor Documentation

◆ double3() [1/6]

blender::double3::double3 ( )
default

Referenced by abs(), and cross_poly().

◆ double3() [2/6]

blender::double3::double3 ( const double ptr)
inline

Definition at line 35 of file BLI_double3.hh.

◆ double3() [3/6]

blender::double3::double3 ( const double(*)  ptr[3])
inline

Definition at line 39 of file BLI_double3.hh.

◆ double3() [4/6]

blender::double3::double3 ( double  value)
inlineexplicit

Definition at line 43 of file BLI_double3.hh.

◆ double3() [5/6]

blender::double3::double3 ( int  value)
inlineexplicit

Definition at line 47 of file BLI_double3.hh.

◆ double3() [6/6]

blender::double3::double3 ( double  x,
double  y,
double  z 
)
inline

Definition at line 51 of file BLI_double3.hh.

Member Function Documentation

◆ abs()

static double3 blender::double3::abs ( const double3 a)
inlinestatic

Definition at line 230 of file BLI_double3.hh.

References Freestyle::a, double3(), and fabs().

◆ cross_high_precision()

static double3 blender::double3::cross_high_precision ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 200 of file BLI_double3.hh.

References Freestyle::a, cross_v3_v3v3_db(), and result.

◆ cross_poly()

double3 blender::double3::cross_poly ( Span< double3 poly)
static

Definition at line 126 of file math_vec.cc.

References double3(), and blender::Span< T >::size().

◆ distance()

static double blender::double3::distance ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 214 of file BLI_double3.hh.

References Freestyle::a.

◆ distance_squared()

static double blender::double3::distance_squared ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 219 of file BLI_double3.hh.

References Freestyle::a, KDL::diff(), and dot().

◆ dominant_axis()

static int blender::double3::dominant_axis ( const double3 a)
inlinestatic

Definition at line 235 of file BLI_double3.hh.

References Freestyle::a, return(), x, y, and z.

◆ dot()

static double blender::double3::dot ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 195 of file BLI_double3.hh.

References Freestyle::a, x, y, and z.

Referenced by distance_squared().

◆ interpolate()

static double3 blender::double3::interpolate ( const double3 a,
const double3 b,
double  t 
)
inlinestatic

Definition at line 225 of file BLI_double3.hh.

References Freestyle::a, and t.

◆ invert()

void blender::double3::invert ( )
inline

Definition at line 108 of file BLI_double3.hh.

References x, y, and z.

◆ length()

double blender::double3::length ( ) const
inline

Definition at line 77 of file BLI_double3.hh.

References len_v3_db().

◆ length_squared()

double blender::double3::length_squared ( ) const
inline

Definition at line 82 of file BLI_double3.hh.

References len_squared_v3_db().

◆ normalize_and_get_length()

double blender::double3::normalize_and_get_length ( )
inline

Definition at line 65 of file BLI_double3.hh.

References normalize_v3_db().

◆ normalized()

double3 blender::double3::normalized ( ) const
inline

Definition at line 70 of file BLI_double3.hh.

References normalize_v3_v3_db(), and result.

◆ operator const double *()

blender::double3::operator const double * ( ) const
inline

Definition at line 55 of file BLI_double3.hh.

References x.

◆ operator double *()

blender::double3::operator double * ( )
inline

Definition at line 60 of file BLI_double3.hh.

References x.

◆ operator*=() [1/2]

void blender::double3::operator*= ( const double scalar)
inline

Definition at line 144 of file BLI_double3.hh.

◆ operator*=() [2/2]

void blender::double3::operator*= ( const double3 other)
inline

Definition at line 151 of file BLI_double3.hh.

References x, y, and z.

◆ operator+=()

void blender::double3::operator+= ( const double3 b)
inline

Definition at line 120 of file BLI_double3.hh.

References x, y, and z.

◆ operator-=()

void blender::double3::operator-= ( const double3 b)
inline

Definition at line 137 of file BLI_double3.hh.

References x, y, and z.

◆ project()

static double3 blender::double3::project ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 207 of file BLI_double3.hh.

References Freestyle::a, project_v3_v3v3_db(), and result.

◆ reflect()

void blender::double3::reflect ( const double3 normal)
inline

Definition at line 87 of file BLI_double3.hh.

References reflected().

◆ reflected()

double3 blender::double3::reflected ( const double3 normal) const
inline

Definition at line 92 of file BLI_double3.hh.

References normal, reflect_v3_v3v3_db(), and result.

Referenced by reflect().

◆ safe_divide()

static double3 blender::double3::safe_divide ( const double3 a,
const double3 b 
)
inlinestatic

Definition at line 99 of file BLI_double3.hh.

References Freestyle::a, result, x, y, and z.

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const double3 a,
const double3 b 
)
friend

Definition at line 184 of file BLI_double3.hh.

◆ operator* [1/3]

double3 operator* ( const double a,
const double3 b 
)
friend

Definition at line 168 of file BLI_double3.hh.

◆ operator* [2/3]

double3 operator* ( const double3 a,
const double b 
)
friend

Definition at line 163 of file BLI_double3.hh.

◆ operator* [3/3]

double3 operator* ( const double3 a,
const double3 b 
)
friend

Definition at line 158 of file BLI_double3.hh.

◆ operator+

double3 operator+ ( const double3 a,
const double3 b 
)
friend

Definition at line 115 of file BLI_double3.hh.

◆ operator- [1/2]

double3 operator- ( const double3 a)
friend

Definition at line 132 of file BLI_double3.hh.

◆ operator- [2/2]

double3 operator- ( const double3 a,
const double3 b 
)
friend

Definition at line 127 of file BLI_double3.hh.

◆ operator/

double3 operator/ ( const double3 a,
const double b 
)
friend

Definition at line 173 of file BLI_double3.hh.

◆ operator<<

std::ostream& operator<< ( std::ostream &  stream,
const double3 v 
)
friend

Definition at line 189 of file BLI_double3.hh.

◆ operator==

bool operator== ( const double3 a,
const double3 b 
)
friend

Definition at line 179 of file BLI_double3.hh.

Member Data Documentation

◆ x

double blender::double3::x

◆ y

double blender::double3::y

Definition at line 31 of file BLI_double3.hh.

Referenced by dominant_axis(), dot(), invert(), operator*=(), operator+=(), operator-=(), and safe_divide().

◆ z

double blender::double3::z

Definition at line 31 of file BLI_double3.hh.

Referenced by dominant_axis(), dot(), invert(), operator*=(), operator+=(), operator-=(), and safe_divide().


The documentation for this struct was generated from the following files: