Click or drag to resize
AB4D logo

Ab3d.Visuals Namespace

Ab3d.Visuals namespace provide classes that can be used to create base 3D objects that derive from Visuals3D.

Additional info:
Class diagrams: Resources/ModelVisual3DClassDiagram.png and Resources/Lines3DClassDiagram.png
Cheat sheet: Resources/3D Objects cheat sheet.pdf
Classes
 ClassDescription
Public classArrowVisual3D ArrowVisual3D class is used to create Visual3D that represents a 3D arrow.
Public classAxesBoxVisual3D AxesBoxVisual3D can show all 6 axes with tick lines and value labels. It automatically switches and orients the shown axes. AxesBoxVisual3D can show axis title and value labels as 3D text (when Is3DTextShown is true) or as 2D text (when Is3DTextShown is false). To set the value ranges and tick steps, call the SetAxisDataRange(AxesBoxVisual3DAxisTypes, Double, Double, Double, Double, Boolean) method. The individual axes can be get by XAxis1, XAxis2, YAxis1, YAxis2, ZAxis1 and ZAxis2. Setting properties that are the same for all axes (for example AxisLineThickness) will change the same property on all 6 axes. Individual properties can be changed by setting the XAxis1Title, IsXAxis1Visible or directly properties on the axis - for example: XAxis1.AxisTitle.
Public classAxisVisual3D AxisVisual3D class is used to create Visual3D that represents a simple 3D axis that is created from 3 lines - one for x axis, one for y axis and one for z axis.
Public classAxisWith3DLabelsVisual3D AxisWith3DLabelsVisual3D shows one 3D axis with value labels and axis title shown as 3D TextBlockVisual3D objects.
Public classAxisWithOverlayLabelsVisual3D AxisWithOverlayLabelsVisual3D shows one 3D axis with axis title and value labels (and tick lines - when IsRenderingTickLinesOnOverlay is true) shown as 2D Text in the OverlayCanvas (a Canvas that should be defied on top of Viewport3D). The main axis line (and tick lines - when IsRenderingTickLinesOnOverlay is false) are shown as 3D lines.
Public classBaseAxisWithLabelsVisual3D BaseAxisWithLabelsVisual3D is a base class for AxisWith3DLabelsVisual3D and AxisWithOverlayLabelsVisual3D and defines many common properties that define the value ranges, size and style of the value labels and title and other common axis properties.
Public classBaseLineVisual3D BaseLineVisual3D is a base abstract for all 3D line Visual3D classes
Public classBaseModelVisual3D BaseModelVisual3D is a base abstract for all model Visual3D classes
Public classBaseMultiLineVisual3D BaseMultiLineVisual3D is a base abstract for all line 3D Visual3D classes that have Positions properties
Public classBasePolyLineVisual3D BasePolyLineVisual3D is an abstract class that is used as a base class for all 3D lines that are rendered as poly-lines (connected lines) and have MiterLimit property.
Public classBaseTextVisual3D BaseTextVisual3D is a base class for Visual3D objects that create 3D Text. It define the common properties for text. Derived classes must override the CreateModel where the Content property is set.
Public classBaseVisual3D BaseVisual3D is a base class for all Visual3D classes in Ab3d.PowerToys. It adds IsVisible property and support for ISupportInitialize interface.
Public classBoxVisual3D BoxVisual3D class is used to create Visual3D that represents a 3D Box.
Public classCode exampleCenteredTextVisual3D CenteredTextVisual3D class is used to create Visual3D that represents a 3D texts created by a series of 3D lines. The text is centered at CenterPosition.
Public classCircleVisual3D CircleVisual3D class is used to create Visual3D that represents a 3D Circle.
Public classColoredAxisVisual3D AxisVisual3D class is used to create Visual3D that represents a simple 3D axis that is created from 3 lines - one for x axis, one for y axis and one for z axis.
Public classConeTubeVisual3D ConeTubeVisual3D class is used to create Visual3D that represents a 3D Tube with different top and bottom radius.
Public classConeVisual3D ConeVisual3D class is used to create Visual3D that represents a 3D Cone.
Public classContentVisual3D ContentVisual3D class is showing a GeometryModel3D or a Model3DGroup that is specified to its Content property or other Visual3D objects that are added to its Children collection. The class is very similar to standard WPF's ModelVisual3D. A difference is that ContentVisual3D also supports IsVisible property. This means that when rendered with Ab3d.DXEngine the processing of IsVisible property can be optimized (DirectX resources stay im memory when object is hidden and can be therefore shown very fast).
Public classCornerWireBoxVisual3D CornerWireBoxVisual3D a Visual3D that is similar to WireBoxVisual3D but it shows lines only in the corners. The IsLineLengthPercent and LineLength define the length of the lines. CenterPosition and Size define the position and size of the box. In case one Size component is 0, then only a rectangle is created.
Public classCylinderVisual3D CylinderVisual3D class is used to create Visual3D that represents a 3D Cylinder.
Public classEllipseLineVisual3D EllipseLineVisual3D class is used to create Visual3D that represents a 3D ellipse.
Public classHeightMapVisual3D HeightMapVisual3D class is used to create Visual3D that represents a 3D height map.
Public classHorizontalPlaneVisual3D HorizontalPlaneVisual3D class is used to create Visual3D that represents a Horizontal Plane 3D - aligned with X and Z axis.
Public classIcosphereVisual3D IcosphereVisual3D class is used to create Visual3D that represents a 3D Sphere that that consists of equally sized triangles.
Public classLightingRigVisual3D LightingRigVisual3D is a ModelVisual3D that contains 3 DirectionalLight and one AmbientLight objects that define the standard lighting with key, fill and back light.
Public classLineArcVisual3D LineArcVisual3D class is used to create Visual3D that represents a 3D Arc (part of the circle).
Public classLineVisual3D LineVisual3D class is used to create Visual3D that represents a 3D Line.
Public classLineWithTextVisual3D LineWithTextVisual3D class is used to create Visual3D that represents a 3D Line that displays a 3D text above the line.
Public classModelDecoratorVisual3D ModelDecoratorVisual3D is a Visual3D that can be used to show bounding box, normals and triangles for the specified TargetModel3D.
Public classModelMoverVisual3D ModelMoverVisual3D is a ModelVisual3D object that shows 3 arrows and 3 planes that can be used by user to move a 3D model with dragging the arrows with the mouse.
Public classModelRotatorVisual3D ModelRotatorVisual3D is a ModelVisual3D object that shows 3 circles that can be used by user to rotate a 3D model with dragging the circles with the mouse.
Public classModelScalarVisual3D ModelScalarVisual3D is a ModelVisual3D object that shows 3 axes created from smaller and bigger box. It can be used by user to scale a 3D model with dragging the boxes with the mouse.
Public classMultiLineVisual3D MultiLineVisual3D class is used to create Visual3D that represents a series of 3D lines that are defined with positions Point3DCollection. The lines are not connected with each other.
Public classMultiMaterialBoxVisual3D MultiMaterialBoxVisual3D class is used to create Visual3D that represents a 3D Box where each side of the box can have its own material.
Public classMultiPolyLineVisual3D MultiPolyLineVisual3D class is used to create Visual3D that show multiple polylines. This can improve performance compared to creating multiple PolyLineVisual3D objects.
Public classCode exampleObjModelVisual3D ObjModelVisual3D is a Visual3D class that shows 3D models that are read from obj file specified with Source property.
Public classPlaneVisual3D PlaneVisual3D class is used to create Visual3D that represents a 3D Plane.
Public classPolyLineVisual3D PolyLineVisual3D class is used to create Visual3D that represents a series of 3D lines that are defined with positions Point3DCollection. The lines are connected with each other.
Public classPyramidVisual3D PyramidVisual3D class is used to create Visual3D that represents a 3D Pyramid.
Public classRectangleVisual3D RectangleVisual3D class is used to create Visual3D that represents a 3D rectangle.
Public classSphereVisual3D SphereVisual3D class is used to create Visual3D that represents a 3D Sphere.
Public classSphericalZoneVisual3D SphericalZoneVisual3D class is used to create Visual3D that represents a spherical surface included between two parallel planes (the planes are defined by ZoneStartAngle and ZoneEndAngle).
Public classTextBlockVisual3D TextBlockVisual3D class is used to create a Visual3D that can show TextBlock and Border elements on a 3D Plane. This makes showing text with border in 3D very easy.
Public classCode exampleTextVisual3D TextVisual3D class is used to create Visual3D that represents a 3D texts created by a series of 3D lines.
Public classTorusKnotVisual3D Torus knot is a special kind of knot that lies on the surface of an unknotted torus. Similarly, a torus link is a link which lies on the surface of a torus in the same way. Each torus knot is specified by a pair of coprime integers p and q. A torus link arises if p and q are not coprime. A torus knot is trivial (equivalent to the unknot) if and only if either p or q is equal to 1 or −1.
Public classTrapezoidVisual3D TrapezoidVisual3D class is used to create Visual3D that represents a simple 3D Trapezoid.
Public classTubeLineVisual3D TubeLineVisual3D class is used to create Visual3D that represents a 3D line from StartPosition to EndPosition created with 3D tube.
Public classTubePathVisual3D TubePathVisual3D class is used to create a Visual3D that represents a series of connected 3D lines created with connected 3D tube models.
Public classTubeVisual3D TubeVisual3D class is used to create Visual3D that represents a 3D Tube. A tube is a 3D object that can have different inner and outer radius on both top and bottom. TubeVisual3D can produce optimized tubes in two cases: 1) when Height is zero, it produces circle with a hole; 2) when both inner radius are zero, it produces cylinder.
Public classVerticalPlaneVisual3D VerticalPlaneVisual3D class is used to create Visual3D that represents a Vertical 3D Plane - aligned with X and Y axis.
Public classWireBoxVisual3D WireBoxVisual3D class is used to create Visual3D that represents a 3D box defined by 3D lines.
Public classWireCrossVisual3D WireCrossVisual3D class is used to create Visual3D that creates three perpendicular 3D lines that are crossing at the specified position.
Public classWireframeVisual3D WireframeVisual3D shows the 3D model specified in OriginalModel property as wireframe model. In XAML the OriginalModel can be also specified as content of the WireframeVisual3D element.
Public classWireGridVisual3D WireGridVisual3D class is used to create Visual3D that represents a horizontally aligned grid defined by 3D lines.
Interfaces
 InterfaceDescription
