var searchIndex = {}; searchIndex["zoom"] = {"doc":"Please do not "use zoom::*" or the zoom::Box type will override std::boxed::Box!","items":[[0,"vector","zoom","Contains primitive objects and traits for performing vector geometry",null,null],[0,"cartesian1","zoom::vector","",null,null],[3,"Cartesian1","zoom::vector::cartesian1","",null,null],[12,"x","","",0,null],[11,"clone","","",0,null],[11,"new","","",0,{"inputs":[{"name":"d"}],"output":{"name":"self"}}],[11,"zero","","",0,{"inputs":[],"output":{"name":"self"}}],[11,"is_zero","","",0,null],[11,"add","","",0,null],[11,"sub","","",0,null],[11,"mul","","",0,null],[11,"div","","",0,null],[11,"neg","","",0,null],[11,"space_ball","","",0,{"inputs":[{"name":"d"}],"output":{"name":"d"}}],[11,"dot","","",0,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"d"}}],[11,"space_box","","",0,null],[11,"displacement","","",0,null],[0,"cartesian2","zoom::vector","",null,null],[3,"Cartesian2","zoom::vector::cartesian2","",null,null],[12,"x","","",1,null],[12,"y","","",1,null],[11,"clone","","",1,null],[11,"new","","",1,{"inputs":[{"name":"d"},{"name":"d"}],"output":{"name":"self"}}],[11,"zero","","",1,{"inputs":[],"output":{"name":"self"}}],[11,"is_zero","","",1,null],[11,"add","","",1,null],[11,"sub","","",1,null],[11,"mul","","",1,null],[11,"div","","",1,null],[11,"neg","","",1,null],[11,"space_ball","","",1,{"inputs":[{"name":"d"}],"output":{"name":"d"}}],[11,"dot","","",1,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"d"}}],[11,"space_box","","",1,null],[11,"displacement","","",1,null],[11,"displacement_squared","","",1,null],[0,"cartesian3","zoom::vector","",null,null],[3,"Cartesian3","zoom::vector::cartesian3","",null,null],[12,"x","","",2,null],[12,"y","","",2,null],[12,"z","","",2,null],[11,"clone","","",2,null],[11,"new","","",2,{"inputs":[{"name":"d"},{"name":"d"},{"name":"d"}],"output":{"name":"self"}}],[11,"zero","","",2,{"inputs":[],"output":{"name":"self"}}],[11,"is_zero","","",2,null],[11,"add","","",2,null],[11,"sub","","",2,null],[11,"mul","","",2,null],[11,"div","","",2,null],[11,"neg","","",2,null],[11,"space_ball","","",2,{"inputs":[{"name":"d"}],"output":{"name":"d"}}],[11,"dot","","",2,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"d"}}],[11,"space_box","","",2,null],[11,"displacement","","",2,null],[11,"displacement_squared","","",2,null],[11,"cross","","",2,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"self"}}],[0,"space","zoom::vector","",null,null],[3,"Box","zoom::vector::space","A Box with a center at origin and one of the corners created by offset",null,null],[12,"origin","","",3,null],[12,"offset","","",3,null],[8,"Toroid","","Anything that implements this trait permits its space to be infinitely wrapping.",null,null],[10,"wrap_delta","","Wrap a delta vector between two positions inside of the toroidal space",4,null],[10,"wrap_position","","Wrap a position to keep it inside of the space",4,null],[8,"Ball","","",null,null],[10,"radius","","",5,null],[11,"space","","",5,null],[11,"new","","",3,{"inputs":[{"name":"v"},{"name":"v"}],"output":{"name":"self"}}],[11,"space","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"wrap_delta","","",3,null],[11,"wrap_position","","",3,null],[11,"clone","","",3,null],[8,"Vector","zoom::vector","Trait that implements all the functions necessary for any n-dimensional vector",null,null],[10,"space_ball","","Returns the space contained by an n-sphere with edge displacement d in the dimensional system of this vector",6,{"inputs":[{"name":"d"}],"output":{"name":"d"}}],[10,"dot","","Returns the result of the cos of the angle between two vectors multiplied by their magnitudes",6,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"d"}}],[10,"space_box","","Returns the space contained by the vector relative to the origin forming a box",6,null],[10,"displacement","","Returns the length of a vector",6,null],[11,"displacement_squared","","Returns the squared length of a vector; this is more efficient than displacement() for cartesian vectors",6,null],[11,"normalized","","Returns a vector in the same direction as this one, but with length 1",6,null],[11,"normalize","","Make this vector normalized().",6,null],[8,"CrossVector","","CrossVector is a Vector that has dimensions such that the cross product can be computed.",null,null],[10,"cross","","",7,{"inputs":[{"name":"self"},{"name":"self"}],"output":{"name":"self"}}],[0,"particle","zoom","",null,null],[5,"gravitate","zoom::particle","Apply proper attraction between two physics particles based on their quanta and position.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"}],"output":null}],[5,"gravitate_delta","","Use a special comp_delta closure to compute the delta from the first to the second param",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"f"}],"output":null}],[5,"gravitate_radius","","If gravitating at a distance greater than the net radius, then gravitational interaction is applied as if the\nparticles are point particles. If the distance is less than the radius, then the interaction happens as if the\ngravitational quanta (mass) is evenly distributed and gravitational flux is used instead, which causes the\ninteraction to become proportional to the radius, meaning that as the radius approaches zero, so does the force.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"}],"output":null}],[5,"gravitate_radius_delta","","Same as gravitate_radius, but uses a special comp_delta closure to compute the delta between the particles",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"f"}],"output":null}],[5,"gravitate_radius_squared","","This is the same as the radius function, but the sum of the radii squared is passed separately to avoid overhead.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"}],"output":null}],[5,"gravitate_radius_squared_delta","","Same as gravitate_radius_squared, but uses a special comp_delta closure to compute the delta between the particles",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"},{"name":"f"}],"output":null}],[5,"hooke","","Apply spring forces between two particles.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"}],"output":null}],[5,"hooke_delta","","Same as hooke, but uses a comp_delta closure to compute the distance from the first to second parameter",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"f"}],"output":null}],[5,"hooke_equilibrium","","Apply spring forces between two particles with specified equilibrium distance.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"}],"output":null}],[5,"hooke_equilibrium_delta","","Same as hooke_equilibrium, but uses a comp_delta closure to compute the distance from the first to second parameter",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"},{"name":"f"}],"output":null}],[5,"lorentz","","Apply lorentz forces between two PhysicsParticle objects based on quanta, position, and velocity.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"}],"output":null}],[5,"lorentz_delta","","Same as lorentz, but uses a comp_delta closure to compute the distance from the first to second parameter",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"f"}],"output":null}],[5,"lorentz_radius","","Apply lorentz forces between two PhysicsParticle + Ball objects assuming uniformly distributed quanta.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"}],"output":null}],[5,"lorentz_radius_delta","","Same as lorentz_radius, but uses a comp_delta closure to compute the distance from the first to second parameter",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"f"}],"output":null}],[5,"lorentz_radius_squared","","Apply lorentz forces between two PhysicsParticle objects using a precomputed net radius.",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"}],"output":null}],[5,"lorentz_radius_squared_delta","","Same as lorentz_radius_squared, but uses a comp_delta closure to compute the distance between the particles",null,{"inputs":[{"name":"t1"},{"name":"t2"},{"name":"d"},{"name":"d"},{"name":"f"}],"output":null}],[0,"basic_particle","","Contains traits and methods for the operation of particle physics",null,null],[3,"BasicParticle","zoom::particle::basic_particle","BasicParticle is the simplest object that implements PhysicsParticle without using constant values.",null,null],[12,"quanta","","",8,null],[12,"inertia","","",8,null],[12,"position","","",8,null],[12,"velocity","","",8,null],[11,"new","","",8,{"inputs":[{"name":"d"},{"name":"v"},{"name":"v"},{"name":"d"}],"output":{"name":"self"}}],[11,"clone","","",8,null],[11,"default","","",8,{"inputs":[],"output":{"name":"self"}}],[11,"quanta","","",8,null],[11,"inertia","","",8,null],[11,"position","","",8,null],[11,"velocity","","",8,null],[11,"impulse","","",8,null],[11,"advance","","",8,null],[8,"Quanta","zoom::particle","An object that has quanta",null,null],[10,"quanta","","",9,null],[8,"Inertia","","An object that has inertia",null,null],[10,"inertia","","",10,null],[8,"Position","","An object that has location",null,null],[10,"position","","",11,null],[8,"Velocity","","An object that has velocity",null,null],[10,"velocity","","",12,null],[8,"Particle","","An object that has a simple particle motion interface",null,null],[10,"impulse","","Apply force to particle, but it isn't moved forward in time until advance is called.\nThis requires interior mutability and unsafe declarations to fulfil.",13,null],[10,"advance","","Advance particle forward in time (update position and velocity from net force).",13,null],[8,"PhysicsParticle","","Any particle that implements the necessary traits gains access to all of the capabilities of PhysicsParticle.",null,null],[11,"basic_form","","Convert a PhysicsParticle into a "basic particle" that implements PhysicsParticle but has the minimum members.\nUse this to implement data structures that need to create intermediary particles.",14,null],[11,"drag","","Apply drag forces to a particle.",14,null],[11,"gravitate_to","","Apply proper attraction to a single physics particle towards a location and with a magnitude.",14,null],[11,"gravitate_radius_to","","This works the same as gravitate_radius_squared and gravitate_to.",14,null],[11,"hooke_to","","Apply spring forces between one particle and a virtual particle that is unaffected.",14,null],[11,"hooke_equilibrium_to","","Apply spring forces between one particle and a virtual particle that is unaffected.",14,null],[11,"lorentz_field","","Apply lorentz force to a particle in a field given by a vector with the magnitude and direction of the field.",14,null],[11,"lorentz_to","","Apply the lorentz force on a virtual particle that is unaffected.",14,null],[11,"lorentz_radius_to","","Apply the lorentz force on a virtual particle that is unaffected.",14,null]],"paths":[[3,"Cartesian1"],[3,"Cartesian2"],[3,"Cartesian3"],[3,"Box"],[8,"Toroid"],[8,"Ball"],[8,"Vector"],[8,"CrossVector"],[3,"BasicParticle"],[8,"Quanta"],[8,"Inertia"],[8,"Position"],[8,"Velocity"],[8,"Particle"],[8,"PhysicsParticle"]]}; initSearch(searchIndex);