Click or drag to resize
AB4D logo

Ab3d.Utilities Namespace

Ab3d.Utilities namespace provide some utility classes that simplify event handling on 3D objects, control the displaying and updating of 3D lines, change 3D object shading, etc.
Classes
 ClassDescription
Public classBaseEventSource3D Base class for all EventSource3D classes.
Public classBezierCurve BezierCurve class is used to create a 3D Bezier curves.
Public classBitmapRendering BitmapRendering class contains static methods that can render any FrameworkElement to bitmap.
Public classBSpline BSpline class is used to create a 3D B-spline.
Public classCameraUtils CameraUtils class contains some helper methods to work with Ab3d.Cameras.
Public classCompositionRenderingHelper CompositionRenderingHelper class helps work with CompositionTarget.Rendering event with allowing subscribed objects to be collected by Garbage Collection and therefore preventing infinite rendering subscription in case when the Rendering is not unsubscribed.
Public classContourLinesFactory ContourLinesFactory is a class that can be used to create Contour lines (sometimes also known as isolines). Contour lines connect positions with the same value. The values that will be used to create contour lines are defined in the class constructor.
Public classDumper Dumper class is a helper class that contains methods to show information about Model3D or displays the positions, normals and texture coordinates of the MeshGeometry3D.
Public classDumperModelGroupCounters ModelGroupCounters
Public classEdgeLinesFactory EdgeLinesFactory can generated edge lines where the angle between two adjacent triangles is bigger then the specified angle.
Public classCode exampleEventManager3D EventManager3D class is a helper class that enables user to simply subscribe to mouse and touch events on 3D objects.
Public classLineSelectorData LineSelectorData class can be used to get the closest distance of a specified screen position to the 3D line that is used to create an instance of LineSelectorData. When line or positions are transformed, then set the PositionsTransform3D property to apply the transformation. When CheckBoundingBox is set to true, then an optimized distance detection algorithm is used that first checks the bounding box before checking individual line segments. See remarks in the CheckBoundingBox for more info.
Public classLinesUpdater LinesUpdater class is a helper class that updates all the shown 3D Lines.
Public classMathUtils MathUtils contains some math utility methods.
Public classMeshAnalyzer MeshAnalyzer class can analyze the MeshGeometry3D and produce a list of Edges and Polygons (triangles) that define the mesh. MeshAnalyzer can also create edge lines that are created between triangles that have normal angles bigger than the specified angle.
Public classMeshBooleanOperations MeshBooleanOperations static class defines methods that can execute subtract, intersect or union operations on 3D models.
Public classMeshUtils MeshUtils class contains static methods that work with MeshGeometry3D.
Public classModelEventSource3D ModelEventSource3D class is used to register a Model3D object to the EventManager3D.
Public classModelIterator ModelIterator class allows easy iteration through complex 3D models hierarchies.
Public classModelOptimizer ModelOptimizer can be used to optimize the Model3D or Visual3D so it can be drawn faster by WPF 3D.
Public classModelUtils ModelUtils class contains static methods that work on Model3D.
Public classMouseMovableUIElement3D MouseMovableUIElement3D is UIElement3D that is used to enclose a Model3D that has MouseMoveStartedCallback, MouseMovedCallback and MouseMoveEndedCallback It is used by ModelMoverVisual3D to enclose MovableAxis's models.
Public classMovableAxis MovableAxis is used by ModelMoverVisual3D and contains code to handle moving one axis.
Public classMovablePlane MovablePlane is used by ModelMoverVisual3D and contains code to handle moving one 3D plane.
Public classMultiModelEventSource3D MultiModelEventSource3D class is used to register more than one Model3D object to the EventManager3D.
Public classMultiVisualEventSource3D MultiVisualEventSource3D class is used to register more than one Visual3D object to the EventManager3D.
Public classPlanarShadowMeshCreator PlanarShadowMeshCreator is a class that can be used to create a a planar shadow mesh.
Public classPlane Plane struct defines a plane in form a*x + b*y + c*z + d = 0 or p*n + d = 0 (p is point; n is normal vector).
Public classPolygonAnalyzer PolygonAnalyzer can be used to analyzed a 2D polygon that is defined by a list of 2D positions.
Public classRotatableCircle RotatableCircle is used by ModelRotatorVisual3D and provided a mouse controller rotatable circle.
Public classScalableAxis ScalableAxis is used by ModelScalarVisual3D and contains code to handle moving one axis.
Public classShadingHelper Class library that contains static methods for converting models into flat or smooth shaded models
Public classStandardTransform3D StandardTransform3D is a class that generates a MatrixTransform3D based on the translate, rotate and scale transform. It can be used to have only a single transformation object for translate, rotate and scale. The MatrixTransform3D is available in the StandardTransform3D.Transform property. To assign the StandardTransform3D to a Model3D or Visual3D object it is recommended to use the static SetStandardTransform3D(Model3D, StandardTransform3D, Boolean) or SetStandardTransform3D(Visual3D, StandardTransform3D, Boolean) methods.
Public classTransformationsHelper TransformationsHelper class contain methods that help to work with transformations, for example GetModelTotalTransform(Model3D, Model3D, Boolean).
Public classTransparencyHelper TransparencyHelper class contains helper static methods that are used by transparency sorting.
Public classTransparencySorter TransparencySorter class can be used to solve the problems with transparent objects in WPF 3D.
Public classTransparentModelIndexChangedEventArgs TransparentModelIndexChangedEventArgs is used in for the TransparentModelIndexChanged event. It is used to notify which event was rearranged and from and to which position.
Public classTriangulator Triangulator can be used to convert one or more polygons that are defined by a list of 2D points into triangles (triangle indices).
Public classVisualEventSource3D VisualEventSource3D class is used to register a Visual3D object to the EventManager3D.
Structures
 StructureDescription
Public structureMeshEdge MeshEdge defines an edge in a 3D mesh. The edge is defined by StartPositionIndex and EndPositionIndex that represents two indexes in the mesh's positions collection. MeshEdge also defines indexes of polygons that use that edge.
Public structureMeshPolygon MeshPolygon defines a polygon in a 3D mesh. Polygon is a collection of edges that lie on the same 3D plane. Because orientation of edges is important because it defines the front and back face, the MeshPolygon also defines the IsEdgeFlipped that specifies if edge is flipped (start and end are flipped).
Public structureMeshUtilsMesh3DInfo Mesh3DInfo is a struct that is used by the CollectAllMeshes(Model3D, Transform3D) method and contains information about all 3D meshes in a Model3D hierarchy.
Interfaces
 InterfaceDescription
Public interfaceICompositionRenderingSubscriber ICompositionRenderingSubscriber need to be implemented by a class that wants to subscribe to Rendering event with CompositionRenderingHelper.
Delegates
 DelegateDescription
Public delegateModelIteratorGeometryModel3DIteratorDelegate GeometryModel3DIteratorDelegate defines GeometryModel3D and parent transform as parameters.
Public delegateModelIteratorModelVisual3DIteratorDelegate ModelVisual3DIteratorDelegate defines ModelVisual3D and parent transform as parameters.
Public delegateTransparentModelIndexChangedEventHandler Delegate used for the TransparentModelIndexChanged event.
Enumerations
 EnumerationDescription
Public enumerationPlanePlaneIntersectionType PlaneIntersectionType enum defines types of intersections with the plane that can be get with GetIntersectionType methods.
Public enumerationTransparencySorterSortingModeTypes SortingModeTypes defines possible type of transparency sorting.