using System;
using System.Collections.Generic;
using System.Text;
namespace SharpImage.Rendering
{
///
/// Decorate an object to appear like an itkDataObject for use with ITK pipelines.
///
///
class siDataObjectDecorator : itk.itkDataObject where TObject : class
{
#region Construction and Disposal
//=====================================================================
///
/// Default constructor.
///
public siDataObjectDecorator(TObject obj)
: base()
{
this.m_Object = obj;
}
//=====================================================================
#endregion
#region Properties
//=====================================================================
#region Object
//=====================================================================
private TObject m_Object = null;
///
/// Get/set the actual itkSceneSpatialObject associated with this decorator.
///
public TObject Object
{
get { return m_Object; }
set { m_Object = value; }
}
//=====================================================================
#endregion
#region MTime
//=====================================================================
public override uint MTime
{
get { return 0; }
}
//=====================================================================
#endregion
#region SmartPointer
//=====================================================================
unsafe public override void* NativePointer
{
get { return (void*)0; }
set { /* Nothing to do: siSpatialObjects are fully managed. */ }
}
//=====================================================================
#endregion
#region MangledTypeString
//=====================================================================
public override string MangledTypeString
{
get { return "None"; }
}
//=====================================================================
#endregion
#region Size
//=====================================================================
private itk.itkSize m_Size = new itk.itkSize(0, 0, 0);
///
/// Gets/sets the size of the scene. The default size is [0, 0, 0].
///
virtual public itk.itkSize Size
{
get { return this.m_Size; }
set { this.m_Size = value; }
}
//=====================================================================
#endregion
#region Spacing
//=====================================================================
private itk.itkSpacing m_Spacing = new itk.itkSpacing(1.0, 1.0, 1.0);
///
/// Gets/sets the spacing of the scene. The default spacing is [1.0, 1.0, 1.0].
///
virtual public itk.itkSpacing Spacing
{
get { return this.m_Spacing; }
set { this.m_Spacing = value; }
}
//=====================================================================
#endregion
#region Origin
//=====================================================================
private itk.itkPoint m_Origin = new itk.itkPoint(0, 0, 0);
///
/// Gets/sets the origin of the scene. The default Origin is [0, 0, 0].
///
virtual public itk.itkPoint Origin
{
get { return this.m_Origin; }
set { this.m_Origin = value; }
}
//=====================================================================
#endregion
//=====================================================================
#endregion
#region Public Methods
//=====================================================================
public override void AddAnyEventObserver()
{
throw new NotSupportedException("The method or operation is not supported.");
}
public override void RemoveAllObservers()
{
throw new NotSupportedException("The method or operation is not supported.");
}
public override void DisconnectPipeline()
{
throw new NotSupportedException("The method or operation is not supported.");
}
//=====================================================================
#endregion
}
}