Namespace CADability.GeoObject
Classes
Block
Ein Block als geometrisches Objekt. Der Block besitzt seine Kinder. Beim Clonen werden Kopien der Kinder erzeugt. A collection of several IGeoObjects
BlockRef
BSpline
A BSpline is a smooth curve defined by a set of control points. It is implemented as a NURBS - non uniform rational b-spline.
BSplineException
ConicalSurface
A conical surface which implements ISurface. The surface represents a circular or elliptical cone. The u parameter always describes a circle or ellipse, the v parameter a Line.
ConicalSurfaceNP
Conical surface with a uv system (parametric space) which is not periodic and has no pole. The uv system correspond to a plane through the apex perpendicular to the axis which contains the projected cone to this plane. Disadvantage is numeric precision when the opening angle is very small. A solution would be an offset and a factor which only projects the "used area" of this cone to a standard ring
CurveException
Exception thrown by object implementing ICurve.
Curves
This class provides static methods concerning the interaction of two or more ICurve objects.
CylindricalSurface
A cylindrical surface which implements ISurface. The surface represents a circular or elliptical cylinder. The u parameter always describes a circle or ellipse, the v parameter a Line.
CylindricalSurfaceNP
A cylindrical surface, defined by a point (location), and axis (zAxis). The axis (zAxis) and the two vectors xAxis and yAxis build an orthogonal coordinate system. xAxis and yAxis have the same length, which define the radius of the cylinder. The length of the zAxis is the domain of the cylindrical surface. points outside this domain are defined, but not used. The 2d u/v system is defined by the plane through "location" which is spanned by xAxis and yAxis. For each point on the surface, there is a point in this plane, which is found by intersecting the line from (location-zAxis) to the surface point with the u/v plane. Thus all points of the domain on the surface are within an annulus with the cylinder radius and a hole of half the cylinder radius. The u/v system is not periodic and has no poles (except of the 2d origin, which is at the infinite end of the axis). When the orthogonal system of xAxis, yAxis and zAxis is right handed, the normal vectors point to the outside, otherwise they point to the inside. Circles, ellipses and lines in 3d correspond to circles, ellipses and lines in 2d. 3d ellipses with their center at (location-zAxis) degenerate to lines in 2d.
Dimension
The dimension object represents a dimensioning in a model and is a GeoObject. To use a dimension object you must at least set the properties DimensionStyle, DimLineRef, DimLineDirection, and add two points with the AddPoint(GeoPoint) method. Example:
// assuming "project" is a reference to a Project
Dimension d = Dimension.Construct();
d.DimensionStyle = project.DimensionStyleList.Current;
d.DimLineRef = new GeoPoint(200, 200, 0);
d.DimLineDirection = GeoVector.XAxis;
d.AddPoint(new GeoPoint(100, 100, 0));
d.AddPoint(new GeoPoint(200, 100, 0));
d.AddPoint(new GeoPoint(300, 100, 0));
project.GetActiveModel().Add(d);
Ellipse
EllipseException
Face
A face is a finite piece of a surface. It is bounded by a SimpleShape in the 2-dimensional u/v space of the surface. A face is also a IGeoObject. The bounding curves of a face are implemented as Edges. If a face is contained in a Model it doesnt share its edges with other faces. If a face is part of a Shell (which maybe a part of a Solid) it shares some or all of its edges with other faces.
GeneralCurve
A base implementation of ICurve
GeneralCurveException
GeoObjectChange
This class is used as a parameter in the ChangeDelegate event of IGeoObject (see WillChangeEvent).
GeoObjectException
Exception type thrown by GeoObjects
GeoObjectList
Simple list of GeoObjects (IGeoObject). Implemented as an ArrayList.
Hatch
A GeoObject that represents a flat (2d) shape filled by a HatchStyle. It also acts as a Block presenting e.g. the hatch lines as its containing child objects. To fully define a Hatch object you have to set these three properties: Plane, CompoundShape and HatchStyle. If you omit one of these properties you wont see the Hatch object as it is not fully defined. No defaults are assumed.
HelicalSurface
A helical surface defined by an axis, a curve and a pitch. the curve and the axis must reside in a common plane. The curve is revolved around the axis while beeing moved in direction of the axis. The distance movement in direction of the aixs is "pitch" for one full turn.
Icon
A GeoObject that displays an icon at a given position. The icon will always face the viewer and will not be scaled. The icon appears with a small offset in direction to the viewer, so it will not be covered by a face whith which it coincides.
IGeoObjectImpl
This class helps to implement IGeoObject by implementing some IGeoObject methods in a default way and by offering some helper methods.
IGeoObjectImpl.Changing
Helper class to wrap any changing of this GeoObject. Usually used in this way:
using (new Changing(this,...))
{
// ... make the change here ...
}
This will call FireWillChange(GeoObjectChange) before the GeoObject is changed and FireDidChange(GeoObjectChange) after the GeoObject was changed with the appropriate parameters. Changig takes nested changes into account and raises the events only at the outermost level.
IGeoObjectImpl.ChangingAttribute
Helper class to wrap the setting of an attribute. Usually used in this way:
using (new ChangingAttribute(this,atrName,attribute))
{
// ... set the attribute here ...
}
This will call FireWillChange(GeoObjectChange) before the attribute is changed and FireDidChange(GeoObjectChange) after the attribute was changed.
IGeoObjectImpl.ChangingException
An ApplicationException thrown when an error happens during a change operation.
Intersection
This class provides some static methods concerning the intersection of 3D IGeoObject objects. The class Curves also provides some inetersction methods of ICurve objects.
ISurfaceImpl
Internal helper class for ISurface implementation.
Line
The line is a IGeoObject. It is actually a line segment not an infinite line.
Make3D
A class with static methods to create and combine Solids, Shells or Faces.
NonPeriodicCylindricalSurface
NonPeriodicSurface
Non-periodic surface made from an underlying periodic surface. The underlying periodic surface must be periodic in u or in v and may have a pole at the minimum or maximum of the non periodic parameter. The underlying periodic surface may also be non periodic but have one singularity, which will be removed.
NurbsSurface
A NURBS surface implementing ISurface.
OffsetSurface
Path
A geoobject, that derives from Block and represents a ordered collection of geoobjects which all support the ICurve intrface. The contained curves are connected, i.e. Child(i).EndPoint is equal or close to Child(i+1).StartPoint. The Path is not necessary planar, closed and may be self intersecting.
PathException
Picture
A bitmap as a rectangular or rhombiod face in 3D space. This object is mainly used for illustration or as a background in a model. It is a GeoObject and may be part of a model. It is defined by the bitmap bits and the location in space.
PlaneSurface
A planar infinite surface. Implements ISurface. The plane is defined by two vectors which are not necessary perpendicular or normalized.
Point
Implements a point as a IGeoObject.
Polyline
PolylineException
QuadTreeCollection
Shell
ShowPropertyFont
ShowPropertyPicture
ShowPropertyText
SnapPointFinder
Ths class serves as a parameter to FindSnapPoint(SnapPointFinder). It keeps the best snappoint, the object, which caused it and the distance to the mouse point.
Solid
A Solid is a IGeoObject implementation that represents a solid body. Its main data is a collection of oriented faces. The normal vector on any point of the face points to the outside of the body. Solids have one set of faces that represent the outer hull and any number of cavities that reside totally inside the outer hull. All cavyties are disjoint.
SphericalSurface
SphericalSurfaceNP
A spherical surface with a non periodic u/v system. It also has no poles. It cannot represent a whole sphere, there must be some part which is outside the usable area. The center, xAxis, yAxis and zAxis define a coordinate system. The plane defined by (center, xAxis and yAxis) is the equator plane of the sphere, (center+zAxis) is the north pole. (center-zAxis9 is the south pole, which may not be part of the used area. The u/v system is the u/v system of the equator area. The point of the sphere for a provided u/v point is the projection of this point from the south pole to the surface. All circular arcs on the sphere (e.g. planar intersections) are elliptical arcs in the u/v system (or lines, when they pass the north pole)
SurfaceHelper
SurfaceOfLinearExtrusion
Surface defined by a 3d curve and a direction. A point at (u,v) of the surface is defined by the point of the curve at parameter u plus v*direction. It is the surface that is generated by the curve moved along the direction. The curve may not have the direction as a tangential vector. Also the curve is defined in the interval [0,1], the parameterspace of this curve may also be defined by a startParameter and an endParameter.
SurfaceOfRevolution
SurfaceOfRevolution.Hyperbola
SurfaceOfRevolution.HyperbolaHelp
SurfaceOfRevolutionException
Surfaces
Text
Simple Text object, Implements IGeoObject.
ToroidalSurface
A toroidal surface which implements ISurface. The surface represents a torus in space. It is defined by its position in space (three directions) and two radii. The u parameter describes the "big" circles around the main axis, the v parameter describes the "small" circles.
UnscaledGeoObject
A IGeoObject which always appears in the same size in a view. It is not scaled when the view is zoomed.
These objects can not be kept in displaylists and hence have a poor performance when used in high numbers.
The objects rotate with the view when viewed from different directions.
The Location specifies the position of the origin (GeoPoint(0,0,0)) of the referenced GeoObject.
Usually you would center the referenced object at the origin so this object will be centered at the Location.
In contrast to the Icon object, which always shows its face to the viewer and is much faster,
because it can be kept in the display list.
Since this object does not have a well defined size in world coordinates, it is only pickable or selectable
at its insertion point. The size of the object is assumed in device units (pixels)
The Layer of this object will be taken into account for the objects visibility, not the layer of the
referenced object.
Interfaces
ICategorizedDislayLists
ICurve
Interface implemented by one-dimensional geometric objects (eg. line, circle, bspline etc.). The curve may be open or closed.
IDimensionStyle
IExtentedableCurve
Interface for ICurve implementing objects that can be extended in one or two directions
IGeoObject
IGeoObject is the interface that all geometric entities must support (see GeoObject).
IGeoObjectOwner
An IGeoObject object is either owned by a Model or by a Block or it has no owner. The property Owner sets or gets that owner. The Model or Block implement this interface. If you need more functionality than Add and Remove, try to cast IGeoObjectOwner to Model or Block.
IGeoObjectShowProperty
INonPeriodicSurfaceConversion
IOrientation
---Yet to be used--- Imagine a coordinate system moving along a 3d curve. Th z-axis always showing in direction of the curve. The x- and y-axis are still arbitrary. This orientation interface defines the direction of the x-axis at some point
IQuadTreeInsertableZ
IRestrictedDomain
Interface for surfaces with non rectangular definition space. Normally surfaces are either defined for all 2d values (infinite) or they are restricted to a rectangular domain (e.g. NurbsSurface). The NonPeriodicSurface is only defined on a circular area or on a ring. Maybe other surfaces with irregular domains will follow.
ISurface
The ISurface interface must be implemented by all 3-dimensional unbound surfaces that are used by the Face object. The surface has a well defined 2-dimensional coordinate system, usually referred to as the u/v system.
ISurfaceOfRevolution
Interface of a surface rotating in u direction. Should be implemented by all surfaces, which can be looked at this was
Enums
AttributeUsage
CurveException.Mode
Enumeration of different causes for this exception
Dimension.EDimType
Different types of dimensioning
Dimension.EditingMode
Dimension.HitPosition
EllipseException.tExceptionType
ExtentedableCurveDirection
Enumeration for direction of curve extension
ExtentPrecision
GeoObjectException.tExceptionType
Kind of exception
Make3D.SolidModellingMode
Path.ModificationMode
PathException.ExceptionType
PlanarState
Enumeration for the classification of the planar state of a curve
PointSymbol
Flags definig the symbol for the presentation of a Point object. The flag may contain one of the values Empty=0x0,Dot=0x1,Plus=0x2,Cross=0x3,Line=0x4 combined with Square=0x8 or Circle=0x10.
PolylineException.PolylineExceptionType
RuledSurfaceMode
Shell.FindSameFormSearchMode
SnapPointFinder.DidSnapModes
Resulting snap modes of the snap opertaion.
SnapPointFinder.SnapModes
Snap modes to specify in which points the SnapPointFinder should respect
Text.AlignMode
Vertical alignement of the text.
Text.LineAlignMode
Horizontal alignement of the text
Delegates
Block.ConstructionDelegate
Block.PaintTo3DDelegate
BlockRef.ConstructionDelegate
BlockRef.PaintTo3DDelegate
BSpline.ConstructedDelegate
BSpline.ConstructionDelegate
BSpline.PaintTo3DDelegate
ChangeDelegate
Delegate method that is invoked when a GeoObject is about to change or did change.
CreateContextMenueDelegate
Dimension.ConstructionDelegate
Dimension.PaintTo3DDelegate
Ellipse.ConstructedDelegate
Ellipse.ConstructionDelegate
Ellipse.PaintTo3DDelegate
Face.ConstructedDelegate
Face.ConstructionDelegate
Face.PaintTo3DDelegate
GeneralCurve.ConstructionDelegate
GeoObjectList.ObjectAddedDelegate
GeoObjectList.ObjectRemovedDelegate
Hatch.ConstructedDelegate
Hatch.ConstructionDelegate
Delegate definition for Constructor
Hatch.PaintTo3DDelegate
Hatch.RecalcDelegate
Icon.ConstructedDelegate
Definition of the Constructed event
Icon.ConstructionDelegate
Delegate for the construction of a Icon.
IGeoObjectImpl.GetAdditionalContextMenueDelegate
Line.ConstructedDelegate
Line.ConstructionDelegate
Delegate for the construction of a Line.
Line.PaintTo3DDelegate
Path.ConstructedDelegate
Path.ConstructionDelegate
Path.PaintTo3DDelegate
Picture.ConstructedDelegate
Definition of the Constructed event
Picture.ConstructionDelegate
Delegate for the construction of a Picture.
Point.ConstructedDelegate
Point.ConstructionDelegate
Point.PaintTo3DDelegate
Polyline.ConstructedDelegate
Polyline.ConstructionDelegate
Polyline.PaintTo3DDelegate
Shell.ConstructedDelegate
Shell.ConstructionDelegate
Shell.PaintTo3DDelegate
Solid.ConstructedDelegate
Solid.ConstructionDelegate
Solid.PaintTo3DDelegate
Text.ConstructionDelegate
Text.PaintTo3DDelegate
UnscaledGeoObject.ConstructedDelegate
UnscaledGeoObject.ConstructionDelegate
Delegate for the construction of a UnscaledGeoObject.