Public interfaceILineCapVisual3D ILineCapVisual3D interface is implemented by line Visual3D objects that support custom line cap shapes. The line cap shapes are specified with StartLineCap and EndLineCap properties.
Delegates
 DelegateDescription
Public delegateModelMoverVisual3DModelMovedEventHandler ModelMovedEventHandler
Public delegateModelRotatorVisual3DCreateCustomCircleModel3DDelegate CreateCustomCircleModel3DDelegate is used by CreateCustomCircleModelCallback to create custom circle 3D model.
Public delegateModelRotatorVisual3DModelRotatedEventHandler ModelRotatedEventHandler
Public delegateModelScalarVisual3DModelScaledEventHandler ModelScaledEventHandler
Enumerations
 EnumerationDescription
Public enumerationAxesBoxVisual3DAxisShowingStrategies AxisShowingStrategies enum defines the possible strategies that are used by the AxisShowingStrategy property.
Public enumerationAxesBoxVisual3DAxisTypes AxisTypes enum defines the types of axes.
Public enumerationObjModelVisual3DVisualPositionType VisualPositionType defines the type of Position that is used in ObjModelVisual3D.
Public enumerationWireframeVisual3DWireframeTypes WireframeType enum defines the possible types of showing wireframe model.
Public enumerationWireGridVisual3DWireGridRenderingTechniques WireGridRenderingTechniques enum is used by the RenderingTechnique property and defines possible techniques that define how the 3D lines in this WireGridVisual3D are created and rendered.