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 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
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.