var searchIndex = {}; searchIndex["envelope"] = {"doc":"","items":[[5,"lerp","envelope::interpolation","Performs linear interpolation.\nA linear interpolation consists of two states 'a' and 'b'.\nThe 't' variable is a factor between 0 and 1 that\ngives weight to 'a' or 'b'.\nWhen 't' is zero then 'a' has full weight.\nWhen 't' is one then 'b' has full weight.",null,null],[5,"quad_bez","","Performs quadratic beziér interpolation.\nThis is done by nesting linear interpolations.\nFor more information, see:",null,null],[5,"cub_bez","","Performs cubic beziér interpolation.\nThis is done by interpolation between two quadratic beziér.\nFor more information, see:",null,null],[8,"Spatial","","Used for interpolation over spatial structures.",null,null],[16,"Scalar","","The scalar type.",0,null],[10,"add","","Add",0,null],[10,"sub","","Subtract",0,null],[10,"scale","","Scales with a scalar.",0,null],[4,"EaseFunction","","",null,null],[13,"QuadraticIn","","",1,null],[13,"QuadraticOut","","",1,null],[13,"QuadraticInOut","","",1,null],[13,"CubicIn","","",1,null],[13,"CubicOut","","",1,null],[13,"CubicInOut","","",1,null],[13,"QuarticIn","","",1,null],[13,"QuarticOut","","",1,null],[13,"QuarticInOut","","",1,null],[13,"QuinticIn","","",1,null],[13,"QuinticOut","","",1,null],[13,"QuinticInOut","","",1,null],[13,"SineIn","","",1,null],[13,"SineOut","","",1,null],[13,"SineInOut","","",1,null],[13,"CircularIn","","",1,null],[13,"CircularOut","","",1,null],[13,"CircularInOut","","",1,null],[13,"ExponentialIn","","",1,null],[13,"ExponentialOut","","",1,null],[13,"ExponentialInOut","","",1,null],[13,"ElasticIn","","",1,null],[13,"ElasticOut","","",1,null],[13,"ElasticInOut","","",1,null],[13,"BackIn","","",1,null],[13,"BackOut","","",1,null],[13,"BackInOut","","",1,null],[13,"BounceIn","","",1,null],[13,"BounceOut","","",1,null],[13,"BounceInOut","","",1,null],[8,"Ease","","",null,null],[10,"calc","","Calculate the eased value, normalized",2,null],[10,"quadratic_in","","",2,null],[10,"quadratic_out","","",2,null],[10,"quadratic_in_out","","",2,null],[10,"cubic_in","","",2,null],[10,"cubic_out","","",2,null],[10,"cubic_in_out","","",2,null],[10,"quartic_in","","",2,null],[10,"quartic_out","","",2,null],[10,"quartic_in_out","","",2,null],[10,"quintic_in","","",2,null],[10,"quintic_out","","",2,null],[10,"quintic_in_out","","",2,null],[10,"sine_in","","",2,null],[10,"sine_out","","",2,null],[10,"sine_in_out","","",2,null],[10,"circular_in","","",2,null],[10,"circular_out","","",2,null],[10,"circular_in_out","","",2,null],[10,"exponential_in","","",2,null],[10,"exponential_out","","",2,null],[10,"exponential_in_out","","",2,null],[10,"elastic_in","","",2,null],[10,"elastic_out","","",2,null],[10,"elastic_in_out","","",2,null],[10,"back_in","","",2,null],[10,"back_out","","",2,null],[10,"back_in_out","","",2,null],[10,"bounce_in","","",2,null],[10,"bounce_out","","",2,null],[10,"bounce_in_out","","",2,null],[3,"BezierPoint","envelope","A type whose interpolation may involve some quadratic bezier curve.",null,null],[12,"x","","",3,null],[12,"y","","",3,null],[12,"curve","","",3,null],[3,"EasePoint","","A type whose interpolation may involve some sort of easing.",null,null],[12,"x","","",4,null],[12,"y","","",4,null],[12,"maybe_ease_fn","","",4,null],[11,"decode","","",3,{"inputs":[{"name":"__dxy"}],"output":{"name":"result"}}],[11,"encode","","",3,null],[11,"clone","","",3,null],[11,"fmt","","",3,null],[11,"new","","Constructor for a BezierPoint.",3,{"inputs":[{"name":"x"},{"name":"y"},{"name":"scalar"}],"output":{"name":"bezierpoint"}}],[11,"x_to_scalar","","",3,{"inputs":[{"name":"x"}],"output":{"name":"scalar"}}],[11,"x","","",3,null],[11,"y","","",3,null],[11,"interpolate","","Interpolate between two points and return y for the given x.",3,{"inputs":[{"name":"x"},{"name":"self"},{"name":"self"}],"output":{"name":"y"}}],[11,"clone","","",4,null],[11,"new","","Constructor for an EasePoint.",4,{"inputs":[{"name":"x"},{"name":"y"},{"name":"option"}],"output":{"name":"easepoint"}}],[11,"x_to_scalar","","",4,{"inputs":[{"name":"x"}],"output":{"name":"scalar"}}],[11,"x","","",4,null],[11,"y","","",4,null],[11,"interpolate","","",4,{"inputs":[{"name":"x"},{"name":"self"},{"name":"self"}],"output":{"name":"y"}}],[0,"interpolate","","",null,null],[5,"linear","envelope::interpolate","Interpolate linearly between the start and end points.",null,{"inputs":[{"name":"x"},{"name":"p"},{"name":"p"}],"output":{"name":"y"}}],[5,"ease","","Interpolate between the start and end points using the given easing function.",null,{"inputs":[{"name":"x"},{"name":"p"},{"name":"p"},{"name":"easefunction"}],"output":{"name":"y"}}],[5,"bezier","","Interpolate between the given start and end points given some bezier curve.",null,{"inputs":[{"name":"x"},{"name":"p"},{"name":"p"},{"name":"scalar"}],"output":{"name":"y"}}],[8,"Envelope","envelope","Types representable as an Envelope.",null,null],[16,"Points","","An iterator yielding references to `P`s.",5,null],[10,"points","","An iterator yielding the `Point`s of the Envelope.",5,null],[11,"point_idx_before","","The index of the `Point` that comes directly before the given `x`.",5,null],[11,"point_idx_on_or_before","","The index of the `Point` that either lands on or comes directly before the given `x`.",5,null],[11,"point_idx_after","","The index of the `Point` that comes directly after the given `x`.",5,null],[11,"point_idx_on_or_after","","The index of the `Point` that comes directly after the given `x`.",5,null],[11,"point_before","","A reference to the first point that comes before the given `x`.",5,null],[11,"point_on_or_before","","A reference to the first point that is equal to or comes before the given `x`.",5,null],[11,"point_before_with_idx","","A reference to the first point that comes before the given `x` along with its index.",5,null],[11,"point_on_or_before_with_idx","","A reference to the first point that is equal to or comes before the given `x` along with\nits index.",5,null],[11,"point_after","","A reference to the first point that comes after the given `x`.",5,null],[11,"point_on_or_after","","A reference to the first point that is equal to or comes after the given `x`.",5,null],[11,"point_after_with_idx","","A reference to the first point that comes after the given `x` along with its index.",5,null],[11,"point_on_or_after_with_idx","","A reference to the first point that is equal to or comes after the given `x` along with\nits index.",5,null],[11,"point_at","","A reference to the first point lying directly on the given `x` if there is one.",5,null],[11,"point_at_with_idx","","A reference to the first point (along with it's index) lying directly on the given `x` if\nthere is one.",5,null],[11,"surrounding_points","","The points that lie on either side of the given `x`.",5,null],[11,"closest_point","","A reference point that is closest to the given `x` if there is one.",5,null],[11,"y","","Return `y` for the given `x`.",5,null],[8,"Point","","Implement this for types to be used as points on an Envelope.",null,null],[10,"x_to_scalar","","Convert X to Y's Scalar.",6,{"inputs":[{"name":"x"}],"output":{"name":"scalar"}}],[10,"x","","X (often associated with time).",6,null],[10,"y","","Y (often associated with some value).",6,null],[11,"interpolate","","Interpolate between two points and return y for the given x.",6,{"inputs":[{"name":"x"},{"name":"self"},{"name":"self"}],"output":{"name":"y"}}],[11,"eq","envelope::interpolation","",1,null],[11,"clone","","",1,null],[11,"point_idx_before","envelope","The index of the `Point` that comes directly before the given `x`.",5,null],[11,"point_idx_on_or_before","","The index of the `Point` that either lands on or comes directly before the given `x`.",5,null],[11,"point_idx_after","","The index of the `Point` that comes directly after the given `x`.",5,null],[11,"point_idx_on_or_after","","The index of the `Point` that comes directly after the given `x`.",5,null],[11,"point_before","","A reference to the first point that comes before the given `x`.",5,null],[11,"point_on_or_before","","A reference to the first point that is equal to or comes before the given `x`.",5,null],[11,"point_before_with_idx","","A reference to the first point that comes before the given `x` along with its index.",5,null],[11,"point_on_or_before_with_idx","","A reference to the first point that is equal to or comes before the given `x` along with\nits index.",5,null],[11,"point_after","","A reference to the first point that comes after the given `x`.",5,null],[11,"point_on_or_after","","A reference to the first point that is equal to or comes after the given `x`.",5,null],[11,"point_after_with_idx","","A reference to the first point that comes after the given `x` along with its index.",5,null],[11,"point_on_or_after_with_idx","","A reference to the first point that is equal to or comes after the given `x` along with\nits index.",5,null],[11,"point_at","","A reference to the first point lying directly on the given `x` if there is one.",5,null],[11,"point_at_with_idx","","A reference to the first point (along with it's index) lying directly on the given `x` if\nthere is one.",5,null],[11,"surrounding_points","","The points that lie on either side of the given `x`.",5,null],[11,"closest_point","","A reference point that is closest to the given `x` if there is one.",5,null],[11,"y","","Return `y` for the given `x`.",5,null],[11,"interpolate","","Interpolate between two points and return y for the given x.",6,{"inputs":[{"name":"x"},{"name":"self"},{"name":"self"}],"output":{"name":"y"}}]],"paths":[[8,"Spatial"],[4,"EaseFunction"],[8,"Ease"],[3,"BezierPoint"],[3,"EasePoint"],[8,"Envelope"],[8,"Point"]]}; initSearch(searchIndex);