DisplayPipeline Class |
The display pipeline calls events during specific phases of drawing During the drawing of a single frame the events are called in the following order.
[Begin Drawing of a Frame]NOTE: There may be multiple DrawObject calls for a single object. An example of when this could happen would be with a shaded sphere. The shaded mesh is first drawn and these channels would be processed; then at a later time the isocurves for the sphere would be drawn.
Namespace: Rhino.Display
The DisplayPipeline type exposes the following members.
Name | Description | |
---|---|---|
ActiveObject | ||
ActiveObjectNestingLevel | ||
ActiveObjectNestingStack | ||
ActiveTopLevelObject | ||
DefaultCurveThickness |
Gets the curve thickness as defined by the current display mode.
Note: this only applies to curve objects, Brep and Mesh wires may have different settings.
| |
DepthMode | ||
DisplayPipelineAttributes | ||
DpiScale |
Scale factor used for high resolution displays. When a monitor that this
pipeline is drawing to is at a DPI of 96, this value is one. On high
DPI monitors, this value will commonly be greater than one.
| |
DrawingGrips |
Gets a value that indicates whether the pipeline is currently in a grip drawing operation.
| |
DrawingSurfaces |
Gets a value that indicates whether the pipeline is currently in a surface
drawing operation. Surface drawing means draw the shaded triangles of a mesh
representing the surface (mesh, extrusion, or brep). This is useful when
inside of a draw event or display conduit to check and see if the geometry is
about to be drawn as a shaded set of triangles representing the geometry.
See DrawingWires to check and see if the wireframe representation of the
geometry is going to be drawn.
| |
DrawingWires |
Gets a value that indicates whether the pipeline is currently in a curve
drawing operation. This is useful when inside of a draw event or display
conduit to check and see if the geometry is about to be drawn is going to
be drawing the wire representation of the geometry (mesh, extrusion, or
brep). See DrawingSurfaces to check and see if the shaded mesh representation
of the geometry is going to be drawn.
| |
FrameBuffer |
Gets the contents of the frame buffer that this pipeline is drawing to.
| |
FrameSize |
Gets the size of the frame buffer that this pipeline is drawing to.
| |
IsDynamicDisplay |
Gets a value that indicates whether the viewport is in Dynamic Display state.
Dynamic display is the state a viewport is in when it is rapidly redrawing because of
an operation like panning or rotating. The pipeline will drop some level of detail
while inside a dynamic display state to keep the frame rate as high as possible.
| |
IsInViewCapture |
Gets a value that indicates whether this pipeline is currently drawing
for ViewCaptureToFile or ViewCaptureToClipboard
| |
IsOpen |
Is true of the pipeline is open, false otherwise.
| |
IsOpenGL |
Gets a value indicating whether or not this pipeline is drawing into an OpenGL context.
| |
IsPrinting |
Gets a value that indicates whether this pipeline
is currently drawing for printing purposes.
| |
IsStereoMode |
Gets a value that indicates whether this pipeline is currently using an
engine that is performing stereo style drawing. Stereo drawing is for
providing an "enhanced 3-D" effect through stereo viewing devices.
| |
ModelTransform |
Gets or sets the current model transformation that is applied to vertices when drawing.
| |
ModelTransformIsIdentity |
Gets a value that indicates whether the Model Transform is an Identity transformation.
| |
NestLevel |
Gets the current nested viewport drawing level.
This is used to know if you are currently inside the drawing of a nested viewport (detail object in Rhino).
Nest level = 0 Drawing is occurring in a standard Rhino viewport or on the page viewport. Nest level = 1 Drawing is occurring inside a detail view object. | |
RenderPass |
Gets the current pass that the pipeline is in for drawing a frame.
Typically drawing a frame requires a single pass through the DrawFrameBuffer
function, but some special display effects can be achieved through
drawing with multiple passes.
| |
ShadingRequired |
Gets or sets the "ShadingRequired" flag. This flag gets set inside the pipeline when a request is
made to draw a shaded mesh but the current render engine doesn't support shaded
mesh drawing...at this point the redraw mechanism will make sure everything will
work the next time around.
| |
StereoProjection |
Gets the current stereo projection if stereo mode is on.
0 = left 1 = right If stereo mode is not enables, this property always returns 0. | |
SupportsShading |
Gets whether or not this pipeline supports shaded meshes.
| |
Viewport | ||
ZBiasMode |
Name | Description | |
---|---|---|
AddClippingPlane |
Add a clipping plane to be used during the drawing of this frame
| |
AvailableOpenGLVersion |
If Rhino is using OpenGL for display, this function will return
major.minor version of OpenGL available for this instance of Rhino
| |
ClearFrameBuffer |
Fill the frame buffer with a single color. This function also clears
the depth buffer for engines that support depth buffered drawing.
| |
Clone |
Clones the pipeline. Creates an identical copy of "this" pipeline.
Copies all conduits from "this" pipeline to the new pipeline.
| |
Close |
Closes the pipeline.
| |
CullControlPolygon |
Returns a value indicating if only points on the side of the surface that
face the camera are displayed.
| |
Draw2dLine(Point, Point, Color, Single) | ||
Draw2dLine(PointF, PointF, Color, Single) | ||
Draw2dRectangle | ||
Draw2dText(String, Color, Point2d, Boolean) |
Draws 2D text on the viewport.
| |
Draw2dText(String, Color, Point3d, Boolean) |
Draws 2D text on the viewport.
| |
Draw2dText(String, Color, Point2d, Boolean, Int32) |
Draws 2D text on the viewport.
| |
Draw2dText(String, Color, Point3d, Boolean, Int32) |
Draws 2D text on the viewport.
| |
Draw2dText(String, Color, Point2d, Boolean, Int32, String) |
Draws 2D text on the viewport.
| |
Draw2dText(String, Color, Point3d, Boolean, Int32, String) |
Draws 2D text on the viewport.
| |
Draw3dText(Text3d, Color) | ||
Draw3dText(Text3d, Color, Plane) |
Draws 3d text with a different plane than what is defined in the Text3d class.
| |
Draw3dText(Text3d, Color, Point3d) |
Draws 3d text using the Text3d plane with an adjusted origin.
| |
Draw3dText(String, Color, Plane, Double, String) | ||
Draw3dText(String, Color, Plane, Double, String, Boolean, Boolean) | ||
Draw3dText(String, Color, Plane, Double, String, Boolean, Boolean, TextHorizontalAlignment, TextVerticalAlignment) | ||
DrawActivePoint |
Draws a point in style used during "GetPoint" operations
| |
DrawAnnotation | ||
DrawAnnotationArrowhead | ||
DrawArc(Arc, Color) |
Draw a single arc object.
| |
DrawArc(Arc, Color, Int32) |
Draw a single arc object.
| |
DrawArrow(Line, Color) |
Draws a single arrow object. An arrow consists of a Shaft and an Arrow head at the end of the shaft.
| |
DrawArrow(Line, Color, Double, Double) |
Draws a single arrow object.
An arrow consists of a Shaft and an Arrow head at the end of the shaft.
| |
DrawArrowHead |
Draws a single arrow head.
| |
DrawArrows(IEnumerableLine, Color) |
Draws a collection of arrow objects. An arrow consists of a Shaft and an Arrow head at the end of the shaft.
| |
DrawArrows(Line, Color) |
Draws a collection of arrow objects. An arrow consists of a Shaft and an Arrow head at the end of the shaft.
| |
DrawBitmap |
Draws a bitmap in screen coordinates
| |
DrawBox(BoundingBox, Color) |
Draws the edges of a BoundingBox.
| |
DrawBox(Box, Color) |
Draws the edges of a Box object.
| |
DrawBox(BoundingBox, Color, Int32) |
Draws the edges of a BoundingBox.
| |
DrawBox(Box, Color, Int32) |
Draws the edges of a Box object.
| |
DrawBoxCorners(BoundingBox, Color) |
Draws corner widgets of a world aligned bounding box.
Widget size will be 5% of the Box diagonal.
| |
DrawBoxCorners(BoundingBox, Color, Double) |
Draws corner widgets of a world aligned bounding box.
| |
DrawBoxCorners(BoundingBox, Color, Double, Int32) |
Draws corner widgets of a world aligned bounding box.
| |
DrawBrepShaded |
Draws a shaded mesh representation of a brep.
| |
DrawBrepWires(Brep, Color) |
Draws all the wireframe curves of a brep object.
| |
DrawBrepWires(Brep, Color, Int32) |
Draws all the wireframe curves of a brep object.
| |
DrawCircle(Circle, Color) |
Draw a single circle object.
| |
DrawCircle(Circle, Color, Int32) |
Draw a single circle object.
| |
DrawCone(Cone, Color) |
Draw a wireframe cone.
| |
DrawCone(Cone, Color, Int32) |
Draw a wireframe cone.
| |
DrawConstructionPlane |
Draws a construction plane.
| |
DrawCurvatureGraph(Curve, Color) |
Draw a typical Rhino Curvature Graph.
| |
DrawCurvatureGraph(Curve, Color, Int32) |
Draw a typical Rhino Curvature Graph.
| |
DrawCurvatureGraph(Curve, Color, Int32, Int32, Int32) |
Draw a typical Rhino Curvature Graph.
| |
DrawCurve(Curve, DisplayPen) | ||
DrawCurve(Curve, Color) |
Draw a single Curve object.
| |
DrawCurve(Curve, Color, Int32) |
Draw a single Curve object.
| |
DrawCylinder(Cylinder, Color) |
Draw a wireframe cylinder.
| |
DrawCylinder(Cylinder, Color, Int32) |
Draw a wireframe cylinder.
| |
DrawDirectionArrow | ||
DrawDot(Point3d, String) |
Draws a text dot in world coordinates.
| |
DrawDot(Single, Single, String) |
Draws a text dot in screen coordinates.
| |
DrawDot(Point3d, String, Color, Color) |
Draw a text dot in world coordinates.
| |
DrawDot(TextDot, Color, Color, Color) |
Draw a text dot as defined by the text dot class
| |
DrawDot(Single, Single, String, Color, Color) |
Draws a text dot in screen coordinates.
| |
DrawDottedLine(Line, Color) |
Draws a single dotted line.
| |
DrawDottedLine(Point3d, Point3d, Color) |
Draws a single dotted line.
| |
DrawDottedPolyline |
Draws a set of connected lines (polyline) in a dotted pattern (0x00001111).
| |
DrawExtrusionWires(Extrusion, Color) |
Draws all the wireframe curves of an extrusion object.
| |
DrawExtrusionWires(Extrusion, Color, Int32) |
Draws all the wireframe curves of an extrusion object.
| |
DrawGradientHatch(Hatch, IEnumerableColorStop, Point3d, Point3d, Boolean, Single, DisplayPen, Color) | ||
DrawGradientHatch(Hatch, IEnumerableColorStop, Point3d, Point3d, Boolean, Single, Single, Color) | ||
DrawGradientHatch(Hatch, Color, Color, Point3d, Point3d, Boolean, Single, Color) |
Draw a two point gradient filled hatch
| |
DrawGradientLines | ||
DrawGradientMesh | ||
DrawHatch(Hatch, Color, Color) | ||
DrawHatch(Hatch, Color, DisplayPen, Color) | ||
DrawInstanceDefinition(InstanceDefinition) |
Draws an InstanceDefinition.
| |
DrawInstanceDefinition(InstanceDefinition, Transform) |
Draws an InstanceDefinition.
| |
DrawLight |
Draws a light.
| |
DrawLine(Line, DisplayPen) | ||
DrawLine(Line, Color) |
Draws a single line object.
| |
DrawLine(Line, Color, Int32) |
Draws a single line object.
| |
DrawLine(Point3d, Point3d, Color) |
Draws a single line object.
| |
DrawLine(Point3d, Point3d, Color, Int32) |
Draws a single line object.
| |
DrawLineArrow |
Draws an arrow made up of three line segments.
| |
DrawLineNoClip |
Draws a single line object .This version of line drawing will draw the
segments of the line that extend beyond the near and far planes of the
view frustum with depths on those planes
| |
DrawLines(IEnumerableLine, Color) |
Draws a set of lines with a given color and thickness. If you want the fastest possible set of lines
to be drawn, pass a Line[] for lines.
| |
DrawLines(Line, DisplayPen) | ||
DrawLines(IEnumerableLine, Color, Int32) |
Draws a set of lines with a given color and thickness. If you want the fastest possible set of lines
to be drawn, pass a Line[] for lines.
| |
DrawMarker(Point3d, Vector3d, Color) |
Draws an arrow marker as a view-aligned widget.
| |
DrawMarker(Point3d, Vector3d, Color, Int32) |
Draws an arrow marker as a view-aligned widget.
| |
DrawMarker(Point3d, Vector3d, Color, Int32, Double) |
Draws an arrow marker as a view-aligned widget.
| |
DrawMarker(Point3d, Vector3d, Color, Int32, Double, Double) |
Draws an arrow marker as a view-aligned widget.
| |
DrawMeshFalseColors |
Draws the mesh faces as false color patches.
The mesh must have Vertex Colors defined for this to work.
| |
DrawMeshShaded(Mesh, DisplayMaterial) |
Draws the shaded faces of a given mesh.
| |
DrawMeshShaded(Mesh, DisplayMaterial, Int32) |
Draws the shaded faces of a given mesh.
| |
DrawMeshVertices |
Draws all the vertices in a given mesh.
| |
DrawMeshWires(Mesh, Color) |
Draws all the wires in a given mesh.
| |
DrawMeshWires(Mesh, Color, Int32) |
Draws all the wires in a given mesh.
| |
DrawObject(RhinoObject) |
Draws a RhinoObject.
| |
DrawObject(RhinoObject, Transform) |
Draws a RhinoObject with an applied transformation.
| |
DrawParticles(ParticleSystem) | ||
DrawParticles(ParticleSystem, DisplayBitmap) | ||
DrawParticles(ParticleSystem, DisplayBitmap) | ||
DrawPatternedLine(Line, Color, Int32, Int32) |
Draws a single line with specified pattern.
| |
DrawPatternedLine(Point3d, Point3d, Color, Int32, Int32) |
Draws a single line with specified pattern.
| |
DrawPatternedPolyline |
Draws a set of connected lines (polyline) with specified pattern.
| |
DrawPoint(Point3d) |
Draws a point using the current display attribute size, style and color
| |
DrawPoint(Point3d, Color) | Draws a point with a given radius, style and color. | |
DrawPoint(Point3d, PointStyle, Int32, Color) | Draws a point with a given radius, style and color. | |
DrawPoint(Point3d, PointStyle, Single, Color) | Draws a point with a given radius, style and color. | |
DrawPoint(Point3d, PointStyle, Color, Color, Single, Single, Single, Single, Boolean, Boolean) | ||
DrawPointCloud(PointCloud, Int32) |
Draws a point cloud.
| |
DrawPointCloud(PointCloud, Single) |
Draws a point cloud.
| |
DrawPointCloud(PointCloud, Int32, Color) |
Draws a point cloud.
| |
DrawPointCloud(PointCloud, Single, Color) |
Draws a point cloud.
| |
DrawPoints(DisplayPointSet) | ||
DrawPoints(DisplayPointSet, DisplayPointAttributes, DisplayPointAttributes) | ||
DrawPoints(IEnumerablePoint3d, PointStyle, Int32, Color) | Draw a set of points with a given radius, style and color. | |
DrawPoints(IEnumerablePoint3d, PointStyle, Single, Color) | Draw a set of points with a given radius, style and color. | |
DrawPoints(IEnumerablePoint3d, PointStyle, Color, Color, Single, Single, Single, Single, Boolean, Boolean) | ||
DrawPolygon |
Draws a filled, convex polygon from a collection of points.
| |
DrawPolyline(IEnumerablePoint3d, Color) |
Draws a single Polyline object.
| |
DrawPolyline(IEnumerablePoint3d, Color, Int32) |
Draws a single Polyline object.
| |
DrawRoundedRectangle | ||
DrawSphere(Sphere, Color) |
Draw a wireframe sphere.
| |
DrawSphere(Sphere, Color, Int32) |
Draw a wireframe sphere.
| |
DrawSprite(DisplayBitmap, Point2d, Single) | ||
DrawSprite(DisplayBitmap, Point2d, Single, Color) | ||
DrawSprite(DisplayBitmap, Point2d, Single, Single) |
Draw screen oriented image centered at 2d screen location
| |
DrawSprite(DisplayBitmap, Point3d, Single, Boolean) | ||
DrawSprite(DisplayBitmap, Point3d, Single, Color, Boolean) | ||
DrawSprites(DisplayBitmap, DisplayBitmapDrawList, Single, Boolean) | ||
DrawSprites(DisplayBitmap, DisplayBitmapDrawList, Single, Vector3d, Boolean) | ||
DrawStereoFrameBuffer |
Draws the viewport as seen from the left and the right eye viewports
and returns the result as OpenGL texture handles.
| |
DrawSubDShaded |
Draw a shaded mesh representation of a SubD
| |
DrawSubDWires(SubD, Color, Single) |
Draws all the wireframe curves of a SubD object
| |
DrawSubDWires(SubD, DisplayPen, DisplayPen, DisplayPen, DisplayPen) |
Draws all the wireframe curves os a SubD object using different pens
| |
DrawSurface |
Draw wireframe display for a single surface.
| |
DrawText(TextEntity, Color) | ||
DrawText(TextEntity, Color, Transform) | ||
DrawText(TextEntity, Color, Double) | ||
DrawToBitmap |
Draw a given viewport to an off-screen bitmap.
| |
DrawTorus(Torus, Color) |
Draw a wireframe torus.
| |
DrawTorus(Torus, Color, Int32) |
Draw a wireframe torus.
| |
DrawZebraPreview(Brep, Color) |
Draws a shaded Brep with Zebra stripe preview.
| |
DrawZebraPreview(Mesh, Color) |
Draws a shaded Mesh with Zebra stripe preview.
| |
EnableClippingPlanes |
Enable or disable the Clipping Plane logic of the engine.
| |
EnableColorWriting |
Enable or disable the ColorWriting behavior of the engine.
| |
EnableDepthTesting |
Enable or disable the DepthTesting behavior of the engine.
When DepthTesting is disabled, objects in front will no
longer occlude objects behind them.
| |
EnableDepthWriting |
Enable or disable the DepthWriting behavior of the engine.
When DepthWriting is disabled, drawn geometry does not affect the Z-Buffer.
| |
EnableLighting |
Enable or disable the Lighting logic of the engine.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Flush |
Force the pipeline to immediately flush any cached geometry to the display
| |
GetDrawListSerialNumbers |
Gets the current model and page view draw list serial numbers, which can
be used to determine if a model or page view needs to be redrawn.
| |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetLights |
Get lights that this pipeline is current using
| |
GetOpenGLCameraToClip |
Get an array of 16 floats that represents the "camera" to "clip" coordinate
transformation in OpenGL's right handed coordinate system
| |
GetOpenGLWorldToCamera |
Get an array of 16 floats that represents the "world" to "camera" coordinate
transformation in OpenGL's right handed coordinate system
| |
GetOpenGLWorldToClip |
Get an array of 16 floats that represents the "world" to "clip" coordinate
transformation in OpenGL's right handed coordinate system
| |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
InterruptDrawing |
Tests to see if the pipeline should stop drawing more geometry and just show what it has so far.
If a drawing operation is taking a long time, this function will return true and tell Rhino it should just
finish up and show the frame buffer. This is used in dynamic drawing operations.
| |
IsActive |
Determines if an object can be visible in this viewport based on it's object type and display attributes.
This test does not check for visibility based on location of the object.
NOTE: Use CRhinoDisplayPipeline::IsVisible() to perform "visibility"
tests based on location (is some part of the object in the view frustum).
Use CRhinoDisplayPipeline::IsActive() to perform "visibility"
tests based on object type.
| |
IsInTiledDraw |
Returns true if the currently drawn frame is part of a tiled capture. Tiled captures
are performed when creating large raster outputs.
| |
IsVisible(BoundingBox) |
Test a given box for visibility inside the view frustum under the current
viewport and model transformation settings.
| |
IsVisible(Point3d) |
Test a given 3d world coordinate point for visibility inside the view
frustum under the current viewport and model transformation settings.
| |
IsVisible(RhinoObject) |
Test a given object for visibility inside the view frustum under the current viewport and model
transformation settings. This function calls a virtual IsVisibleFinal function that
sub-classed pipelines can add extra tests to. In the base class, this test only tests
visibility based on the objects world coordinates location and does not pay attention
to the object's attributes.
NOTE: Use CRhinoDisplayPipeline::IsVisible() to perform "visibility"
tests based on location (is some part of the object in the view frustum).
Use CRhinoDisplayPipeline::IsActive() to perform "visibility"
tests based on object type.
| |
MakeDefaultOpenGLContextCurrent |
Make a "default" OpenGL context current
| |
Measure2dText |
Determines screen rectangle that would be drawn to using the Draw2dText(..) function
with the same parameters.
| |
Open |
Opens the pipeline.
| |
PopClipTesting | Obsolete.
Pop a ClipTesting flag off the engine's stack.
| |
PopCullFaceMode |
Pop a FaceCull flag off the engine's stack.
| |
PopDepthTesting |
Pop a DepthTesting flag off the engine's stack.
| |
PopDepthWriting |
Pop a DepthWriting flag off the engine's stack.
| |
PopModelTransform |
Pop a model transformation off the engine's model transform stack.
| |
PopProjection |
Pop a view projection off this pipelines projection stack
| |
Push2dProjection |
Push the current view projection and set the viewport up to be a
simple 2D top projection where the camera frustum matches the same
size as the screen port. This allows geometry draw functions to act
like they are working with typical 2d graphics APIs on a window
| |
PushClipTesting | Obsolete.
Push a ClipTesting flag on the engine's stack.
| |
PushCullFaceMode |
Push a FaceCull flag on the engine's stack.
| |
PushDepthTesting |
Push a DepthTesting flag on the engine's stack.
| |
PushDepthWriting |
Push a DepthWriting flag on the engine's stack.
| |
PushModelTransform |
Push a model transformation on the engine's model transform stack.
| |
RemoveClippingPlane |
Remove a clipping plane from the pipeline for this frame
| |
SetupDisplayMaterial(Color) | ||
SetupDisplayMaterial(RhinoDoc, RhinoObject) |
Sets up a display material.
| |
SetupDisplayMaterial(RhinoDoc, RhinoObject, ObjectAttributes) |
Sets up a display material.
| |
SetupDisplayMaterial(RhinoDoc, RhinoObject, ObjectAttributes, Transform) |
Sets up a display material.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
CalculateBoundingBox | ||
CalculateBoundingBoxZoomExtents |
Calculate a bounding to include in the Zoom Extents command.
| |
DisplayModeChanged | ||
DrawForeground |
Called after all non-highlighted objects have been drawn and PostDrawObjects has been called.
Depth writing and testing are turned OFF. If you want to draw with depth writing/testing,
see PostDrawObjects.
| |
DrawOverlay |
If Rhino is in a feedback mode, the draw overlay call allows for temporary geometry to be drawn on top of
everything in the scene. This is similar to the dynamic draw routine that occurs with custom get point.
| |
InitFrameBuffer | ||
ObjectCulling | ||
PostDrawObject |
Called right after an individual object has been drawn. NOTE: Do not use this event
unless you absolutely need to. It is called for every object in the document and can
slow display down if a large number of objects exist in the document
| |
PostDrawObjects |
Called after all non-highlighted objects have been drawn. Depth writing and testing are
still turned on. If you want to draw without depth writing/testing, see DrawForeground.
| |
PreDrawObject |
Called right before an individual object is being drawn. NOTE: Do not use this event
unless you absolutely need to. It is called for every object in the document and can
slow display down if a large number of objects exist in the document
| |
PreDrawObjects |
Called before objects are been drawn. Depth writing and testing are on.
| |
PreDrawTransparentObjects |
Called before transparent objects have been drawn. Depth writing and testing are on.
| |
ViewportProjectionChanged |
Called when the projection changes for a viewport being drawn.
|