public void Load(IVariantStream Stream) { int ver = (int)Stream.Read(); if (ver > c_Version || ver <= 0) { throw new Exception("Wrong version!"); } InitMembers(); m_size = (double)Stream.Read(); m_scaleRef = (double)Stream.Read(); m_anchorPointType = (esriAnchorPointEnum)Stream.Read(); m_autoTrans = (bool)Stream.Read(); m_elementType = (string)Stream.Read(); m_elementName = (string)Stream.Read(); m_nativeSR = Stream.Read() as ISpatialReference; m_fillSymbol = Stream.Read() as ISimpleFillSymbol; m_pointGeometry = Stream.Read() as IPoint; m_triangle = Stream.Read() as IPolygon; if (ver == 2) { m_rotation = (double)Stream.Read(); } }
public void DirectAnchor(esriAnchorPointEnum inAnchorPoint) { btn1.Enabled = true; btn2.Enabled = true; btn3.Enabled = true; btn4.Enabled = true; btn5.Enabled = true; btn6.Enabled = true; btn7.Enabled = true; btn8.Enabled = true; btn9.Enabled = true; switch (inAnchorPoint) { case esriAnchorPointEnum.esriBottomLeftCorner: btn7.Enabled = false; break; case esriAnchorPointEnum.esriBottomMidPoint: btn8.Enabled = false; break; case esriAnchorPointEnum.esriBottomRightCorner: btn9.Enabled = false; break; case esriAnchorPointEnum.esriCenterPoint: btn5.Enabled = false; break; case esriAnchorPointEnum.esriLeftMidPoint: btn4.Enabled = false; break; case esriAnchorPointEnum.esriRightMidPoint: btn6.Enabled = false; break; case esriAnchorPointEnum.esriTopLeftCorner: btn1.Enabled = false; break; case esriAnchorPointEnum.esriTopMidPoint: btn2.Enabled = false; break; case esriAnchorPointEnum.esriTopRightCorner: btn3.Enabled = false; break; default: btn7.Enabled = false; break; } }
public void Load(IVariantStream Stream) { int num = (int)Stream.Read(); if ((num > 2 ? true : num <= 0)) { throw new Exception("Wrong version!"); } this.InitMembers(); this.m_size = (double)Stream.Read(); this.m_scaleRef = (double)Stream.Read(); this.m_anchorPointType = (esriAnchorPointEnum)Stream.Read(); this.m_autoTrans = (bool)Stream.Read(); this.m_elementType = (string)Stream.Read(); this.m_elementName = (string)Stream.Read(); this.m_nativeSR = Stream.Read() as ISpatialReference; this.m_fillSymbol = Stream.Read() as ILineSymbol; this.m_triangle = Stream.Read() as IPolyline; if (num == 2) { this.m_rotation = (double)Stream.Read(); } }
public void Assign(IClone src) { if (null == src) { throw new COMException("Invalid objact."); } if (!(src is TriangleElementClass)) { throw new COMException("Bad object type."); } TriangleElementClass triangleElementClass = (TriangleElementClass)src; this.m_elementName = triangleElementClass.Name; this.m_elementType = triangleElementClass.Type; this.m_autoTrans = triangleElementClass.AutoTransform; this.m_scaleRef = triangleElementClass.ReferenceScale; this.m_rotation = triangleElementClass.Angle; this.m_size = triangleElementClass.Size; this.m_anchorPointType = triangleElementClass.AnchorPoint; IObjectCopy objectCopyClass = new ObjectCopy(); if (null != triangleElementClass.CustomProperty) { if (triangleElementClass.CustomProperty is IClone) { this.m_customProperty = ((IClone)triangleElementClass.CustomProperty).Clone(); } else if (triangleElementClass.CustomProperty is IPersistStream) { this.m_customProperty = objectCopyClass.Copy(triangleElementClass.CustomProperty); } else if (triangleElementClass.CustomProperty.GetType().IsSerializable) { MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, triangleElementClass.CustomProperty); memoryStream = new MemoryStream(memoryStream.ToArray()); this.m_customProperty = binaryFormatter.Deserialize(memoryStream); } } if (null == triangleElementClass.SpatialReference) { this.m_nativeSR = null; } else { this.m_nativeSR = objectCopyClass.Copy(triangleElementClass.SpatialReference) as ISpatialReference; } if (null == triangleElementClass.FillSymbol) { this.m_fillSymbol = null; } else { this.m_fillSymbol = objectCopyClass.Copy(triangleElementClass.FillSymbol) as ISimpleFillSymbol; } if (null == triangleElementClass.Geometry) { this.m_triangle = null; this.m_pointGeometry = null; } else { this.m_triangle = objectCopyClass.Copy(triangleElementClass.Geometry) as IPolygon; this.m_pointGeometry = objectCopyClass.Copy(((IArea)this.m_triangle).Centroid) as IPoint; } }
public void Assign(IClone src) { //1. make sure that src is pointing to a valid object if (null == src) { throw new COMException("Invalid object."); } //2. make sure that the type of src is of type 'TriangleElementClass' if (!(src is TriangleElementClass)) { throw new COMException("Bad object type."); } //3. assign the properties of src to the current instance TriangleElementClass srcTriangle = (TriangleElementClass)src; m_elementName = srcTriangle.Name; m_elementType = srcTriangle.Type; m_autoTrans = srcTriangle.AutoTransform; m_scaleRef = srcTriangle.ReferenceScale; m_rotation = srcTriangle.Angle; m_size = srcTriangle.Size; m_anchorPointType = srcTriangle.AnchorPoint; IObjectCopy objCopy = new ObjectCopyClass(); //take care of the custom property if (null != srcTriangle.CustomProperty) { if (srcTriangle.CustomProperty is IClone) { m_customProperty = (object)((IClone)srcTriangle.CustomProperty).Clone(); } else if (srcTriangle.CustomProperty is IPersistStream) { m_customProperty = objCopy.Copy((object)srcTriangle.CustomProperty); } else if (srcTriangle.CustomProperty.GetType().IsSerializable) { //serialize to a memory stream MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, srcTriangle.CustomProperty); byte[] bytes = memoryStream.ToArray(); memoryStream = new MemoryStream(bytes); m_customProperty = binaryFormatter.Deserialize(memoryStream); } } if (null != srcTriangle.SpatialReference) { m_nativeSR = objCopy.Copy(srcTriangle.SpatialReference) as ISpatialReference; } else { m_nativeSR = null; } if (null != srcTriangle.FillSymbol) { m_fillSymbol = objCopy.Copy(srcTriangle.FillSymbol) as ISimpleFillSymbol; } else { m_fillSymbol = null; } if (null != srcTriangle.Geometry) { m_triangle = objCopy.Copy(srcTriangle.Geometry) as IPolygon; m_pointGeometry = objCopy.Copy(((IArea)m_triangle).Centroid) as IPoint; } else { m_triangle = null; m_pointGeometry = null; } }
public void Assign(IClone src) { //1. make sure that src is pointing to a valid object if (null == src) { throw new COMException("Invalid object."); } //2. make sure that the type of src is of type 'TriangleElementClass' if (!(src is TriangleElementClass)) { throw new COMException("Bad object type."); } //3. assign the properties of src to the current instance TriangleElementClass srcTriangle = (TriangleElementClass)src; m_elementName = srcTriangle.Name; m_elementType = srcTriangle.Type; m_autoTrans = srcTriangle.AutoTransform; m_scaleRef = srcTriangle.ReferenceScale; m_rotation = srcTriangle.Angle; m_size = srcTriangle.Size; m_anchorPointType = srcTriangle.AnchorPoint; IObjectCopy objCopy = new ObjectCopyClass(); //take care of the custom property if (null != srcTriangle.CustomProperty) { if (srcTriangle.CustomProperty is IClone) m_customProperty = (object)((IClone)srcTriangle.CustomProperty).Clone(); else if (srcTriangle.CustomProperty is IPersistStream) { m_customProperty = objCopy.Copy((object)srcTriangle.CustomProperty); } else if (srcTriangle.CustomProperty.GetType().IsSerializable) { //serialize to a memory stream MemoryStream memoryStream = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, srcTriangle.CustomProperty); byte[] bytes = memoryStream.ToArray(); memoryStream = new MemoryStream(bytes); m_customProperty = binaryFormatter.Deserialize(memoryStream); } } if (null != srcTriangle.SpatialReference) m_nativeSR = objCopy.Copy(srcTriangle.SpatialReference) as ISpatialReference; else m_nativeSR = null; if (null != srcTriangle.FillSymbol) { m_fillSymbol = objCopy.Copy(srcTriangle.FillSymbol) as ISimpleFillSymbol; } else m_fillSymbol = null; if (null != srcTriangle.Geometry) { m_triangle = objCopy.Copy(srcTriangle.Geometry) as IPolygon; m_pointGeometry = objCopy.Copy(((IArea)m_triangle).Centroid) as IPoint; } else { m_triangle = null; m_pointGeometry = null; } }
public void Load(IVariantStream Stream) { int ver = (int)Stream.Read(); if (ver > c_Version || ver <= 0) throw new Exception("Wrong version!"); InitMembers(); m_size = (double)Stream.Read(); m_scaleRef = (double)Stream.Read(); m_anchorPointType = (esriAnchorPointEnum)Stream.Read(); m_autoTrans = (bool)Stream.Read(); m_elementType = (string)Stream.Read(); m_elementName = (string)Stream.Read(); m_nativeSR = Stream.Read() as ISpatialReference; m_fillSymbol = Stream.Read() as ISimpleFillSymbol; m_pointGeometry = Stream.Read() as IPoint; m_triangle = Stream.Read() as IPolygon; if (ver == 2) { m_rotation = (double)Stream.Read(); } }