00001 // Filename: cLerpNodePathInterval.I 00002 // Created by: drose (27Aug02) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 00020 //////////////////////////////////////////////////////////////////// 00021 // Function: CLerpNodePathInterval::get_node 00022 // Access: Published 00023 // Description: Returns the node being lerped. 00024 //////////////////////////////////////////////////////////////////// 00025 INLINE const NodePath &CLerpNodePathInterval:: 00026 get_node() const { 00027 return _node; 00028 } 00029 00030 //////////////////////////////////////////////////////////////////// 00031 // Function: CLerpNodePathInterval::get_other 00032 // Access: Published 00033 // Description: Returns the "other" node, which the lerped node is 00034 // being moved relative to. If this is an empty node 00035 // path, the lerped node is being moved in its own 00036 // coordinate system. 00037 //////////////////////////////////////////////////////////////////// 00038 INLINE const NodePath &CLerpNodePathInterval:: 00039 get_other() const { 00040 return _other; 00041 } 00042 00043 //////////////////////////////////////////////////////////////////// 00044 // Function: CLerpNodePathInterval::set_start_pos 00045 // Access: Published 00046 // Description: Indicates the initial position of the lerped node. 00047 // This is meaningful only if set_end_pos() is also 00048 // called. This parameter is optional; if unspecified, 00049 // the value will be taken from the node's actual 00050 // position at the time the lerp is performed. 00051 //////////////////////////////////////////////////////////////////// 00052 INLINE void CLerpNodePathInterval:: 00053 set_start_pos(const LVecBase3f &pos) { 00054 _start_pos = pos; 00055 _flags |= F_start_pos; 00056 } 00057 00058 //////////////////////////////////////////////////////////////////// 00059 // Function: CLerpNodePathInterval::set_end_pos 00060 // Access: Published 00061 // Description: Indicates that the position of the node should be 00062 // lerped, and specifies the final position of the node. 00063 // This should be called before priv_initialize(). If this 00064 // is not called, the node's position will not be 00065 // affected by the lerp. 00066 //////////////////////////////////////////////////////////////////// 00067 INLINE void CLerpNodePathInterval:: 00068 set_end_pos(const LVecBase3f &pos) { 00069 _end_pos = pos; 00070 _flags |= F_end_pos; 00071 } 00072 00073 //////////////////////////////////////////////////////////////////// 00074 // Function: CLerpNodePathInterval::set_start_hpr 00075 // Access: Published 00076 // Description: Indicates the initial rotation of the lerped node. 00077 // This is meaningful only if set_end_hpr() is also 00078 // called. This parameter is optional; if unspecified, 00079 // the value will be taken from the node's actual 00080 // rotation at the time the lerp is performed. 00081 //////////////////////////////////////////////////////////////////// 00082 INLINE void CLerpNodePathInterval:: 00083 set_start_hpr(const LVecBase3f &hpr) { 00084 _start_hpr = hpr; 00085 _flags |= F_start_hpr; 00086 } 00087 00088 //////////////////////////////////////////////////////////////////// 00089 // Function: CLerpNodePathInterval::set_end_hpr 00090 // Access: Published 00091 // Description: Indicates that the rotation of the node should be 00092 // lerped, and specifies the final rotation of the node. 00093 // This should be called before priv_initialize(). If this 00094 // is not called, the node's rotation will not be 00095 // affected by the lerp. 00096 //////////////////////////////////////////////////////////////////// 00097 INLINE void CLerpNodePathInterval:: 00098 set_end_hpr(const LVecBase3f &hpr) { 00099 _end_hpr = hpr; 00100 _flags |= F_end_hpr; 00101 } 00102 00103 //////////////////////////////////////////////////////////////////// 00104 // Function: CLerpNodePathInterval::set_start_scale 00105 // Access: Published 00106 // Description: Indicates the initial scale of the lerped node. 00107 // This is meaningful only if set_end_scale() is also 00108 // called. This parameter is optional; if unspecified, 00109 // the value will be taken from the node's actual 00110 // scale at the time the lerp is performed. 00111 //////////////////////////////////////////////////////////////////// 00112 INLINE void CLerpNodePathInterval:: 00113 set_start_scale(const LVecBase3f &scale) { 00114 _start_scale = scale; 00115 _flags |= F_start_scale; 00116 } 00117 00118 //////////////////////////////////////////////////////////////////// 00119 // Function: CLerpNodePathInterval::set_start_scale 00120 // Access: Published 00121 // Description: Indicates the initial scale of the lerped node. 00122 // This is meaningful only if set_end_scale() is also 00123 // called. This parameter is optional; if unspecified, 00124 // the value will be taken from the node's actual 00125 // scale at the time the lerp is performed. 00126 //////////////////////////////////////////////////////////////////// 00127 INLINE void CLerpNodePathInterval:: 00128 set_start_scale(float scale) { 00129 set_start_scale(LVecBase3f(scale, scale, scale)); 00130 } 00131 00132 //////////////////////////////////////////////////////////////////// 00133 // Function: CLerpNodePathInterval::set_end_scale 00134 // Access: Published 00135 // Description: Indicates that the scale of the node should be 00136 // lerped, and specifies the final scale of the node. 00137 // This should be called before priv_initialize(). If this 00138 // is not called, the node's scale will not be 00139 // affected by the lerp. 00140 //////////////////////////////////////////////////////////////////// 00141 INLINE void CLerpNodePathInterval:: 00142 set_end_scale(const LVecBase3f &scale) { 00143 _end_scale = scale; 00144 _flags |= F_end_scale; 00145 } 00146 00147 //////////////////////////////////////////////////////////////////// 00148 // Function: CLerpNodePathInterval::set_end_scale 00149 // Access: Published 00150 // Description: Indicates that the scale of the node should be 00151 // lerped, and specifies the final scale of the node. 00152 // This should be called before priv_initialize(). If this 00153 // is not called, the node's scale will not be 00154 // affected by the lerp. 00155 //////////////////////////////////////////////////////////////////// 00156 INLINE void CLerpNodePathInterval:: 00157 set_end_scale(float scale) { 00158 set_end_scale(LVecBase3f(scale, scale, scale)); 00159 } 00160 00161 //////////////////////////////////////////////////////////////////// 00162 // Function: CLerpNodePathInterval::set_start_color 00163 // Access: Published 00164 // Description: Indicates the initial color of the lerped node. 00165 // This is meaningful only if set_end_color() is also 00166 // called. This parameter is optional; if unspecified, 00167 // the value will be taken from the node's actual 00168 // color at the time the lerp is performed. 00169 //////////////////////////////////////////////////////////////////// 00170 INLINE void CLerpNodePathInterval:: 00171 set_start_color(const LVecBase4f &color) { 00172 _start_color = color; 00173 _flags |= F_start_color; 00174 } 00175 00176 //////////////////////////////////////////////////////////////////// 00177 // Function: CLerpNodePathInterval::set_end_color 00178 // Access: Published 00179 // Description: Indicates that the color of the node should be 00180 // lerped, and specifies the final color of the node. 00181 // This should be called before priv_initialize(). If this 00182 // is not called, the node's color will not be 00183 // affected by the lerp. 00184 //////////////////////////////////////////////////////////////////// 00185 INLINE void CLerpNodePathInterval:: 00186 set_end_color(const LVecBase4f &color) { 00187 _end_color = color; 00188 _flags |= F_end_color; 00189 } 00190 00191 //////////////////////////////////////////////////////////////////// 00192 // Function: CLerpNodePathInterval::set_start_color_scale 00193 // Access: Published 00194 // Description: Indicates the initial color scale of the lerped node. 00195 // This is meaningful only if set_end_color_scale() is also 00196 // called. This parameter is optional; if unspecified, 00197 // the value will be taken from the node's actual 00198 // color scale at the time the lerp is performed. 00199 //////////////////////////////////////////////////////////////////// 00200 INLINE void CLerpNodePathInterval:: 00201 set_start_color_scale(const LVecBase4f &color_scale) { 00202 _start_color_scale = color_scale; 00203 _flags |= F_start_color_scale; 00204 } 00205 00206 //////////////////////////////////////////////////////////////////// 00207 // Function: CLerpNodePathInterval::set_end_color_scale 00208 // Access: Published 00209 // Description: Indicates that the color scale of the node should be 00210 // lerped, and specifies the final color scale of the node. 00211 // This should be called before priv_initialize(). If this 00212 // is not called, the node's color scale will not be 00213 // affected by the lerp. 00214 //////////////////////////////////////////////////////////////////// 00215 INLINE void CLerpNodePathInterval:: 00216 set_end_color_scale(const LVecBase4f &color_scale) { 00217 _end_color_scale = color_scale; 00218 _flags |= F_end_color_scale; 00219 }