Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-12-22 17:13:49 +0400
committerThomas Dinges <blender@dingto.org>2013-12-22 17:14:09 +0400
commit427105e425118841332a31061843c616cf1ab759 (patch)
tree44c8a8484c3c514a9a7dac8da889910b8f5cfb9a /intern
parentff9974ed69bf2b71a569191cc06ae909217ffd2c (diff)
Code cleanup / Cycles: Remove unused interpolation code for hair triangles, we only support cardinal curves.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_curves.cpp52
-rw-r--r--intern/cycles/render/curves.h6
2 files changed, 15 insertions, 43 deletions
diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp
index ed348e6726b..c47f410a742 100644
--- a/intern/cycles/blender/blender_curves.cpp
+++ b/intern/cycles/blender/blender_curves.cpp
@@ -32,9 +32,9 @@ CCL_NAMESPACE_BEGIN
/* Hair curve functions */
void curveinterp_v3_v3v3v3v3(float3 *p, float3 *v1, float3 *v2, float3 *v3, float3 *v4, const float w[4]);
-void interp_weights(float t, float data[4], int type);
+void interp_weights(float t, float data[4]);
float shaperadius(float shape, float root, float tip, float time);
-void InterpolateKeySegments(int seg, int segno, int key, int curve, float3 *keyloc, float *time, ParticleCurveData *CData, int interpolation);
+void InterpolateKeySegments(int seg, int segno, int key, int curve, float3 *keyloc, float *time, ParticleCurveData *CData);
bool ObtainCacheParticleUV(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background, int uv_num);
bool ObtainCacheParticleVcol(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background, int vcol_num);
bool ObtainCacheParticleData(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, ParticleCurveData *CData, bool background);
@@ -67,39 +67,17 @@ ParticleCurveData::~ParticleCurveData()
curvekey_time.clear();
}
-void interp_weights(float t, float data[4], int type)
+void interp_weights(float t, float data[4])
{
- float t2, t3, fc;
-
- switch (type) {
- case CURVE_LINEAR:
- data[0] = 0.0f;
- data[1] = -t + 1.0f;
- data[2] = t;
- data[3] = 0.0f;
- break;
- case CURVE_CARDINAL:
- t2 = t * t;
- t3 = t2 * t;
- fc = 0.71f;
-
- data[0] = -fc * t3 + 2.0f * fc * t2 - fc * t;
- data[1] = (2.0f - fc) * t3 + (fc - 3.0f) * t2 + 1.0f;
- data[2] = (fc - 2.0f) * t3 + (3.0f - 2.0f * fc) * t2 + fc * t;
- data[3] = fc * t3 - fc * t2;
- break;
- case CURVE_BSPLINE:
- t2 = t * t;
- t3 = t2 * t;
-
- data[0] = -0.16666666f * t3 + 0.5f * t2 - 0.5f * t + 0.16666666f;
- data[1] = 0.5f * t3 - t2 + 0.66666666f;
- data[2] = -0.5f * t3 + 0.5f * t2 + 0.5f * t + 0.16666666f;
- data[3] = 0.16666666f * t3;
- break;
- default:
- break;
- }
+ /* Cardinal curve interpolation */
+ float t2 = t * t;
+ float t3 = t2 * t;
+ float fc = 0.71f;
+
+ data[0] = -fc * t3 + 2.0f * fc * t2 - fc * t;
+ data[1] = (2.0f - fc) * t3 + (fc - 3.0f) * t2 + 1.0f;
+ data[2] = (fc - 2.0f) * t3 + (3.0f - 2.0f * fc) * t2 + fc * t;
+ data[3] = fc * t3 - fc * t2;
}
void curveinterp_v3_v3v3v3v3(float3 *p, float3 *v1, float3 *v2, float3 *v3, float3 *v4, const float w[4])
@@ -124,7 +102,7 @@ float shaperadius(float shape, float root, float tip, float time)
/* curve functions */
-void InterpolateKeySegments(int seg, int segno, int key, int curve, float3 *keyloc, float *time, ParticleCurveData *CData, int interpolation)
+void InterpolateKeySegments(int seg, int segno, int key, int curve, float3 *keyloc, float *time, ParticleCurveData *CData)
{
float3 ckey_loc1 = CData->curvekey_co[key];
float3 ckey_loc2 = ckey_loc1;
@@ -147,7 +125,7 @@ void InterpolateKeySegments(int seg, int segno, int key, int curve, float3 *keyl
float t[4];
- interp_weights((float)seg / (float)segno, t, interpolation);
+ interp_weights((float)seg / (float)segno, t);
if(keyloc)
curveinterp_v3_v3v3v3v3(keyloc, &ckey_loc1, &ckey_loc2, &ckey_loc3, &ckey_loc4, t);
@@ -486,7 +464,7 @@ void ExportCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, int resol
float3 ickey_loc = make_float3(0.0f,0.0f,0.0f);
float time = 0.0f;
- InterpolateKeySegments(subv, 1, curvekey, curve, &ickey_loc, &time, CData , 1);
+ InterpolateKeySegments(subv, 1, curvekey, curve, &ickey_loc, &time, CData);
float radius = shaperadius(CData->psys_shape[sys], CData->psys_rootradius[sys], CData->psys_tipradius[sys], time);
diff --git a/intern/cycles/render/curves.h b/intern/cycles/render/curves.h
index 3dd492a29c4..0759d495561 100644
--- a/intern/cycles/render/curves.h
+++ b/intern/cycles/render/curves.h
@@ -52,12 +52,6 @@ typedef enum curve_lines {
CURVE_UNCORRECTED
} curve_lines;
-typedef enum curve_interpolation {
- CURVE_LINEAR,
- CURVE_CARDINAL,
- CURVE_BSPLINE
-} curve_interpolation;
-
class ParticleCurveData {
public: