Table of Contents

Namespace HelixToolkit.Wpf.SharpDX

Classes

AmbientLight3D
AxisPlaneGridModel3D
BatchedMeshGeometryModel3D

Static mesh batching. Supports multiple BatchedMaterials. All geometries are merged into single buffer for rendering. Indivisual material color infomations are encoded into vertex buffer.

Material is used if BatchedMaterials = null. And also used for shared material texture binding.

BillboardTextModel3D
BitmapExtension
BoneGroupModel3D

Used to share bone matrices for multiple BoneSkinMeshGeometryModel3D

BoneSkinMeshGeometryModel3D
BoolToVisibilityConverter
BoundChangedEventArgs
Camera

Specifies what portion of the 3D scene is rendered by the Viewport3DX element.

CameraController

Provides a control that manipulates the camera by mouse and keyboard gestures.

CameraExtensions

Provides extension methods for the cameras.

CameraModel3D
ColorStripeMaterial
CompositeModel3D

Represents a composite Model3D.

ContinuousRender3D

Use this model to keep update rendering in each frame.

Default behavior for render host is lazy rendering. Only property changes trigger a render inside render loop. However, sometimes user want to keep updating rendering each frame while doing shader animation using TimeStamp. Use this model to invalidate rendering in each frame and keep render host busy.

CoordinateSystemModel3D
CrossSectionMeshGeometryModel3D

Defines the CrossSectionMeshGeometryModel3D

DPFCanvas
DPFSurfaceSwapChain
DX11ImageSource
DeferredRenderer
DepthPrepassElement3D

Do a depth prepass before rendering.

Must customize the DefaultEffectsManager and set DepthStencilState to DefaultDepthStencilDescriptions.DSSDepthEqualNoWrite in default ShaderPass from EffectsManager to achieve best performance.

DiffuseMaterial
DiffuseMaterialCollection
DiffuseMaterials
DirectionalLight3D
DraggableGeometryModel3D

Example class how to implement mouse dragging for objects. Probably it should be moved to a "Dragging Demo."

DrawingContextExtensions

Extension methods for DrawingContext.

DynamicCodeSurfaceModel3D
DynamicReflectionMap3D
Element3D

Base class for renderable elements.

Element3DPresenter
EmptyStringToVisibilityConverter
EnvironmentMap3D
Exporter

An abstract base class providing common functionality for exporters.

Geometry3DExtensions

Contains extension methods for geometry.

GeometryModel3D

Provides a base class for a scene model which contains geometry

GeometryModel3DOctreeManager

Use to create geometryModel3D octree for groups. Each ItemsModel3D must has its own manager, do not share between two ItemsModel3D

GroupElement3D

Supports both ItemsSource binding and Xaml children. Binds with ObservableElement3DCollection

GroupModel3D
HelixItemsControl
HelixProperty
InstancingBillboardModel3D
InstancingMeshGeometryModel3D
InstancingModel3DOctreeManager
ItemsModel3D

Represents a model that can be used to present a collection of items. supports generating child items by a DataTemplate.

Light3D
Light3DCollection
LineArrowHeadMaterial
LineArrowHeadTailMaterial
LineGeometryModel3D
LineMaterial
LineMaterialGeometryModel3D
ManipulationActionConverter

Converts a ManipulationAction object to and from other types.

ManipulationActionExtensions
ManipulationBinding

Binds a ManipulationGesture to an ICommand implementation.

ManipulationEventArgs

Provides data for the manipulation events.

ManipulationGesture

Defines a touch input gesture that can be used to invoke a command.

ManipulationGestureConverter

Converts a ManipulationGesture object to and from other types.

Material
MaterialExtension
MaterialGeometryModel3D
Media3DExtension
MeshGeometryModel3D
ModelContainer3DX

Use to contain shared models for multiple viewports.

Suggest to bind effects manager in viewmodel. Assign effect manager from code behind may cause memory leak

Mouse3DEventArgs
MouseDown3DEventArgs
MouseMove3DEventArgs
MouseUp3DEventArgs
NormalMaterial

Render color by triangle normal

NormalVectorMaterial

Render color by triangle normal

NotNullToVisibilityConverter

A not-null reference to Visibility value converter.

ObjExporter

Export the 3D visual tree to a Wavefront OBJ file

ObservableElement2DCollection
ObservableElement3DCollection

Provides an observable collection of Element3D.

OctreeLineGeometryModel3D
OctreeManagerBaseWrapper
OrthographicCamera

Represents an orthographic projection camera.

OutLineMeshGeometryModel3D
PBRMaterial
PBRSampleColors

https://google.github.io/filament/images/material_chart.jpg

ParticleStormModel3D
PerspectiveCamera

Represents a perspective projection camera.

PhongMaterial

Implements a phong-material with its all properties Includes Diffuse, Normal, Displacement, Specular, etc. maps

PhongMaterialCollection
PhongMaterials
PointGeometryModel3D
PointLight3D
PointMaterial
PointMaterialGeometryModel3D
PositionColorMaterial

Render color by mesh vertex position

