Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Alchemy Viewer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
Alchemy Viewer
Alchemy Viewer
Commits
09d48157
Commit
09d48157
authored
12 years ago
by
David Parks
Browse files
Options
Downloads
Plain Diff
Automated merge with
https://bitbucket.org/lindenlab/viewer-cat
parents
ebb57d28
9276026e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
indra/llmessage/llpartdata.cpp
+0
-45
0 additions, 45 deletions
indra/llmessage/llpartdata.cpp
indra/llmessage/llpartdata.h
+1
-4
1 addition, 4 deletions
indra/llmessage/llpartdata.h
indra/llmessage/tests/llpartdata_test.cpp
+97
-159
97 additions, 159 deletions
indra/llmessage/tests/llpartdata_test.cpp
with
98 additions
and
208 deletions
indra/llmessage/llpartdata.cpp
+
0
−
45
View file @
09d48157
...
@@ -66,40 +66,6 @@ bool LLPartData::hasBlendFunc() const
...
@@ -66,40 +66,6 @@ bool LLPartData::hasBlendFunc() const
return
mBlendFuncSource
!=
LLPartData
::
LL_PART_BF_SOURCE_ALPHA
||
mBlendFuncDest
!=
LLPartData
::
LL_PART_BF_ONE_MINUS_SOURCE_ALPHA
;
return
mBlendFuncSource
!=
LLPartData
::
LL_PART_BF_SOURCE_ALPHA
||
mBlendFuncDest
!=
LLPartData
::
LL_PART_BF_ONE_MINUS_SOURCE_ALPHA
;
}
}
LLSD
LLPartData
::
asLLSD
()
const
{
LLSD
sd
=
LLSD
();
sd
[
"pdflags"
]
=
ll_sd_from_U32
(
mFlags
);
sd
[
"pdmaxage"
]
=
mMaxAge
;
sd
[
"pdstartcolor"
]
=
ll_sd_from_color4
(
mStartColor
);
sd
[
"pdendcolor"
]
=
ll_sd_from_color4
(
mEndColor
);
sd
[
"pdstartscale"
]
=
ll_sd_from_vector2
(
mStartScale
);
sd
[
"pdendscale"
]
=
ll_sd_from_vector2
(
mEndScale
);
sd
[
"pdstartglow"
]
=
mStartGlow
;
sd
[
"pdendglow"
]
=
mEndGlow
;
sd
[
"pdblendsource"
]
=
(
S32
)
mBlendFuncSource
;
sd
[
"pdblenddest"
]
=
(
S32
)
mBlendFuncDest
;
return
sd
;
}
bool
LLPartData
::
fromLLSD
(
LLSD
&
sd
)
{
mFlags
=
ll_U32_from_sd
(
sd
[
"pdflags"
]);
mMaxAge
=
(
F32
)
sd
[
"pdmaxage"
].
asReal
();
mStartColor
=
ll_color4_from_sd
(
sd
[
"pdstartcolor"
]);
mEndColor
=
ll_color4_from_sd
(
sd
[
"pdendcolor"
]);
mStartScale
=
ll_vector2_from_sd
(
sd
[
"pdstartscale"
]);
mEndScale
=
ll_vector2_from_sd
(
sd
[
"pdendscale"
]);
mStartGlow
=
sd
.
has
(
"pdstartglow"
)
?
sd
[
"pdstartglow"
].
asReal
()
:
0.
f
;
mEndGlow
=
sd
.
has
(
"pdendglow"
)
?
sd
[
"pdendglow"
].
asReal
()
:
0.
f
;
mBlendFuncSource
=
sd
.
has
(
"pdblendsource"
)
?
(
U8
)
sd
[
"pdblendsource"
].
asInteger
()
:
LL_PART_BF_SOURCE_ALPHA
;
mBlendFuncDest
=
sd
.
has
(
"pdblenddest"
)
?
(
U8
)
sd
[
"pdblenddest"
].
asInteger
()
:
LL_PART_BF_ONE_MINUS_SOURCE_ALPHA
;
return
true
;
}
S32
LLPartData
::
getSize
()
const
S32
LLPartData
::
getSize
()
const
{
{
S32
size
=
PS_LEGACY_PART_DATA_BLOCK_SIZE
;
S32
size
=
PS_LEGACY_PART_DATA_BLOCK_SIZE
;
...
@@ -126,17 +92,6 @@ BOOL LLPartData::unpackLegacy(LLDataPacker &dp)
...
@@ -126,17 +92,6 @@ BOOL LLPartData::unpackLegacy(LLDataPacker &dp)
dp
.
unpackFixed
(
mEndScale
.
mV
[
0
],
"pdendscalex"
,
FALSE
,
3
,
5
);
dp
.
unpackFixed
(
mEndScale
.
mV
[
0
],
"pdendscalex"
,
FALSE
,
3
,
5
);
dp
.
unpackFixed
(
mEndScale
.
mV
[
1
],
"pdendscaley"
,
FALSE
,
3
,
5
);
dp
.
unpackFixed
(
mEndScale
.
mV
[
1
],
"pdendscaley"
,
FALSE
,
3
,
5
);
/*if (dp.hasNext())
{
U8 tmp_glow = 0;
dp.unpackU8(tmp_glow,"pdstartglow");
mStartGlow = tmp_glow / 255.f;
dp.unpackU8(tmp_glow,"pdendglow");
mEndGlow = tmp_glow / 255.f;
dp.unpackU8(mBlendFuncSource,"pdblendsource");
dp.unpackU8(mBlendFuncDest,"pdblenddest");
}*/
mStartGlow
=
0.
f
;
mStartGlow
=
0.
f
;
mEndGlow
=
0.
f
;
mEndGlow
=
0.
f
;
mBlendFuncSource
=
LLPartData
::
LL_PART_BF_SOURCE_ALPHA
;
mBlendFuncSource
=
LLPartData
::
LL_PART_BF_SOURCE_ALPHA
;
...
...
This diff is collapsed.
Click to expand it.
indra/llmessage/llpartdata.h
+
1
−
4
View file @
09d48157
...
@@ -92,10 +92,7 @@ class LLPartData
...
@@ -92,10 +92,7 @@ class LLPartData
BOOL
unpack
(
LLDataPacker
&
dp
);
BOOL
unpack
(
LLDataPacker
&
dp
);
BOOL
pack
(
LLDataPacker
&
dp
);
BOOL
pack
(
LLDataPacker
&
dp
);
LLSD
asLLSD
()
const
;
operator
LLSD
()
const
{
return
asLLSD
();
}
bool
fromLLSD
(
LLSD
&
sd
);
bool
hasGlow
()
const
;
bool
hasGlow
()
const
;
bool
hasBlendFunc
()
const
;
bool
hasBlendFunc
()
const
;
...
...
This diff is collapsed.
Click to expand it.
indra/llmessage/tests/llpartdata_test.cpp
+
97
−
159
View file @
09d48157
...
@@ -38,10 +38,34 @@
...
@@ -38,10 +38,34 @@
namespace
tut
namespace
tut
{
{
//bunch of sniffed data that *should* be a valid particle system
static
U8
msg
[]
=
{
0x44
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x19
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x01
,
0x01
,
0x00
,
0x80
,
0x00
,
0x80
,
0x00
,
0x80
,
0x00
,
0x80
,
0x00
,
0x80
,
0x00
,
0x80
,
0x5e
,
0x12
,
0x0b
,
0xa1
,
0x58
,
0x05
,
0xdc
,
0x57
,
0x66
,
0xb7
,
0xf5
,
0xac
,
0x4b
,
0xd1
,
0x8f
,
0x86
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x14
,
0x00
,
0x00
,
0x00
,
0x02
,
0x05
,
0x02
,
0x00
,
0x00
,
0x0a
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0x00
,
0x00
,
0x20
,
0x20
,
0x00
,
0x00
,
0x02
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0xc6
,
0x81
,
0xdc
,
0x7e
,
0xc6
,
0x81
,
0xdc
,
0x77
,
0xcf
,
0xef
,
0xd4
,
0xce
,
0x64
,
0x1a
,
0x7e
,
0x26
,
0x87
,
0x55
,
0x7f
,
0xdd
,
0x65
,
0x22
,
0x7f
,
0xdd
,
0x65
,
0x22
,
0x7f
,
0x77
,
0xcf
,
0x98
,
0xa3
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xd1
,
0xf2
,
0xf1
,
0x65
,
0x32
,
0x1b
,
0xef
,
0x18
,
0x70
,
0x66
,
0xba
,
0x30
,
0xa0
,
0x11
,
0xaa
,
0x2f
,
0xb0
,
0xab
,
0xd0
,
0x30
,
0x7d
,
0xbd
,
0x01
,
0x00
,
0xf8
,
0x0d
,
0xb8
,
0x30
,
0x01
,
0x00
,
0x00
,
0x00
,
0xce
,
0xc6
,
0x81
,
0xdc
,
0xce
,
0xc6
,
0x81
,
0xdc
,
0xc7
,
0xcf
,
0xef
,
0xd4
,
0x75
,
0x65
,
0x1a
,
0x7f
,
0x62
,
0x6f
,
0x55
,
0x7f
,
0x6d
,
0x65
,
0x22
,
0x7f
,
0x6d
,
0x65
,
0x22
,
0x7f
,
0xc7
,
0xcf
,
0x98
,
0xa3
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xd6
,
0xf2
,
0xf1
,
0x62
,
0x12
,
0x1b
,
0xef
,
0x18
,
0x7e
,
0xbd
,
0x01
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xac
,
0x28
,
0x03
,
0x80
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x48
,
0xe0
,
0xb9
,
0x30
,
0x03
,
0xe1
,
0xb9
,
0x30
,
0xbb
,
0x00
,
0x00
,
0x00
,
0x48
,
0xe0
,
0xb9
,
0x30
,
0x36
,
0xd9
,
0x81
,
0xdc
,
0x36
,
0xd9
,
0x81
,
0xdc
,
0x3f
,
0xd0
,
0xef
,
0xd4
,
0xa5
,
0x7a
,
0x72
,
0x7f
,
0x26
,
0x30
,
0x55
,
0x7f
,
0x95
,
0x7a
,
0x22
,
0x7f
,
0x95
,
0x7a
,
0x22
,
0x7f
,
0x3f
,
0xd0
,
0x98
,
0xa3
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0xab
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
};
struct
partdata_test
struct
partdata_test
{
{
};
};
typedef
test_group
<
partdata_test
>
partdata_test_t
;
typedef
test_group
<
partdata_test
>
partdata_test_t
;
typedef
partdata_test_t
::
object
partdata_test_object_t
;
typedef
partdata_test_t
::
object
partdata_test_object_t
;
tut
::
partdata_test_t
tut_partdata_test
(
"LLPartData"
);
tut
::
partdata_test_t
tut_partdata_test
(
"LLPartData"
);
...
@@ -49,168 +73,82 @@ namespace tut
...
@@ -49,168 +73,82 @@ namespace tut
template
<
>
template
<
>
template
<
>
template
<
>
void
partdata_test_object_t
::
test
<
1
>
()
void
partdata_test_object_t
::
test
<
1
>
()
{
{
LLPartData
llpdata
,
llpdata1
;
LLPartSysData
llpsysdata
;
U8
pkbuf
[
128
];
LLDataPackerBinaryBuffer
dp1
(
msg
,
sizeof
(
msg
));
llpdata
.
setFlags
(
LLPartData
::
LL_PART_INTERP_COLOR_MASK
|
LLPartData
::
LL_PART_INTERP_SCALE_MASK
|
LLPartData
::
LL_PART_BOUNCE_MASK
|
LLPartData
::
LL_PART_WIND_MASK
|
LLPartData
::
LL_PART_FOLLOW_SRC_MASK
|
LLPartData
::
LL_PART_FOLLOW_VELOCITY_MASK
|
LLPartData
::
LL_PART_TARGET_POS_MASK
|
LLPartData
::
LL_PART_TARGET_LINEAR_MASK
|
LLPartData
::
LL_PART_EMISSIVE_MASK
|
LLPartData
::
LL_PART_BEAM_MASK
|
LLPartData
::
LL_PART_DEAD_MASK
);
llpdata
.
setMaxAge
(
29.3
f
);
LLVector3
llvec1
(
1.0
f
,
.5
f
,
.25
f
);
llpdata
.
setStartColor
(
llvec1
);
llpdata
.
setStartAlpha
(
.7
f
);
LLVector3
llvec2
(
.2
f
,
.3
f
,
1.0
f
);
llpdata
.
setEndColor
(
llvec2
);
llpdata
.
setEndAlpha
(
1.0
f
);
llpdata
.
setStartScale
(
3.23
f
,
4.0
f
);
ensure
(
"LLPartSysData::unpack failed."
,
llpsysdata
.
unpack
(
dp1
));
llpdata
.
setEndScale
(
2.4678
f
,
1.0
f
);
LLDataPackerBinaryBuffer
dp
((
U8
*
)
pkbuf
,
128
);
llpdata
.
pack
(
dp
);
S32
cur_size
=
dp
.
getCurrentSize
();
//mCRC 1 unsigned int
ensure
(
"mCRC different after unpacking"
,
llpsysdata
.
mCRC
==
(
U32
)
1
);
LLDataPackerBinaryBuffer
dp1
((
U8
*
)
pkbuf
,
cur_size
);
//mFlags 0 unsigned int
llpdata1
.
unpack
(
dp1
);
ensure
(
"mFlags different after unpacking"
,
llpsysdata
.
mFlags
==
(
U32
)
0
);
//mPattern 1 '' unsigned char
ensure
(
"1.mFlags values are different after unpacking"
,
llpdata1
.
mFlags
==
llpdata
.
mFlags
);
ensure
(
"mPattern different after unpacking"
,
llpsysdata
.
mPattern
==
(
U8
)
1
);
ensure_approximately_equals
(
"2.mMaxAge values are different after unpacking"
,
llpdata1
.
mMaxAge
,
llpdata
.
mMaxAge
,
8
);
//mInnerAngle 0.00000000 float
ensure_approximately_equals
(
"mInnerAngle different after unpacking"
,
llpsysdata
.
mInnerAngle
,
0.
f
,
8
);
ensure_approximately_equals
(
"3.mStartColor[0] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
0
],
llpdata
.
mStartColor
.
mV
[
0
],
8
);
//mOuterAngle 0.00000000 float
ensure_approximately_equals
(
"4.mStartColor[1] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
1
],
llpdata
.
mStartColor
.
mV
[
1
],
8
);
ensure_approximately_equals
(
"mOuterAngle different after unpacking"
,
llpsysdata
.
mOuterAngle
,
0.
f
,
8
);
ensure_approximately_equals
(
"5.mStartColor[2] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
2
],
llpdata
.
mStartColor
.
mV
[
2
],
8
);
//mAngularVelocity 0,0,0
ensure_approximately_equals
(
"6.mStartColor[3] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
3
],
llpdata
.
mStartColor
.
mV
[
3
],
8
);
ensure_approximately_equals
(
"mAngularVelocity.mV[0] different after unpacking"
,
llpsysdata
.
mAngularVelocity
.
mV
[
0
],
0.
f
,
8
);
ensure_approximately_equals
(
"mAngularVelocity.mV[0] different after unpacking"
,
llpsysdata
.
mAngularVelocity
.
mV
[
1
],
0.
f
,
8
);
ensure_approximately_equals
(
"7.mEndColor[0] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
0
],
llpdata
.
mEndColor
.
mV
[
0
],
8
);
ensure_approximately_equals
(
"mAngularVelocity.mV[0] different after unpacking"
,
llpsysdata
.
mAngularVelocity
.
mV
[
2
],
0.
f
,
8
);
ensure_approximately_equals
(
"8.mEndColor[1] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
1
],
llpdata
.
mEndColor
.
mV
[
1
],
8
);
//mBurstRate 0.097656250 float
ensure_approximately_equals
(
"9.mEndColor[2] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
2
],
llpdata
.
mEndColor
.
mV
[
2
],
8
);
ensure_approximately_equals
(
"mBurstRate different after unpacking"
,
llpsysdata
.
mBurstRate
,
0.097656250
f
,
8
);
ensure_approximately_equals
(
"10.mEndColor[2] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
3
],
llpdata
.
mEndColor
.
mV
[
3
],
8
);
//mBurstPartCount 1 '' unsigned char
ensure
(
"mBurstPartCount different after unpacking"
,
llpsysdata
.
mBurstPartCount
==
(
U8
)
1
);
ensure_approximately_equals
(
"11.mStartScale[0] values are different after unpacking"
,
llpdata1
.
mStartScale
.
mV
[
0
],
llpdata
.
mStartScale
.
mV
[
0
],
5
);
//mBurstRadius 0.00000000 float
ensure_approximately_equals
(
"12.mStartScale[1] values are different after unpacking"
,
llpdata1
.
mStartScale
.
mV
[
1
],
llpdata
.
mStartScale
.
mV
[
1
],
5
);
ensure_approximately_equals
(
"mBurstRadius different after unpacking"
,
llpsysdata
.
mBurstRadius
,
0.
f
,
8
);
//mBurstSpeedMin 1.0000000 float
ensure_approximately_equals
(
"13.mEndScale[0] values are different after unpacking"
,
llpdata1
.
mEndScale
.
mV
[
0
],
llpdata
.
mEndScale
.
mV
[
0
],
5
);
ensure_approximately_equals
(
"mBurstSpeedMin different after unpacking"
,
llpsysdata
.
mBurstSpeedMin
,
1.
f
,
8
);
ensure_approximately_equals
(
"14.mEndScale[1] values are different after unpacking"
,
llpdata1
.
mEndScale
.
mV
[
1
],
llpdata
.
mEndScale
.
mV
[
1
],
5
);
//mBurstSpeedMax 1.0000000 float
}
ensure_approximately_equals
(
"mBurstSpeedMax different after unpacking"
,
llpsysdata
.
mBurstSpeedMax
,
1.
f
,
8
);
//mMaxAge 0.00000000 float
ensure_approximately_equals
(
"mMaxAge different after unpacking"
,
llpsysdata
.
mMaxAge
,
0.
f
,
8
);
template
<
>
template
<
>
//mStartAge 0.00000000 float
void
partdata_test_object_t
::
test
<
2
>
()
ensure_approximately_equals
(
"mStartAge different after unpacking"
,
llpsysdata
.
mStartAge
,
0.
f
,
8
);
{
//mPartAccel <0,0,0>
LLPartData
llpdata
,
llpdata1
;
ensure_approximately_equals
(
"mPartAccel.mV[0] different after unpacking"
,
llpsysdata
.
mPartAccel
.
mV
[
0
],
0.
f
,
7
);
ensure_approximately_equals
(
"mPartAccel.mV[1] different after unpacking"
,
llpsysdata
.
mPartAccel
.
mV
[
1
],
0.
f
,
7
);
llpdata
.
setFlags
(
LLPartData
::
LL_PART_INTERP_COLOR_MASK
|
LLPartData
::
LL_PART_INTERP_SCALE_MASK
|
ensure_approximately_equals
(
"mPartAccel.mV[2] different after unpacking"
,
llpsysdata
.
mPartAccel
.
mV
[
2
],
0.
f
,
7
);
LLPartData
::
LL_PART_BOUNCE_MASK
|
LLPartData
::
LL_PART_WIND_MASK
|
LLPartData
::
LL_PART_FOLLOW_SRC_MASK
|
LLPartData
::
LL_PART_FOLLOW_VELOCITY_MASK
|
LLPartData
::
LL_PART_TARGET_POS_MASK
|
LLPartData
::
LL_PART_TARGET_LINEAR_MASK
|
//mPartData
LLPartData
::
LL_PART_EMISSIVE_MASK
|
LLPartData
::
LL_PART_BEAM_MASK
|
LLPartData
::
LL_PART_DEAD_MASK
);
LLPartData
&
data
=
llpsysdata
.
mPartData
;
llpdata
.
setMaxAge
(
29.3
f
);
//mFlags 132354 unsigned int
ensure
(
"mPartData.mFlags different after unpacking"
,
data
.
mFlags
==
(
U32
)
132354
);
LLVector3
llvec1
(
1.0
f
,
.5
f
,
.25
f
);
//mMaxAge 10.000000 float
llpdata
.
setStartColor
(
llvec1
);
ensure_approximately_equals
(
"mPartData.mMaxAge different after unpacking"
,
data
.
mMaxAge
,
10.
f
,
8
);
llpdata
.
setStartAlpha
(
.7
f
);
//mStartColor <1,1,1,1>
ensure_approximately_equals
(
"mPartData.mStartColor.mV[0] different after unpacking"
,
data
.
mStartColor
.
mV
[
0
],
1.
f
,
8
);
LLVector3
llvec2
(
.2
f
,
.3
f
,
1.0
f
);
ensure_approximately_equals
(
"mPartData.mStartColor.mV[1] different after unpacking"
,
data
.
mStartColor
.
mV
[
1
],
1.
f
,
8
);
llpdata
.
setEndColor
(
llvec2
);
ensure_approximately_equals
(
"mPartData.mStartColor.mV[2] different after unpacking"
,
data
.
mStartColor
.
mV
[
2
],
1.
f
,
8
);
llpdata
.
setEndAlpha
(
1.0
f
);
ensure_approximately_equals
(
"mPartData.mStartColor.mV[3] different after unpacking"
,
data
.
mStartColor
.
mV
[
3
],
1.
f
,
8
);
//mEndColor <1,1,0,0>
llpdata
.
setStartScale
(
3.23
f
,
4.0
f
);
ensure_approximately_equals
(
"mPartData.mEndColor.mV[0] different after unpacking"
,
data
.
mEndColor
.
mV
[
0
],
1.
f
,
8
);
llpdata
.
setEndScale
(
2.4678
f
,
1.0
f
);
ensure_approximately_equals
(
"mPartData.mEndColor.mV[1] different after unpacking"
,
data
.
mEndColor
.
mV
[
1
],
1.
f
,
8
);
ensure_approximately_equals
(
"mPartData.mEndColor.mV[2] different after unpacking"
,
data
.
mEndColor
.
mV
[
2
],
0.
f
,
8
);
LLSD
llsd
=
llpdata
.
asLLSD
();
ensure_approximately_equals
(
"mPartData.mEndColor.mV[3] different after unpacking"
,
data
.
mEndColor
.
mV
[
3
],
0.
f
,
8
);
//mStartScale <1,1>
llpdata1
.
fromLLSD
(
llsd
);
ensure_approximately_equals
(
"mPartData.mStartScale.mV[0] different after unpacking"
,
data
.
mStartScale
.
mV
[
0
],
1.
f
,
8
);
ensure_approximately_equals
(
"mPartData.mStartScale.mV[1] different after unpacking"
,
data
.
mStartScale
.
mV
[
1
],
1.
f
,
8
);
ensure
(
"1.mFlags values are different after unpacking"
,
llpdata1
.
mFlags
==
llpdata
.
mFlags
);
//mEndScale <0,0>
ensure_approximately_equals
(
"2.mMaxAge values are different after unpacking"
,
llpdata1
.
mMaxAge
,
llpdata
.
mMaxAge
,
8
);
ensure_approximately_equals
(
"mPartData.mEndScale.mV[0] different after unpacking"
,
data
.
mEndScale
.
mV
[
0
],
0.
f
,
8
);
ensure_approximately_equals
(
"mPartData.mEndScale.mV[1] different after unpacking"
,
data
.
mEndScale
.
mV
[
1
],
0.
f
,
8
);
ensure_approximately_equals
(
"3.mStartColor[0] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
0
],
llpdata
.
mStartColor
.
mV
[
0
],
8
);
//mPosOffset <0,0,0>
ensure_approximately_equals
(
"4.mStartColor[1] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
1
],
llpdata
.
mStartColor
.
mV
[
1
],
8
);
ensure_approximately_equals
(
"mPartData.mPosOffset.mV[0] different after unpacking"
,
data
.
mPosOffset
.
mV
[
0
],
0.
f
,
8
);
ensure_approximately_equals
(
"5.mStartColor[2] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
2
],
llpdata
.
mStartColor
.
mV
[
2
],
8
);
ensure_approximately_equals
(
"mPartData.mPosOffset.mV[1] different after unpacking"
,
data
.
mPosOffset
.
mV
[
1
],
0.
f
,
8
);
ensure_approximately_equals
(
"6.mStartColor[3] values are different after unpacking"
,
llpdata1
.
mStartColor
.
mV
[
3
],
llpdata
.
mStartColor
.
mV
[
3
],
8
);
ensure_approximately_equals
(
"mPartData.mPosOffset.mV[2] different after unpacking"
,
data
.
mPosOffset
.
mV
[
2
],
0.
f
,
8
);
//mParameter 0.00000000 float
ensure_approximately_equals
(
"7.mEndColor[0] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
0
],
llpdata
.
mEndColor
.
mV
[
0
],
8
);
ensure_approximately_equals
(
"mPartData.mParameter different after unpacking"
,
data
.
mParameter
,
0.
f
,
8
);
ensure_approximately_equals
(
"8.mEndColor[1] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
1
],
llpdata
.
mEndColor
.
mV
[
1
],
8
);
ensure_approximately_equals
(
"9.mEndColor[2] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
2
],
llpdata
.
mEndColor
.
mV
[
2
],
8
);
ensure_approximately_equals
(
"10.mEndColor[2] values are different after unpacking"
,
llpdata1
.
mEndColor
.
mV
[
3
],
llpdata
.
mEndColor
.
mV
[
3
],
8
);
ensure_approximately_equals
(
"11.mStartScale[0] values are different after unpacking"
,
llpdata1
.
mStartScale
.
mV
[
0
],
llpdata
.
mStartScale
.
mV
[
0
],
5
);
ensure_approximately_equals
(
"12.mStartScale[1] values are different after unpacking"
,
llpdata1
.
mStartScale
.
mV
[
1
],
llpdata
.
mStartScale
.
mV
[
1
],
5
);
ensure_approximately_equals
(
"13.mEndScale[0] values are different after unpacking"
,
llpdata1
.
mEndScale
.
mV
[
0
],
llpdata
.
mEndScale
.
mV
[
0
],
5
);
ensure_approximately_equals
(
"14.mEndScale[1] values are different after unpacking"
,
llpdata1
.
mEndScale
.
mV
[
1
],
llpdata
.
mEndScale
.
mV
[
1
],
5
);
}
//*********llpartsysdata***********
template
<
>
template
<
>
void
partdata_test_object_t
::
test
<
3
>
()
{
LLPartSysData
llpsysdata
,
llpsysdata1
;
U8
pkbuf
[
256
];
llpsysdata
.
setBurstSpeedMin
(
33.33
f
);
ensure
(
"1.mBurstSpeedMin coudnt be set"
,
33.33
f
==
llpsysdata
.
mBurstSpeedMin
);
llpsysdata
.
setBurstSpeedMax
(
44.44
f
);
ensure
(
"2.mBurstSpeedMax coudnt be set"
,
44.44
f
==
llpsysdata
.
mBurstSpeedMax
);
llpsysdata
.
setBurstRadius
(
45.55
f
);
ensure
(
"3.mBurstRadius coudnt be set"
,
45.55
f
==
llpsysdata
.
mBurstRadius
);
LLVector3
llvec
(
44.44
f
,
111.11
f
,
-
40.4
f
);
llpsysdata
.
setPartAccel
(
llvec
);
llpsysdata
.
mCRC
=
0xFFFFFFFF
;
llpsysdata
.
mFlags
=
0x20
;
llpsysdata
.
mPattern
=
LLPartSysData
::
LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY
;
llpsysdata
.
mMaxAge
=
99.99
f
;
llpsysdata
.
mStartAge
=
18.5
f
;
llpsysdata
.
mInnerAngle
=
4.234
f
;
llpsysdata
.
mOuterAngle
=
7.123
f
;
llpsysdata
.
mBurstRate
=
245.53
f
;
llpsysdata
.
mBurstPartCount
=
0xFF
;
llpsysdata
.
mAngularVelocity
=
llvec
;
llpsysdata
.
mPartImageID
.
generate
();
llpsysdata
.
mTargetUUID
.
generate
();
LLDataPackerBinaryBuffer
dp
((
U8
*
)
pkbuf
,
256
);
//mStartGlow 0.00000000 float
llpsysdata
.
pack
(
dp
);
ensure_approximately_equals
(
"mPartData.mStartGlow different after unpacking"
,
data
.
mStartGlow
,
0.
f
,
8
);
S32
cur_size
=
dp
.
getCurrentSize
();
//mEndGlow 0.00000000 float
LLDataPackerBinaryBuffer
dp1
((
U8
*
)
pkbuf
,
cur_size
);
ensure_approximately_equals
(
"mPartData.mEndGlow different after unpacking"
,
data
.
mEndGlow
,
0.
f
,
8
);
llpsysdata1
.
unpack
(
dp1
);
//mBlendFuncSource 2 '' unsigned char
ensure
(
"mPartData.mBlendFuncSource different after unpacking"
,
data
.
mBlendFuncSource
==
(
U8
)
2
);
ensure
(
"1.mCRC's not equal"
,
llpsysdata
.
mCRC
==
llpsysdata1
.
mCRC
);
//mBlendFuncDest 1 '' unsigned char
ensure
(
"2.mFlags's not equal"
,
llpsysdata
.
mFlags
==
llpsysdata1
.
mFlags
);
ensure
(
"mPartData.mBlendFuncDest different after unpacking"
,
data
.
mBlendFuncDest
==
(
U8
)
1
);
ensure
(
"3.mPattern's not equal"
,
llpsysdata
.
mPattern
==
llpsysdata1
.
mPattern
);
ensure_approximately_equals
(
"4.mMaxAge's not equal"
,
llpsysdata
.
mMaxAge
,
llpsysdata1
.
mMaxAge
,
8
);
ensure_approximately_equals
(
"5.mStartAge's not equal"
,
llpsysdata
.
mStartAge
,
llpsysdata1
.
mStartAge
,
8
);
ensure_approximately_equals
(
"6.mOuterAngle's not equal"
,
llpsysdata
.
mOuterAngle
,
llpsysdata1
.
mOuterAngle
,
5
);
ensure_approximately_equals
(
"7.mInnerAngles's not equal"
,
llpsysdata
.
mInnerAngle
,
llpsysdata1
.
mInnerAngle
,
5
);
ensure_approximately_equals
(
"8.mBurstRate's not equal"
,
llpsysdata
.
mBurstRate
,
llpsysdata1
.
mBurstRate
,
8
);
ensure
(
"9.mBurstPartCount's not equal"
,
llpsysdata
.
mBurstPartCount
==
llpsysdata1
.
mBurstPartCount
);
ensure_approximately_equals
(
"10.mBurstSpeedMin's not equal"
,
llpsysdata
.
mBurstSpeedMin
,
llpsysdata1
.
mBurstSpeedMin
,
8
);
ensure_approximately_equals
(
"11.mBurstSpeedMax's not equal"
,
llpsysdata
.
mBurstSpeedMax
,
llpsysdata1
.
mBurstSpeedMax
,
8
);
ensure_approximately_equals
(
"12.mAngularVelocity's not equal"
,
llpsysdata
.
mAngularVelocity
.
mV
[
0
],
llpsysdata1
.
mAngularVelocity
.
mV
[
0
],
7
);
ensure_approximately_equals
(
"13.mAngularVelocity's not equal"
,
llpsysdata
.
mAngularVelocity
.
mV
[
1
],
llpsysdata1
.
mAngularVelocity
.
mV
[
1
],
7
);
ensure_approximately_equals
(
"14.mAngularVelocity's not equal"
,
llpsysdata
.
mAngularVelocity
.
mV
[
2
],
llpsysdata1
.
mAngularVelocity
.
mV
[
2
],
7
);
ensure_approximately_equals
(
"15.mPartAccel's not equal"
,
llpsysdata
.
mPartAccel
.
mV
[
0
],
llpsysdata1
.
mPartAccel
.
mV
[
0
],
7
);
ensure_approximately_equals
(
"16.mPartAccel's not equal"
,
llpsysdata
.
mPartAccel
.
mV
[
1
],
llpsysdata1
.
mPartAccel
.
mV
[
1
],
7
);
ensure_approximately_equals
(
"17.mPartAccel's not equal"
,
llpsysdata
.
mPartAccel
.
mV
[
2
],
llpsysdata1
.
mPartAccel
.
mV
[
2
],
7
);
ensure
(
"18.mPartImageID's not equal"
,
llpsysdata
.
mPartImageID
==
llpsysdata1
.
mPartImageID
);
ensure
(
"19.mTargetUUID's not equal"
,
llpsysdata
.
mTargetUUID
==
llpsysdata1
.
mTargetUUID
);
ensure_approximately_equals
(
"20.mBurstRadius's not equal"
,
llpsysdata
.
mBurstRadius
,
llpsysdata1
.
mBurstRadius
,
8
);
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment