úÎ7„30      !"#$%&'()*+,-./>This class enables you to take a vector with N dimensions and F project it into an N+1 dimensional space (and also take the inverse ! projection to get back again). %The next-largest vector type. (E.g.,   01 = 23.) GReduce number of dimensions by one. (Return the dropped dimension as a Scalar.) KIncrease number of dimensions by one. (Supply value for new dimension as a Scalar.) VPerspective-project to N-1 dimensions. (Also return the distance from the camera as a Scalar.) ZInverse-perspective project into N+1 dimension. (Supply the distance from the camera as a Scalar.) Class for generically reading/writing vector coordinates. )Read from the specified coordinate axis. 9Replace the existing value of the given coordinate axis. The W-axis (fourth axis). The Z-axis (third axis). The Y-axis (second axis). The X-axis (first axis). CThis class deals with any type that has a spatial dimensionallity. B This includes coordinate transforms, bounding boxes, and so on. =Null instances are provided for all the vector types. (E.g.,  Point Vector3 = Vector3.) 3Give the appropriate kind of vector for this type.     WClass for things that can be transformed. Includes instances for all the vector types. Apply a transformation. rClass for performing rotationes. (The rotations that exist vary with the number of spatial dimensions available.) ?Build transform: rotate in the plane defined by the two axies. Class for transforms. Transform a vector. !0Build transform: translate by the given vector. "KBuild transform: scale each coordinate axis according to the given vector. #,Build transform: scale all axies uniformly.  !"#  !"#  !"# !"#  !"#7456789:;<=23>?01@ABCDEFGHIJKLMNOPQRS  $7Class representing things that possess a bounding box. % Get an object's bounding box. &'Class for dealing with bounding boxes. '•Given two corner points, construct a bounding box containing them both. (You can use any two points, given in any order, provided that they are from opposite corners.) (rGiven a list of points, construct a bounding box containing them all. (Throws an exception if the list is empty.) )BReturn a point containing the minimum values for all coordinates. *BReturn a point containing the maximum values for all coordinates. +=Test whether a given point lies within a given bounding box. ,³Take the union of two bounding boxes. The result is a new bounding box that contains every point that the original pair of boxes contained, and probably some extra space as well. -QTake the intersection of two bounding boxes. If the boxes do not overlap, return Te. Otherwise return a bounding box containing only the points common to both original bounding boxes. .ITake the union of a list of bounding boxes. (This is more efficient than  foldr1 union.) /Get a UVK representing the extent of a bounding box on a specified coordinate axis. $%&'()*+,-./ &'()*+,-./$% $%%&'()*+,-.'()*+,-./$%&'()*+,-./W      !!""##$$%&'()*+,-./0123456789:;<=<=>?>?@A@B@C@D@E@E>F>G>H>I<J<KLMLNLNOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`abcdedefAC-Vector-Fancy-2.4.0Data.BoundingBoxData.Vector.TransformData.Vector.FancyData.Vector.Transform.FancyData.BoundingBox.Fancy Data.VectorAC-Vector-2.3.1Data.BoundingBox.B4BBox4Data.BoundingBox.B3BBox3Data.BoundingBox.B2BBox2Data.BoundingBox.B1BBox1Data.Vector.Transform.T4 Transform4Data.Vector.Transform.T3 Transform3Data.Vector.Transform.T2 Transform2Data.Vector.Transform.T1 Transform1Project ProjectToorthographic_downorthographic_upperspective_downperspective_up VectorAxis get_coord set_coordAxisWAxisZAxisYAxisXHasSpacePoint Transformable transformRotaterotateT Transform transformP translateTscaleTscaleT_HasBBoxget_bbox BoundingBox bound_corners bound_points min_point max_point within_boundsunionisectunions axis_rangeData.Vector.V2Vector2Data.Vector.V3Vector3Data.Vector.V4v4wv4zv4yv4xVector4vcrossv3zv3yv3xv2yv2xData.Vector.V1v1xVector1Data.Vector.Classvlinear vnormalisevmagvdot/||/|**|Scalarvpromotevunpackvpackvfoldvzipvmap BasicVectorVectorbase Data.MaybeNothingData.BoundingBox.RangeRange