// Filename: fisheyeMaker.I // Created by: drose (3Oct05) // //////////////////////////////////////////////////////////////////// // // PANDA 3D SOFTWARE // Copyright (c) Carnegie Mellon University. All rights reserved. // // All use of this software is subject to the terms of the revised BSD // license. You should have received a copy of this license along // with this source code in a file named "LICENSE." // //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // Function: FisheyeMaker::Constructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// INLINE FisheyeMaker:: FisheyeMaker(const string &name) : Namable(name) { reset(); } //////////////////////////////////////////////////////////////////// // Function: FisheyeMaker::Destructor // Access: Public // Description: //////////////////////////////////////////////////////////////////// INLINE FisheyeMaker:: ~FisheyeMaker() { } //////////////////////////////////////////////////////////////////// // Function: FisheyeMaker::set_num_vertices // Access: Public // Description: Specifies the approximate number of vertices to be // used to generate the rose. This is the approximate // number of vertices that will be located within the // rose's unit circle, not counting the inscribing // square (if any). The actual number of vertices used // may be +/- 25% of this value. //////////////////////////////////////////////////////////////////// INLINE void FisheyeMaker:: set_num_vertices(int num_vertices) { _num_vertices = num_vertices; } //////////////////////////////////////////////////////////////////// // Function: FisheyeMaker::set_square_inscribed // Access: Public // Description: Sets the flag that indicates whether the rose should // be inscribed within a square. When this is true, an // additional square is generated to inscribed the // circular rose, with the indicated "radius" (the sides // of the square will be 2 * square_radius). The // texture coordinates of the square will uniformly map // to the back pole of the cube map. // // This is mainly useful to provide a good uniform // background color for a sphere map so that it does not // have a sharp circular edge that might produce // artifacts due to numerical imprecision when mapping. //////////////////////////////////////////////////////////////////// INLINE void FisheyeMaker:: set_square_inscribed(bool square_inscribed, float square_radius) { _square_inscribed = square_inscribed; _square_radius = square_radius; } //////////////////////////////////////////////////////////////////// // Function: FisheyeMaker::set_reflection // Access: Public // Description: Sets the flag indicating whether the texture image // should be mirrored (true) or normal (false). When // this is true, the 3-D texture coordinates will be // reversed so that the image is appropriate for a // reflection. This is the best choice for generating a // sphere map from a cube map. The default is false. //////////////////////////////////////////////////////////////////// INLINE void FisheyeMaker:: set_reflection(bool reflection) { _reflect = (reflection) ? -1.0 : 1.0; }