From: <vo...@us...> - 2007-12-26 08:37:28
|
Revision: 483 http://opde.svn.sourceforge.net/opde/?rev=483&view=rev Author: volca Date: 2007-12-26 00:37:33 -0800 (Wed, 26 Dec 2007) Log Message: ----------- Default value for DTypes now working Modified Paths: -------------- trunk/src/base/dyntype/DTypeDef.cpp Modified: trunk/src/base/dyntype/DTypeDef.cpp =================================================================== --- trunk/src/base/dyntype/DTypeDef.cpp 2007-12-21 12:15:02 UTC (rev 482) +++ trunk/src/base/dyntype/DTypeDef.cpp 2007-12-26 08:37:33 UTC (rev 483) @@ -491,14 +491,19 @@ for (int x = 0; x < size(); ++x) data[x] = '\0'; - // iterate the fields. If the field has a default value, fill - Fields::iterator it = mFields.begin(); + if (isField()) { + if (mDefaultUsed) + _set(data, mDefVal); + } else { + // iterate the fields. If the field has a default value, fill + Fields::iterator it = mFields.begin(); - for (; it != mFields.end(); ++it) { - if (it->type->hasDefault()) - it->setDefault(data); + for (; it != mFields.end(); ++it) { + if (it->type->hasDefault()) + it->set(data, mDefVal); + } } - + return data; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2007-12-27 18:19:36
|
Revision: 495 http://opde.svn.sourceforge.net/opde/?rev=495&view=rev Author: volca Date: 2007-12-27 10:19:32 -0800 (Thu, 27 Dec 2007) Log Message: ----------- Default value setter. Another round of fixes (one fix, that is) Modified Paths: -------------- trunk/src/base/dyntype/DTypeDef.cpp Modified: trunk/src/base/dyntype/DTypeDef.cpp =================================================================== --- trunk/src/base/dyntype/DTypeDef.cpp 2007-12-27 18:18:56 UTC (rev 494) +++ trunk/src/base/dyntype/DTypeDef.cpp 2007-12-27 18:19:32 UTC (rev 495) @@ -500,7 +500,7 @@ for (; it != mFields.end(); ++it) { if (it->type->hasDefault()) - it->set(data, mDefVal); + it->set(data, it->type->getDefault()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2008-01-20 21:57:42
|
Revision: 603 http://opde.svn.sourceforge.net/opde/?rev=603&view=rev Author: patryn Date: 2008-01-20 13:57:25 -0800 (Sun, 20 Jan 2008) Log Message: ----------- Added a missing 'return'. Modified Paths: -------------- trunk/src/base/dyntype/DTypeDef.cpp Modified: trunk/src/base/dyntype/DTypeDef.cpp =================================================================== --- trunk/src/base/dyntype/DTypeDef.cpp 2008-01-20 21:15:11 UTC (rev 602) +++ trunk/src/base/dyntype/DTypeDef.cpp 2008-01-20 21:57:25 UTC (rev 603) @@ -17,6 +17,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + * $Id$ + * *****************************************************************************/ #include "DTypeDef.h" @@ -808,6 +810,7 @@ vptr[0] = static_cast<int16_t>(x.valueRadians() * 32768 / Math::PI); vptr[1] = static_cast<int16_t>(y.valueRadians() * 32768 / Math::PI); vptr[2] = static_cast<int16_t>(z.valueRadians() * 32768 / Math::PI); + return ptr; } else { OPDE_EXCEPT("Unsupported _set type", "DTypeDef::_set"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2008-02-07 11:21:52
|
Revision: 619 http://opde.svn.sourceforge.net/opde/?rev=619&view=rev Author: volca Date: 2008-02-07 03:21:56 -0800 (Thu, 07 Feb 2008) Log Message: ----------- This seems to do the correct rotation conversion Modified Paths: -------------- trunk/src/base/dyntype/DTypeDef.cpp Modified: trunk/src/base/dyntype/DTypeDef.cpp =================================================================== --- trunk/src/base/dyntype/DTypeDef.cpp 2008-02-07 11:19:33 UTC (rev 618) +++ trunk/src/base/dyntype/DTypeDef.cpp 2008-02-07 11:21:56 UTC (rev 619) @@ -651,6 +651,11 @@ // Maybe we should support some kind of additional storage Ogre::Real x,y,z; + /* Order of HPB application is cruical. It was detected that Dark orders HPB in this order: + 1. Bank is applied + 2. Pitch is applied + 3. Heading is applied + */ int16_t* rot = reinterpret_cast<int16_t*>(ptr); x = ((float)(rot[0]) / 32768) * Math::PI; // heading - y @@ -660,7 +665,7 @@ Matrix3 m; // Still not there, but close - m.FromEulerAnglesYXZ(Radian(y), Radian(x), Radian(z)); + m.FromEulerAnglesZYX(Radian(z), Radian(y), Radian(x)); Quaternion q; q.FromRotationMatrix(m); @@ -803,7 +808,7 @@ Radian x,y,z; // Still not there, but close - m.ToEulerAnglesYXZ(x, y, z); + m.ToEulerAnglesZYX(z, y, x); int16_t rot = *reinterpret_cast<int16_t*>(ptr); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |