BLinePoint curr;
BLinePoint begin; // begin of dynamic group
BLinePoint end; // end of dynamic group
- Time blend_time;
int dist_from_begin(0), dist_from_end(0);
BLinePoint ret;
- Time off_time;
- Time on_time;
+ Time off_time, on_time;
if(!rising)
{
try{ on_time=iter->find_next(t)->get_time(); }
catch(...) { on_time=Time::end(); }
}
- blend_time=off_time;
- curr=(*iter->value_node)(on_time).get(curr);
+ curr=(*iter->value_node)(on_time).get(curr);
// curr=(*iter->value_node)(t).get(curr);
// Find "end" of dynamic group
for(++end_iter;end_iter!=list.end();++end_iter)
if(end_iter->amount_at_time(t)>amount)
{
- end=(*end_iter->value_node)(blend_time).get(prev);
+ end=(*end_iter->value_node)(off_time).get(prev);
break;
}
if(get_loop())
{
end_iter=first_iter;
- end=(*end_iter->value_node)(blend_time).get(prev);
+ end=(*end_iter->value_node)(off_time).get(prev);
// end=first;
}
else
{
// Writeme!
end_iter=first_iter;
- end=(*end_iter->value_node)(blend_time).get(prev);
+ end=(*end_iter->value_node)(off_time).get(prev);
// end=first;
}
}
if(begin_iter->amount_at_time(t)>amount)
{
- begin=(*begin_iter->value_node)(blend_time).get(prev);
+ begin=(*begin_iter->value_node)(off_time).get(prev);
break;
}
}while(begin_iter!=iter);
if(get_loop())
{
begin_iter=first_iter;
- begin=(*begin_iter->value_node)(blend_time).get(prev);
+ begin=(*begin_iter->value_node)(off_time).get(prev);
// begin=first;
}
else
{
// Writeme!
begin_iter=first_iter;
- begin=(*begin_iter->value_node)(blend_time).get(prev);
+ begin=(*begin_iter->value_node)(off_time).get(prev);
// begin=first;
}
}
next_scale=next_tangent_scalar;
//ret.set_vertex((curr.get_vertex()-ret.get_vertex())*amount+ret.get_vertex());
- if(false)
- {
- // My first try
- Point ref_point_begin(
- (
- (*begin_iter->value_node)(off_time).get(prev).get_vertex() +
- (*end_iter->value_node)(off_time).get(prev).get_vertex()
- ) * 0.5
- );
- Point ref_point_end(
- (
- (*begin_iter->value_node)(on_time).get(prev).get_vertex() +
- (*end_iter->value_node)(on_time).get(prev).get_vertex()
- ) * 0.5
- );
- Point ref_point_now(
- (
- (*begin_iter->value_node)(t).get(prev).get_vertex() +
- (*end_iter->value_node)(t).get(prev).get_vertex()
- ) * 0.5
- );
- Point ref_point_linear((ref_point_end-ref_point_begin)*amount+ref_point_begin);
-
- ret.set_vertex(
- (curr.get_vertex()-ret.get_vertex())*amount+ret.get_vertex() +
- (ref_point_now-ref_point_linear)
- );
- ret.set_tangent1((curr.get_tangent1()-ret.get_tangent1())*amount+ret.get_tangent1());
- ret.set_split_tangent_flag(curr.get_split_tangent_flag());
- if(ret.get_split_tangent_flag())
- ret.set_tangent2((curr.get_tangent2()-ret.get_tangent2())*amount+ret.get_tangent2());
- }
- else
+// if(false)
+// {
+// // My first try
+// Point ref_point_begin(
+// (
+// (*begin_iter->value_node)(off_time).get(prev).get_vertex() +
+// (*end_iter->value_node)(off_time).get(prev).get_vertex()
+// ) * 0.5
+// );
+// Point ref_point_end(
+// (
+// (*begin_iter->value_node)(on_time).get(prev).get_vertex() +
+// (*end_iter->value_node)(on_time).get(prev).get_vertex()
+// ) * 0.5
+// );
+// Point ref_point_now(
+// (
+// (*begin_iter->value_node)(t).get(prev).get_vertex() +
+// (*end_iter->value_node)(t).get(prev).get_vertex()
+// ) * 0.5
+// );
+// Point ref_point_linear((ref_point_end-ref_point_begin)*amount+ref_point_begin);
+//
+// ret.set_vertex(
+// (curr.get_vertex()-ret.get_vertex())*amount+ret.get_vertex() +
+// (ref_point_now-ref_point_linear)
+// );
+// ret.set_tangent1((curr.get_tangent1()-ret.get_tangent1())*amount+ret.get_tangent1());
+// ret.set_split_tangent_flag(curr.get_split_tangent_flag());
+// if(ret.get_split_tangent_flag())
+// ret.set_tangent2((curr.get_tangent2()-ret.get_tangent2())*amount+ret.get_tangent2());
+// }
+// else
{
// My second try
curr_coord_sys[1]=curr_coord_sys[0].perp();
}
- /*
- on_coord_origin=(*end_iter->value_node)(on_time).get(prev).get_vertex();
- on_coord_sys[0]=(
- (*begin_iter->value_node)(on_time).get(prev).get_vertex() -
- on_coord_origin
- ).norm();
- on_coord_sys[1]=on_coord_sys[0].perp();
-
- curr_coord_origin=(*end_iter->value_node)(t).get(prev).get_vertex();
- curr_coord_sys[0]=(
- (*begin_iter->value_node)(t).get(prev).get_vertex() -
- curr_coord_origin
- ).norm();
- curr_coord_sys[1]=curr_coord_sys[0].perp();
- */
+ /* The code that was here before used just end_iter as the origin, rather than the mid-point */
+
+ // For each of the 3 coordinate systems we've just defined, we convert a point and tangent(s) into that system
// Convert point where vertex is fully 'off'
Point trans_off_point;