LuxCore  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
luxrays::cyHairFile Class Reference

HAIR file class. More...

#include <cyHairFile.h>

Collaboration diagram for luxrays::cyHairFile:

Public Member Functions

 cyHairFile ()
 
 ~cyHairFile ()
 
Constant Data Access Methods
const cyHairFileHeaderGetHeader () const
 Use this method to access header data. More...
 
const unsigned short * GetSegmentsArray () const
 Returns segments array (segment count for each hair strand). More...
 
const float * GetPointsArray () const
 Returns points array (xyz coordinates of each hair point). More...
 
const float * GetThicknessArray () const
 Returns thickness array (thickness at each hair point}. More...
 
const float * GetTransparencyArray () const
 Returns transparency array (transparency at each hair point). More...
 
const float * GetColorsArray () const
 Returns colors array (rgb color at each hair point). More...
 
const float * GetUVsArray () const
 Returns uvs array (uv at each hair point). More...
 
Data Access Methods
unsigned short * GetSegmentsArray ()
 Returns segments array (segment count for each hair strand). More...
 
float * GetPointsArray ()
 Returns points array (xyz coordinates of each hair point). More...
 
float * GetThicknessArray ()
 Returns thickness array (thickness at each hair point}. More...
 
float * GetTransparencyArray ()
 Returns transparency array (transparency at each hair point). More...
 
float * GetColorsArray ()
 Returns colors array (rgb color at each hair point). More...
 
float * GetUVsArray ()
 Returns uvs array (uv at each hair point). More...
 
Methods for Setting Array Sizes
void Initialize ()
 Deletes all arrays and initializes the header data. More...
 
void SetHairCount (int count)
 Sets the hair count, re-allocates segments array if necessary. More...
 
void SetPointCount (int count)
 
void SetArrays (int array_types)
 
void SetDefaultSegmentCount (int s)
 Sets default number of segments for all hair strands, which is used if segments array does not exist. More...
 
void SetDefaultThickness (float t)
 Sets default hair strand thickness, which is used if thickness array does not exist. More...
 
void SetDefaultTransparency (float t)
 Sets default hair strand transparency, which is used if transparency array does not exist. More...
 
void SetDefaultColor (float r, float g, float b)
 Sets default hair color, which is used if color array does not exist. More...
 
Load and Save Methods
int LoadFromFile (const char *filename)
 Loads hair data from the given HAIR file. More...
 
int SaveToFile (const char *filename) const
 Saves hair data to the given HAIR file. More...
 
Other Methods
int FillDirectionArray (float *dir)
 

Private Variables and Methods

cyHairFileHeader header
 
unsigned short * segments
 
float * points
 
float * thickness
 
float * transparency
 
float * colors
 
float * uvs
 
float ComputeDirection (float *d, float &d0len, float &d1len, const float *p0, const float *p1, const float *p2)
 

Detailed Description

HAIR file class.

Definition at line 75 of file cyHairFile.h.

Constructor & Destructor Documentation

luxrays::cyHairFile::cyHairFile ( )
inline

Definition at line 78 of file cyHairFile.h.

luxrays::cyHairFile::~cyHairFile ( )
inline

Definition at line 79 of file cyHairFile.h.

Member Function Documentation

float luxrays::cyHairFile::ComputeDirection ( float *  d,
float &  d0len,
float &  d1len,
const float *  p0,
const float *  p1,
const float *  p2 
)
inlineprivate

Definition at line 380 of file cyHairFile.h.

int luxrays::cyHairFile::FillDirectionArray ( float *  dir)
inline

Fills the given direction array with normalized directions using the points array. Call this function if you need strand directions for shading. The given array dir should be allocated as an array of size 3 times point count. Returns point count, returns zero if fails.

Definition at line 303 of file cyHairFile.h.

const float* luxrays::cyHairFile::GetColorsArray ( ) const
inline

Returns colors array (rgb color at each hair point).

Definition at line 90 of file cyHairFile.h.

float* luxrays::cyHairFile::GetColorsArray ( )
inline

Returns colors array (rgb color at each hair point).

Definition at line 101 of file cyHairFile.h.

const cyHairFileHeader& luxrays::cyHairFile::GetHeader ( ) const
inline

Use this method to access header data.

Definition at line 85 of file cyHairFile.h.

const float* luxrays::cyHairFile::GetPointsArray ( ) const
inline

Returns points array (xyz coordinates of each hair point).

Definition at line 87 of file cyHairFile.h.

float* luxrays::cyHairFile::GetPointsArray ( )
inline

Returns points array (xyz coordinates of each hair point).

Definition at line 98 of file cyHairFile.h.

const unsigned short* luxrays::cyHairFile::GetSegmentsArray ( ) const
inline

Returns segments array (segment count for each hair strand).

Definition at line 86 of file cyHairFile.h.

unsigned short* luxrays::cyHairFile::GetSegmentsArray ( )
inline

Returns segments array (segment count for each hair strand).

Definition at line 97 of file cyHairFile.h.

const float* luxrays::cyHairFile::GetThicknessArray ( ) const
inline

Returns thickness array (thickness at each hair point}.

Definition at line 88 of file cyHairFile.h.

float* luxrays::cyHairFile::GetThicknessArray ( )
inline

Returns thickness array (thickness at each hair point}.

Definition at line 99 of file cyHairFile.h.

const float* luxrays::cyHairFile::GetTransparencyArray ( ) const
inline

Returns transparency array (transparency at each hair point).

Definition at line 89 of file cyHairFile.h.

float* luxrays::cyHairFile::GetTransparencyArray ( )
inline

Returns transparency array (transparency at each hair point).

Definition at line 100 of file cyHairFile.h.

const float* luxrays::cyHairFile::GetUVsArray ( ) const
inline

Returns uvs array (uv at each hair point).

Definition at line 91 of file cyHairFile.h.

float* luxrays::cyHairFile::GetUVsArray ( )
inline

Returns uvs array (uv at each hair point).

Definition at line 102 of file cyHairFile.h.

void luxrays::cyHairFile::Initialize ( )
inline

Deletes all arrays and initializes the header data.

Definition at line 109 of file cyHairFile.h.

References CY_HAIR_FILE_INFO_SIZE.

int luxrays::cyHairFile::SaveToFile ( const char *  filename) const
inline
void luxrays::cyHairFile::SetArrays ( int  array_types)
inline

Use this function to allocate/delete arrays. Before you call this method set hair count and point count. Note that a valid HAIR file should always have points array.

Definition at line 172 of file cyHairFile.h.

References CY_HAIR_FILE_COLORS_BIT, CY_HAIR_FILE_POINTS_BIT, CY_HAIR_FILE_SEGMENTS_BIT, CY_HAIR_FILE_THICKNESS_BIT, CY_HAIR_FILE_TRANSPARENCY_BIT, and CY_HAIR_FILE_UVS_BIT.

void luxrays::cyHairFile::SetDefaultColor ( float  r,
float  g,
float  b 
)
inline

Sets default hair color, which is used if color array does not exist.

Definition at line 199 of file cyHairFile.h.

void luxrays::cyHairFile::SetDefaultSegmentCount ( int  s)
inline

Sets default number of segments for all hair strands, which is used if segments array does not exist.

Definition at line 190 of file cyHairFile.h.

void luxrays::cyHairFile::SetDefaultThickness ( float  t)
inline

Sets default hair strand thickness, which is used if thickness array does not exist.

Definition at line 193 of file cyHairFile.h.

void luxrays::cyHairFile::SetDefaultTransparency ( float  t)
inline

Sets default hair strand transparency, which is used if transparency array does not exist.

Definition at line 196 of file cyHairFile.h.

void luxrays::cyHairFile::SetHairCount ( int  count)
inline

Sets the hair count, re-allocates segments array if necessary.

Definition at line 134 of file cyHairFile.h.

void luxrays::cyHairFile::SetPointCount ( int  count)
inline

Definition at line 144 of file cyHairFile.h.

Member Data Documentation

float* luxrays::cyHairFile::colors
private

Definition at line 376 of file cyHairFile.h.

cyHairFileHeader luxrays::cyHairFile::header
private

Definition at line 371 of file cyHairFile.h.

float* luxrays::cyHairFile::points
private

Definition at line 373 of file cyHairFile.h.

unsigned short* luxrays::cyHairFile::segments
private

Definition at line 372 of file cyHairFile.h.

float* luxrays::cyHairFile::thickness
private

Definition at line 374 of file cyHairFile.h.

float* luxrays::cyHairFile::transparency
private

Definition at line 375 of file cyHairFile.h.

float* luxrays::cyHairFile::uvs
private

Definition at line 377 of file cyHairFile.h.


The documentation for this class was generated from the following file: