var searchIndex = {}; searchIndex["ncollide_utils"] = {"doc":"Miscelaneous elementary geometric utilities.","items":[[3,"BacktrackingLineSearch","ncollide_utils","The backtracking line search method.",null,null],[3,"HashablePartialEq","","A structure that implements `Eq` and is hashable even if the wrapped data implements only\n`PartialEq`.",null,null],[5,"center","","Computes the center of a set of point.",null,null],[5,"project_homogeneous","","Project n-d point to a (n-1)-d space, dividing each vector by its `w` component.",null,null],[5,"project_homogeneous_to","","Project n-d point to a (n-1)-d space, dividing each vector by its `w` component.",null,null],[5,"circumcircle","","Computes the circumcircle of a triangle.",null,null],[5,"is_affinely_dependent_triangle3","","Tests if three 3D points are exactly aligned without the need of the `Cross` trait.",null,{"inputs":[{"name":"p"},{"name":"p"},{"name":"p"}],"output":{"name":"bool"}}],[5,"is_affinely_dependent_triangle","","Tests if three points are exactly aligned.",null,{"inputs":[{"name":"p"},{"name":"p"},{"name":"p"}],"output":{"name":"bool"}}],[5,"is_point_in_triangle","","Tests if a point is inside of a triangle.",null,{"inputs":[{"name":"p"},{"name":"p"},{"name":"p"},{"name":"p"}],"output":{"name":"bool"}}],[5,"triangle_area","","Computes the area of a triangle.",null,null],[5,"triangle_center","","Computes the center of a triangle.",null,{"inputs":[{"name":"p"},{"name":"p"},{"name":"p"}],"output":{"name":"p"}}],[5,"triangle_perimeter","","Computes the perimeter of a triangle.",null,null],[5,"tetrahedron_volume","","Computes the volume of a tetrahedron.",null,null],[5,"tetrahedron_signed_volume","","Computes the signed volume of a tetrahedron.",null,null],[5,"tetrahedron_center","","Computes the center of a tetrahedron.",null,{"inputs":[{"name":"p"},{"name":"p"},{"name":"p"},{"name":"p"}],"output":{"name":"p"}}],[5,"remove_unused_points","","Given an index buffer, remove from `points` every point that is not indexed.",null,null],[5,"dcos","","Computes the n-th derivative of the cosinus function.",null,{"inputs":[{"name":"usize"},{"name":"n"}],"output":{"name":"n"}}],[5,"dsin","","Computes the n-th derivative of the sinus function.",null,{"inputs":[{"name":"usize"},{"name":"n"}],"output":{"name":"n"}}],[5,"binom","","Computes the binomial coefficient C^k_n ("k among n").",null,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"usize"}}],[5,"maximize_with_newton","","Maximizes a real function using the Newton method.",null,null],[5,"newton","","Finds the root of a function using the Newton method.",null,null],[5,"minimize_with_bfgs","","Minimizes a function using the bfgs method.",null,null],[5,"bfgs","","Minimizes a function using the quasi-newton BFGS method.",null,{"inputs":[{"name":"usize"},{"name":"ss"},{"name":"v"},{"name":"outerproducttype"},{"name":"f"},{"name":"d"}],"output":{"name":"v"}}],[5,"cov","","Computes the convariance matrix of a set of points.",null,null],[5,"cov_and_center","","Computes the covariance matrix and center of a set of points.",null,null],[5,"center_reduce","","Centers and reduces a set of data.",null,null],[5,"median","","Computes the median of a set of values.",null,null],[5,"sort3","","Sorts a set of three values in increasing order.",null,null],[5,"cross3","","A 3d cross product that do not require the `Cross<Self, Self>` trait impl.",null,{"inputs":[{"name":"v"},{"name":"v"}],"output":{"name":"v"}}],[5,"point_cloud_support_point","","Computes the support point of a cloud of points.",null,null],[0,"data","","Data structure utilities.",null,null],[0,"pair","ncollide_utils::data","Hashable pair of objects implementing `HasUid`.",null,null],[3,"Pair","ncollide_utils::data::pair","An unordered pair of elements implementing `HasUid`.",null,null],[12,"first","","first object of the pair",0,null],[12,"second","","second object of the pair",0,null],[3,"PairTWHash","","Tomas Wang based hash function for a `Pair` object.",null,null],[11,"decode","","",0,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",0,null],[11,"clone","","",0,null],[11,"new","","Builds a new `Pair`.",0,{"inputs":[{"name":"fastkey"},{"name":"fastkey"}],"output":{"name":"pair"}}],[11,"eq","","",0,null],[11,"decode","","",1,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",1,null],[11,"new","","Creates a new PairTWHash",1,{"inputs":[],"output":{"name":"pairtwhash"}}],[11,"hash","","",1,null],[0,"hash","ncollide_utils::data","Trait for hash functions.",null,null],[3,"UintPairTWHash","ncollide_utils::data::hash","Hash function for pairs of `usize`, using the Tomas Wang hash.",null,null],[3,"UintTWHash","","Hash function for `usize`.",null,null],[5,"key_from_pair","","Combines two `usize` on a single one.",null,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"usize"}}],[5,"tomas_wang_hash","","Tomas Wang integer hash function.",null,{"inputs":[{"name":"usize"}],"output":{"name":"usize"}}],[8,"HashFun","","Hash function.",null,null],[10,"hash","","Hash function.",2,null],[11,"decode","","",3,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",3,null],[11,"clone","","",3,null],[11,"new","","Creates a new UintPairTWHash.",3,{"inputs":[],"output":{"name":"uintpairtwhash"}}],[11,"hash","","",3,null],[11,"decode","","",4,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",4,null],[11,"clone","","",4,null],[11,"new","","Creates a new UintTWHash.",4,{"inputs":[],"output":{"name":"uinttwhash"}}],[11,"hash","","",4,null],[0,"hash_map","ncollide_utils::data","An hash map with a customizable hash function.",null,null],[3,"Entry","ncollide_utils::data::hash_map","Entry of an `HashMap`.",null,null],[12,"key","","The key of the entry.",5,null],[12,"value","","The value of the entry.",5,null],[3,"HashMap","","Alternative implementation of `HashMap`.",null,null],[11,"decode","","",5,{"inputs":[{"name":"__dkv"}],"output":{"name":"result"}}],[11,"encode","","",5,null],[11,"clone","","",5,null],[11,"decode","","",6,{"inputs":[{"name":"__dkvh"}],"output":{"name":"result"}}],[11,"encode","","",6,null],[11,"clone","","",6,null],[11,"new","","Creates a new hash map.",6,{"inputs":[{"name":"h"}],"output":{"name":"hashmap"}}],[11,"new_with_capacity","","Creates a new hash map with a given capacity.",6,{"inputs":[{"name":"usize"},{"name":"h"}],"output":{"name":"hashmap"}}],[11,"elements","","The elements added to this hash map.",6,null],[11,"elements_mut","","The elements added to this hash map.",6,null],[11,"len","","The number of elements contained by this hashmap.",6,null],[11,"is_empty","","Whether or not this hashmap is empty.",6,null],[11,"clear","","Removes everything from this hashmap.",6,null],[11,"remove_elem_at","","Removes the element at the specified position of the element array.",6,null],[11,"get_and_remove","","Removes an element and returns its value if it existed.",6,null],[11,"find_or_insert_lazy","","Same as `self.insert_or_replace(key, value, false)` but with `value` a function which is\ncalled iff. the value does not exist yet. If the functions returns `None`, nothing is\ninserted.",6,null],[11,"insert_or_replace","","Inserts or replace an element.",6,null],[11,"contains_key","","Checks whether this hashmap contains a specific key.",6,null],[11,"find","","Finds a reference to the element with a given key.",6,null],[11,"insert","","Inserts an element on the hash map.",6,null],[11,"remove","","Remove an element from the hash map.",6,null],[11,"find_mut","","Gets a mutable reference to an element of the hashmap.",6,null],[0,"owned_allocation_cache","ncollide_utils::data","Allocation cache for owned objects.",null,null],[3,"OwnedAllocationCache","ncollide_utils::data::owned_allocation_cache","Cache for owned objects.",null,null],[11,"new","","Initializes the cache.",7,{"inputs":[],"output":{"name":"ownedallocationcache"}}],[11,"alloc","","Box a value into a potentially already allocated box.",7,null],[11,"retain","","Retains a box which can be re-used by the `box` method.",7,null],[11,"clear","","Clears the cache, destroying any stored pointer.",7,null],[0,"vec_slice","ncollide_utils::data","Slicing on non-contiguous data.",null,null],[3,"VecSlice","ncollide_utils::data::vec_slice","A vector slice with a specific length and stride.",null,null],[3,"VecSliceMut","","A mutable vector slice with a specific length and stride.",null,null],[11,"new","","Creates a new immutable slice.",8,null],[11,"new_unsafe","","Creates a new immutable slice. The size of the data buffer is not checked.",8,null],[11,"len","","The length of this slice.",8,null],[11,"is_empty","","Whether or not this slice is empty.",8,null],[11,"get","","Gets the i-th element of the slice.",8,null],[11,"get_unchecked","","Gets the i-th element of the slice without bound-checking.",8,null],[11,"new","","Creates a new mutable slice.",9,null],[11,"new_unsafe","","Creates a new mutable slice. The size of the data buffer is not checked.",9,null],[11,"len","","The length of this slice.",9,null],[11,"is_empty","","Whether or not this slice is empty.",9,null],[11,"as_slice","","Creates an immutable slice from this mutable slice.",9,null],[11,"get","","Gets the i-th element of the slice.",9,null],[11,"get_mut","","Gets a mutable reference to the i-th element of the slice without bound-checking.",9,null],[11,"get_unchecked","","Gets the i-th element of the slice without bound-checking.",9,null],[11,"get_unchecked_mut","","Gets a mutable reference to the i-th element of the slice without bound-checking.",9,null],[11,"copy_from","","Copy the content of another slice.\nBoth slices must have the same length.",9,null],[0,"ref_with_cost","ncollide_utils::data","A reference packed with a cost value.",null,null],[3,"RefWithCost","ncollide_utils::data::ref_with_cost","A reference packed with a cost value.",null,null],[12,"object","","The reference to an object.",10,null],[12,"cost","","The cost of the object.",10,null],[11,"new","","Creates a new reference packed with a cost value.",10,{"inputs":[{"name":"t"},{"name":"n"}],"output":{"name":"refwithcost"}}],[11,"eq","","",10,null],[11,"partial_cmp","","",10,null],[11,"cmp","","",10,null],[0,"uid_remap","ncollide_utils::data","A map allowing a slow lookup for arbitrary `usize` and fast lookup for small ones.",null,null],[3,"FastKey","ncollide_utils::data::uid_remap","A special type of key used by `UidRemap` to perform faster lookups than with the user-defined\nid of type `usize`.",null,null],[3,"UidRemap","","A set of values having large usize key.",null,null],[3,"FastKeys","","An iterator through a `UidRemap` fast keys in use.",null,null],[3,"FastKeysAndValues","","An iterator through a `UidRemap` fast keys and values.",null,null],[3,"FastKeysAndValuesMut","","An iterator through a `UidRemap` fast keys and values.",null,null],[11,"decode","","",11,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",11,null],[11,"cmp","","",11,null],[11,"partial_cmp","","",11,null],[11,"lt","","",11,null],[11,"le","","",11,null],[11,"gt","","",11,null],[11,"ge","","",11,null],[11,"eq","","",11,null],[11,"ne","","",11,null],[11,"hash","","",11,null],[11,"clone","","",11,null],[11,"fmt","","",11,null],[11,"new_invalid","","Creates a new invalid key that won't be used by the `UidRemap` structure, ever.",11,{"inputs":[],"output":{"name":"fastkey"}}],[11,"uid","","The small uid contained by this key.",11,null],[11,"clone","","",12,null],[11,"fmt","","",12,null],[11,"default","","",12,{"inputs":[],"output":{"name":"uidremap"}}],[11,"new","","Creates an empty `UidRemap`.",12,{"inputs":[{"name":"bool"}],"output":{"name":"uidremap"}}],[11,"get_fast_key","","Gets the fast key associated to the given key.",12,null],[11,"len","","Return the number of elements in the map.",12,null],[11,"is_empty","","Return true if the map contains no elements.",12,null],[11,"clear","","Clears the map, removing all key-value pairs.",12,null],[11,"get","","Returns a reference to the value corresponding to the key.",12,null],[11,"get_fast","","Returns a reference to the value corresponding to the fast key.",12,null],[11,"contains_key","","Returns true if the map contains a value for the specified key.",12,null],[11,"contains_fast_key","","Returns true if the map contains a value for the specified fast key.",12,null],[11,"get_mut","","Returns a mutable reference to the value corresponding to the key.",12,null],[11,"get_fast_mut","","Returns a mutable reference to the value corresponding to the fast key.",12,null],[11,"insert","","Inserts a key-value pair to the map. If the key already had a value\npresent in the map, that value and its fast key are returned. Otherwise, `None` is\nreturned.",12,null],[11,"remove","","Removes a key from the map, returning the value at the key if the key exists.",12,null],[11,"keys","","Returns an iterator visiting all keys.",12,null],[11,"values","","Returns an iterator visiting all values.\nThe iterator's element type is `&'r O`.",12,null],[11,"iter","","Returns an iterator visiting all key-value pairs.",12,null],[11,"iter_mut","","Returns an iterator visiting all key-value pairs with mutable references to the values.",12,null],[11,"next","","",13,null],[11,"next","","",14,null],[11,"next","","",15,null],[11,"update","","Updates a value in the map. If the key already exists in the map,\nmodifies the value with `ff` taking `oldval, newval`.\nOtherwise, sets the value to `newval`.\nReturns `true` if the key did not already exist in the map.",12,null],[11,"update_with_key","","Updates a value in the map. If the key already exists in the map,\nmodifies the value with `ff` taking `key, oldval, newval`.\nOtherwise, sets the value to `newval`.\nReturns `true` if the key did not already exist in the map.",12,null],[11,"from_iter","","",12,{"inputs":[{"name":"i"}],"output":{"name":"uidremap"}}],[11,"extend","","",12,null],[11,"index","","",12,null],[0,"vec_map","ncollide_utils::data","A simple map based on a vector for small integer keys. Space requirements\nare O(highest integer key).",null,null],[3,"VecMap","ncollide_utils::data::vec_map","A map optimized for small integer keys.",null,null],[3,"VacantEntry","","A vacant Entry.",null,null],[3,"OccupiedEntry","","An occupied Entry.",null,null],[3,"Iter","","An iterator over the key-value pairs of a map.",null,null],[3,"IterMut","","An iterator over the key-value pairs of a map, with the\nvalues being mutable.",null,null],[3,"Keys","","An iterator over the keys of a map.",null,null],[3,"Values","","An iterator over the values of a map.",null,null],[3,"IntoIter","","A consuming iterator over the key-value pairs of a map.",null,null],[4,"Entry","","A view into a single entry in a map, which may either be vacant or occupied.",null,null],[13,"Vacant","","A vacant Entry",16,null],[13,"Occupied","","An occupied Entry",16,null],[11,"default","","",17,{"inputs":[],"output":{"name":"vecmap"}}],[11,"clone","","",17,null],[11,"clone_from","","",17,null],[11,"hash","","",17,null],[11,"new","","Creates an empty `VecMap`.",17,{"inputs":[],"output":{"name":"vecmap"}}],[11,"with_capacity","","Creates an empty `VecMap` with space for at least `capacity`\nelements before resizing.",17,{"inputs":[{"name":"usize"}],"output":{"name":"vecmap"}}],[11,"capacity","","Returns the number of elements the `VecMap` can hold without\nreallocating.",17,null],[11,"reserve_len","","Reserves capacity for the given `VecMap` to contain `len` distinct keys.\nIn the case of `VecMap` this means reallocations will not occur as long\nas all inserted keys are less than `len`.",17,null],[11,"reserve_len_exact","","Reserves the minimum capacity for the given `VecMap` to contain `len` distinct keys.\nIn the case of `VecMap` this means reallocations will not occur as long as all inserted\nkeys are less than `len`.",17,null],[11,"keys","","Returns an iterator visiting all keys in ascending order of the keys.\nThe iterator's element type is `usize`.",17,null],[11,"values","","Returns an iterator visiting all values in ascending order of the keys.\nThe iterator's element type is `&'r V`.",17,null],[11,"iter","","Returns an iterator visiting all key-value pairs in ascending order of the keys.\nThe iterator's element type is `(usize, &'r V)`.",17,null],[11,"iter_mut","","Returns an iterator visiting all key-value pairs in ascending order of the keys,\nwith mutable references to the values.\nThe iterator's element type is `(usize, &'r mut V)`.",17,null],[11,"split_off","","Splits the collection into two at the given key.",17,null],[11,"len","","Returns the number of elements in the map.",17,null],[11,"is_empty","","Returns true if the map contains no elements.",17,null],[11,"clear","","Clears the map, removing all key-value pairs.",17,null],[11,"get","","Returns a reference to the value corresponding to the key.",17,null],[11,"contains_key","","Returns true if the map contains a value for the specified key.",17,null],[11,"get_mut","","Returns a mutable reference to the value corresponding to the key.",17,null],[11,"insert","","Inserts a key-value pair into the map. If the key already had a value\npresent in the map, that value is returned. Otherwise, `None` is returned.",17,null],[11,"remove","","Removes a key from the map, returning the value at the key if the key\nwas previously in the map.",17,null],[11,"entry","","Gets the given key's corresponding entry in the map for in-place manipulation.",17,null],[11,"get","","Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant",16,null],[11,"or_insert","","Ensures a value is in the entry by inserting the default if empty, and returns\na mutable reference to the value in the entry.",16,null],[11,"or_insert_with","","Ensures a value is in the entry by inserting the result of the default function if empty,\nand returns a mutable reference to the value in the entry.",16,null],[11,"insert","","Sets the value of the entry with the VacantEntry's key,\nand returns a mutable reference to it.",18,null],[11,"get","","Gets a reference to the value in the entry.",19,null],[11,"get_mut","","Gets a mutable reference to the value in the entry.",19,null],[11,"into_mut","","Converts the entry into a mutable reference to its value.",19,null],[11,"insert","","Sets the value of the entry with the OccupiedEntry's key,\nand returns the entry's old value.",19,null],[11,"remove","","Takes the value of the entry out of the map, and returns it.",19,null],[11,"fmt","","",17,null],[11,"from_iter","","",17,{"inputs":[{"name":"i"}],"output":{"name":"vecmap"}}],[11,"into_iter","","Returns an iterator visiting all key-value pairs in ascending order of\nthe keys, consuming the original `VecMap`.\nThe iterator's element type is `(usize, &'r V)`.",17,null],[11,"extend","","",17,null],[11,"index","","",17,null],[11,"index","","",17,null],[11,"index_mut","","",17,null],[11,"index_mut","","",17,null],[11,"clone","","",20,null],[11,"next","","",20,null],[11,"size_hint","","",20,null],[11,"next_back","","",20,null],[11,"next","","",21,null],[11,"size_hint","","",21,null],[11,"next_back","","",21,null],[11,"clone","","",22,null],[11,"clone","","",23,null],[11,"next","","",22,null],[11,"size_hint","","",22,null],[11,"next_back","","",22,null],[11,"next","","",23,null],[11,"size_hint","","",23,null],[11,"next_back","","",23,null],[11,"next","","",24,null],[11,"size_hint","","",24,null],[11,"next_back","","",24,null],[11,"new","ncollide_utils","Creates a new backtracking line search methods.",25,{"inputs":[{"name":"n"},{"name":"n"},{"name":"n"},{"name":"usize"}],"output":{"name":"backtrackinglinesearch"}}],[11,"step_size","","",25,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"decode","","",26,{"inputs":[{"name":"__dt"}],"output":{"name":"result"}}],[11,"encode","","",26,null],[11,"eq","","",26,null],[11,"ne","","",26,null],[11,"new","","Creates a new `HashablePartialEq`. This is unsafe because you must be sure that you really\nwant to transform the wrapped object's partial equality to an equivalence relation.",26,{"inputs":[{"name":"t"}],"output":{"name":"hashablepartialeq"}}],[11,"unwrap","","Gets the wrapped value.",26,null],[11,"hash","","",26,null],[8,"LineSearch","","Trait for line search methods.",null,null],[10,"step_size","","Gets a near-optimal step size for the next descent.",27,null],[8,"AsBytes","","Trait that transforms thing to a slice of u8.",null,null],[10,"as_bytes","","",28,null]],"paths":[[3,"Pair"],[3,"PairTWHash"],[8,"HashFun"],[3,"UintPairTWHash"],[3,"UintTWHash"],[3,"Entry"],[3,"HashMap"],[3,"OwnedAllocationCache"],[3,"VecSlice"],[3,"VecSliceMut"],[3,"RefWithCost"],[3,"FastKey"],[3,"UidRemap"],[3,"FastKeys"],[3,"FastKeysAndValues"],[3,"FastKeysAndValuesMut"],[4,"Entry"],[3,"VecMap"],[3,"VacantEntry"],[3,"OccupiedEntry"],[3,"Iter"],[3,"IterMut"],[3,"Keys"],[3,"Values"],[3,"IntoIter"],[3,"BacktrackingLineSearch"],[3,"HashablePartialEq"],[8,"LineSearch"],[8,"AsBytes"]]}; initSearch(searchIndex);