/// <summary> /// Cloning constructor. /// </summary> protected CompositeRootModel3D(CompositeRootModel3D source, ICloningContext context) { context.CloneFields(source, this); _graphicCollection3D = new GraphicCollection3D(); _graphicCollection3D.ItemAdded += OnGraphicAdded; _graphicCollection3D.ItemRemoved += OnGraphicRemoved; _graphicCollection3D.AddRange(source._graphicCollection3D.Select(g => g.Clone()).Where(g => g != null)); }
/// <summary> /// Initializes a new instance of <see cref="CompositeRootModel3D"/> with /// the specified dimensions, spacing and aspect ratio. /// </summary> /// <param name="sceneWidth"></param> /// <param name="sceneHeight"></param> /// <param name="dimensionX"></param> /// <param name="dimensionY"></param> /// <param name="dimensionZ"></param> /// <param name="spacingX"></param> /// <param name="spacingY"></param> /// <param name="spacingZ"></param> /// <param name="aspectRatioX"></param> /// <param name="aspectRatioY"></param> /// <param name="aspectRatioZ"></param> public CompositeRootModel3D( int sceneWidth, int sceneHeight, float dimensionX, float dimensionY, float dimensionZ, float spacingX, float spacingY, float spacingZ, float aspectRatioX, float aspectRatioY, float aspectRatioZ) { _sceneSize = new Size(sceneWidth, sceneHeight); _dimensions = new Vector3D(dimensionX, dimensionY, dimensionZ); _spacing = new Vector3D(spacingX, spacingY, spacingZ); _aspectRatio = new Vector3D(aspectRatioX, aspectRatioY, aspectRatioZ); _graphicCollection3D = new GraphicCollection3D(); _graphicCollection3D.ItemAdded += OnGraphicAdded; _graphicCollection3D.ItemRemoved += OnGraphicRemoved; }