diff options
Diffstat (limited to 'OpenSim/Framework/PrimitiveBaseShape.cs')
-rw-r--r-- | OpenSim/Framework/PrimitiveBaseShape.cs | 378 |
1 files changed, 302 insertions, 76 deletions
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index 12ca688..2b023cd 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs | |||
@@ -78,23 +78,57 @@ namespace OpenSim.Framework | |||
78 | 78 | ||
79 | private byte[] m_textureEntry; | 79 | private byte[] m_textureEntry; |
80 | 80 | ||
81 | public ushort PathBegin; | 81 | public ushort _pathBegin; |
82 | public byte PathCurve; | 82 | public byte _pathCurve; |
83 | public ushort PathEnd; | 83 | public ushort _pathEnd; |
84 | public sbyte PathRadiusOffset; | 84 | public sbyte _pathRadiusOffset; |
85 | public byte PathRevolutions; | 85 | public byte _pathRevolutions; |
86 | public byte PathScaleX; | 86 | public byte _pathScaleX; |
87 | public byte PathScaleY; | 87 | public byte _pathScaleY; |
88 | public byte PathShearX; | 88 | public byte _pathShearX; |
89 | public byte PathShearY; | 89 | public byte _pathShearY; |
90 | public sbyte PathSkew; | 90 | public sbyte _pathSkew; |
91 | public sbyte PathTaperX; | 91 | public sbyte _pathTaperX; |
92 | public sbyte PathTaperY; | 92 | public sbyte _pathTaperY; |
93 | public sbyte PathTwist; | 93 | public sbyte _pathTwist; |
94 | public sbyte PathTwistBegin; | 94 | public sbyte _pathTwistBegin; |
95 | public byte PCode; | 95 | public byte _pCode; |
96 | public ushort ProfileBegin; | 96 | public ushort _profileBegin; |
97 | public ushort _profileEnd; | ||
98 | public ushort _profileHollow; | ||
99 | public LLVector3 _scale; | ||
100 | public byte _state; | ||
101 | public ProfileShape _profileShape; | ||
102 | public HollowShape _hollowShape; | ||
97 | 103 | ||
104 | // Sculpted | ||
105 | [XmlIgnore] public LLUUID _sculptTexture = LLUUID.Zero; | ||
106 | [XmlIgnore] public byte _sculptType = (byte)0; | ||
107 | [XmlIgnore] public byte[] _sculptData = new byte[0]; | ||
108 | |||
109 | // Flexi | ||
110 | [XmlIgnore] public int FlexiSoftness = 0; | ||
111 | [XmlIgnore] public float FlexiTension = 0f; | ||
112 | [XmlIgnore] public float FlexiDrag = 0f; | ||
113 | [XmlIgnore] public float FlexiGravity = 0f; | ||
114 | [XmlIgnore] public float FlexiWind = 0f; | ||
115 | [XmlIgnore] public float FlexiForceX = 0f; | ||
116 | [XmlIgnore] public float FlexiForceY = 0f; | ||
117 | [XmlIgnore] public float FlexiForceZ = 0f; | ||
118 | |||
119 | //Bright n sparkly | ||
120 | [XmlIgnore] public float LightColorR = 0f; | ||
121 | [XmlIgnore] public float LightColorG = 0f; | ||
122 | [XmlIgnore] public float LightColorB = 0f; | ||
123 | [XmlIgnore] public float LightColorA = 1f; | ||
124 | [XmlIgnore] public float LightRadius = 0f; | ||
125 | [XmlIgnore] public float LightCutoff = 0f; | ||
126 | [XmlIgnore] public float LightFalloff = 0f; | ||
127 | [XmlIgnore] public float LightIntensity = 1f; | ||
128 | [XmlIgnore] public bool FlexiEntry = false; | ||
129 | [XmlIgnore] public bool LightEntry = false; | ||
130 | [XmlIgnore] public bool SculptEntry = false; | ||
131 | |||
98 | public byte ProfileCurve | 132 | public byte ProfileCurve |
99 | { | 133 | { |
100 | get { return (byte)((byte)HollowShape | (byte)ProfileShape); } | 134 | get { return (byte)((byte)HollowShape | (byte)ProfileShape); } |
@@ -110,11 +144,11 @@ namespace OpenSim.Framework | |||
110 | "[SHAPE]: Attempt to set a ProfileCurve with a hollow shape value of {0}, which isn't a valid enum. Replacing with default shape.", | 144 | "[SHAPE]: Attempt to set a ProfileCurve with a hollow shape value of {0}, which isn't a valid enum. Replacing with default shape.", |
111 | hollowShapeByte); | 145 | hollowShapeByte); |
112 | 146 | ||
113 | this.HollowShape = HollowShape.Same; | 147 | this._hollowShape = HollowShape.Same; |
114 | } | 148 | } |
115 | else | 149 | else |
116 | { | 150 | { |
117 | this.HollowShape = (HollowShape)hollowShapeByte; | 151 | this._hollowShape = (HollowShape)hollowShapeByte; |
118 | } | 152 | } |
119 | 153 | ||
120 | // Handle profile shape component | 154 | // Handle profile shape component |
@@ -126,47 +160,16 @@ namespace OpenSim.Framework | |||
126 | "[SHAPE]: Attempt to set a ProfileCurve with a profile shape value of {0}, which isn't a valid enum. Replacing with square.", | 160 | "[SHAPE]: Attempt to set a ProfileCurve with a profile shape value of {0}, which isn't a valid enum. Replacing with square.", |
127 | profileShapeByte); | 161 | profileShapeByte); |
128 | 162 | ||
129 | this.ProfileShape = ProfileShape.Square; | 163 | this._profileShape = ProfileShape.Square; |
130 | } | 164 | } |
131 | else | 165 | else |
132 | { | 166 | { |
133 | this.ProfileShape = (ProfileShape)profileShapeByte; | 167 | this._profileShape = (ProfileShape)profileShapeByte; |
134 | } | 168 | } |
135 | } | 169 | } |
136 | } | 170 | } |
137 | 171 | ||
138 | public ushort ProfileEnd; | ||
139 | public ushort ProfileHollow; | ||
140 | public LLVector3 Scale; | ||
141 | public byte State; | ||
142 | 172 | ||
143 | // Sculpted | ||
144 | [XmlIgnore] public LLUUID SculptTexture = LLUUID.Zero; | ||
145 | [XmlIgnore] public byte SculptType = (byte)0; | ||
146 | [XmlIgnore] public byte[] SculptData = new byte[0]; | ||
147 | |||
148 | // Flexi | ||
149 | [XmlIgnore] public int FlexiSoftness = 0; | ||
150 | [XmlIgnore] public float FlexiTension = 0f; | ||
151 | [XmlIgnore] public float FlexiDrag = 0f; | ||
152 | [XmlIgnore] public float FlexiGravity = 0f; | ||
153 | [XmlIgnore] public float FlexiWind = 0f; | ||
154 | [XmlIgnore] public float FlexiForceX = 0f; | ||
155 | [XmlIgnore] public float FlexiForceY = 0f; | ||
156 | [XmlIgnore] public float FlexiForceZ = 0f; | ||
157 | |||
158 | //Bright n sparkly | ||
159 | [XmlIgnore] public float LightColorR = 0f; | ||
160 | [XmlIgnore] public float LightColorG = 0f; | ||
161 | [XmlIgnore] public float LightColorB = 0f; | ||
162 | [XmlIgnore] public float LightColorA = 1f; | ||
163 | [XmlIgnore] public float LightRadius = 0f; | ||
164 | [XmlIgnore] public float LightCutoff = 0f; | ||
165 | [XmlIgnore] public float LightFalloff = 0f; | ||
166 | [XmlIgnore] public float LightIntensity = 1f; | ||
167 | [XmlIgnore] public bool FlexiEntry = false; | ||
168 | [XmlIgnore] public bool LightEntry = false; | ||
169 | [XmlIgnore] public bool SculptEntry = false; | ||
170 | 173 | ||
171 | 174 | ||
172 | static PrimitiveBaseShape() | 175 | static PrimitiveBaseShape() |
@@ -197,9 +200,7 @@ namespace OpenSim.Framework | |||
197 | set { m_textureEntry = value; } | 200 | set { m_textureEntry = value; } |
198 | } | 201 | } |
199 | 202 | ||
200 | public ProfileShape ProfileShape; | ||
201 | 203 | ||
202 | public HollowShape HollowShape; | ||
203 | 204 | ||
204 | public static PrimitiveBaseShape Default | 205 | public static PrimitiveBaseShape Default |
205 | { | 206 | { |
@@ -223,10 +224,10 @@ namespace OpenSim.Framework | |||
223 | { | 224 | { |
224 | PrimitiveBaseShape shape = Create(); | 225 | PrimitiveBaseShape shape = Create(); |
225 | 226 | ||
226 | shape.PathCurve = (byte) Extrusion.Straight; | 227 | shape._pathCurve = (byte) Extrusion.Straight; |
227 | shape.ProfileShape = ProfileShape.Square; | 228 | shape._profileShape = ProfileShape.Square; |
228 | shape.PathScaleX = 100; | 229 | shape._pathScaleX = 100; |
229 | shape.PathScaleY = 100; | 230 | shape._pathScaleY = 100; |
230 | 231 | ||
231 | return shape; | 232 | return shape; |
232 | } | 233 | } |
@@ -235,28 +236,28 @@ namespace OpenSim.Framework | |||
235 | { | 236 | { |
236 | PrimitiveBaseShape shape = Create(); | 237 | PrimitiveBaseShape shape = Create(); |
237 | 238 | ||
238 | shape.PathCurve = (byte) Extrusion.Curve1; | 239 | shape._pathCurve = (byte) Extrusion.Curve1; |
239 | shape.ProfileShape = ProfileShape.Square; | 240 | shape._profileShape = ProfileShape.Square; |
240 | 241 | ||
241 | shape.PathScaleX = 100; | 242 | shape._pathScaleX = 100; |
242 | shape.PathScaleY = 100; | 243 | shape._pathScaleY = 100; |
243 | 244 | ||
244 | return shape; | 245 | return shape; |
245 | } | 246 | } |
246 | 247 | ||
247 | public void SetScale(float side) | 248 | public void SetScale(float side) |
248 | { | 249 | { |
249 | Scale = new LLVector3(side, side, side); | 250 | _scale = new LLVector3(side, side, side); |
250 | } | 251 | } |
251 | 252 | ||
252 | public void SetHeigth(float heigth) | 253 | public void SetHeigth(float heigth) |
253 | { | 254 | { |
254 | Scale.Z = heigth; | 255 | _scale.Z = heigth; |
255 | } | 256 | } |
256 | 257 | ||
257 | public void SetRadius(float radius) | 258 | public void SetRadius(float radius) |
258 | { | 259 | { |
259 | Scale.X = Scale.Y = radius * 2f; | 260 | _scale.X = _scale.Y = radius * 2f; |
260 | } | 261 | } |
261 | 262 | ||
262 | // TODO: void returns need to change of course | 263 | // TODO: void returns need to change of course |
@@ -281,20 +282,20 @@ namespace OpenSim.Framework | |||
281 | 282 | ||
282 | public void SetPathRange(LLVector3 pathRange) | 283 | public void SetPathRange(LLVector3 pathRange) |
283 | { | 284 | { |
284 | PathBegin = LLObject.PackBeginCut(pathRange.X); | 285 | _pathBegin = LLObject.PackBeginCut(pathRange.X); |
285 | PathEnd = LLObject.PackEndCut(pathRange.Y); | 286 | _pathEnd = LLObject.PackEndCut(pathRange.Y); |
286 | } | 287 | } |
287 | 288 | ||
288 | public void SetSculptData(byte sculptType, LLUUID SculptTextureUUID) | 289 | public void SetSculptData(byte sculptType, LLUUID SculptTextureUUID) |
289 | { | 290 | { |
290 | SculptType = sculptType; | 291 | _sculptType = sculptType; |
291 | SculptTexture = SculptTextureUUID; | 292 | _sculptTexture = SculptTextureUUID; |
292 | } | 293 | } |
293 | 294 | ||
294 | public void SetProfileRange(LLVector3 profileRange) | 295 | public void SetProfileRange(LLVector3 profileRange) |
295 | { | 296 | { |
296 | ProfileBegin = LLObject.PackBeginCut(profileRange.X); | 297 | _profileBegin = LLObject.PackBeginCut(profileRange.X); |
297 | ProfileEnd = LLObject.PackEndCut(profileRange.Y); | 298 | _profileEnd = LLObject.PackEndCut(profileRange.Y); |
298 | } | 299 | } |
299 | 300 | ||
300 | public byte[] ExtraParams | 301 | public byte[] ExtraParams |
@@ -309,6 +310,231 @@ namespace OpenSim.Framework | |||
309 | } | 310 | } |
310 | } | 311 | } |
311 | 312 | ||
313 | public ushort PathBegin { | ||
314 | get { | ||
315 | return _pathBegin; | ||
316 | } | ||
317 | set { | ||
318 | _pathBegin = value; | ||
319 | } | ||
320 | } | ||
321 | |||
322 | public byte PathCurve { | ||
323 | get { | ||
324 | return _pathCurve; | ||
325 | } | ||
326 | set { | ||
327 | _pathCurve = value; | ||
328 | } | ||
329 | } | ||
330 | |||
331 | public ushort PathEnd { | ||
332 | get { | ||
333 | return _pathEnd; | ||
334 | } | ||
335 | set { | ||
336 | _pathEnd = value; | ||
337 | } | ||
338 | } | ||
339 | |||
340 | public sbyte PathRadiusOffset { | ||
341 | get { | ||
342 | return _pathRadiusOffset; | ||
343 | } | ||
344 | set { | ||
345 | _pathRadiusOffset = value; | ||
346 | } | ||
347 | } | ||
348 | |||
349 | public byte PathRevolutions { | ||
350 | get { | ||
351 | return _pathRevolutions; | ||
352 | } | ||
353 | set { | ||
354 | _pathRevolutions = value; | ||
355 | } | ||
356 | } | ||
357 | |||
358 | public byte PathScaleX { | ||
359 | get { | ||
360 | return _pathScaleX; | ||
361 | } | ||
362 | set { | ||
363 | _pathScaleX = value; | ||
364 | } | ||
365 | } | ||
366 | |||
367 | public byte PathScaleY { | ||
368 | get { | ||
369 | return _pathScaleY; | ||
370 | } | ||
371 | set { | ||
372 | _pathScaleY = value; | ||
373 | } | ||
374 | } | ||
375 | |||
376 | public byte PathShearX { | ||
377 | get { | ||
378 | return _pathShearX; | ||
379 | } | ||
380 | set { | ||
381 | _pathShearX = value; | ||
382 | } | ||
383 | } | ||
384 | |||
385 | public byte PathShearY { | ||
386 | get { | ||
387 | return _pathShearY; | ||
388 | } | ||
389 | set { | ||
390 | _pathShearY = value; | ||
391 | } | ||
392 | } | ||
393 | |||
394 | public sbyte PathSkew { | ||
395 | get { | ||
396 | return _pathSkew; | ||
397 | } | ||
398 | set { | ||
399 | _pathSkew = value; | ||
400 | } | ||
401 | } | ||
402 | |||
403 | public sbyte PathTaperX { | ||
404 | get { | ||
405 | return _pathTaperX; | ||
406 | } | ||
407 | set { | ||
408 | _pathTaperX = value; | ||
409 | } | ||
410 | } | ||
411 | |||
412 | public sbyte PathTaperY { | ||
413 | get { | ||
414 | return _pathTaperY; | ||
415 | } | ||
416 | set { | ||
417 | _pathTaperY = value; | ||
418 | } | ||
419 | } | ||
420 | |||
421 | public sbyte PathTwist { | ||
422 | get { | ||
423 | return _pathTwist; | ||
424 | } | ||
425 | set { | ||
426 | _pathTwist = value; | ||
427 | } | ||
428 | } | ||
429 | |||
430 | public sbyte PathTwistBegin { | ||
431 | get { | ||
432 | return _pathTwistBegin; | ||
433 | } | ||
434 | set { | ||
435 | _pathTwistBegin = value; | ||
436 | } | ||
437 | } | ||
438 | |||
439 | public byte PCode { | ||
440 | get { | ||
441 | return _pCode; | ||
442 | } | ||
443 | set { | ||
444 | _pCode = value; | ||
445 | } | ||
446 | } | ||
447 | |||
448 | public ushort ProfileBegin { | ||
449 | get { | ||
450 | return _profileBegin; | ||
451 | } | ||
452 | set { | ||
453 | _profileBegin = value; | ||
454 | } | ||
455 | } | ||
456 | |||
457 | public ushort ProfileEnd { | ||
458 | get { | ||
459 | return _profileEnd; | ||
460 | } | ||
461 | set { | ||
462 | _profileEnd = value; | ||
463 | } | ||
464 | } | ||
465 | |||
466 | public ushort ProfileHollow { | ||
467 | get { | ||
468 | return _profileHollow; | ||
469 | } | ||
470 | set { | ||
471 | _profileHollow = value; | ||
472 | } | ||
473 | } | ||
474 | |||
475 | public LLVector3 Scale { | ||
476 | get { | ||
477 | return _scale; | ||
478 | } | ||
479 | set { | ||
480 | _scale = value; | ||
481 | } | ||
482 | } | ||
483 | |||
484 | public byte State { | ||
485 | get { | ||
486 | return _state; | ||
487 | } | ||
488 | set { | ||
489 | _state = value; | ||
490 | } | ||
491 | } | ||
492 | |||
493 | public ProfileShape ProfileShape { | ||
494 | get { | ||
495 | return _profileShape; | ||
496 | } | ||
497 | set { | ||
498 | _profileShape = value; | ||
499 | } | ||
500 | } | ||
501 | |||
502 | public HollowShape HollowShape { | ||
503 | get { | ||
504 | return _hollowShape; | ||
505 | } | ||
506 | set { | ||
507 | _hollowShape = value; | ||
508 | } | ||
509 | } | ||
510 | |||
511 | public LLUUID SculptTexture { | ||
512 | get { | ||
513 | return _sculptTexture; | ||
514 | } | ||
515 | set { | ||
516 | _sculptTexture = value; | ||
517 | } | ||
518 | } | ||
519 | |||
520 | public byte SculptType { | ||
521 | get { | ||
522 | return _sculptType; | ||
523 | } | ||
524 | set { | ||
525 | _sculptType = value; | ||
526 | } | ||
527 | } | ||
528 | |||
529 | public byte[] SculptData { | ||
530 | get { | ||
531 | return _sculptData; | ||
532 | } | ||
533 | set { | ||
534 | _sculptData = value; | ||
535 | } | ||
536 | } | ||
537 | |||
312 | public byte[] ExtraParamsToBytes() | 538 | public byte[] ExtraParamsToBytes() |
313 | { | 539 | { |
314 | ushort FlexiEP = 0x10; | 540 | ushort FlexiEP = 0x10; |
@@ -519,11 +745,11 @@ namespace OpenSim.Framework | |||
519 | 745 | ||
520 | if (SculptEntry) | 746 | if (SculptEntry) |
521 | { | 747 | { |
522 | if (SculptType != (byte)1 && SculptType != (byte)2 && SculptType != (byte)3 && SculptType != (byte)4) | 748 | if (_sculptType != (byte)1 && _sculptType != (byte)2 && _sculptType != (byte)3 && _sculptType != (byte)4) |
523 | SculptType = 4; | 749 | _sculptType = 4; |
524 | } | 750 | } |
525 | SculptTexture = SculptUUID; | 751 | _sculptTexture = SculptUUID; |
526 | SculptType = SculptTypel; | 752 | _sculptType = SculptTypel; |
527 | //m_log.Info("[SCULPT]:" + SculptUUID.ToString()); | 753 | //m_log.Info("[SCULPT]:" + SculptUUID.ToString()); |
528 | } | 754 | } |
529 | 755 | ||
@@ -531,8 +757,8 @@ namespace OpenSim.Framework | |||
531 | { | 757 | { |
532 | byte[] data = new byte[17]; | 758 | byte[] data = new byte[17]; |
533 | 759 | ||
534 | SculptTexture.GetBytes().CopyTo(data, 0); | 760 | _sculptTexture.GetBytes().CopyTo(data, 0); |
535 | data[16] = (byte)SculptType; | 761 | data[16] = (byte)_sculptType; |
536 | 762 | ||
537 | return data; | 763 | return data; |
538 | } | 764 | } |