Commit: ea8b6c112b6b9d959b8ec9479625fc455942ae18
Author: Lukas Tönne
Date:   Mon Aug 25 17:43:03 2014 +0200
Branches: hair_system
https://developer.blender.org/rBea8b6c112b6b9d959b8ec9479625fc455942ae18

Renamed t0/t1 times to clarify their meaning.

These are usually a larger time interval than the time step, they define
the interpolation for root animation.

===================================================================

M       source/blender/hair/intern/HAIR_scene.cpp
M       source/blender/hair/intern/HAIR_solver.cpp
M       source/blender/hair/intern/HAIR_solver.h

===================================================================

diff --git a/source/blender/hair/intern/HAIR_scene.cpp 
b/source/blender/hair/intern/HAIR_scene.cpp
index fe78e21..ebdbc0d 100644
--- a/source/blender/hair/intern/HAIR_scene.cpp
+++ b/source/blender/hair/intern/HAIR_scene.cpp
@@ -84,7 +84,7 @@ SolverData *SceneConverter::build_solver_data(Scene *scene, 
Object *ob, DerivedM
        Curve *solver_curves = data->curves;
        Point *solver_points = data->points;
        
-       data->t0 = data->t1 = time;
+       data->root0_time = data->root1_time = time;
        
        /* copy scene data to solver data */
        Point *point = solver_points;
@@ -222,7 +222,7 @@ SolverData *SceneConverter::build_solver_data(Scene *scene, 
Object *ob, DerivedM
        Curve *solver_curves = data->curves;
        Point *solver_points = data->points;
        
-       data->t0 = data->t1 = time;
+       data->root0_time = data->root1_time = time;
        
        /* copy scene data to solver data */
        Point *point = solver_points;
@@ -321,8 +321,8 @@ void 
SceneConverter::update_solver_data_externals(SolverData *data, SolverForces
        Curve *solver_curves = data->curves;
        int totcurves = data->totcurves;
        
-       data->t0 = data->t1;
-       data->t1 = time;
+       data->root0_time = data->root1_time;
+       data->root1_time = time;
        
        for (i = 0; i < totcurves; ++i) {
                HairCurve *hair = hsys->curves + i;
@@ -347,8 +347,8 @@ void 
SceneConverter::update_solver_data_externals(SolverData *data, SolverForces
        Curve *solver_curves = data->curves;
        int totcurves = data->totcurves;
        
-       data->t0 = data->t1;
-       data->t1 = time;
+       data->root0_time = data->root1_time;
+       data->root1_time = time;
        
        for (i = 0; i < totcurves; ++i) {
                ParticleData *pa = psys->particles + i;
diff --git a/source/blender/hair/intern/HAIR_solver.cpp 
b/source/blender/hair/intern/HAIR_solver.cpp
index d60ef00..f897baa 100644
--- a/source/blender/hair/intern/HAIR_solver.cpp
+++ b/source/blender/hair/intern/HAIR_solver.cpp
@@ -599,15 +599,15 @@ void Solver::do_integration(float time, float timestep, 
const SolverTaskData &da
        for (int step = 0; step < totsteps; ++step) {
                
                /* calculate Point.force_accum vectors */
-               calc_forces(m_params, m_forces, steptime, dt, 
restitution_scale, m_data->t0, m_data->t1, data, contacts);
+               calc_forces(m_params, m_forces, steptime, dt, 
restitution_scale, m_data->root0_time, m_data->root1_time, data, contacts);
                
-               do_velocity_integration(m_params, steptime, dt, m_data->t0, 
m_data->t1, data);
+               do_velocity_integration(m_params, steptime, dt, 
m_data->root0_time, m_data->root1_time, data);
                
                steptime += dt;
        }
        
        /* apply positional changes */
-       apply_velocity(data, time, timestep, m_data->t0, m_data->t1);
+       apply_velocity(data, time, timestep, m_data->root0_time, 
m_data->root1_time);
 }
 
 struct SolverPoolData {
diff --git a/source/blender/hair/intern/HAIR_solver.h 
b/source/blender/hair/intern/HAIR_solver.h
index de8922a..ddfe31f 100644
--- a/source/blender/hair/intern/HAIR_solver.h
+++ b/source/blender/hair/intern/HAIR_solver.h
@@ -57,7 +57,10 @@ struct SolverData {
        int totcurves;
        int totpoints;
        
-       float t0, t1;
+       /* times of root0/root1, interpolation happens between these times.
+        * note: NOT synonymous with the timestep, which can be somewhere 
between these two times!
+        */
+       float root0_time, root1_time;
        
        rbGhostObject rb_ghost;
        btBoxShape bt_shape;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to