PostEffectBloom
PostEffectMeshBorderHighlight

Highlight the border of meshes

PostEffectMeshOutlineBlur

Highlight the border of meshes

PostEffectMeshXRay
PostEffectMeshXRayGrid
ProjectionCamera

An abstract base class for perspective and orthographic projection cameras.

RectangleAdorner

An adorner showing a rectangle with a crosshair in the middle. This is shown when zooming a rectangle.

RenderTechniqueConverter
RenderUtil
SceneNodeGroupModel3D

Used to hold scene nodes without WPF/UWP dependencies. Used for code behind only. Avoid performance penalty from Dependency Properties.

ScreenDuplicationModel

Limitation: Under switchable graphics card setup(Laptop with integrated graphics card and external graphics card), only monitor outputs using integrated graphics card is fully supported. Trying to clone monitor outputs by external graphics card, the clone window must reside in those monitors which is rendered by external graphics card, or error will be occurred. Ref: https://support.microsoft.com/en-us/help/3019314/error-generated-when-desktop-duplication-api-capable-application-is-ru

ScreenDuplicationViewport3DX
ScreenQuadModel3D
ScreenSpacedElement3D

ScreenSpacedElement3D uses a fixed camera to render model (Mainly used for view box and coordinate system rendering) onto screen which is separated from viewport camera.

Default fix camera is perspective camera with FOV 45 degree and camera distance = 20. Look direction is always looking at (0,0,0).

User must properly scale the model to fit into the camera frustum. The usual maximum size is from (5,5,5) to (-5,-5,-5) bounding box.

User can use SizeScale to scale the size of the rendering.

ScreenSpacedGroup3D

ScreenSpacedGroup3D uses a fixed camera to render model (Mainly used for view box and coordinate system rendering) onto screen which is separated from viewport camera.

Default fix camera is perspective camera with FOV 45 degree and camera distance = 20. Look direction is always looking at (0,0,0).

User must properly scale the model to fit into the camera frustum. The usual maximum size is from (5,5,5) to (-5,-5,-5) bounding box.

User can use SizeScale to scale the size of the rendering.

ShadowMap3D
SortingGroupModel3D
SpotLight3D
TargetSymbolAdorner

A Target symbol adorner. This is shown in the HelixViewport3D when manipulating the camera with the mouse.

ThreePointLight3D
TopMostGroup3D

Provides a way to render child elements always on top of other elements This is rendered at the same level of screen spaced group items. Child items do not support post effects.

TransformManipulator3D
UICompositeManipulator3D
UIManipulator3D

An abstract base class for manipulators.

UIRotateManipulator3D

A translate manipulator.

UITranslateManipulator3D

A translate manipulator.

VertColorMaterial

Render color by mesh vertex color

ViewBoxModel3D

Viewbox replacement for Viewport using swapchain rendering.

To replace box texture (such as text, colors), bind to custom material with different diffuseMap.

Create a image with 1 row and 6 evenly distributed columns. Each column occupies one box face. The face order is Front, Back, Down, Up, Left, Right

Viewport3DX

Provides a Viewport control.

ViewportCommands
ViewportExtensions

Provides extension methods for Viewport3DX.

ViewportPartNames
VirtualTouchDevice

A virtual TouchDevice enabling Windows.Forms controls to generate Touch/Manipulation-Events.

VisualTargetPresentationSource

The VisualTargetPresentationSource represents the root of a visual subtree owned by a different thread that the visual tree in which is is displayed. https://blogs.msdn.microsoft.com/dwayneneed/2007/04/26/multithreaded-ui-hostvisual/

VisualWrapper

The VisualWrapper simply integrates a raw Visual child into a tree of FrameworkElements.

VisualWrapper<T>

The VisualWrapper simply integrates a raw Visual child into a tree of FrameworkElements. https://blogs.msdn.microsoft.com/dwayneneed/2007/04/26/multithreaded-ui-hostvisual/

VolumeTextureDDS3DMaterial

Default Volume Texture Material. Supports 3D DDS memory stream as VolumeTexture

VolumeTextureDiffuseMaterial

Used to use gradient data as Volume 3D texture. User must create their own data reader to read texture files as pixel byte[] and pass the necessary information as VolumeTextureParams

Pixel Byte[] is equal to Width * Height * Depth * BytesPerPixel.

VolumeTextureMaterialBase
VolumeTextureModel3D
VolumeTextureRawDataMaterial

Used to use raw data as Volume 3D texture. User must create their own data reader to read texture files as pixel byte[] and pass the necessary information as VolumeTextureParams

Pixel Byte[] is equal to Width * Height * Depth * BytesPerPixel.

Structs

CameraSetting

Represents camera settings.

Interfaces

ICameraModel
IExporter

Interface for 3D exporters.

IMouse3D
IOctreeManagerWrapper
IOrthographicCameraModel
IPerspectiveCameraModel
IProjectionCameraModel
ISelectable
ITransformable
ITraversable
IVisible

Enums

ManipulationAction

Specifies constants that define actions performed by manipulation.