aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/PrimitiveBaseShape.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/PrimitiveBaseShape.cs')
-rw-r--r--OpenSim/Framework/PrimitiveBaseShape.cs80
1 files changed, 44 insertions, 36 deletions
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs
index b88f162..4d1de22 100644
--- a/OpenSim/Framework/PrimitiveBaseShape.cs
+++ b/OpenSim/Framework/PrimitiveBaseShape.cs
@@ -186,40 +186,44 @@ namespace OpenSim.Framework
186 PCode = (byte)PCodeEnum.Primitive; 186 PCode = (byte)PCodeEnum.Primitive;
187 ExtraParams = new byte[1]; 187 ExtraParams = new byte[1];
188 m_textureEntry = DEFAULT_TEXTURE; 188 m_textureEntry = DEFAULT_TEXTURE;
189 } 189 }
190 190
191 public PrimitiveBaseShape(Primitive prim) 191 /// <summary>
192 { 192 /// Construct a PrimitiveBaseShape object from a OpenMetaverse.Primitive object
193 PCode = (byte)prim.PrimData.PCode; 193 /// </summary>
194 ExtraParams = new byte[1]; 194 /// <param name="prim"></param>
195 195 public PrimitiveBaseShape(Primitive prim)
196 State = prim.PrimData.State; 196 {
197 PathBegin = Primitive.PackBeginCut(prim.PrimData.PathBegin); 197 PCode = (byte)prim.PrimData.PCode;
198 PathEnd = Primitive.PackEndCut(prim.PrimData.PathEnd); 198 ExtraParams = new byte[1];
199 PathScaleX = Primitive.PackPathScale(prim.PrimData.PathScaleX); 199
200 PathScaleY = Primitive.PackPathScale(prim.PrimData.PathScaleY); 200 State = prim.PrimData.State;
201 PathShearX = (byte)Primitive.PackPathShear(prim.PrimData.PathShearX); 201 PathBegin = Primitive.PackBeginCut(prim.PrimData.PathBegin);
202 PathShearY = (byte)Primitive.PackPathShear(prim.PrimData.PathShearY); 202 PathEnd = Primitive.PackEndCut(prim.PrimData.PathEnd);
203 PathSkew = Primitive.PackPathTwist(prim.PrimData.PathSkew); 203 PathScaleX = Primitive.PackPathScale(prim.PrimData.PathScaleX);
204 ProfileBegin = Primitive.PackBeginCut(prim.PrimData.ProfileBegin); 204 PathScaleY = Primitive.PackPathScale(prim.PrimData.PathScaleY);
205 ProfileEnd = Primitive.PackEndCut(prim.PrimData.ProfileEnd); 205 PathShearX = (byte)Primitive.PackPathShear(prim.PrimData.PathShearX);
206 Scale = prim.Scale; 206 PathShearY = (byte)Primitive.PackPathShear(prim.PrimData.PathShearY);
207 PathCurve = (byte)prim.PrimData.PathCurve; 207 PathSkew = Primitive.PackPathTwist(prim.PrimData.PathSkew);
208 ProfileCurve = (byte)prim.PrimData.ProfileCurve; 208 ProfileBegin = Primitive.PackBeginCut(prim.PrimData.ProfileBegin);
209 ProfileHollow = Primitive.PackProfileHollow(prim.PrimData.ProfileHollow); 209 ProfileEnd = Primitive.PackEndCut(prim.PrimData.ProfileEnd);
210 PathRadiusOffset = Primitive.PackPathTwist(prim.PrimData.PathRadiusOffset); 210 Scale = prim.Scale;
211 PathRevolutions = Primitive.PackPathRevolutions(prim.PrimData.PathRevolutions); 211 PathCurve = (byte)prim.PrimData.PathCurve;
212 PathTaperX = Primitive.PackPathTaper(prim.PrimData.PathTaperX); 212 ProfileCurve = (byte)prim.PrimData.ProfileCurve;
213 PathTaperY = Primitive.PackPathTaper(prim.PrimData.PathTaperY); 213 ProfileHollow = Primitive.PackProfileHollow(prim.PrimData.ProfileHollow);
214 PathTwist = Primitive.PackPathTwist(prim.PrimData.PathTwist); 214 PathRadiusOffset = Primitive.PackPathTwist(prim.PrimData.PathRadiusOffset);
215 PathTwistBegin = Primitive.PackPathTwist(prim.PrimData.PathTwistBegin); 215 PathRevolutions = Primitive.PackPathRevolutions(prim.PrimData.PathRevolutions);
216 216 PathTaperX = Primitive.PackPathTaper(prim.PrimData.PathTaperX);
217 m_textureEntry = prim.Textures.GetBytes(); 217 PathTaperY = Primitive.PackPathTaper(prim.PrimData.PathTaperY);
218 218 PathTwist = Primitive.PackPathTwist(prim.PrimData.PathTwist);
219 SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None); 219 PathTwistBegin = Primitive.PackPathTwist(prim.PrimData.PathTwistBegin);
220 SculptData = prim.Sculpt.GetBytes(); 220
221 SculptTexture = prim.Sculpt.SculptTexture; 221 m_textureEntry = prim.Textures.GetBytes();
222 SculptType = (byte)prim.Sculpt.Type; 222
223 SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None);
224 SculptData = prim.Sculpt.GetBytes();
225 SculptTexture = prim.Sculpt.SculptTexture;
226 SculptType = (byte)prim.Sculpt.Type;
223 } 227 }
224 228
225 [XmlIgnore] 229 [XmlIgnore]
@@ -227,8 +231,12 @@ namespace OpenSim.Framework
227 { 231 {
228 get 232 get
229 { 233 {
230 //m_log.DebugFormat("[PRIMITIVE BASE SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length); 234 //m_log.DebugFormat("[SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length);
231 return new Primitive.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); 235 try { return new Primitive.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); }
236 catch { }
237
238 m_log.Warn("[SHAPE]: Failed to decode texture, length=" + ((m_textureEntry != null) ? m_textureEntry.Length : 0));
239 return new Primitive.TextureEntry(UUID.Zero);
232 } 240 }
233 241
234 set { m_textureEntry = value.GetBytes(); } 242 set { m_textureEntry = value.GetBytes(); }