21 if (name ==
"default") {
30 INLINE
void EggVertexUV::
31 set_name(
const std::string &name) {
41 return has_w() ? 3 : 2;
50 return (_flags & F_has_w) != 0;
58 nassertr(!
has_w(), LTexCoordd::zero());
59 return LTexCoordd(_uvw[0], _uvw[1]);
78 _uvw.set(uv[0], uv[1], 0.0);
95 INLINE
bool EggVertexUV::
97 return (_flags & F_has_tangent) != 0;
103 INLINE
bool EggVertexUV::
104 has_tangent4()
const {
105 return (_flags & F_has_tangent4) != 0;
111 INLINE
const LNormald &EggVertexUV::
112 get_tangent()
const {
113 nassertr(has_tangent(), _tangent);
120 INLINE LVecBase4d EggVertexUV::
121 get_tangent4()
const {
122 LVecBase4d tangent4(_tangent, 1.0);
123 nassertr_always(has_tangent(), tangent4);
124 if (_flags & F_flip_computed_binormal) {
133 INLINE
void EggVertexUV::
134 set_tangent(
const LNormald &tangent) {
136 _flags |= F_has_tangent;
137 _flags &= ~(F_has_tangent4 | F_flip_computed_binormal);
146 _tangent = tangent.get_xyz();
147 _flags |= F_has_tangent4 | F_has_tangent;
148 if (tangent[3] < 0.0) {
149 _flags |= F_flip_computed_binormal;
151 _flags &= ~F_flip_computed_binormal;
158 INLINE
void EggVertexUV::
160 _flags &= ~F_has_tangent;
166 INLINE
bool EggVertexUV::
167 has_binormal()
const {
168 return (_flags & F_has_binormal) != 0;
174 INLINE
const LNormald &EggVertexUV::
175 get_binormal()
const {
176 nassertr(has_binormal(), _binormal);
183 INLINE
void EggVertexUV::
184 set_binormal(
const LNormald &binormal) {
185 _binormal = binormal;
186 _flags |= F_has_binormal;
192 INLINE
void EggVertexUV::
194 _flags &= ~F_has_binormal;