summaryrefslogtreecommitdiff
path: root/indra/llprimitive/lltextureanim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llprimitive/lltextureanim.cpp')
-rw-r--r--indra/llprimitive/lltextureanim.cpp478
1 files changed, 239 insertions, 239 deletions
diff --git a/indra/llprimitive/lltextureanim.cpp b/indra/llprimitive/lltextureanim.cpp
index 8933b3287c..56ae178a3b 100644
--- a/indra/llprimitive/lltextureanim.cpp
+++ b/indra/llprimitive/lltextureanim.cpp
@@ -1,239 +1,239 @@
-/**
- * @file lltextureanim.cpp
- * @brief LLTextureAnim base class
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "linden_common.h"
-
-#include "lltextureanim.h"
-#include "message.h"
-#include "lldatapacker.h"
-
-const S32 TA_BLOCK_SIZE = 16;
-
-LLTextureAnim::LLTextureAnim()
-{
- reset();
-}
-
-
-LLTextureAnim::~LLTextureAnim()
-{
-}
-
-
-void LLTextureAnim::reset()
-{
- mMode = 0;
- mFace = -1;
- mSizeX = 4;
- mSizeY = 4;
- mStart = 0.f;
- mLength = 0.f;
- mRate = 1.f;
-}
-
-bool LLTextureAnim::equals(const LLTextureAnim &other) const
-{
- if (mMode != other.mMode)
- {
- return false;
- }
- if (mFace != other.mFace)
- {
- return false;
- }
- if (mSizeX != other.mSizeX)
- {
- return false;
- }
- if (mSizeY != other.mSizeY)
- {
- return false;
- }
- if (mStart != other.mStart)
- {
- return false;
- }
- if (mLength != other.mLength)
- {
- return false;
- }
- if (mRate != other.mRate)
- {
- return false;
- }
-
- return true;
-}
-void LLTextureAnim::packTAMessage(LLMessageSystem *mesgsys) const
-{
- U8 data[TA_BLOCK_SIZE];
- data[0] = mMode;
- data[1] = mFace;
- data[2] = mSizeX;
- data[3] = mSizeY;
- htolememcpy(data + 4, &mStart, MVT_F32, sizeof(F32));
- htolememcpy(data + 8, &mLength, MVT_F32, sizeof(F32));
- htolememcpy(data + 12, &mRate, MVT_F32, sizeof(F32));
-
- mesgsys->addBinaryDataFast(_PREHASH_TextureAnim, data, TA_BLOCK_SIZE);
-}
-
-
-void LLTextureAnim::packTAMessage(LLDataPacker &dp) const
-{
- U8 data[TA_BLOCK_SIZE];
- data[0] = mMode;
- data[1] = mFace;
- data[2] = mSizeX;
- data[3] = mSizeY;
- htolememcpy(data + 4, &mStart, MVT_F32, sizeof(F32));
- htolememcpy(data + 8, &mLength, MVT_F32, sizeof(F32));
- htolememcpy(data + 12, &mRate, MVT_F32, sizeof(F32));
-
- dp.packBinaryData(data, TA_BLOCK_SIZE, "TextureAnimation");
-}
-
-
-void LLTextureAnim::unpackTAMessage(LLMessageSystem *mesgsys, const S32 block_num)
-{
- S32 size = mesgsys->getSizeFast(_PREHASH_ObjectData, block_num, _PREHASH_TextureAnim);
-
- if (size != TA_BLOCK_SIZE)
- {
- if (size)
- {
- LL_WARNS() << "Bad size " << size << " for TA block, ignoring." << LL_ENDL;
- }
- mMode = 0;
- return;
- }
-
- U8 data[TA_BLOCK_SIZE];
- mesgsys->getBinaryDataFast(_PREHASH_ObjectData, _PREHASH_TextureAnim, data, TA_BLOCK_SIZE, block_num);
-
- mMode = data[0];
- mFace = data[1];
- if (mMode & LLTextureAnim::SMOOTH)
- {
- mSizeX = llmax((U8)0, data[2]);
- mSizeY = llmax((U8)0, data[3]);
- }
- else
- {
- mSizeX = llmax((U8)1, data[2]);
- mSizeY = llmax((U8)1, data[3]);
- }
- htolememcpy(&mStart, data + 4, MVT_F32, sizeof(F32));
- htolememcpy(&mLength, data + 8, MVT_F32, sizeof(F32));
- htolememcpy(&mRate, data + 12, MVT_F32, sizeof(F32));
-}
-
-void LLTextureAnim::unpackTAMessage(LLDataPacker &dp)
-{
- S32 size;
- U8 data[TA_BLOCK_SIZE];
- dp.unpackBinaryData(data, size, "TextureAnimation");
- if (size != TA_BLOCK_SIZE)
- {
- if (size)
- {
- LL_WARNS() << "Bad size " << size << " for TA block, ignoring." << LL_ENDL;
- }
- mMode = 0;
- return;
- }
-
- mMode = data[0];
- mFace = data[1];
- mSizeX = data[2];
- mSizeY = data[3];
- htolememcpy(&mStart, data + 4, MVT_F32, sizeof(F32));
- htolememcpy(&mLength, data + 8, MVT_F32, sizeof(F32));
- htolememcpy(&mRate, data + 12, MVT_F32, sizeof(F32));
-}
-
-LLSD LLTextureAnim::asLLSD() const
-{
- LLSD sd;
- sd["mode"] = mMode;
- sd["face"] = mFace;
- sd["sizeX"] = mSizeX;
- sd["sizeY"] = mSizeY;
- sd["start"] = mStart;
- sd["length"] = mLength;
- sd["rate"] = mRate;
- return sd;
-}
-
-bool LLTextureAnim::fromLLSD(LLSD& sd)
-{
- const char *w;
- w = "mode";
- if (sd.has(w))
- {
- mMode = (U8)sd[w].asInteger();
- } else goto fail;
-
- w = "face";
- if (sd.has(w))
- {
- mFace = (S8)sd[w].asInteger();
- } else goto fail;
-
- w = "sizeX";
- if (sd.has(w))
- {
- mSizeX = (U8)sd[w].asInteger();
- } else goto fail;
-
- w = "sizeY";
- if (sd.has(w))
- {
- mSizeY = (U8)sd[w].asInteger();
- } else goto fail;
-
- w = "start";
- if (sd.has(w))
- {
- mStart = (F32)sd[w].asReal();
- } else goto fail;
-
- w = "length";
- if (sd.has(w))
- {
- mLength = (F32)sd[w].asReal();
- } else goto fail;
-
- w = "rate";
- if (sd.has(w))
- {
- mRate = (F32)sd[w].asReal();
- } else goto fail;
-
- return true;
-fail:
- return false;
-}
+/**
+ * @file lltextureanim.cpp
+ * @brief LLTextureAnim base class
+ *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+
+#include "lltextureanim.h"
+#include "message.h"
+#include "lldatapacker.h"
+
+const S32 TA_BLOCK_SIZE = 16;
+
+LLTextureAnim::LLTextureAnim()
+{
+ reset();
+}
+
+
+LLTextureAnim::~LLTextureAnim()
+{
+}
+
+
+void LLTextureAnim::reset()
+{
+ mMode = 0;
+ mFace = -1;
+ mSizeX = 4;
+ mSizeY = 4;
+ mStart = 0.f;
+ mLength = 0.f;
+ mRate = 1.f;
+}
+
+bool LLTextureAnim::equals(const LLTextureAnim &other) const
+{
+ if (mMode != other.mMode)
+ {
+ return false;
+ }
+ if (mFace != other.mFace)
+ {
+ return false;
+ }
+ if (mSizeX != other.mSizeX)
+ {
+ return false;
+ }
+ if (mSizeY != other.mSizeY)
+ {
+ return false;
+ }
+ if (mStart != other.mStart)
+ {
+ return false;
+ }
+ if (mLength != other.mLength)
+ {
+ return false;
+ }
+ if (mRate != other.mRate)
+ {
+ return false;
+ }
+
+ return true;
+}
+void LLTextureAnim::packTAMessage(LLMessageSystem *mesgsys) const
+{
+ U8 data[TA_BLOCK_SIZE];
+ data[0] = mMode;
+ data[1] = mFace;
+ data[2] = mSizeX;
+ data[3] = mSizeY;
+ htolememcpy(data + 4, &mStart, MVT_F32, sizeof(F32));
+ htolememcpy(data + 8, &mLength, MVT_F32, sizeof(F32));
+ htolememcpy(data + 12, &mRate, MVT_F32, sizeof(F32));
+
+ mesgsys->addBinaryDataFast(_PREHASH_TextureAnim, data, TA_BLOCK_SIZE);
+}
+
+
+void LLTextureAnim::packTAMessage(LLDataPacker &dp) const
+{
+ U8 data[TA_BLOCK_SIZE];
+ data[0] = mMode;
+ data[1] = mFace;
+ data[2] = mSizeX;
+ data[3] = mSizeY;
+ htolememcpy(data + 4, &mStart, MVT_F32, sizeof(F32));
+ htolememcpy(data + 8, &mLength, MVT_F32, sizeof(F32));
+ htolememcpy(data + 12, &mRate, MVT_F32, sizeof(F32));
+
+ dp.packBinaryData(data, TA_BLOCK_SIZE, "TextureAnimation");
+}
+
+
+void LLTextureAnim::unpackTAMessage(LLMessageSystem *mesgsys, const S32 block_num)
+{
+ S32 size = mesgsys->getSizeFast(_PREHASH_ObjectData, block_num, _PREHASH_TextureAnim);
+
+ if (size != TA_BLOCK_SIZE)
+ {
+ if (size)
+ {
+ LL_WARNS() << "Bad size " << size << " for TA block, ignoring." << LL_ENDL;
+ }
+ mMode = 0;
+ return;
+ }
+
+ U8 data[TA_BLOCK_SIZE];
+ mesgsys->getBinaryDataFast(_PREHASH_ObjectData, _PREHASH_TextureAnim, data, TA_BLOCK_SIZE, block_num);
+
+ mMode = data[0];
+ mFace = data[1];
+ if (mMode & LLTextureAnim::SMOOTH)
+ {
+ mSizeX = llmax((U8)0, data[2]);
+ mSizeY = llmax((U8)0, data[3]);
+ }
+ else
+ {
+ mSizeX = llmax((U8)1, data[2]);
+ mSizeY = llmax((U8)1, data[3]);
+ }
+ htolememcpy(&mStart, data + 4, MVT_F32, sizeof(F32));
+ htolememcpy(&mLength, data + 8, MVT_F32, sizeof(F32));
+ htolememcpy(&mRate, data + 12, MVT_F32, sizeof(F32));
+}
+
+void LLTextureAnim::unpackTAMessage(LLDataPacker &dp)
+{
+ S32 size;
+ U8 data[TA_BLOCK_SIZE];
+ dp.unpackBinaryData(data, size, "TextureAnimation");
+ if (size != TA_BLOCK_SIZE)
+ {
+ if (size)
+ {
+ LL_WARNS() << "Bad size " << size << " for TA block, ignoring." << LL_ENDL;
+ }
+ mMode = 0;
+ return;
+ }
+
+ mMode = data[0];
+ mFace = data[1];
+ mSizeX = data[2];
+ mSizeY = data[3];
+ htolememcpy(&mStart, data + 4, MVT_F32, sizeof(F32));
+ htolememcpy(&mLength, data + 8, MVT_F32, sizeof(F32));
+ htolememcpy(&mRate, data + 12, MVT_F32, sizeof(F32));
+}
+
+LLSD LLTextureAnim::asLLSD() const
+{
+ LLSD sd;
+ sd["mode"] = mMode;
+ sd["face"] = mFace;
+ sd["sizeX"] = mSizeX;
+ sd["sizeY"] = mSizeY;
+ sd["start"] = mStart;
+ sd["length"] = mLength;
+ sd["rate"] = mRate;
+ return sd;
+}
+
+bool LLTextureAnim::fromLLSD(LLSD& sd)
+{
+ const char *w;
+ w = "mode";
+ if (sd.has(w))
+ {
+ mMode = (U8)sd[w].asInteger();
+ } else goto fail;
+
+ w = "face";
+ if (sd.has(w))
+ {
+ mFace = (S8)sd[w].asInteger();
+ } else goto fail;
+
+ w = "sizeX";
+ if (sd.has(w))
+ {
+ mSizeX = (U8)sd[w].asInteger();
+ } else goto fail;
+
+ w = "sizeY";
+ if (sd.has(w))
+ {
+ mSizeY = (U8)sd[w].asInteger();
+ } else goto fail;
+
+ w = "start";
+ if (sd.has(w))
+ {
+ mStart = (F32)sd[w].asReal();
+ } else goto fail;
+
+ w = "length";
+ if (sd.has(w))
+ {
+ mLength = (F32)sd[w].asReal();
+ } else goto fail;
+
+ w = "rate";
+ if (sd.has(w))
+ {
+ mRate = (F32)sd[w].asReal();
+ } else goto fail;
+
+ return true;
+fail:
+ return false;
+}