Class BatchedMeshGeometryModel3D
- Namespace
- HelixToolkit.Avalonia.SharpDX
- Assembly
- HelixToolkit.Avalonia.SharpDX.dll
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.
public class BatchedMeshGeometryModel3D : Element3D, INotifyPropertyChanged, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, ISupportInitialize, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue, IDisposable, IVisible, IHitable, IThrowingShadow, IApplyPostEffect
- Inheritance
-
AvaloniaObjectAnimatableStyledElementVisualLayoutableInteractiveInputElementControlBatchedMeshGeometryModel3D
- Implements
-
IDataContextProviderILogicalIThemeVariantHostIResourceHostIResourceNodeIStyleHostISetLogicalParentISetInheritanceParentIStyleableINamedIInputElementIDataTemplateHostISetterValue
- Inherited Members
-
Control.FocusAdornerPropertyControl.TagPropertyControl.ContextMenuPropertyControl.ContextFlyoutPropertyControl.RequestBringIntoViewEventControl.ContextRequestedEventControl.LoadedEventControl.UnloadedEventControl.SizeChangedEventControl.GetTemplateFocusTarget()Control.OnLoaded(RoutedEventArgs)Control.OnUnloaded(RoutedEventArgs)Control.OnSizeChanged(SizeChangedEventArgs)Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs)Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs)Control.OnGotFocus(GotFocusEventArgs)Control.OnLostFocus(RoutedEventArgs)Control.OnCreateAutomationPeer()Control.OnPointerReleased(PointerReleasedEventArgs)Control.OnKeyUp(KeyEventArgs)Control.OnPropertyChanged(AvaloniaPropertyChangedEventArgs)Control.FocusAdornerControl.DataTemplatesControl.ContextMenuControl.ContextFlyoutControl.IsLoadedControl.TagControl.ContextRequestedControl.LoadedControl.UnloadedControl.SizeChangedInputElement.FocusablePropertyInputElement.IsEnabledPropertyInputElement.IsEffectivelyEnabledPropertyInputElement.CursorPropertyInputElement.IsKeyboardFocusWithinPropertyInputElement.IsFocusedPropertyInputElement.IsPointerOverPropertyInputElement.IsTabStopPropertyInputElement.GotFocusEventInputElement.LostFocusEventInputElement.KeyDownEventInputElement.KeyUpEventInputElement.TabIndexPropertyInputElement.TextInputEventInputElement.TextInputMethodClientRequestedEventInputElement.PointerEnteredEventInputElement.PointerExitedEventInputElement.PointerMovedEventInputElement.PointerPressedEventInputElement.PointerReleasedEventInputElement.PointerCaptureLostEventInputElement.PointerWheelChangedEventInputElement.TappedEventInputElement.HoldingEventInputElement.DoubleTappedEventInputElement.Focus(NavigationMethod, KeyModifiers)InputElement.OnKeyDown(KeyEventArgs)InputElement.OnTextInput(TextInputEventArgs)InputElement.OnPointerEntered(PointerEventArgs)InputElement.OnPointerExited(PointerEventArgs)InputElement.OnPointerMoved(PointerEventArgs)InputElement.OnPointerPressed(PointerPressedEventArgs)InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs)InputElement.OnPointerWheelChanged(PointerWheelEventArgs)InputElement.UpdateIsEffectivelyEnabled()InputElement.FocusableInputElement.IsEnabledInputElement.CursorInputElement.IsKeyboardFocusWithinInputElement.IsFocusedInputElement.IsPointerOverInputElement.IsTabStopInputElement.IsEffectivelyEnabledInputElement.TabIndexInputElement.KeyBindingsInputElement.IsEnabledCoreInputElement.GestureRecognizersInputElement.GotFocusInputElement.LostFocusInputElement.KeyDownInputElement.KeyUpInputElement.TextInputInputElement.TextInputMethodClientRequestedInputElement.PointerEnteredInputElement.PointerExitedInputElement.PointerMovedInputElement.PointerPressedInputElement.PointerReleasedInputElement.PointerCaptureLostInputElement.PointerWheelChangedInputElement.TappedInputElement.HoldingInputElement.DoubleTappedInteractive.RaiseEvent(RoutedEventArgs)Interactive.BuildEventRoute(RoutedEvent)Layoutable.DesiredSizePropertyLayoutable.WidthPropertyLayoutable.HeightPropertyLayoutable.MinWidthPropertyLayoutable.MaxWidthPropertyLayoutable.MinHeightPropertyLayoutable.MaxHeightPropertyLayoutable.MarginPropertyLayoutable.HorizontalAlignmentPropertyLayoutable.VerticalAlignmentPropertyLayoutable.UseLayoutRoundingPropertyLayoutable.UpdateLayout()Layoutable.ApplyTemplate()Layoutable.Measure(Size)Layoutable.Arrange(Rect)Layoutable.InvalidateMeasure()Layoutable.InvalidateArrange()Layoutable.AffectsMeasure<T>(params AvaloniaProperty[])Layoutable.AffectsArrange<T>(params AvaloniaProperty[])Layoutable.MeasureCore(Size)Layoutable.MeasureOverride(Size)Layoutable.ArrangeCore(Rect)Layoutable.ArrangeOverride(Size)Layoutable.OnMeasureInvalidated()Layoutable.OnVisualParentChanged(Visual, Visual)Layoutable.WidthLayoutable.HeightLayoutable.MinWidthLayoutable.MaxWidthLayoutable.MinHeightLayoutable.MaxHeightLayoutable.MarginLayoutable.HorizontalAlignmentLayoutable.VerticalAlignmentLayoutable.DesiredSizeLayoutable.IsMeasureValidLayoutable.IsArrangeValidLayoutable.UseLayoutRoundingLayoutable.EffectiveViewportChangedLayoutable.LayoutUpdatedVisual.BoundsPropertyVisual.ClipToBoundsPropertyVisual.ClipPropertyVisual.IsVisiblePropertyVisual.OpacityPropertyVisual.OpacityMaskPropertyVisual.EffectPropertyVisual.HasMirrorTransformPropertyVisual.RenderTransformPropertyVisual.RenderTransformOriginPropertyVisual.FlowDirectionPropertyVisual.VisualParentPropertyVisual.ZIndexPropertyVisual.GetFlowDirection(Visual)Visual.SetFlowDirection(Visual, FlowDirection)Visual.InvalidateVisual()Visual.Render(DrawingContext)Visual.AffectsRender<T>(params AvaloniaProperty[])Visual.OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)Visual.OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)Visual.InvalidateMirrorTransform()Visual.ClipToBoundsVisual.ClipVisual.IsEffectivelyVisibleVisual.IsVisibleVisual.OpacityVisual.OpacityMaskVisual.EffectVisual.HasMirrorTransformVisual.RenderTransformVisual.RenderTransformOriginVisual.FlowDirectionVisual.ZIndexVisual.VisualChildrenVisual.VisualRootVisual.BypassFlowDirectionPoliciesVisual.AttachedToVisualTreeVisual.DetachedFromVisualTreeStyledElement.DataContextPropertyStyledElement.NamePropertyStyledElement.ParentPropertyStyledElement.TemplatedParentPropertyStyledElement.ThemePropertyStyledElement.BeginInit()StyledElement.EndInit()StyledElement.ApplyStyling()StyledElement.InitializeIfNeeded()StyledElement.OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs)StyledElement.OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs)StyledElement.OnDataContextBeginUpdate()StyledElement.OnDataContextEndUpdate()StyledElement.OnInitialized()StyledElement.NameStyledElement.ClassesStyledElement.DataContextStyledElement.IsInitializedStyledElement.StylesStyledElement.StyleKeyStyledElement.ResourcesStyledElement.TemplatedParentStyledElement.ThemeStyledElement.LogicalChildrenStyledElement.PseudoClassesStyledElement.StyleKeyOverrideStyledElement.ParentStyledElement.ActualThemeVariantStyledElement.AttachedToLogicalTreeStyledElement.DetachedFromLogicalTreeStyledElement.DataContextChangedStyledElement.InitializedStyledElement.ResourcesChangedStyledElement.ActualThemeVariantChangedAnimatable.TransitionsPropertyAnimatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs)Animatable.TransitionsAvaloniaObject.CheckAccess()AvaloniaObject.VerifyAccess()AvaloniaObject.ClearValue(AvaloniaProperty)AvaloniaObject.ClearValue<T>(AvaloniaProperty<T>)AvaloniaObject.ClearValue<T>(StyledProperty<T>)AvaloniaObject.ClearValue<T>(DirectPropertyBase<T>)AvaloniaObject.GetHashCode()AvaloniaObject.GetValue(AvaloniaProperty)AvaloniaObject.GetValue<T>(StyledProperty<T>)AvaloniaObject.GetValue<T>(DirectPropertyBase<T>)AvaloniaObject.GetBaseValue<T>(StyledProperty<T>)AvaloniaObject.IsAnimating(AvaloniaProperty)AvaloniaObject.IsSet(AvaloniaProperty)AvaloniaObject.SetValue<T>(StyledProperty<T>, T, BindingPriority)AvaloniaObject.SetValue<T>(DirectPropertyBase<T>, T)AvaloniaObject.SetCurrentValue<T>(StyledProperty<T>, T)AvaloniaObject.Bind(AvaloniaProperty, IBinding)AvaloniaObject.CoerceValue(AvaloniaProperty)AvaloniaObject.RaisePropertyChanged<T>(DirectPropertyBase<T>, T, T)AvaloniaObject.SetAndRaise<T>(DirectPropertyBase<T>, ref T, T)AvaloniaObject.InheritanceParentAvaloniaObject.this[AvaloniaProperty]AvaloniaObject.this[IndexerDescriptor]AvaloniaObject.PropertyChanged
- Extension Methods
Fields
AlwaysHittableProperty
The always hittable property
public static readonly AvaloniaProperty AlwaysHittableProperty
Field Value
- AvaloniaProperty
BatchedGeometriesProperty
public static readonly AvaloniaProperty BatchedGeometriesProperty
Field Value
- AvaloniaProperty
BatchedMaterialsProperty
public static readonly AvaloniaProperty BatchedMaterialsProperty
Field Value
- AvaloniaProperty
CullModeProperty
The cull mode property
public static readonly AvaloniaProperty CullModeProperty
Field Value
- AvaloniaProperty
DepthBiasProperty
The depth bias property
public static readonly AvaloniaProperty DepthBiasProperty
Field Value
- AvaloniaProperty
EnableViewFrustumCheckProperty
The enable view frustum check property
public static readonly AvaloniaProperty EnableViewFrustumCheckProperty
Field Value
- AvaloniaProperty
FillModeProperty
The fill mode property
public static readonly AvaloniaProperty FillModeProperty
Field Value
- AvaloniaProperty
FrontCounterClockwiseProperty
The front counter clockwise property
public static readonly AvaloniaProperty FrontCounterClockwiseProperty
Field Value
- AvaloniaProperty
InvertNormalProperty
The invert normal property
public static readonly AvaloniaProperty InvertNormalProperty
Field Value
- AvaloniaProperty
IsDepthClipEnabledProperty
The is depth clip enabled property
public static readonly AvaloniaProperty IsDepthClipEnabledProperty
Field Value
- AvaloniaProperty
IsMultisampleEnabledProperty
The is multisample enabled property
public static readonly AvaloniaProperty IsMultisampleEnabledProperty
Field Value
- AvaloniaProperty
IsScissorEnabledProperty
The is scissor enabled property
public static readonly AvaloniaProperty IsScissorEnabledProperty
Field Value
- AvaloniaProperty
IsSelectedProperty
The is selected property
public static readonly AvaloniaProperty IsSelectedProperty
Field Value
- AvaloniaProperty
IsThrowingShadowProperty
public static readonly AvaloniaProperty IsThrowingShadowProperty
Field Value
- AvaloniaProperty
IsTransparentProperty
Specifiy if model material is transparent. During rendering, transparent objects are rendered after opaque objects. Transparent objects' order in scene graph are preserved.
public static readonly AvaloniaProperty IsTransparentProperty
Field Value
- AvaloniaProperty
MaterialProperty
public static readonly AvaloniaProperty MaterialProperty
Field Value
- AvaloniaProperty
PostEffectsProperty
public static readonly AvaloniaProperty PostEffectsProperty
Field Value
- AvaloniaProperty
RenderWireframeProperty
The render wireframe property
public static readonly AvaloniaProperty RenderWireframeProperty
Field Value
- AvaloniaProperty
SlopeScaledDepthBiasProperty
The slope scaled depth bias property
public static readonly AvaloniaProperty SlopeScaledDepthBiasProperty
Field Value
- AvaloniaProperty
WireframeColorProperty
The wireframe color property
public static readonly AvaloniaProperty WireframeColorProperty
Field Value
- AvaloniaProperty
Properties
AlwaysHittable
Gets or sets a value indicating whether [always hittable] even it is not rendering.
public bool AlwaysHittable { get; set; }
Property Value
- bool
trueif [always hittable]; otherwise,false.
BatchedGeometries
public IList<BatchedMeshGeometryConfig>? BatchedGeometries { get; set; }
Property Value
BatchedMaterials
public IList<Material>? BatchedMaterials { get; set; }
Property Value
CullMode
Gets or sets the cull mode.
public CullMode CullMode { get; set; }
Property Value
- CullMode
The cull mode.
DepthBias
Gets or sets the depth bias.
public int DepthBias { get; set; }
Property Value
- int
The depth bias.
EnableViewFrustumCheck
Gets or sets a value indicating whether [enable view frustum check].
public bool EnableViewFrustumCheck { get; set; }
Property Value
- bool
trueif [enable view frustum check]; otherwise,false.
FillMode
Gets or sets the fill mode.
public FillMode FillMode { get; set; }
Property Value
- FillMode
The fill mode.
FrontCounterClockwise
Gets or sets a value indicating whether [front counter clockwise].
public bool FrontCounterClockwise { get; set; }
Property Value
- bool
trueif [front counter clockwise]; otherwise,false.
InvertNormal
Invert the surface normal during rendering
public bool InvertNormal { get; set; }
Property Value
IsDepthClipEnabled
Gets or sets a value indicating whether this instance is depth clip enabled.
public bool IsDepthClipEnabled { get; set; }
Property Value
- bool
trueif this instance is depth clip enabled; otherwise,false.
IsMultisampleEnabled
Only works under FillMode = Wireframe. MSAA is determined by viewport MSAA settings for FillMode = Solid
public bool IsMultisampleEnabled { get; set; }
Property Value
IsScissorEnabled
Gets or sets a value indicating whether this instance is scissor enabled.
public bool IsScissorEnabled { get; set; }
Property Value
- bool
trueif this instance is scissor enabled; otherwise,false.
IsSelected
Gets or sets a value indicating whether this instance is selected.
public bool IsSelected { get; set; }
Property Value
- bool
trueif this instance is selected; otherwise,false.
IsThrowingShadow
public bool IsThrowingShadow { get; set; }
Property Value
IsTransparent
Specifiy if model material is transparent. During rendering, transparent objects are rendered after opaque objects. Transparent objects' order in scene graph are preserved.
public bool IsTransparent { get; set; }
Property Value
Material
public Material? Material { get; set; }
Property Value
PostEffects
public string PostEffects { get; set; }
Property Value
RenderWireframe
Gets or sets a value indicating whether [render overlapping wireframe].
public bool RenderWireframe { get; set; }
Property Value
- bool
trueif [render wireframe]; otherwise,false.
SlopeScaledDepthBias
Gets or sets the slope scaled depth bias.
public double SlopeScaledDepthBias { get; set; }
Property Value
- double
The slope scaled depth bias.
WireframeColor
Gets or sets the color of the wireframe.
public Color WireframeColor { get; set; }
Property Value
- Color
The color of the wireframe.
Methods
AssignDefaultValuesToSceneNode(SceneNode)
protected override void AssignDefaultValuesToSceneNode(SceneNode node)
Parameters
nodeSceneNode
OnCreateSceneNode()
Called when [create scene node].
protected override SceneNode OnCreateSceneNode()