diff options
Diffstat (limited to 'linden/indra/llprimitive/llprimitive.h')
-rwxr-xr-x[-rw-r--r--] | linden/indra/llprimitive/llprimitive.h | 58 |
1 files changed, 44 insertions, 14 deletions
diff --git a/linden/indra/llprimitive/llprimitive.h b/linden/indra/llprimitive/llprimitive.h index efabb82..e146fbe 100644..100755 --- a/linden/indra/llprimitive/llprimitive.h +++ b/linden/indra/llprimitive/llprimitive.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2009, Linden Research, Inc. | 7 | * Copyright (c) 2001-2010, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -37,9 +37,11 @@ | |||
37 | #include "v3math.h" | 37 | #include "v3math.h" |
38 | #include "xform.h" | 38 | #include "xform.h" |
39 | #include "message.h" | 39 | #include "message.h" |
40 | #include "llmemory.h" | 40 | #include "llmemory.h" // not in SG2.0 |
41 | //#include "llpointer.h"// instead in SG2.0 | ||
41 | #include "llvolume.h" | 42 | #include "llvolume.h" |
42 | #include "lltextureentry.h" | 43 | #include "lltextureentry.h" |
44 | #include "llprimtexturelist.h" | ||
43 | 45 | ||
44 | // Moved to stdtypes.h --JC | 46 | // Moved to stdtypes.h --JC |
45 | // typedef U8 LLPCode; | 47 | // typedef U8 LLPCode; |
@@ -105,7 +107,8 @@ public: | |||
105 | { | 107 | { |
106 | PARAMS_FLEXIBLE = 0x10, | 108 | PARAMS_FLEXIBLE = 0x10, |
107 | PARAMS_LIGHT = 0x20, | 109 | PARAMS_LIGHT = 0x20, |
108 | PARAMS_SCULPT = 0x30 | 110 | PARAMS_SCULPT = 0x30, |
111 | PARAMS_LIGHT_IMAGE = 0x40, | ||
109 | }; | 112 | }; |
110 | 113 | ||
111 | public: | 114 | public: |
@@ -260,11 +263,33 @@ public: | |||
260 | bool fromLLSD(LLSD& sd); | 263 | bool fromLLSD(LLSD& sd); |
261 | 264 | ||
262 | void setSculptTexture(const LLUUID& id) { mSculptTexture = id; } | 265 | void setSculptTexture(const LLUUID& id) { mSculptTexture = id; } |
263 | LLUUID getSculptTexture() { return mSculptTexture; } | 266 | LLUUID getSculptTexture() const { return mSculptTexture; } |
264 | void setSculptType(U8 type) { mSculptType = type; } | 267 | void setSculptType(U8 type) { mSculptType = type; } |
265 | U8 getSculptType() { return mSculptType; } | 268 | U8 getSculptType() const { return mSculptType; } |
266 | }; | 269 | }; |
267 | 270 | ||
271 | class LLLightImageParams : public LLNetworkData | ||
272 | { | ||
273 | protected: | ||
274 | LLUUID mLightTexture; | ||
275 | LLVector3 mParams; | ||
276 | |||
277 | public: | ||
278 | LLLightImageParams(); | ||
279 | /*virtual*/ BOOL pack(LLDataPacker &dp) const; | ||
280 | /*virtual*/ BOOL unpack(LLDataPacker &dp); | ||
281 | /*virtual*/ bool operator==(const LLNetworkData& data) const; | ||
282 | /*virtual*/ void copy(const LLNetworkData& data); | ||
283 | LLSD asLLSD() const; | ||
284 | operator LLSD() const { return asLLSD(); } | ||
285 | bool fromLLSD(LLSD& sd); | ||
286 | |||
287 | void setLightTexture(const LLUUID& id) { mLightTexture = id; } | ||
288 | LLUUID getLightTexture() const { return mLightTexture; } | ||
289 | void setParams(const LLVector3& params) { mParams = params; } | ||
290 | LLVector3 getParams() const { return mParams; } | ||
291 | |||
292 | }; | ||
268 | 293 | ||
269 | 294 | ||
270 | class LLPrimitive : public LLXform | 295 | class LLPrimitive : public LLXform |
@@ -294,6 +319,8 @@ public: | |||
294 | LLPrimitive(); | 319 | LLPrimitive(); |
295 | virtual ~LLPrimitive(); | 320 | virtual ~LLPrimitive(); |
296 | 321 | ||
322 | void clearTextureList(); | ||
323 | |||
297 | static LLPrimitive *createPrimitive(LLPCode p_code); | 324 | static LLPrimitive *createPrimitive(LLPCode p_code); |
298 | void init_primitive(LLPCode p_code); | 325 | void init_primitive(LLPCode p_code); |
299 | 326 | ||
@@ -304,11 +331,11 @@ public: | |||
304 | 331 | ||
305 | // Modify texture entry properties | 332 | // Modify texture entry properties |
306 | inline BOOL validTE(const U8 te_num) const; | 333 | inline BOOL validTE(const U8 te_num) const; |
307 | const LLTextureEntry *getTE(const U8 te_num) const; | 334 | LLTextureEntry* getTE(const U8 te_num) const; |
308 | 335 | ||
309 | virtual void setNumTEs(const U8 num_tes); | 336 | virtual void setNumTEs(const U8 num_tes); |
310 | virtual void setAllTETextures(const LLUUID &tex_id); | 337 | virtual void setAllTETextures(const LLUUID &tex_id); |
311 | virtual void setTE(const U8 index, const LLTextureEntry &te); | 338 | virtual void setTE(const U8 index, const LLTextureEntry& te); |
312 | virtual S32 setTEColor(const U8 te, const LLColor4 &color); | 339 | virtual S32 setTEColor(const U8 te, const LLColor4 &color); |
313 | virtual S32 setTEColor(const U8 te, const LLColor3 &color); | 340 | virtual S32 setTEColor(const U8 te, const LLColor3 &color); |
314 | virtual S32 setTEAlpha(const U8 te, const F32 alpha); | 341 | virtual S32 setTEAlpha(const U8 te, const F32 alpha); |
@@ -331,10 +358,6 @@ public: | |||
331 | virtual S32 setTEGlow(const U8 te, const F32 glow); | 358 | virtual S32 setTEGlow(const U8 te, const F32 glow); |
332 | virtual BOOL setMaterial(const U8 material); // returns TRUE if material changed | 359 | virtual BOOL setMaterial(const U8 material); // returns TRUE if material changed |
333 | 360 | ||
334 | void setTEArrays(const U8 size, | ||
335 | const LLUUID* image_ids, | ||
336 | const F32* scale_s, | ||
337 | const F32* scale_t); | ||
338 | void copyTEs(const LLPrimitive *primitive); | 361 | void copyTEs(const LLPrimitive *primitive); |
339 | S32 packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const; | 362 | S32 packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const; |
340 | S32 unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 data_size, U8 face_count, EMsgVariableType type); | 363 | S32 unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 data_size, U8 face_count, EMsgVariableType type); |
@@ -382,14 +405,21 @@ public: | |||
382 | const LLVector3& getAngularVelocity() const { return mAngularVelocity; } | 405 | const LLVector3& getAngularVelocity() const { return mAngularVelocity; } |
383 | const LLVector3& getVelocity() const { return mVelocity; } | 406 | const LLVector3& getVelocity() const { return mVelocity; } |
384 | const LLVector3& getAcceleration() const { return mAcceleration; } | 407 | const LLVector3& getAcceleration() const { return mAcceleration; } |
385 | U8 getNumTEs() const { return mNumTEs; } | 408 | U8 getNumTEs() const { return mTextureList.size(); } |
409 | U8 getExpectedNumTEs() const; | ||
386 | 410 | ||
387 | U8 getMaterial() const { return mMaterial; } | 411 | U8 getMaterial() const { return mMaterial; } |
388 | 412 | ||
389 | void setVolumeType(const U8 code); | 413 | void setVolumeType(const U8 code); |
390 | U8 getVolumeType(); | 414 | U8 getVolumeType(); |
391 | 415 | ||
392 | void setTextureList(LLTextureEntry *listp); | 416 | // clears existing textures |
417 | // copies the contents of other_list into mEntryList | ||
418 | void copyTextureList(const LLPrimTextureList& other_list); | ||
419 | |||
420 | // clears existing textures | ||
421 | // takes the contents of other_list and clears other_list | ||
422 | void takeTextureList(LLPrimTextureList& other_list); | ||
393 | 423 | ||
394 | inline BOOL isAvatar() const; | 424 | inline BOOL isAvatar() const; |
395 | inline BOOL isSittingAvatar() const; | 425 | inline BOOL isSittingAvatar() const; |
@@ -414,7 +444,7 @@ protected: | |||
414 | LLVector3 mAcceleration; // are we under constant acceleration? | 444 | LLVector3 mAcceleration; // are we under constant acceleration? |
415 | LLVector3 mAngularVelocity; // angular velocity | 445 | LLVector3 mAngularVelocity; // angular velocity |
416 | LLPointer<LLVolume> mVolumep; | 446 | LLPointer<LLVolume> mVolumep; |
417 | LLTextureEntry *mTextureList; // list of texture GUIDs, scales, offsets | 447 | LLPrimTextureList mTextureList; // list of texture GUIDs, scales, offsets |
418 | U8 mMaterial; // Material code | 448 | U8 mMaterial; // Material code |
419 | U8 mNumTEs; // # of faces on the primitve | 449 | U8 mNumTEs; // # of faces on the primitve |
420 | U32 mMiscFlags; // home for misc bools | 450 | U32 mMiscFlags; // home for misc bools |