Blender  V3.3
Functions
blender/curves.cpp File Reference
#include <optional>
#include "blender/sync.h"
#include "blender/util.h"
#include "scene/attribute.h"
#include "scene/camera.h"
#include "scene/curves.h"
#include "scene/hair.h"
#include "scene/object.h"
#include "scene/scene.h"
#include "util/color.h"
#include "util/foreach.h"
#include "util/hash.h"
#include "util/log.h"

Go to the source code of this file.

Functions

static float shaperadius (float shape, float root, float tip, float time)
 
static bool ObtainCacheParticleData (Hair *hair, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background)
 
static bool ObtainCacheParticleUV (Hair *hair, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background, int uv_num)
 
static bool ObtainCacheParticleVcol (Hair *hair, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background, int vcol_num)
 
static void ExportCurveSegments (Scene *scene, Hair *hair, ParticleCurveData *CData)
 
static float4 CurveSegmentMotionCV (ParticleCurveData *CData, int sys, int curve, int curvekey)
 
static float4 LerpCurveSegmentMotionCV (ParticleCurveData *CData, int sys, int curve, float step)
 
static void export_hair_motion_validate_attribute (Hair *hair, int motion_step, int num_motion_keys, bool have_motion)
 
static void ExportCurveSegmentsMotion (Hair *hair, ParticleCurveData *CData, int motion_step)
 
static std::optional< BL::FloatAttribute > find_curves_radius_attribute (BL::Curves b_curves)
 
static BL::FloatVectorAttribute find_curves_position_attribute (BL::Curves b_curves)
 
template<typename TypeInCycles , typename GetValueAtIndex >
static void fill_generic_attribute (BL::Curves &b_curves, TypeInCycles *data, const AttributeElement element, const GetValueAtIndex &get_value_at_index)
 
static void attr_create_motion (Hair *hair, BL::Attribute &b_attribute, const float motion_scale)
 
static void attr_create_uv (AttributeSet &attributes, BL::Curves &b_curves, BL::Attribute &b_attribute, const ustring name)
 
static void attr_create_generic (Scene *scene, Hair *hair, BL::Curves &b_curves, const bool need_motion, const float motion_scale)
 
static float4 hair_point_as_float4 (BL::FloatVectorAttribute b_attr_position, std::optional< BL::FloatAttribute > b_attr_radius, const int index)
 
static float4 interpolate_hair_points (BL::FloatVectorAttribute b_attr_position, std::optional< BL::FloatAttribute > b_attr_radius, const int first_point_index, const int num_points, const float step)
 
static void export_hair_curves (Scene *scene, Hair *hair, BL::Curves b_curves, const bool need_motion, const float motion_scale)
 
static void export_hair_curves_motion (Hair *hair, BL::Curves b_curves, int motion_step)
 

Function Documentation

◆ attr_create_generic()

static void attr_create_generic ( Scene scene,
Hair hair,
BL::Curves b_curves,
const bool  need_motion,
const float  motion_scale 
)
static

◆ attr_create_motion()

static void attr_create_motion ( Hair hair,
BL::Attribute b_attribute,
const float  motion_scale 
)
static

◆ attr_create_uv()

static void attr_create_uv ( AttributeSet attributes,
BL::Curves b_curves,
BL::Attribute b_attribute,
const ustring  name 
)
static

◆ CurveSegmentMotionCV()

static float4 CurveSegmentMotionCV ( ParticleCurveData CData,
int  sys,
int  curve,
int  curvekey 
)
static

◆ export_hair_curves()

static void export_hair_curves ( Scene scene,
Hair hair,
BL::Curves  b_curves,
const bool  need_motion,
const float  motion_scale 
)
static

◆ export_hair_curves_motion()

static void export_hair_curves_motion ( Hair hair,
BL::Curves  b_curves,
int  motion_step 
)
static

◆ export_hair_motion_validate_attribute()

static void export_hair_motion_validate_attribute ( Hair hair,
int  motion_step,
int  num_motion_keys,
bool  have_motion 
)
static

◆ ExportCurveSegments()

static void ExportCurveSegments ( Scene scene,
Hair hair,
ParticleCurveData CData 
)
static

◆ ExportCurveSegmentsMotion()

static void ExportCurveSegmentsMotion ( Hair hair,
ParticleCurveData CData,
int  motion_step 
)
static

◆ fill_generic_attribute()

template<typename TypeInCycles , typename GetValueAtIndex >
static void fill_generic_attribute ( BL::Curves b_curves,
TypeInCycles *  data,
const AttributeElement  element,
const GetValueAtIndex &  get_value_at_index 
)
static

Definition at line 653 of file blender/curves.cpp.

References ATTR_ELEMENT_CURVE, ATTR_ELEMENT_CURVE_KEY, data, and element.

Referenced by attr_create_generic(), and attr_create_uv().

◆ find_curves_position_attribute()

static BL::FloatVectorAttribute find_curves_position_attribute ( BL::Curves  b_curves)
static

Definition at line 633 of file blender/curves.cpp.

References Attribute.

Referenced by export_hair_curves(), and export_hair_curves_motion().

◆ find_curves_radius_attribute()

static std::optional<BL::FloatAttribute> find_curves_radius_attribute ( BL::Curves  b_curves)
static

Definition at line 616 of file blender/curves.cpp.

References Attribute.

Referenced by export_hair_curves(), and export_hair_curves_motion().

◆ hair_point_as_float4()

static float4 hair_point_as_float4 ( BL::FloatVectorAttribute  b_attr_position,
std::optional< BL::FloatAttribute >  b_attr_radius,
const int  index 
)
static

Definition at line 841 of file blender/curves.cpp.

References float3_to_float4(), and get_float3().

Referenced by export_hair_curves_motion(), and interpolate_hair_points().

◆ interpolate_hair_points()

static float4 interpolate_hair_points ( BL::FloatVectorAttribute  b_attr_position,
std::optional< BL::FloatAttribute >  b_attr_radius,
const int  first_point_index,
const int  num_points,
const float  step 
)
static

Definition at line 850 of file blender/curves.cpp.

References blender::math::clamp(), float(), hair_point_as_float4(), lerp(), min, and t.

Referenced by export_hair_curves_motion().

◆ LerpCurveSegmentMotionCV()

static float4 LerpCurveSegmentMotionCV ( ParticleCurveData CData,
int  sys,
int  curve,
float  step 
)
static

◆ ObtainCacheParticleData()

static bool ObtainCacheParticleData ( Hair hair,
BL::Mesh b_mesh,
BL::Object b_ob,
ParticleCurveData CData,
bool  background 
)
static

◆ ObtainCacheParticleUV()

static bool ObtainCacheParticleUV ( Hair hair,
BL::Mesh b_mesh,
BL::Object b_ob,
ParticleCurveData CData,
bool  background,
int  uv_num 
)
static

◆ ObtainCacheParticleVcol()

static bool ObtainCacheParticleVcol ( Hair hair,
BL::Mesh b_mesh,
BL::Object b_ob,
ParticleCurveData CData,
bool  background,
int  vcol_num 
)
static

◆ shaperadius()

static float shaperadius ( float  shape,
float  root,
float  tip,
float  time 
)
static

Definition at line 31 of file blender/curves.cpp.

References powf, and time.

Referenced by CurveSegmentMotionCV(), and ExportCurveSegments().