Rhino C++ API  8.5
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
CRhinoDisplayPipeline Class Reference

#include <RhinoSdkDisplayPipeline.h>

Inheritance diagram for CRhinoDisplayPipeline:
ON_Object CRhinoDisplayPipeline_GDI CRhinoDisplayPipeline_OGL

Classes

struct  DrawInterruptItem
 

Public Types

enum  DisplayTechnologies : int {
  DisplayTechnologies::None = 0, DisplayTechnologies::OpenGL = 1, DisplayTechnologies::Metal = 2, DisplayTechnologies::DirectX = 3,
  DisplayTechnologies::Software = 4, DisplayTechnologies::Vulkan = 5
}
 
- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
}
 

Public Member Functions

 CRhinoDisplayPipeline ()
 
 CRhinoDisplayPipeline (CRhinoDoc *pDoc)
 
 CRhinoDisplayPipeline (CRhinoViewport &vp)
 
virtual ~CRhinoDisplayPipeline ()
 
int ActiveObjectIndex () const
 
int ActiveObjectNestingLevel (ON_SimpleArray< const CRhinoObject * > *stack=nullptr) const
 
int ActiveStereoProjection () const
 
const CRhinoObjectActiveTopLevelObject () const
 
ON_DEPRECATED bool AddObjectTransform (int index, const ON_Xform &xform)
 
void BlendMaterialWithColor (CDisplayPipelineMaterial &, COLORREF, double dBlend=0.5) const
 
virtual bool CalcBoundingBox (ON_BoundingBox &)
 
virtual bool CalcClippingPlanes (ClippingInfo &)
 
bool CanSaveDepthBuffer ()
 
bool CaptureFrameBuffer (bool bForce=false)
 
const CChannelAttributesChannelAttrs () const
 
unsigned int ClonedFrom () const
 
virtual void CloneFrom (const CRhinoDisplayPipeline &)
 
CRhinoDisplayPipelineClonePipeline (CRhinoViewport &)
 
CRhinoDisplayPipelineClonePipeline (CRhinoViewport &, HDC)
 
bool ClosePipeline ()
 
bool ConvertToSingleColorMaterial (CDisplayPipelineMaterial &, ON_Color, bool noLigthing=false) const
 
bool CopyBackBufferTo (CRhinoDib &)
 
bool CopyBackBufferTo (HDC)
 
void CopyBindingsFrom (const CRhinoDisplayPipeline &)
 
bool CopyDepthBufferTo (CRhinoDib &, bool bConvertToImage=false, bool bInvertDepthValues=false, CRhinoDib *pBackgroundImage=nullptr)
 
bool CopyDepthToBackBuffer ()
 
bool CopyFrameBufferTo (CRhinoDib &)
 
bool CopyFrameBufferTo (HDC)
 
bool CopyToBackBuffer (const CRhinoDib &)
 
bool CopyToFrameBuffer (const CRhinoDib &)
 
bool CreateSelectionMap (ObjectArray *=nullptr, CDisplayPipelineAttributes *=nullptr, HRGN=nullptr)
 
const ON_UUIDDeferredDisplayMode () const
 
EDepthMode DepthMode () const
 
void DisableChannel (UINT)
 
void DisableClippingPlanes ()
 
const CDisplayPipelineAttributesDisplayAttrs () const
 
float DpiScale () const
 
void Draw2dLine (const ON_2iPoint &, const ON_2iPoint &, HPEN, bool=true)
 
void Draw2dLine (float x0, float y0, float x1, float y1, ON_Color strokeColor, float strokeWidth, RhinoDashStyle style, bool xormode)
 
void Draw2dLine (int x0, int y0, int x1, int y1, ON_Color strokeColor, float strokeWidth, RhinoDashStyle style, bool xormode)
 
void Draw2dRectangle (const ON_4iRect &rect, HPEN, bool=true)
 
void Draw2dRectangle (float x0, float y0, float x1, float y1, ON_Color strokeColor, float strokeWidth, RhinoDashStyle style, bool xormode)
 
void Draw2dRectangle (int x0, int y0, int x1, int y1, ON_Color strokeColor, float strokeWidth, RhinoDashStyle style, bool xormode)
 
void DrawActivePoint (const ON_3dPoint &)
 
void DrawAnnotation (ON_Annotation &annotation, double dimscale, ON_DimStyle &dimstyle, ON_Color color, void *updater, CRhinoCacheHandle *cache)
 
void DrawAnnotation (ON_Annotation &annotation, ON_Color color, void *updater, CRhinoCacheHandle *cache)
 
void DrawAnnotationArrowhead (const ON_Arrowhead &arrowhead, ON_Xform xform, ON_Color color, CRhinoCacheHandle *cache)
 
void DrawArc (const ON_Arc &)
 
void DrawArc (const ON_Arc &, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
virtual bool DrawBackground ()
 
void DrawBezier (const ON_BezierCurve &bezier_curve)
 
void DrawBezier (int dim, BOOL32 bRational, int order, int cv_stride, const double *cv4d)
 
void DrawBezier (int order, const ON_3dPoint *cv)
 3d world coordinate CVs More...
 
void DrawBezierCage (const ON_BezierSurface &bezier_cage, int display_density=1)
 
void DrawBezierSurface (const ON_BezierSurface &bezier_surface, int display_density=1)
 
void DrawBitmap (const CRhinoDib &, int nX, int nY)
 
void DrawBox (const ON_3dPoint *box_corners, const ON_Color &colot, int thickness)
 
void DrawBox (const ON_BoundingBox &box, const ON_Color &color, int thickness)
 
void DrawBrep (const ON_Brep &brep, const ON_Color &wireColor=ON_Color::UnsetColor, int wireDensity=1)
 
void DrawBrep (const ON_Brep *brep, const ON_Color &wireColor, int wireDensity, bool edgeAnalysis, CRhinoCacheHandle *cache)
 
void DrawCircle (const ON_Circle &)
 
void DrawCircle (const ON_Circle &, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
void DrawCone (const ON_Cone &cone)
 
void DrawCone (const ON_Cone &cone, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
void DrawConstructionPlane (bool depthBuffered, int transparencyLevel)
 
void DrawConstructionPlane (const ON_3dmConstructionPlane &cplane, bool bShowConstructionGrid, bool bShowConstructionAxes, bool bShowConstructionZAxis, ON_Color thin_line_color=ON_Color::UnsetColor, ON_Color thick_line_color=ON_Color::UnsetColor, ON_Color grid_x_axis_color=ON_Color::UnsetColor, ON_Color grid_y_axis_color=ON_Color::UnsetColor, ON_Color grid_z_axis_color=ON_Color::UnsetColor)
 
void DrawCrossHairs (const ON_Plane &plane, const ON_Color &color)
 
void DrawCurvatureGraph (const ON_Curve &curve, const CRhinoCurvatureGraphSettings *hair_settings=nullptr)
 
void DrawCurve (const ON_Curve &curve, const ON_Color &color, float thickness, CRhinoCacheHandle *cache)
 
void DrawCurve (const ON_Curve &curve, const ON_Color &color=ON_Color::UnsetColor, int nThickness=0, UINT nPattern=0)
 
void DrawCylinder (const ON_Cylinder &cylinder)
 
void DrawCylinder (const ON_Cylinder &cylinder, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
void DrawDirectionArrow (const ON_3dPoint &tail_point, const ON_3dVector &direction_vector, ON_3dPoint *head_point=nullptr)
 
void DrawDocumentCustomRenderMeshes ()
 
void DrawDot (const ON_3dPoint &point, const wchar_t *text, const wchar_t *fontFace, int fontHeight, ON_Color fillColor=ON_Color(0, 0, 0), ON_Color textColor=ON_Color::UnsetColor)
 
void DrawDot (const ON_3dPoint &point, const wchar_t *text, ON_Color fillColor=ON_Color(0, 0, 0), ON_Color textColor=ON_Color::UnsetColor)
 
void DrawDot (const ON_TextDot &dot, ON_Color fillColor, ON_Color textColor, ON_Color borderColor, CRhinoCacheHandle *cache)
 
void DrawDot (float screenX, float screenY, const wchar_t *text, ON_Color fillColor=ON_Color(0, 0, 0), ON_Color textColor=ON_Color::UnsetColor)
 
void DrawDottedLine (const ON_3dPoint &, const ON_3dPoint &)
 
bool DrawDynamicOverlays ()
 
void DrawEdges (const CRhinoObject &, int nThickness, UINT nPattern, bool bShowSeams)
 
void DrawExtrusion (const ON_Extrusion &extrusion)
 
void DrawExtrusion (const ON_Extrusion &extrusion, const ON_Color &wireColor, int wireDensity, bool edgeAnalysis, const class CRhDisplayPenPrivate *pen, CRhinoCacheHandle *cache)
 
void DrawExtrusion (const ON_Extrusion &extrusion, const ON_Color &wireColor, int wireDensity, bool edgeAnalysis, CRhinoCacheHandle *cache)
 
void DrawFace (const CRhinoObject *pObject, int face, const CDisplayPipelineAttributes *=nullptr)
 
void DrawFaces (const CRhinoObject *pObject, const ON_SimpleArray< int > &faces, const CDisplayPipelineAttributes *=nullptr)
 
virtual bool DrawForeground ()
 
bool DrawFrameBuffer (const CDisplayPipelineAttributes &attribs, const ON_Viewport &, bool updateContents, bool drawFeedback=true, UINT enabledConduits=CSupportChannels())
 
void DrawHatch (const ON_Hatch &hatch, float strokeWidth, const ON_Color &gradientColor1, const ON_Color &gradientColor2, const ON_3dPoint &gradientPoint1, const ON_3dPoint &gradientPoint2, bool linearGradient, const ON_Color &boundaryColor, CRhinoCacheHandle *cache)
 
void DrawHatch (const ON_Hatch &hatch, float strokeWidth, const ON_Color &hatchColor, ON_Color boundaryColor, CRhinoCacheHandle *cache)
 
void DrawHatch (const ON_Hatch &hatch, float strokeWidth, int colorCount, const ON_ColorStop *colorStops, const ON_3dPoint &gradientPoint1, const ON_3dPoint &gradientPoint2, ON_GradientType gradientType, float repeatFactor, const ON_Color &boundaryColor, CRhinoCacheHandle *cache)
 
void DrawInferenceLine (const ON_3dPoint &P, const ON_3dPoint &Q, ON_Color color=ON_Color::UnsetColor, int type=0)
 
void DrawInferencePoint (const ON_3dPoint &P, const ON_Color &color=ON_Color::UnsetColor)
 
bool DrawingGrips () const
 
bool DrawingHighlightedObjects (void) const
 
bool DrawingSurfaces () const
 
bool DrawingWires () const
 
void DrawLight (const ON_Light &light, const ON_Color &wireframe_color)
 
void DrawLine (const ON_3dPoint &from, const ON_3dPoint &to, const ON_Color &color=ON_Color::UnsetColor, int thickness=0, UINT pattern=0xFFFFFFFF)
 
void DrawLines (int lineCount, const ON_Line *lines, float strokeWidth, int colorCount, const ON_ColorStop *colorStops, const ON_3dPoint &gradientPoint1, const ON_3dPoint &gradientPoint2, ON_GradientType gradientType, float repeatFactor, CRhinoCacheHandle *cache)
 
void DrawMesh (const ON_Mesh &mesh, bool wires, bool shaded, CRhinoCacheHandle *cache)
 Draw a mesh based on the current state of display attributes. More...
 
void DrawMesh (const ON_Mesh &mesh, int colorCount, const ON_ColorStop *colorStops, const ON_3dPoint &gradientPoint1, const ON_3dPoint &gradientPoint2, ON_GradientType gradientType, float repeatFactor, CRhinoCacheHandle *cache)
 
void DrawMeshes (const ON_Mesh **meshes, int count, bool wires, bool shaded, CRhinoCacheHandle *cache)
 
void DrawMeshVertices (const ON_Mesh &, const ON_Color &color)
 
virtual bool DrawMiddleground ()
 
bool DrawNestedFrame (CDisplayPipelineAttributes *da, CChannelAttributes *ca, CSupportChannels channels, int nest_level, bool activeViewport)
 
void DrawNormalCurvatureGraph (const ON_Surface &surface, int wire_density, const CRhinoCurvatureGraphSettings *hair_settings=nullptr)
 
void DrawNurbsCage (const ON_NurbsCage &nurbs_cage, int display_density=1)
 
void DrawNurbsCurve (const ON_NurbsCurve &nurbs_curve)
 
void DrawNurbsSurface (const ON_NurbsSurface &nurbs_surface, int display_density=1)
 
void DrawObject (const CRhinoInstanceDefinition *, const ON_Xform *=nullptr)
 
void DrawObject (const CRhinoObject *, const ON_Xform *=nullptr, ON_Color color=ON_UNSET_COLOR)
 
void DrawObject (int index, bool wires, bool surfaces)
 
void DrawObjects (const ObjectArray &, const ON_Xform *=nullptr)
 
void DrawObjects (const ON_SimpleArray< CRhinoObject * > &, const ON_Xform *=nullptr)
 
virtual void DrawOverlays ()
 
void DrawPoint (const ON_3dPoint &point)
 
void DrawPoint (const ON_3dPoint &point, ERhinoPointStyle style, const ON_Color &strokeColor, const ON_Color &fillColor, float diameter, float strokeWidth, float innerDiameter, float rotationRadians, bool diameterIsInPixels, bool autoScaleDpi)
 
void DrawPoint (const ON_3dPoint &point, int radius, ERhinoPointStyle style, const ON_Color &color)
 
void DrawPointCloud (const ON_PointCloud &cloud, float pixelSize, ERhinoPointStyle pointStyle, ON_Color colorOverride, CRhinoCacheHandle *cache)
 
void DrawPointCloud (const ON_PointCloud &cloud, float pixelSize, ERhinoPointStyle pointStyle, ON_Color colorOverride, int indexCount, const unsigned int *indices, CRhinoCacheHandle *cache)
 
void DrawPointCloud (const ON_PointCloud &cloud, float size, bool sizeInWorld, ERhinoPointStyle pointStyle, ON_Color colorOverride, int indexCount, const unsigned int *indices, CRhinoCacheHandle *cache)
 
void DrawPointCloud (int pointCount, const ON_3dPoint *points, ON_Color color=ON_Color::UnsetColor)
 
void DrawPoints (int count, const ON_3dPoint *points, ERhinoPointStyle style, const ON_Color &strokeColor, const ON_Color &fillColor, float diameter, float strokeWidth, float innerDiameter, float rotationRadians, bool diameterIsInPixels, bool autoScaleDpi)
 
void DrawPolygon (const ON_3dPoint *points, int count, const ON_Color &color, bool filled)
 
void DrawPolyline (const ON_Polyline &polyline, const ON_Color &color, int thickness, UINT pattern=0xFFFFFFFF)
 
void DrawRenderedMesh (const ON_Mesh *mesh, const CRhinoMaterial &render_material, bool bHighlighted)
 
void DrawRoundedRectangle (ON_2fPoint screenCenter, float pixelWidth, float pixelHeight, float cornerRadius, ON_Color strokeColor, float strokeWidth, ON_Color fillColor=ON_Color::UnsetColor)
 
void DrawShadedBrep (const ON_Brep *brep, const CDisplayPipelineMaterial *material, CRhinoCacheHandle *cache)
 
void DrawShadedBreps (const ON_SimpleArray< ON_Brep * > &breps, const CDisplayPipelineMaterial *=nullptr)
 
void DrawShadedMesh (const ON_Mesh &mesh, const CDisplayPipelineMaterial *=nullptr)
 
void DrawShadedMeshes (const ON_Mesh *const *meshes, int count, const CDisplayPipelineMaterial *material, CRhinoCacheHandle *const *caches)
 
void DrawShadedMeshes (const ON_Mesh *const *meshes, int count, const CDisplayPipelineMaterial *material, CRhinoCacheHandle *const *caches, const ON_Xform *const *transforms)
 
bool DrawSilhouette (const CRhinoObject *, float thickness=-1.0f, ON_Color=ON_UNSET_COLOR, UINT pattern=0xFFFFFFFF)
 
void DrawSphere (const ON_Sphere &sphere)
 
void DrawSphere (const ON_Sphere &sphere, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
void DrawString (const ON_TextContent &text, const ON_Xform &textXform, ON_Color color, CRhinoCacheHandle *cache)
 
void DrawString (const ON_TextContent &text, double textScale, ON_Color color, bool drawforward, CRhinoCacheHandle *cache)
 void DrawString(const ON_TextContent& text, ON_Color color, bool drawforward, CRhinoCacheHandle* cache); More...
 
void DrawString (const wchar_t *string, const ON_3dPoint &point, bool bMiddle=false, int height=12, const wchar_t *fontface=L"Arial")
 
void DrawString (const wchar_t *string, ON_Color color, ON_2dPoint point, bool bMiddle=false, int height=12, const wchar_t *fontface=L"Arial")
 
void DrawString (const wchar_t *text, ON_Color color, const ON_Plane &plane, double height, const ON_Font *font, ON::TextHorizontalAlignment horizontalAlignment, ON::TextVerticalAlignment verticalAlignment)
 
void DrawSubD (const class CRhinoSubDDisplay &subd_display, const class CRhinoSubDDisplayAttributes &subd_display_attributes)
 
void DrawSubObject (const CRhinoObject *, ON_COMPONENT_INDEX, const ON_Xform *=nullptr)
 
void DrawSurface (const ON_Surface &surface, int display_density=1)
 
void DrawSurface (int)
 
void DrawTangentBar (const ON_3dPoint &mid_point, const ON_3dVector &direction_vector, ON_3dPoint *start_point=nullptr, ON_3dPoint *end_point=nullptr)
 
bool DrawToDib (CRhinoDib &dib, int width, int height, const CDisplayPipelineAttributes &attrib)
 
void DrawTorus (const ON_Torus &torus)
 
void DrawTorus (const ON_Torus &torus, ON_Color Color, int nThickness=1, UINT nPattern=0xFFFFFFFF)
 
bool DrawTraceImage ()
 
void DrawTriangle (const ON_3dPoint &p0, const ON_3dPoint &p1, const ON_3dPoint &p2)
 
void DrawTriangle (const ON_3dPoint &p0, const ON_3dPoint &p1, const ON_3dPoint &p2, ON_Color color)
 
void DrawTriangle (const ON_3dPoint corners[3])
 
void DrawTriangle (const ON_3dPoint corners[3], ON_Color color)
 
bool DrawWallpaper ()
 
void DrawWireframeMesh (const ON_Mesh &mesh, const ON_Color &color, CRhinoCacheHandle *cache=nullptr)
 
void DrawWireframeMeshes (const ON_Mesh **meshes, int count, const ON_Color &color, CRhinoCacheHandle *cache=nullptr)
 
void DrawZebraPreview (const ON_Brep *brep, const CRhinoZebraAnalysisSettings &zas, const ON_MeshParameters &mp, const ON_Color &color, CRhinoCacheHandle *cache)
 
void DrawZebraPreview (const ON_Mesh *mesh, const CRhinoZebraAnalysisSettings &zas, const ON_Color &color, CRhinoCacheHandle *cache)
 
bool DynamicDisplayDowngradeEnabled () const
 Returns 'true' if display degradation is enabled, 'false' otherwise. More...
 
void EnableChannel (UINT)
 
bool EnableClippingPlanes (bool enable=true)
 
void EnableColorWriting (bool=true)
 
void EnableDepthTesting (bool=true)
 
void EnableDepthWriting (bool=true)
 
void EnableDrawGrayScale (bool=true)
 
void EnableDynamicDisplayDowngrade (bool bEnable)
 
bool EnableEnvironment (bool=true)
 
bool EnableShaders (bool=true) const
 Shader specifics... More...
 
CRhinoDisplayEngineEngine (bool bCreate=false) const
 
void FillSolidRect (int left, int top, int width, int height, COLORREF color, int transparency=0)
 
void FlushPipeline ()
 
void ForceFrameBufferUpdate ()
 
bool FreeResources ()
 
bool FreezeDrawing (bool)
 
bool GeneratingSelectionMap (void) const
 
const CRhinoDocGeometrySource () const
 Return the document that the pipeline uses to get geometry information from when drawing. More...
 
ConduitList GetBoundConduits ()
 
bool GetConduitViewExtents (ON_BoundingBox &)
 
bool GetDepthBuffer (float *zbuffer, int left, int top, int width, int height, float *fmin=nullptr, float *fmax=nullptr)
 
UINT GetDesiredSingleFrameRate () const
 
UINT GetFrameETA () const
 
const ON_2iSize GetFrameSize () const
 
UINT GetFramesPerSecond () const
 
UINT GetFrameTick () const
 
UINT GetFrameTickDelta () const
 
const CRhinoObjectGetObject (int index) const
 
const CRhinoObjectGetObjectAt (int X, int Y)
 
const CRhinoObjectGetObjectAt (int X, int Y, ON_COMPONENT_INDEX &ci)
 
int GetObjectCount () const
 
const CDisplayPipelineAttributesGetObjectDisplayAttrs (const CRhinoObject *pObject, const CRhinoObjectAttributes *pAttributes=nullptr) const
 
bool GetObjectsAlphaMask (CRhinoDib &dib, int nWidth, int nHeight, const CDisplayPipelineAttributes &, COLORREF MaskColorbg=RGB(255, 255, 255), COLORREF Background=RGB(0, 0, 0))
 
const ON_XformGetObjectTransform (int index) const
 
CRhinoViewGetRhinoView () const
 
CRhinoViewportGetRhinoVP () const
 
CRhinoDibGetSelectionMap ()
 
UINT GetSingleFrameRate () const
 
bool GetSpecularMask (CRhinoDib &dib, int nWidth, int nHeight, const CDisplayPipelineAttributes &, bool bIgnoreTransparency)
 
double GetStereoParallax () const
 
double GetStereoSeparation () const
 
void GetTiledFrameInfo (ON_2iSize &fullSize, ON_4iRect &currentTile) const
 
bool GetWiresAlphaMask (CRhinoDib &dib, int nWidth, int nHeight, const CDisplayPipelineAttributes &, int nScale=1, COLORREF MaskColorbg=RGB(255, 255, 255), COLORREF Background=RGB(0, 0, 0))
 
bool GetWiresMask (CRhinoDib &dib, int nWidth, int nHeight, const CDisplayPipelineAttributes &, int nScale=1, COLORREF Background=RGB(255, 255, 255))
 
HWND GetWnd () const
 
const ON_LinetypeHiddenLineType (void) const
 
void IgnoreLockedState (bool)
 
const class CRhinoDetailViewObjectInDetailViewDraw () const
 
bool InFeedbackMode () const
 
bool InFeedbackMode (bool bIgnoreOverlay) const
 
bool InfiniteDepth () const
 
bool InHiddenLinePass (void) const
 
virtual bool InitFrameBuffer ()
 
bool InOverlayMode () const
 
bool InQuickDrawSurface () const
 
const ON_XformInstanceDefinitionTransform () const
 
bool InStereoMode () const
 
bool InterruptDrawing ()
 
bool InViewCapture () const
 
bool IsAccelerated () const
 
bool IsActive (const CRhinoObject *pObject) const
 
bool IsCloned () const
 
bool IsDisplayPrecisionErrorGreaterThan (double pixel_offset) const
 
bool IsEntireActiveInstanceVisible () const
 
bool IsPrinting () const
 
bool IsVisible (const CRhinoObject *pObject) const
 
bool IsVisible (const ON_3dPoint &world_coordinate) const
 
bool IsVisible (const ON_BoundingBox &bbox) const
 
const ON_XformModelTransform () const
 
bool ModelTransformIsIdentity () const
 
bool MultiplyObjectTransform (int index, const ON_Xform &xform, int side)
 
int NestLevel () const
 
virtual bool NotifyFrameSizeChanged (int nWidth, int nHeight)
 
virtual bool NotifyProjectionChanged ()
 
bool ObjectCastsShadows (const CRhinoObject *pObject, const ON_3dPoint &ReferencePoint, ON_BoundingBox *=nullptr) const
 
ON_Color ObjectColor () const
 
bool ObjectHasTransform (int index) const
 
bool ObjectsShouldDrawShadedMeshes () const
 
bool ObjectsShouldDrawSilhouetteHightlights () const
 
bool ObjectsShouldDrawWires () const
 
bool OpenPipeline ()
 
bool PipelineOpened () const
 
void PopDepthTesting ()
 
void PopDepthWriting ()
 
void PopModelTransform ()
 
void PopObjectColor () const
 
void PopProjection ()
 
virtual void PostConstructInitialize (const char *name)
 
virtual bool PostProcessFrameBuffer ()
 
void PreDrawSetup ()
 
void PreDrawSetup (const DisplayBucket &aDrawBucket)
 
void PushDepthTesting (bool)
 
void PushDepthWriting (bool)
 
void PushModelTransform (const ON_Xform &xform)
 
void PushObjectColor (const ON_Color &color) const
 
void PushProjection (const ON_Viewport &)
 
std::shared_ptr< RhRdk::Realtime::DisplayModeRealtimeDisplayMode () const
 
bool Redraw () const
 
int RenderPass () const
 
bool ResetLevelOfDetail ()
 
bool RestoreBackBuffer ()
 
bool RestoreDepthBuffer ()
 
unsigned int RuntimeSerialNumber () const
 
bool SaveBackBuffer ()
 
bool SaveDepthBuffer ()
 
bool SelectionMap () const
 Returns true if this pipeline is currently being used to create a selection map (typically for Drag and Drop operations) More...
 
void SetCapture (bool bEnable=true)
 
int SetCurveThickness (int)
 
void SetCustomDrawList (const ObjectArray &custom_list)
 
void SetDepthMode (EDepthMode)
 
bool SetDesiredFrameRate (double)
 
bool SetDisplayMode (const ON_UUID &)
 
void SetDpiScale (float scale)
 
PFDRAWOVERRIDEPROC SetDrawChannelsOverride (PFDRAWOVERRIDEPROC)
 
void SetFrameSize (int nWidth, int nHeight)
 
CRhinoDocSetGeometrySource (CRhinoDoc *pDoc)
 
bool SetInfiniteDepth (bool bInfiniteDepth)
 
void SetInstanceDefinitionTransform (const ON_Xform &xform)
 
bool SetLevelOfDetail (UINT nLOD)
 
UINT SetLinePattern (UINT)
 
void SetModelTransform (const ON_Xform &xform)
 
ON_Color SetObjectColor (const ON_Color &color)
 
bool SetObjectTransform (int index, const ON_Xform &xform)
 
void SetPrintingMode (bool bPrinting)
 
void SetRedraw (bool enable)
 
bool SetRenderTarget (CRhinoView &)
 
bool SetRenderTarget (HDC pDC)
 
void SetShadingRequired (bool bRequired=true)
 
bool SetStereoMode (bool bStereo)
 
void SetStereoParallax (float fPar)
 
void SetStereoSeparation (float fSep)
 
void SetTiledFrameInfo (const ON_2iSize &fullSize, const ON_4iRect &currentTile)
 
bool SetupDisplayMaterial (CDisplayPipelineMaterial &, COLORREF) const
 Description: More...
 
bool SetupDisplayMaterial (CDisplayPipelineMaterial &, const CRhinoDoc *, const CRhinoObject *, const CRhinoObjectAttributes *=nullptr, const ON_Xform *pOptionalBlockXform=nullptr) const
 
bool SetupDisplayMaterial (CDisplayPipelineMaterial &, const CRhinoObject *, const CRhinoObjectAttributes *=nullptr, const ON_Xform *pOptionalBlockXform=nullptr) const
 
virtual bool SetupFrustum (const ClippingInfo &)
 
virtual bool SetupLighting ()
 
void SetUseImageBasedLighting (bool b)
 
void SetZBiasMode (int)
 
bool ShadingRequired () const
 
virtual bool ShowFrameBuffer (HDC hDC)
 
bool SilhouetteAttrIsOn (void) const
 
bool SupportsShading () const
 
bool SupportsTiling () const
 
bool TechDrawingHiddenLines (void) const
 
bool TechPreProcessingObjects (void) const
 
void UpdateClippingFrustum ()
 
bool UseImageBasedLighting () const
 
bool ViewInDynamicDisplay ()
 
ON_ViewportVP () const
 
int ZBiasMode () const
 
bool ZBufferCapture () const
 Returns true if this pipeline is currently being used to create a z buffer map. More...
 
- Public Member Functions inherited from ON_Object
 ON_Object () ON_NOEXCEPT
 
 ON_Object (const ON_Object &)
 
virtual ~ON_Object ()
 
virtual ON_AggregateComponentStatus AggregateComponentStatus () const
 
bool AttachUserData (class ON_UserData *pUserData)
 
unsigned int ClearAllComponentStates () const
 
virtual unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const
 
virtual unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const
 
void CopyUserData (const ON_Object &source_object)
 
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
virtual ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
 
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
virtual void DestroyRuntimeCache (bool bDelete=true)
 
bool DetachUserData (class ON_UserData *pUserData)
 
virtual void Dump (ON_TextLog &) const
 
void EmergencyDestroy ()
 
class ON_UserDataFirstUserData () const
 
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
 
class ON_UserDataGetUserData (const ON_UUID &userdata_uuid) const
 
bool GetUserString (const wchar_t *key, ON_wString &string_value) const
 
int GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const
 
int GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const
 
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
 
bool IsKindOf (const ON_ClassId *pClassId) const
 
virtual bool IsValid (class ON_TextLog *text_log=nullptr) const
 
virtual void MarkAggregateComponentStatusAsNotCurrent () const
 
virtual void MemoryRelocate ()
 
virtual ON_UUID ModelObjectId () const
 
void MoveUserData (ON_Object &source_object)
 
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
 
virtual ON::object_type ObjectType () const
 
ON_Objectoperator= (const ON_Object &)
 
void PurgeUserData ()
 
virtual bool Read (ON_BinaryArchive &binary_archive)
 
virtual unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const
 
virtual unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const
 
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
 
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
 
virtual unsigned int SizeOf () const
 
bool ThisIsNullptr (bool bSilentError) const
 
void TransformUserData (const class ON_Xform &xform)
 
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
 
int UserStringCount () const
 
virtual bool Write (ON_BinaryArchive &binary_archive) const
 

Static Public Member Functions

static void ClearAllBindings (const CRhinoViewport *pViewport)
 
static CRhinoDisplayPipelineCreateDefaultPipeline ()
 
static void EnableFeedbackProcessing (bool bEnable=true)
 Description: More...
 
static void EnableFrameBufferCapture (bool bEnable=true)
 Description: More...
 
static void EnableMeshGeneration (bool bEnable=true)
 
static bool FeedbackProcessingEnabled ()
 Returns: More...
 
static bool FrameBufferCaptureEnabled ()
 Returns: More...
 
static CRhinoDisplayPipelineFromRuntimeSerialNumber (unsigned int sn)
 
static bool IsValidPipelinePointer (const void *pipeline)
 
static bool MeasureString (ON_2dPoint &boundsMin, ON_2dPoint &boundMax, const wchar_t *text, ON_2dPoint point, bool middle, double heightPixels, const ON_Font *font)
 
static bool MeasureString (ON_2dPoint &boundsMin, ON_2dPoint &boundMax, const wchar_t *text, ON_2dPoint point, bool middle=false, double heightPixels=12, const wchar_t *fontface=L"Arial")
 
static bool MeasureString (ON_4iRect &rect, const wchar_t *text, ON_2dPoint point, bool middle=false, int heightPixels=12, const wchar_t *fontface=L"Arial")
 
static bool MeshGenerationEnabled ()
 
static double RelativeDepthBias ()
 

Public Attributes

bool m_bCaptureFrameBuffer
 
bool m_bDrawGrayScale
 
bool m_bEntireActiveInstanceVisible
 
bool m_bForceCompleteFrameUpdate
 
bool m_bForcedVisibility
 
bool m_bInOverlay
 
bool m_bInterrupted
 
bool m_bInZBufferCapture
 
bool m_bPipelineOpened
 
bool m_bShadingRequired
 
bool m_bSkipOrderedObjects
 
ON_Viewport m_Camera
 Set by DrawFramebuffer or SetCamera... More...
 
ClippingInfo m_Clipping
 
double m_dDesiredFrameRate
 
ON_4iRect m_layout_tile
 Tiled position on high-res display. More...
 
UINT m_nDegradeLevel
 
int m_nDisplayHeight
 
int m_nDisplayWidth
 
UINT m_nFrameStartTime
 
UINT m_nFrameTimeEstimate
 
int m_nInstanceNestLevel
 
int m_nLayoutHeight = -1
 Height of high-res display (-1 if not in high-res operation) More...
 
int m_nLayoutWidth = -1
 Width of high-res display (-1 if not in high-res operation) More...
 
UINT m_nLOD
 Level-Of-Detail... More...
 
int m_nOverlaySortIndex
 
CChannelAttributesm_pChannelAttrs
 
CDisplayPipelineAttributesm_pDisplayAttrs
 
CRhinoDocm_pDoc
 
CRhinoDibm_pFrameBuffer
 Buffer containing final rendered image... More...
 
CRhinoDibm_pOffscreenBuffer
 Buffer used to render frames offscreen... More...
 
ClippingInfo m_SavedClipping
 

Protected Types

typedef int(* ObjectSortFunc) (const int *, const int *)
 

Protected Member Functions

void AddObject (const CRhinoObject *, bool bColorOverride=false, ON_COMPONENT_INDEX=ON_COMPONENT_INDEX())
 
void AddObject (int dpo_index, bool bColorOverride, bool bForcedDeposit)
 (default should be false) Force the object to get drawn idependent of state... More...
 
void AddToBuckets (int dpo_index, int IsHighlighted, bool bColorOverride, bool bForceDeposit)
 
bool AttachEngine (CRhinoDisplayEngine *, bool bDeleteExisting=true)
 
CDisplayPipelineAttributesCachedAttributes ()
 
bool CachedAttributesValid () const
 
bool CheckForSubobjectTransparency (const CRhinoObject &, const CDisplayPipelineAttributes &, BYTE &)
 
void Construct (CRhinoDoc *pDoc)
 
CRhinoDisplayEngineCreateEngine ()
 
CRhinoDisplayEngineCreateEngine (HDC)
 
CRhinoDisplayEngineCreateEngine (HWND)
 
bool CreateFrameBuffer ()
 Frame buffer creation and manipulation routines... More...
 
bool CreateOnScreenBuffer (int nW, int nH)
 
CRhinoDisplayEngineDetachEngine ()
 
bool DoPostDrawObjects ()
 
bool DoPreDrawMiddleground ()
 
bool DoPreDrawObjects ()
 
bool DoPreDrawTransparentObjects ()
 
void DrawBackTrans (int, DisplayBucket *=nullptr)
 
void DrawClippingSections ()
 
void DrawCurveGrips ()
 
void DrawDetailObjects (bool drawActiveDetail, bool drawInactiveDetails)
 
void DrawFrontTrans (int, DisplayBucket *=nullptr)
 Low level object drawing routines... More...
 
void DrawGrips ()
 High level object drawing routines... More...
 
bool DrawGroundPlane (void) const
 
void DrawHighlightedObjects ()
 
void DrawHighlightedPointClouds ()
 
void DrawHighlightedSubWires ()
 
void DrawHighlightedSurfaces ()
 
void DrawHighlightedTextDots ()
 
void DrawHighlightedWires ()
 
void DrawLockedObjects ()
 
void DrawLockedSurfaces ()
 Mid level object drawing routines... More...
 
void DrawLockedTextDots ()
 
void DrawLockedWires ()
 
void DrawMappingWidgets ()
 
void DrawNormalObjects ()
 
void DrawNormalSurfaces ()
 
void DrawNormalTextDots ()
 
void DrawNormalWires ()
 
void DrawObjectBucket (const DisplayBucket &bucket, bool drawWires=true, bool drawSurfaces=false)
 
virtual bool DrawObjectFinal (const CRhinoObject &) const
 
void DrawObjectsAsTransparent (DisplayBucket &objects, DisplayBucket *hilights=nullptr)
 
void DrawOrderedObjects (bool back)
 
void DrawPointCloudGrips ()
 
bool DrawSilhouette (const CRhinoObject *, ON_Color, float thickness, UINT pattern, class CRhMeshEdgeCache *cache)
 
void DrawSurfaceBucket (const DisplayBucket &bucket)
 
void DrawSurfaceGrips ()
 
void DrawTransparentObjects ()
 
bool EnableGroundPlane (bool)
 
void EnableMaterialCaching (bool bEnable)
 
virtual const ON_ClassIdEngineClass ()
 
bool GetGroundPlane (ON_Plane &)
 
ON_Color GetObjectWireColor (const CRhinoObject *, const CRhinoObjectAttributes &) const
 
bool iCalcBoundingBox ()
 
bool iCalcClippingPlanes ()
 
bool iDrawBackground ()
 
bool iDrawFeedback (bool bFrameBufferUpdated)
 
bool iDrawForeground ()
 
bool iDrawMiddleground ()
 
bool iDrawOverlays ()
 
bool iInitFrameBuffer ()
 
bool iMeshObjects ()
 
bool InitializeEngine ()
 
void InitializeEnvironments ()
 
void InitializeObjectLists ()
 
virtual bool InitializePipeline ()
 
bool InitTolerancesAndDetail ()
 
void InsertionSort (int a[], int lo0, int hi0, ObjectSortFunc fpSort)
 
bool iObjectCulling ()
 
bool iPostProcessFrameBuffer ()
 
bool iSetupFrustum ()
 
bool iSetupLighting ()
 
int IsTransparentMaterial (const CDisplayPipelineMaterial &) const
 
bool IsVisible (const class CDisplayPipelineObject &dpo) const
 
bool MaterialCachingEnabled (void) const
 
void NotifyConduits (EConduitNotifiers)
 
void PopDisplayAttrs () const
 
void PopDrawInterrupt ()
 
bool PopulateObjectsList ()
 
void PopulateRenderedAttrs (CDisplayPipelineAttributes *pAttrs) const
 
virtual void PostAttributesPass (const CRhinoObject &, CDisplayPipelineAttributes &) const
 
void PostObjectDrawing (int dpo_index)
 
virtual void PreAttributesPass (const CRhinoObject &, CDisplayPipelineAttributes &) const
 
bool PreObjectDrawing (int dpo_index, bool skipAttributeSetup=false)
 
bool ProcessConduits (ConduitList &list, UINT active_channel, bool *terminate=nullptr) const
 
bool ProcessConduits (ConduitList &list, UINT active_channel, int dpo_index) const
 
void ProcessShadedAnalysisMode (const CRhinoObject *pObject)
 
void PushDrawInterrupt ()
 
void PushPipelineObjectAttributes (int dpo_index) const
 This is an expensive function call and should be rarely called during a frame draw. More...
 
void QuickDrawRenderMeshes ()
 
void QuickDrawSolids ()
 
void QuickDrawSurface (int nObjIdx)
 
void QuickDrawSurfaceBucket (const DisplayBucket &bucket)
 
void QuickSort (int a[], int l, int r, ObjectSortFunc fpSort)
 
void RepurposeAlphaValues (CRhinoDib &dib, const CDisplayPipelineAttributes *)
 
void ResetClippingSections ()
 dynamic clipping section display... More...
 
void SetCachedAttributesValid (bool valid)
 
bool SetCamera (const ON_Viewport &)
 
void SortBucket (DisplayBucket &, ObjectSortFunc)
 
void SortHighlightedObjects (ObjectSortFunc=nullptr)
 
void SortHighlightedSubWires (ObjectSortFunc=nullptr)
 
void SortHighlightedSurfaces (ObjectSortFunc=nullptr)
 
void SortHighlightedTextDots (ObjectSortFunc=nullptr)
 
void SortLockedObjects (ObjectSortFunc=nullptr)
 
void SortLockedSurfaces (ObjectSortFunc=nullptr)
 object sorting... More...
 
void SortLockedTextDots (ObjectSortFunc=nullptr)
 
void SortNormalObjects (ObjectSortFunc=nullptr)
 
void SortNormalSurfaces (ObjectSortFunc=nullptr)
 
void SortNormalTextDots (ObjectSortFunc=nullptr)
 
void SortTransparentObjects (ObjectSortFunc=nullptr)
 
void UpdateClippingSections (const CRhinoObject *)
 
bool UpdateClippingSections (int)
 
void UpdateFrameBufferObjects ()
 
bool UpdateObjectLists ()
 
void UpdateOverlayBufferObject (const CRhinoObject *, bool, int)
 

Static Protected Member Functions

static int compareBackToFrontOrder (const int *nA, const int *nB)
 
static int compareDrawOrder (const int *nA, const int *nB)
 
static int compareFrontToBackOrder (const int *nA, const int *nB)
 
static int compareSurfaceOrder (const int *nA, const int *nB)
 

Protected Attributes

const CRhinoAppAppearanceSettingsAppearanceSettings
 
const CRhinoAppSettingsAppSettings
 
friend CRhinoObject
 
bool m_bBuildObjectLists
 
bool m_bDrawingGrips
 
bool m_bDrawingSurfaces
 
bool m_bDrawingWires
 
bool m_bEnvironmentEnabled
 
bool m_bFreezeDrawing
 
bool m_bIgnoreLockedState
 
bool m_bInQuickDrawSurface = false
 
bool m_bInSelectionMask
 
bool m_bIsOnScreenBuffer
 
bool m_bIsPrinting
 
bool m_bNeedsCapture
 
bool m_bRedraw
 Pipeline attributes... More...
 
bool m_bUseImageBasedLighting = false
 
ObjectArray m_CustomDrawList
 
ON_UUID m_DeferredDisplayMode
 
ON_ClassArray< CDisplayPipelineAttributesm_DisplayAttrsStack
 
EDepthMode m_eDepthMode
 
CSupportChannels m_EnabledChannels
 
EZBiasMode m_eZBiasMode
 
ON_SimpleArray< DrawInterruptItemm_InterruptStack
 
UINT m_nAverageFrameRate
 
UINT m_nDesiredSingleFrameRate
 
int m_nest_level
 
UINT m_nFrameCount
 
UINT m_nPrevFrameRate
 
int m_nRenderPass
 
UINT m_nSingleFrameRate
 
ON_SimpleArray< ON_Colorm_ObjectColorStack
 
ObjectArray m_ObjectMapList
 
const class CRhinoDetailViewObjectm_pCurrentDetailObject = nullptr
 
HDC m_pDC
 These are mutually exclusive... More...
 
class CDisplayPipelineDrawListm_pDrawList
 points to m_pFBDrawList or m_pOBDrawList More...
 
CRhinoDisplayEnginem_pEngine
 
class CDisplayPipelineDrawListm_pFBDrawList
 "frame buffer" draw list (main list all objects are in) More...
 
PFDRAWOVERRIDEPROC m_pfDrawChannelsOverride
 
class CDisplayPipelineDrawListm_pOBDrawList
 "overlay buffer" draw list (populated iDrawOverlays) More...
 
class CRhPerFrameCachem_pPerFrameCache = nullptr
 
ON_SimpleArray< class CDisplayMeshingObject > * m_pRenderMeshes
 
class CRhDisplayPipelinePrivatem_private = nullptr
 
ON_ClassArray< ON_Viewportm_ProjectionStack
 
CRhinoDibm_pSelectionMap
 
class CWnd * m_pWnd
 Different types of render targets... More...
 

Static Protected Attributes

static CRhinoDisplayPipelinem_pSortThis
 sorting and comparing routines... More...
 

Friends

class CDisplayPipelineDrawList
 
class CPipelineMeshingThread
 
class CRhDisplayEnginePrivate
 
class CRhDisplayEnginePrivate_Metal
 
class CRhDisplayEnginePrivate_OGL
 
class CRhDisplayPipelinePrivate
 
class CRhGLSLRenderer
 
class CRhinoDetailViewObject
 
class CRhinoDisplayConduit
 
class CRhinoDisplayEngine
 
class CRhinoDisplayPipelineRef
 
class CRhinoInstanceObject
 
class CRhinoViewport
 
class CRhPerFrameCache
 
bool DrawChannelsOverride (CRhinoDisplayPipeline &dp)
 

Detailed Description

Drawing in Rhino is performed by a display pipeline / display engine pair. The pipeline feeds geometry for drawing to an engine and also controls the order to drawing operations.

Member Typedef Documentation

◆ ObjectSortFunc

typedef int(* CRhinoDisplayPipeline::ObjectSortFunc) (const int *, const int *)
protected

Member Enumeration Documentation

◆ DisplayTechnologies

Enumerator
None 
OpenGL 
Metal 
DirectX 
Software 
Vulkan 

Constructor & Destructor Documentation

◆ CRhinoDisplayPipeline() [1/3]

CRhinoDisplayPipeline::CRhinoDisplayPipeline ( )

Description: Constructs a display pipeline that will render to an off-screen DIB (aka, backbuffer bitmap). The pipeline does not have any viewport information with this constructor.

IMPORTANT: You MUST call SetProjection with a valid CRhinoViewport before calling any functions on this class.

◆ CRhinoDisplayPipeline() [2/3]

CRhinoDisplayPipeline::CRhinoDisplayPipeline ( CRhinoDoc pDoc)

◆ CRhinoDisplayPipeline() [3/3]

CRhinoDisplayPipeline::CRhinoDisplayPipeline ( CRhinoViewport vp)

Description: Constructs a display pipeline that will render to an off-screen DIB (aka, backbuffer bitmap). Parameters: vp: [in] viewport that supplies projection information. This pipeline is only valid for the lifetime of vp or you call SetProjection with a different CRhinoViewport

◆ ~CRhinoDisplayPipeline()

virtual CRhinoDisplayPipeline::~CRhinoDisplayPipeline ( )
virtual

Member Function Documentation

◆ ActiveObjectIndex()

int CRhinoDisplayPipeline::ActiveObjectIndex ( ) const

◆ ActiveObjectNestingLevel()

int CRhinoDisplayPipeline::ActiveObjectNestingLevel ( ON_SimpleArray< const CRhinoObject * > *  stack = nullptr) const

Description: The pipeline allows to draw objects as part of other objects like Instance Reference does. This function retrieves the nesting stack currently active. Parameters: stack: [out] - Optional. active object nesting stack is returned in outermost-innermost order. Returns: -1 if no active object. 0 if active object is a root object. >0 nesting level of active object and length of "stack"

◆ ActiveStereoProjection()

int CRhinoDisplayPipeline::ActiveStereoProjection ( ) const

Returns: The current stereo projection if stereo mode is on 0 = left, 1 = right If stereo mode is not enable, this just returns 0

◆ ActiveTopLevelObject()

const CRhinoObject* CRhinoDisplayPipeline::ActiveTopLevelObject ( ) const

◆ AddObject() [1/2]

void CRhinoDisplayPipeline::AddObject ( const CRhinoObject ,
bool  bColorOverride = false,
ON_COMPONENT_INDEX  = ON_COMPONENT_INDEX() 
)
protected

◆ AddObject() [2/2]

void CRhinoDisplayPipeline::AddObject ( int  dpo_index,
bool  bColorOverride,
bool  bForcedDeposit 
)
protected

(default should be false) Force the object to get drawn idependent of state...

Parameters
bColorOverride(default should be false) Override object's color using the display attrs...

◆ AddObjectTransform()

ON_DEPRECATED bool CRhinoDisplayPipeline::AddObjectTransform ( int  index,
const ON_Xform xform 
)

Description: Adds(multiplies) a model space transformation on an object in the display list at index If the frame is currently in a dynamic display mode, then no transformation will be set Returns: true on success

◆ AddToBuckets()

void CRhinoDisplayPipeline::AddToBuckets ( int  dpo_index,
int  IsHighlighted,
bool  bColorOverride,
bool  bForceDeposit 
)
protected

◆ AttachEngine()

bool CRhinoDisplayPipeline::AttachEngine ( CRhinoDisplayEngine ,
bool  bDeleteExisting = true 
)
protected

◆ BlendMaterialWithColor()

void CRhinoDisplayPipeline::BlendMaterialWithColor ( CDisplayPipelineMaterial ,
COLORREF  ,
double  dBlend = 0.5 
) const

Description: Modifies the passed in display material object so that it draws blended with the passed in color...

◆ CachedAttributes()

CDisplayPipelineAttributes& CRhinoDisplayPipeline::CachedAttributes ( )
protected

◆ CachedAttributesValid()

bool CRhinoDisplayPipeline::CachedAttributesValid ( ) const
protected

◆ CalcBoundingBox()

virtual bool CRhinoDisplayPipeline::CalcBoundingBox ( ON_BoundingBox )
virtual

◆ CalcClippingPlanes()

virtual bool CRhinoDisplayPipeline::CalcClippingPlanes ( ClippingInfo )
virtual

Description: Method to calculate near and far clipping plane values. These values are very sensitive and can really mess up the display if set incorrectly...If you're not sure what this is, or you're not sure what one or more of the values are inside "ClippingInfo", then it is probably best to just leave this up to Rhino.

Returns:

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ CanSaveDepthBuffer()

bool CRhinoDisplayPipeline::CanSaveDepthBuffer ( )

◆ CaptureFrameBuffer()

bool CRhinoDisplayPipeline::CaptureFrameBuffer ( bool  bForce = false)

◆ ChannelAttrs()

const CChannelAttributes* CRhinoDisplayPipeline::ChannelAttrs ( ) const

Returns: This pipeline's channel attributes currently being used by the "active" channel.

◆ CheckForSubobjectTransparency()

bool CRhinoDisplayPipeline::CheckForSubobjectTransparency ( const CRhinoObject ,
const CDisplayPipelineAttributes ,
BYTE &   
)
protected

◆ ClearAllBindings()

static void CRhinoDisplayPipeline::ClearAllBindings ( const CRhinoViewport pViewport)
static

Description: Unbinds all registered conduits from a given viewport. See CRhinoDisplayConduit::Bind and Unbind Parameters: pViewport: [in] the viewport to remove conduit bindings from

◆ ClonedFrom()

unsigned int CRhinoDisplayPipeline::ClonedFrom ( ) const
inline

This function will return 0 if the pipeline was not cloned, otherwise, the original pipeline serial number will be returned here.

◆ CloneFrom()

virtual void CRhinoDisplayPipeline::CloneFrom ( const CRhinoDisplayPipeline )
virtual

◆ ClonePipeline() [1/2]

CRhinoDisplayPipeline* CRhinoDisplayPipeline::ClonePipeline ( CRhinoViewport )

Description: This routine will create an exact copy of 'this' pipeline, and then bind all conduits, that have previously been bound to this pipeline, to the copied pipeline.

Note: It probably is not a good idea to use a projection (CRhinoViewport) that is currently in use by another pipeline since no actions are taken to preserve the incoming projection.

Returns: CRhinoDisplayPipeline* : A pointer to the copied pipeline object. It is the caller's responsibility to free up the memory allocated by this routine.

◆ ClonePipeline() [2/2]

CRhinoDisplayPipeline* CRhinoDisplayPipeline::ClonePipeline ( CRhinoViewport ,
HDC   
)

◆ ClosePipeline()

bool CRhinoDisplayPipeline::ClosePipeline ( )

◆ compareBackToFrontOrder()

static int CRhinoDisplayPipeline::compareBackToFrontOrder ( const int *  nA,
const int *  nB 
)
staticprotected

◆ compareDrawOrder()

static int CRhinoDisplayPipeline::compareDrawOrder ( const int *  nA,
const int *  nB 
)
staticprotected

◆ compareFrontToBackOrder()

static int CRhinoDisplayPipeline::compareFrontToBackOrder ( const int *  nA,
const int *  nB 
)
staticprotected

◆ compareSurfaceOrder()

static int CRhinoDisplayPipeline::compareSurfaceOrder ( const int *  nA,
const int *  nB 
)
staticprotected

◆ Construct()

void CRhinoDisplayPipeline::Construct ( CRhinoDoc pDoc)
protected

◆ ConvertToSingleColorMaterial()

bool CRhinoDisplayPipeline::ConvertToSingleColorMaterial ( CDisplayPipelineMaterial ,
ON_Color  ,
bool  noLigthing = false 
) const

Description: Converts the passed in material to a single color material, no textures, no PBR settings, and no specific lighting characteristics (i.e. specular, reflective, etc...), just a plain specified single color will be used, everything else will be stripped and/or deleted. Note: This also does not apply any kind of color adjustments to White or Black values.

◆ CopyBackBufferTo() [1/2]

bool CRhinoDisplayPipeline::CopyBackBufferTo ( CRhinoDib )

◆ CopyBackBufferTo() [2/2]

bool CRhinoDisplayPipeline::CopyBackBufferTo ( HDC  )

◆ CopyBindingsFrom()

void CRhinoDisplayPipeline::CopyBindingsFrom ( const CRhinoDisplayPipeline )

◆ CopyDepthBufferTo()

bool CRhinoDisplayPipeline::CopyDepthBufferTo ( CRhinoDib ,
bool  bConvertToImage = false,
bool  bInvertDepthValues = false,
CRhinoDib pBackgroundImage = nullptr 
)

◆ CopyDepthToBackBuffer()

bool CRhinoDisplayPipeline::CopyDepthToBackBuffer ( )

◆ CopyFrameBufferTo() [1/2]

bool CRhinoDisplayPipeline::CopyFrameBufferTo ( CRhinoDib )

◆ CopyFrameBufferTo() [2/2]

bool CRhinoDisplayPipeline::CopyFrameBufferTo ( HDC  )

◆ CopyToBackBuffer()

bool CRhinoDisplayPipeline::CopyToBackBuffer ( const CRhinoDib )

◆ CopyToFrameBuffer()

bool CRhinoDisplayPipeline::CopyToFrameBuffer ( const CRhinoDib )

◆ CreateDefaultPipeline()

static CRhinoDisplayPipeline* CRhinoDisplayPipeline::CreateDefaultPipeline ( )
static

◆ CreateEngine() [1/3]

CRhinoDisplayEngine* CRhinoDisplayPipeline::CreateEngine ( )
protected

Wrapper functions for creating engines with specified projection and render target.

◆ CreateEngine() [2/3]

CRhinoDisplayEngine* CRhinoDisplayPipeline::CreateEngine ( HDC  )
protected

◆ CreateEngine() [3/3]

CRhinoDisplayEngine* CRhinoDisplayPipeline::CreateEngine ( HWND  )
protected

◆ CreateFrameBuffer()

bool CRhinoDisplayPipeline::CreateFrameBuffer ( )
protected

Frame buffer creation and manipulation routines...

called inside of OpenPipeline()...

◆ CreateOnScreenBuffer()

bool CRhinoDisplayPipeline::CreateOnScreenBuffer ( int  nW,
int  nH 
)
protected

so that derived pipelines can setup/change things before drawing starts...

◆ CreateSelectionMap()

bool CRhinoDisplayPipeline::CreateSelectionMap ( ObjectArray = nullptr,
CDisplayPipelineAttributes = nullptr,
HRGN  = nullptr 
)

◆ DeferredDisplayMode()

const ON_UUID& CRhinoDisplayPipeline::DeferredDisplayMode ( ) const

Returns: Display mode ID for a display mode that needs to be set after drawing completes...

◆ DepthMode()

EDepthMode CRhinoDisplayPipeline::DepthMode ( ) const

◆ DetachEngine()

CRhinoDisplayEngine* CRhinoDisplayPipeline::DetachEngine ( )
protected

◆ DisableChannel()

void CRhinoDisplayPipeline::DisableChannel ( UINT  )

◆ DisableClippingPlanes()

void CRhinoDisplayPipeline::DisableClippingPlanes ( )

◆ DisplayAttrs()

const CDisplayPipelineAttributes* CRhinoDisplayPipeline::DisplayAttrs ( ) const

Returns: The current display pipeline attributes used by the pipeline to define how objects are drawn

◆ DoPostDrawObjects()

bool CRhinoDisplayPipeline::DoPostDrawObjects ( )
protected

◆ DoPreDrawMiddleground()

bool CRhinoDisplayPipeline::DoPreDrawMiddleground ( )
protected

◆ DoPreDrawObjects()

bool CRhinoDisplayPipeline::DoPreDrawObjects ( )
protected

◆ DoPreDrawTransparentObjects()

bool CRhinoDisplayPipeline::DoPreDrawTransparentObjects ( )
protected

◆ DpiScale()

float CRhinoDisplayPipeline::DpiScale ( ) const

◆ Draw2dLine() [1/3]

void CRhinoDisplayPipeline::Draw2dLine ( const ON_2iPoint ,
const ON_2iPoint ,
HPEN  ,
bool  = true 
)
Deprecated:
use alternate overloads of Draw2dLine

◆ Draw2dLine() [2/3]

void CRhinoDisplayPipeline::Draw2dLine ( float  x0,
float  y0,
float  x1,
float  y1,
ON_Color  strokeColor,
float  strokeWidth,
RhinoDashStyle  style,
bool  xormode 
)

◆ Draw2dLine() [3/3]

void CRhinoDisplayPipeline::Draw2dLine ( int  x0,
int  y0,
int  x1,
int  y1,
ON_Color  strokeColor,
float  strokeWidth,
RhinoDashStyle  style,
bool  xormode 
)

◆ Draw2dRectangle() [1/3]

void CRhinoDisplayPipeline::Draw2dRectangle ( const ON_4iRect rect,
HPEN  ,
bool  = true 
)
Deprecated:
use alternate overloads of Draw2dRectangle

◆ Draw2dRectangle() [2/3]

void CRhinoDisplayPipeline::Draw2dRectangle ( float  x0,
float  y0,
float  x1,
float  y1,
ON_Color  strokeColor,
float  strokeWidth,
RhinoDashStyle  style,
bool  xormode 
)

◆ Draw2dRectangle() [3/3]

void CRhinoDisplayPipeline::Draw2dRectangle ( int  x0,
int  y0,
int  x1,
int  y1,
ON_Color  strokeColor,
float  strokeWidth,
RhinoDashStyle  style,
bool  xormode 
)

2D Pipeline Operations: Note: These routines draw directly to the framebuffer so that they can be used during frame generation and not as a post process.

◆ DrawActivePoint()

void CRhinoDisplayPipeline::DrawActivePoint ( const ON_3dPoint )

◆ DrawAnnotation() [1/2]

void CRhinoDisplayPipeline::DrawAnnotation ( ON_Annotation annotation,
double  dimscale,
ON_DimStyle dimstyle,
ON_Color  color,
void *  updater,
CRhinoCacheHandle cache 
)

◆ DrawAnnotation() [2/2]

void CRhinoDisplayPipeline::DrawAnnotation ( ON_Annotation annotation,
ON_Color  color,
void *  updater,
CRhinoCacheHandle cache 
)

◆ DrawAnnotationArrowhead()

void CRhinoDisplayPipeline::DrawAnnotationArrowhead ( const ON_Arrowhead arrowhead,
ON_Xform  xform,
ON_Color  color,
CRhinoCacheHandle cache 
)

◆ DrawArc() [1/2]

void CRhinoDisplayPipeline::DrawArc ( const ON_Arc )

◆ DrawArc() [2/2]

void CRhinoDisplayPipeline::DrawArc ( const ON_Arc ,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawBackground()

virtual bool CRhinoDisplayPipeline::DrawBackground ( )
virtual

◆ DrawBackTrans()

void CRhinoDisplayPipeline::DrawBackTrans ( int  ,
DisplayBucket = nullptr 
)
protected

◆ DrawBezier() [1/3]

void CRhinoDisplayPipeline::DrawBezier ( const ON_BezierCurve bezier_curve)

◆ DrawBezier() [2/3]

void CRhinoDisplayPipeline::DrawBezier ( int  dim,
BOOL32  bRational,
int  order,
int  cv_stride,
const double *  cv4d 
)
Parameters
cv_stridenumber of doubles between CVs (>=3)
cv4d4d homogeneous world coordinate CVs

◆ DrawBezier() [3/3]

void CRhinoDisplayPipeline::DrawBezier ( int  order,
const ON_3dPoint cv 
)

3d world coordinate CVs

◆ DrawBezierCage()

void CRhinoDisplayPipeline::DrawBezierCage ( const ON_BezierSurface bezier_cage,
int  display_density = 1 
)

Description: Draws a wireframe bezier cage. Parameters: bezier_cage - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value

◆ DrawBezierSurface()

void CRhinoDisplayPipeline::DrawBezierSurface ( const ON_BezierSurface bezier_surface,
int  display_density = 1 
)

Description: Draws a wireframe bezier surface. Parameters: bezier_surface - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value

◆ DrawBitmap()

void CRhinoDisplayPipeline::DrawBitmap ( const CRhinoDib ,
int  nX,
int  nY 
)

◆ DrawBox() [1/2]

void CRhinoDisplayPipeline::DrawBox ( const ON_3dPoint box_corners,
const ON_Color colot,
int  thickness 
)

Description: Draw a wireframe box given its 8 corner points. Parameters: box_corners - [in] array of eight box corners

     7______________6
     |\             |\
     | \            | \
     |  \ _____________\
     |   4          |   5
     |   |          |   |
     |   |          |   |
     3---|----------2   |
     \   |          \   |
      \  |           \  |
       \ |            \ |
        \0_____________\1

◆ DrawBox() [2/2]

void CRhinoDisplayPipeline::DrawBox ( const ON_BoundingBox box,
const ON_Color color,
int  thickness 
)

Description: Draw a wireframe box from a ON_BoundingBox Parameters: box : [in] bounding box to draw color : [in] color of wireframe thickness : [in] thickness of wireframe

◆ DrawBrep() [1/2]

void CRhinoDisplayPipeline::DrawBrep ( const ON_Brep brep,
const ON_Color wireColor = ON_Color::UnsetColor,
int  wireDensity = 1 
)

Description: Draws a wireframe brep. Parameters: brep - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value Remarks: This function can be slow and should not be used in drawing code that is called every time the mouse moves. Use the other version of DrawBrep

◆ DrawBrep() [2/2]

void CRhinoDisplayPipeline::DrawBrep ( const ON_Brep brep,
const ON_Color wireColor,
int  wireDensity,
bool  edgeAnalysis,
CRhinoCacheHandle cache 
)

Description: Draw a wireframe brep Parameters: brep [in] - the brep to draw wireColor [in] - if ON_Color::UnsetColor, current display attribute colors are used. wireDensity [in] - IsoCurve density edgeAnalysis [in] - set to true if brep should be drawn as if it is an edge analysis mode cache [in/out] - optional. If not NULL, the display may use this to attempt to draw the brep faster. Make sure to ALWAYS pass the same cache for a given brep. If you pass the same cache for different brep, performance of the display code will not be as good.

◆ DrawCircle() [1/2]

void CRhinoDisplayPipeline::DrawCircle ( const ON_Circle )

◆ DrawCircle() [2/2]

void CRhinoDisplayPipeline::DrawCircle ( const ON_Circle ,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawClippingSections()

void CRhinoDisplayPipeline::DrawClippingSections ( )
protected

◆ DrawCone() [1/2]

void CRhinoDisplayPipeline::DrawCone ( const ON_Cone cone)

Description: Draw a wireframe cone. Parameters: cone - [in]

◆ DrawCone() [2/2]

void CRhinoDisplayPipeline::DrawCone ( const ON_Cone cone,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawConstructionPlane() [1/2]

void CRhinoDisplayPipeline::DrawConstructionPlane ( bool  depthBuffered,
int  transparencyLevel 
)

◆ DrawConstructionPlane() [2/2]

void CRhinoDisplayPipeline::DrawConstructionPlane ( const ON_3dmConstructionPlane cplane,
bool  bShowConstructionGrid,
bool  bShowConstructionAxes,
bool  bShowConstructionZAxis,
ON_Color  thin_line_color = ON_Color::UnsetColor,
ON_Color  thick_line_color = ON_Color::UnsetColor,
ON_Color  grid_x_axis_color = ON_Color::UnsetColor,
ON_Color  grid_y_axis_color = ON_Color::UnsetColor,
ON_Color  grid_z_axis_color = ON_Color::UnsetColor 
)

◆ DrawCrossHairs()

void CRhinoDisplayPipeline::DrawCrossHairs ( const ON_Plane plane,
const ON_Color color 
)

Description: Draw cross hairs across the entire viewport that run along the plane's x and y axes. Parameters: plane - [in] the cross hairs run along the plane's x and y axes. color - [in]

◆ DrawCurvatureGraph()

void CRhinoDisplayPipeline::DrawCurvatureGraph ( const ON_Curve curve,
const CRhinoCurvatureGraphSettings hair_settings = nullptr 
)

Description: Draws the curve's curvature hair graph in a viewport window. Parameters: curve : [in] hair_settings : [in] If NULL, the settings from RhinoApp().AppSettings().CurvatureGraphSettings() are used. Remarks: This function can be slow and should not be used in drawing code that is called every time the mouse moves. See Also: CRhinoDisplayPipeline::DrawCurve

◆ DrawCurve() [1/2]

void CRhinoDisplayPipeline::DrawCurve ( const ON_Curve curve,
const ON_Color color,
float  thickness,
CRhinoCacheHandle cache 
)

Description: Draw a solid curve Parameters: curve [in] - the curve to draw color [in] - if ON_Color::UnsetColor, current display attribute colors are used. thickness [in] - stroke width for curve cache [in/out] - optional. If not NULL, the display may use this to attempt to draw the brep faster. Make sure to ALWAYS pass the same cache for a given brep. If you pass the same cache for different brep, performance of the display code will not be as good.

◆ DrawCurve() [2/2]

void CRhinoDisplayPipeline::DrawCurve ( const ON_Curve curve,
const ON_Color color = ON_Color::UnsetColor,
int  nThickness = 0,
UINT  nPattern = 0 
)

Description: Draw a curve Parameters: color: stroke color for curve. If unset, the display attributes m_ObjectColor is used thickness: stroke width for curve. If < 1, the display attributes m_nCurveThickness is used pattern: dash pattern to used. If 0, the display attributes m_nCurvePattern is used

◆ DrawCurveGrips()

void CRhinoDisplayPipeline::DrawCurveGrips ( )
protected

◆ DrawCylinder() [1/2]

void CRhinoDisplayPipeline::DrawCylinder ( const ON_Cylinder cylinder)

Description: Draw a wireframe cylinder. Parameters: cylinder - [in]

◆ DrawCylinder() [2/2]

void CRhinoDisplayPipeline::DrawCylinder ( const ON_Cylinder cylinder,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawDetailObjects()

void CRhinoDisplayPipeline::DrawDetailObjects ( bool  drawActiveDetail,
bool  drawInactiveDetails 
)
protected

◆ DrawDirectionArrow()

void CRhinoDisplayPipeline::DrawDirectionArrow ( const ON_3dPoint tail_point,
const ON_3dVector direction_vector,
ON_3dPoint head_point = nullptr 
)

Description: Draws a direction arrow decoration. Parameters: tail_point - [in] start of the arrow. direction_vector - [in] direction of arrow. A vector with a length of 1 unit draws the standard arrow dectoration. head_point - [out] if not NULL, the location of the arrow tip is returned here. Remarks: These are the arrows used to indicate curve direction and surface normals.

◆ DrawDocumentCustomRenderMeshes()

void CRhinoDisplayPipeline::DrawDocumentCustomRenderMeshes ( )

◆ DrawDot() [1/4]

void CRhinoDisplayPipeline::DrawDot ( const ON_3dPoint point,
const wchar_t *  text,
const wchar_t *  fontFace,
int  fontHeight,
ON_Color  fillColor = ON_Color(0, 0, 0),
ON_Color  textColor = ON_Color::UnsetColor 
)

◆ DrawDot() [2/4]

void CRhinoDisplayPipeline::DrawDot ( const ON_3dPoint point,
const wchar_t *  text,
ON_Color  fillColor = ON_Color(0, 0, 0),
ON_Color  textColor = ON_Color::UnsetColor 
)

◆ DrawDot() [3/4]

void CRhinoDisplayPipeline::DrawDot ( const ON_TextDot dot,
ON_Color  fillColor,
ON_Color  textColor,
ON_Color  borderColor,
CRhinoCacheHandle cache 
)

Description: Draw a text dot Parameters: dot [in] - the text dot to draw fillColor [in] - background color for the dot textColor [in] - if ON_Color::UnsetColor, text color is white or black based on the value of the fillColor borderColor [in] - if ON_Color::UnsetColor, will be the same as fillColor cache [in/out] - optional. If not NULL, the display may use this to attempt to draw the dot faster. Make sure to ALWAYS pass the same cache for a given dot. If you pass the same cache for different dots, you will get unpredicitable results.

◆ DrawDot() [4/4]

void CRhinoDisplayPipeline::DrawDot ( float  screenX,
float  screenY,
const wchar_t *  text,
ON_Color  fillColor = ON_Color(0, 0, 0),
ON_Color  textColor = ON_Color::UnsetColor 
)

◆ DrawDottedLine()

void CRhinoDisplayPipeline::DrawDottedLine ( const ON_3dPoint ,
const ON_3dPoint  
)

◆ DrawDynamicOverlays()

bool CRhinoDisplayPipeline::DrawDynamicOverlays ( )

◆ DrawEdges()

void CRhinoDisplayPipeline::DrawEdges ( const CRhinoObject ,
int  nThickness,
UINT  nPattern,
bool  bShowSeams 
)

Description: Draws the object's "edges" using the passed in display attributes to define the way it will be drawn.
Note: If this object is not a BRep or extrusion based object, or one that doesn't have "edges", then this routine does nothing.

◆ DrawExtrusion() [1/3]

void CRhinoDisplayPipeline::DrawExtrusion ( const ON_Extrusion extrusion)

Description: Draws a wireframe extrusion. Parameters: extrusion - [in] Remarks: This function is intended to draw dynamic display in commands that create and edit extrusions.

◆ DrawExtrusion() [2/3]

void CRhinoDisplayPipeline::DrawExtrusion ( const ON_Extrusion extrusion,
const ON_Color wireColor,
int  wireDensity,
bool  edgeAnalysis,
const class CRhDisplayPenPrivate *  pen,
CRhinoCacheHandle cache 
)

◆ DrawExtrusion() [3/3]

void CRhinoDisplayPipeline::DrawExtrusion ( const ON_Extrusion extrusion,
const ON_Color wireColor,
int  wireDensity,
bool  edgeAnalysis,
CRhinoCacheHandle cache 
)

Description: Draw a wireframe extrusion Parameters: extrusion [in] - the extrusion to draw wireColor [in] - if ON_Color::UnsetColor, current display attribute colors are used. wireDensity [in] - IsoCurve density edgeAnalysis [in] - set to true if extrusion should be drawn as if it is an edge analysis mode cache [in/out] - optional. If not NULL, the display may use this to attempt to draw the brep faster. Make sure to ALWAYS pass the same cache for a given extrusion. If you pass the same cache for different extrusion, performance of the display code will not be as good.

◆ DrawFace()

void CRhinoDisplayPipeline::DrawFace ( const CRhinoObject pObject,
int  face,
const CDisplayPipelineAttributes = nullptr 
)

◆ DrawFaces()

void CRhinoDisplayPipeline::DrawFaces ( const CRhinoObject pObject,
const ON_SimpleArray< int > &  faces,
const CDisplayPipelineAttributes = nullptr 
)

◆ DrawForeground()

virtual bool CRhinoDisplayPipeline::DrawForeground ( )
virtual

◆ DrawFrameBuffer()

bool CRhinoDisplayPipeline::DrawFrameBuffer ( const CDisplayPipelineAttributes attribs,
const ON_Viewport ,
bool  updateContents,
bool  drawFeedback = true,
UINT  enabledConduits = CSupportChannels() 
)

Pipeline overridable phases...

◆ DrawFrontTrans()

void CRhinoDisplayPipeline::DrawFrontTrans ( int  ,
DisplayBucket = nullptr 
)
protected

Low level object drawing routines...

◆ DrawGrips()

void CRhinoDisplayPipeline::DrawGrips ( )
protected

High level object drawing routines...

◆ DrawGroundPlane()

bool CRhinoDisplayPipeline::DrawGroundPlane ( void  ) const
protected

◆ DrawHatch() [1/3]

void CRhinoDisplayPipeline::DrawHatch ( const ON_Hatch hatch,
float  strokeWidth,
const ON_Color gradientColor1,
const ON_Color gradientColor2,
const ON_3dPoint gradientPoint1,
const ON_3dPoint gradientPoint2,
bool  linearGradient,
const ON_Color boundaryColor,
CRhinoCacheHandle cache 
)

Continue to do this for all geometry types void DrawMesh(const ON_Mesh& mesh, const class CRhMeshWireAttributes* wireSettings, const CDisplayPipelineMaterial* shadeSettings, CRhinoCacheHandle* cache); void DrawBrep(const ON_Brep& brep, const class CRhBrepWireAttributes* wireSettings, const CDisplayPipelinMaterial* shadeSettings, CRhinoCacheHandle* cache);

◆ DrawHatch() [2/3]

void CRhinoDisplayPipeline::DrawHatch ( const ON_Hatch hatch,
float  strokeWidth,
const ON_Color hatchColor,
ON_Color  boundaryColor,
CRhinoCacheHandle cache 
)

◆ DrawHatch() [3/3]

void CRhinoDisplayPipeline::DrawHatch ( const ON_Hatch hatch,
float  strokeWidth,
int  colorCount,
const ON_ColorStop colorStops,
const ON_3dPoint gradientPoint1,
const ON_3dPoint gradientPoint2,
ON_GradientType  gradientType,
float  repeatFactor,
const ON_Color boundaryColor,
CRhinoCacheHandle cache 
)

◆ DrawHighlightedObjects()

void CRhinoDisplayPipeline::DrawHighlightedObjects ( )
protected

◆ DrawHighlightedPointClouds()

void CRhinoDisplayPipeline::DrawHighlightedPointClouds ( )
protected

◆ DrawHighlightedSubWires()

void CRhinoDisplayPipeline::DrawHighlightedSubWires ( )
protected

◆ DrawHighlightedSurfaces()

void CRhinoDisplayPipeline::DrawHighlightedSurfaces ( )
protected

◆ DrawHighlightedTextDots()

void CRhinoDisplayPipeline::DrawHighlightedTextDots ( )
protected

◆ DrawHighlightedWires()

void CRhinoDisplayPipeline::DrawHighlightedWires ( )
protected

◆ DrawInferenceLine()

void CRhinoDisplayPipeline::DrawInferenceLine ( const ON_3dPoint P,
const ON_3dPoint Q,
ON_Color  color = ON_Color::UnsetColor,
int  type = 0 
)

Description: Draw inference line used in gesture based snapping Parameters: P : [in] world 3d start Q : [in] world 3d end color : [in] if = ON_UNSET_COLOR, then the system inference color is used. type : [in] 0 = chord, 1 = ray from P through Q 2 = infinite line

◆ DrawInferencePoint()

void CRhinoDisplayPipeline::DrawInferencePoint ( const ON_3dPoint P,
const ON_Color color = ON_Color::UnsetColor 
)

Description: Draw inference point used in gesture based snapping Parameters: P : [in] world 3d color : [in] if = ON_UNSET_COLOR, then the system inference color is used.

◆ DrawingGrips()

bool CRhinoDisplayPipeline::DrawingGrips ( ) const

Returns: true if the pipeline is currently in a grip drawing operation

◆ DrawingHighlightedObjects()

bool CRhinoDisplayPipeline::DrawingHighlightedObjects ( void  ) const

◆ DrawingSurfaces()

bool CRhinoDisplayPipeline::DrawingSurfaces ( ) const

Returns: true if the pipeline is currently in a surface drawing operation

◆ DrawingWires()

bool CRhinoDisplayPipeline::DrawingWires ( ) const

Returns: true if the pipeline is currently in a curve drawing operation

◆ DrawLight()

void CRhinoDisplayPipeline::DrawLight ( const ON_Light light,
const ON_Color wireframe_color 
)

◆ DrawLine()

void CRhinoDisplayPipeline::DrawLine ( const ON_3dPoint from,
const ON_3dPoint to,
const ON_Color color = ON_Color::UnsetColor,
int  thickness = 0,
UINT  pattern = 0xFFFFFFFF 
)

Description: Draw a line with a given color, thickness, and pattern Parameters: from: [in] start of line in world coordinates to: [in] end of line in world coordinates color: [in] color of line thickness: [in] thickness in pixels pattern: [in] bit pattern for line. 0xFFFFFFFF is a solid line see glLineStipple documentation online for a description of pattern

◆ DrawLines()

void CRhinoDisplayPipeline::DrawLines ( int  lineCount,
const ON_Line lines,
float  strokeWidth,
int  colorCount,
const ON_ColorStop colorStops,
const ON_3dPoint gradientPoint1,
const ON_3dPoint gradientPoint2,
ON_GradientType  gradientType,
float  repeatFactor,
CRhinoCacheHandle cache 
)

◆ DrawLockedObjects()

void CRhinoDisplayPipeline::DrawLockedObjects ( )
protected

◆ DrawLockedSurfaces()

void CRhinoDisplayPipeline::DrawLockedSurfaces ( )
protected

Mid level object drawing routines...

◆ DrawLockedTextDots()

void CRhinoDisplayPipeline::DrawLockedTextDots ( )
protected

◆ DrawLockedWires()

void CRhinoDisplayPipeline::DrawLockedWires ( )
protected

◆ DrawMappingWidgets()

void CRhinoDisplayPipeline::DrawMappingWidgets ( )
protected

◆ DrawMesh() [1/2]

void CRhinoDisplayPipeline::DrawMesh ( const ON_Mesh mesh,
bool  wires,
bool  shaded,
CRhinoCacheHandle cache 
)

Draw a mesh based on the current state of display attributes.

◆ DrawMesh() [2/2]

void CRhinoDisplayPipeline::DrawMesh ( const ON_Mesh mesh,
int  colorCount,
const ON_ColorStop colorStops,
const ON_3dPoint gradientPoint1,
const ON_3dPoint gradientPoint2,
ON_GradientType  gradientType,
float  repeatFactor,
CRhinoCacheHandle cache 
)

◆ DrawMeshes()

void CRhinoDisplayPipeline::DrawMeshes ( const ON_Mesh **  meshes,
int  count,
bool  wires,
bool  shaded,
CRhinoCacheHandle cache 
)

◆ DrawMeshVertices()

void CRhinoDisplayPipeline::DrawMeshVertices ( const ON_Mesh ,
const ON_Color color 
)

◆ DrawMiddleground()

virtual bool CRhinoDisplayPipeline::DrawMiddleground ( )
virtual

◆ DrawNestedFrame()

bool CRhinoDisplayPipeline::DrawNestedFrame ( CDisplayPipelineAttributes da,
CChannelAttributes ca,
CSupportChannels  channels,
int  nest_level,
bool  activeViewport 
)

◆ DrawNormalCurvatureGraph()

void CRhinoDisplayPipeline::DrawNormalCurvatureGraph ( const ON_Surface surface,
int  wire_density,
const CRhinoCurvatureGraphSettings hair_settings = nullptr 
)

Description: Draw the surface's normal curvature along surface iso parametric curves. Parameters: surface : [in] wire_density : [in] Density of curvature combs. If < -1, hair_settings.WireDensity() is used. hair_settings: [in] If NULL, RhinoApp().AppSettings().CurvatureGraphSettings() are used.

◆ DrawNormalObjects()

void CRhinoDisplayPipeline::DrawNormalObjects ( )
protected

◆ DrawNormalSurfaces()

void CRhinoDisplayPipeline::DrawNormalSurfaces ( )
protected

◆ DrawNormalTextDots()

void CRhinoDisplayPipeline::DrawNormalTextDots ( )
protected

◆ DrawNormalWires()

void CRhinoDisplayPipeline::DrawNormalWires ( )
protected

◆ DrawNurbsCage()

void CRhinoDisplayPipeline::DrawNurbsCage ( const ON_NurbsCage nurbs_cage,
int  display_density = 1 
)

Description: Draws a wireframe NURBS cage. Parameters: nurbs_cage - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value

◆ DrawNurbsCurve()

void CRhinoDisplayPipeline::DrawNurbsCurve ( const ON_NurbsCurve nurbs_curve)

◆ DrawNurbsSurface()

void CRhinoDisplayPipeline::DrawNurbsSurface ( const ON_NurbsSurface nurbs_surface,
int  display_density = 1 
)

Description: Draws a wireframe NURBS surface. Parameters: nurbs_surface - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value

◆ DrawObject() [1/3]

void CRhinoDisplayPipeline::DrawObject ( const CRhinoInstanceDefinition ,
const ON_Xform = nullptr 
)

◆ DrawObject() [2/3]

void CRhinoDisplayPipeline::DrawObject ( const CRhinoObject ,
const ON_Xform = nullptr,
ON_Color  color = ON_UNSET_COLOR 
)

Feedback drawing routines...Note: These methods should really only be used for drawing objects while inside drawing operations...calling them from outside the pipeline will have unknown results.

◆ DrawObject() [3/3]

void CRhinoDisplayPipeline::DrawObject ( int  index,
bool  wires,
bool  surfaces 
)

Specific conduit channel drawing routines...These routines are primarily used to draw the "current" object inside of a conduit's SC_DRAWOBJECT channel, exactly the way the pipeline would draw it...in other words, if your conduit doesn't call one these, then the pipeline will. See the "Objects access" section above for more information you can obtain for the current object.. Description: Draws the current object's wires. Note: for things that can't be shaded (like a curve), this is the only routine you need to call.

Parameters: int : [in] The index into the pipeline's object draw list indicating which object you want drawn.

Note: This should only be obtained while inside the SC_DRAWOBJECT channel within a display conduit by using the channel attribute: "m_nObjectIndex". Using any other value at any other time will have undetermined results.

For example: dp.DrawObject( m_pChannelAttrs->m_nObjectIndex);

◆ DrawObjectBucket()

void CRhinoDisplayPipeline::DrawObjectBucket ( const DisplayBucket bucket,
bool  drawWires = true,
bool  drawSurfaces = false 
)
protected

◆ DrawObjectFinal()

virtual bool CRhinoDisplayPipeline::DrawObjectFinal ( const CRhinoObject ) const
protectedvirtual

Description: Last chance object drawing override...Override this routine if you want to override the way objects get drawn (if at all)...Note: This is different than any of the routines above because it is the very last step before an object actually gets drawn...It doesn't actually draw anything, unless it's been overridden by some deriving pipeline.

Returns: FALSE: If the object wasn't drawn and Rhino should continue drawing the object. TRUE: If the object was drawn by some other means and Rhino should NOT continue drawing the object...OR...if you just don't want the object drawn.

See also: IsVisibleFinal()

◆ DrawObjects() [1/2]

void CRhinoDisplayPipeline::DrawObjects ( const ObjectArray ,
const ON_Xform = nullptr 
)

◆ DrawObjects() [2/2]

void CRhinoDisplayPipeline::DrawObjects ( const ON_SimpleArray< CRhinoObject * > &  ,
const ON_Xform = nullptr 
)

◆ DrawObjectsAsTransparent()

void CRhinoDisplayPipeline::DrawObjectsAsTransparent ( DisplayBucket objects,
DisplayBucket hilights = nullptr 
)
protected

◆ DrawOrderedObjects()

void CRhinoDisplayPipeline::DrawOrderedObjects ( bool  back)
protected

◆ DrawOverlays()

virtual void CRhinoDisplayPipeline::DrawOverlays ( )
virtual

◆ DrawPoint() [1/3]

void CRhinoDisplayPipeline::DrawPoint ( const ON_3dPoint point)

Pipeline PRIMITIVES drawing operations...
Description: Draw a point using the current display attributes point size, point style and object color (m_nPointSize, m_ePointStyle, m_ObjectColor) Parameters: point: [in] location of point in world coordinates

◆ DrawPoint() [2/3]

void CRhinoDisplayPipeline::DrawPoint ( const ON_3dPoint point,
ERhinoPointStyle  style,
const ON_Color strokeColor,
const ON_Color fillColor,
float  diameter,
float  strokeWidth,
float  innerDiameter,
float  rotationRadians,
bool  diameterIsInPixels,
bool  autoScaleDpi 
)

◆ DrawPoint() [3/3]

void CRhinoDisplayPipeline::DrawPoint ( const ON_3dPoint point,
int  radius,
ERhinoPointStyle  style,
const ON_Color color 
)

Description: Draw a point with a given radius, style and color Parameters: point: [in] location of point in world coordinates radius: [in] point size in pixels style: [in] how the point is drawn color: [in] color of point. If style is RPS_CONTROL_POINT, this will be the border color

◆ DrawPointCloud() [1/4]

void CRhinoDisplayPipeline::DrawPointCloud ( const ON_PointCloud cloud,
float  pixelSize,
ERhinoPointStyle  pointStyle,
ON_Color  colorOverride,
CRhinoCacheHandle cache 
)

Description: Draw a point cloud Parameters: cloud [in] - the point cloud to draw overrideColor [in] - color to use for points. If the cloud has it's color array filled in and overrideColor contains some alpha the colors are blended.

◆ DrawPointCloud() [2/4]

void CRhinoDisplayPipeline::DrawPointCloud ( const ON_PointCloud cloud,
float  pixelSize,
ERhinoPointStyle  pointStyle,
ON_Color  colorOverride,
int  indexCount,
const unsigned int *  indices,
CRhinoCacheHandle cache 
)

◆ DrawPointCloud() [3/4]

void CRhinoDisplayPipeline::DrawPointCloud ( const ON_PointCloud cloud,
float  size,
bool  sizeInWorld,
ERhinoPointStyle  pointStyle,
ON_Color  colorOverride,
int  indexCount,
const unsigned int *  indices,
CRhinoCacheHandle cache 
)

◆ DrawPointCloud() [4/4]

void CRhinoDisplayPipeline::DrawPointCloud ( int  pointCount,
const ON_3dPoint points,
ON_Color  color = ON_Color::UnsetColor 
)

◆ DrawPointCloudGrips()

void CRhinoDisplayPipeline::DrawPointCloudGrips ( )
protected

◆ DrawPoints()

void CRhinoDisplayPipeline::DrawPoints ( int  count,
const ON_3dPoint points,
ERhinoPointStyle  style,
const ON_Color strokeColor,
const ON_Color fillColor,
float  diameter,
float  strokeWidth,
float  innerDiameter,
float  rotationRadians,
bool  diameterIsInPixels,
bool  autoScaleDpi 
)

◆ DrawPolygon()

void CRhinoDisplayPipeline::DrawPolygon ( const ON_3dPoint points,
int  count,
const ON_Color color,
bool  filled 
)

Description: Draw a closed shape. Parameters: points: [in] array of world coordinate points that are connected by lines to form a closed shape count: [in] number of items in the points array. Must be > 2 color: [in] draw color used for the polygon filled:[in] true if the closed area should be filled with color. false if you want to draw just the border of the closed shape

◆ DrawPolyline()

void CRhinoDisplayPipeline::DrawPolyline ( const ON_Polyline polyline,
const ON_Color color,
int  thickness,
UINT  pattern = 0xFFFFFFFF 
)

Description: Draw a polyline with a given color, thickness, and pattern Parameters: polyline: [in] polyline to draw in world coordinates color: [in] color of polyline thickness: [in] thickness in pixels pattern: [in] bit pattern for polyline. 0xFFFFFFFF is a solid line see glLineStipple documentation online for a description of pattern

◆ DrawRenderedMesh()

void CRhinoDisplayPipeline::DrawRenderedMesh ( const ON_Mesh mesh,
const CRhinoMaterial render_material,
bool  bHighlighted 
)

◆ DrawRoundedRectangle()

void CRhinoDisplayPipeline::DrawRoundedRectangle ( ON_2fPoint  screenCenter,
float  pixelWidth,
float  pixelHeight,
float  cornerRadius,
ON_Color  strokeColor,
float  strokeWidth,
ON_Color  fillColor = ON_Color::UnsetColor 
)

Description: Draw/fill a rounded rectangle in screen coordinates Parameters: screenCenter - screen coordinate center of rectangle pixelWidth, pixelHeight - size of rectangle in pixels cornerRadius - radius in pixels strokeColor - border color of rectangle strokeWidth - width of border curve in pixels fillColor - if ON_Color::UnsetColor, then no fill will be applied

◆ DrawShadedBrep()

void CRhinoDisplayPipeline::DrawShadedBrep ( const ON_Brep brep,
const CDisplayPipelineMaterial material,
CRhinoCacheHandle cache 
)

◆ DrawShadedBreps()

void CRhinoDisplayPipeline::DrawShadedBreps ( const ON_SimpleArray< ON_Brep * > &  breps,
const CDisplayPipelineMaterial = nullptr 
)

◆ DrawShadedMesh()

void CRhinoDisplayPipeline::DrawShadedMesh ( const ON_Mesh mesh,
const CDisplayPipelineMaterial = nullptr 
)

◆ DrawShadedMeshes() [1/2]

void CRhinoDisplayPipeline::DrawShadedMeshes ( const ON_Mesh *const *  meshes,
int  count,
const CDisplayPipelineMaterial material,
CRhinoCacheHandle *const *  caches 
)

◆ DrawShadedMeshes() [2/2]

void CRhinoDisplayPipeline::DrawShadedMeshes ( const ON_Mesh *const *  meshes,
int  count,
const CDisplayPipelineMaterial material,
CRhinoCacheHandle *const *  caches,
const ON_Xform *const *  transforms 
)

◆ DrawSilhouette() [1/2]

bool CRhinoDisplayPipeline::DrawSilhouette ( const CRhinoObject ,
float  thickness = -1.0f,
ON_Color  = ON_UNSET_COLOR,
UINT  pattern = 0xFFFFFFFF 
)

◆ DrawSilhouette() [2/2]

bool CRhinoDisplayPipeline::DrawSilhouette ( const CRhinoObject ,
ON_Color  ,
float  thickness,
UINT  pattern,
class CRhMeshEdgeCache *  cache 
)
protected

◆ DrawSphere() [1/2]

void CRhinoDisplayPipeline::DrawSphere ( const ON_Sphere sphere)

Description: Draw a wireframe sphere. Parameters: sphere - [in]

◆ DrawSphere() [2/2]

void CRhinoDisplayPipeline::DrawSphere ( const ON_Sphere sphere,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawString() [1/5]

void CRhinoDisplayPipeline::DrawString ( const ON_TextContent text,
const ON_Xform textXform,
ON_Color  color,
CRhinoCacheHandle cache 
)

◆ DrawString() [2/5]

void CRhinoDisplayPipeline::DrawString ( const ON_TextContent text,
double  textScale,
ON_Color  color,
bool  drawforward,
CRhinoCacheHandle cache 
)

void DrawString(const ON_TextContent& text, ON_Color color, bool drawforward, CRhinoCacheHandle* cache);

◆ DrawString() [3/5]

void CRhinoDisplayPipeline::DrawString ( const wchar_t *  string,
const ON_3dPoint point,
bool  bMiddle = false,
int  height = 12,
const wchar_t *  fontface = L"Arial" 
)
Parameters
stringstring to draw, can return a modified string
pointdefinition point, either lower-left or middle
bMiddletrue: middle justified, false: lower-left justified
heightheight in pixels

◆ DrawString() [4/5]

void CRhinoDisplayPipeline::DrawString ( const wchar_t *  string,
ON_Color  color,
ON_2dPoint  point,
bool  bMiddle = false,
int  height = 12,
const wchar_t *  fontface = L"Arial" 
)

Description: Draws text flat to the screen at a screen coordinates location with specified color, font and height in pixels

Parameters
stringstring to draw, can return a modified string
colordraw color
pointdefinition point, either lower-left or middle
bMiddleTRUE: middle justified, FALSE: lower-left justified
heightheight in pixels

◆ DrawString() [5/5]

void CRhinoDisplayPipeline::DrawString ( const wchar_t *  text,
ON_Color  color,
const ON_Plane plane,
double  height,
const ON_Font font,
ON::TextHorizontalAlignment  horizontalAlignment,
ON::TextVerticalAlignment  verticalAlignment 
)

◆ DrawSubD()

void CRhinoDisplayPipeline::DrawSubD ( const class CRhinoSubDDisplay subd_display,
const class CRhinoSubDDisplayAttributes subd_display_attributes 
)

Description: Draw a subD.

Parameters: subd_display - [in]

If you have a CRhinoSubDObject, see the remarks below.

If you have a CRhinoSubDObject and you want a temporary customized display, call DrawSubD(subd_object.SubDDisplay(), customized_subd_display_attributes ).

If you have an ON_SubD, then call DrawSubD( CRhinoSubDDisplay::Create(subd), subd_display_attributes )

If you have an ON_SubDRef, then call DrawSubD( CRhinoSubDDisplay::Create(subd_ref), subd_display_attributes )

subd_display_attributes - [in]

Remarks: This is a tool for drawing subd objects that are not in a CRhinoSubDObject. Use CRhinoSubDObject::Draw() to draw CRhinoSubDObjects

◆ DrawSubObject()

void CRhinoDisplayPipeline::DrawSubObject ( const CRhinoObject ,
ON_COMPONENT_INDEX  ,
const ON_Xform = nullptr 
)

◆ DrawSurface() [1/2]

void CRhinoDisplayPipeline::DrawSurface ( const ON_Surface surface,
int  display_density = 1 
)

Description: Draws a wireframe surface. Parameters: surface - [in] display_density - [in] ON_3dmObjectAttributes.m_wire_density value Remarks: This function can be slow and should not be used in drawing code that is called every time the mouse moves. See Also: DrawNurbsSurface DrawBezierSurface DrawSurface DrawBrep

◆ DrawSurface() [2/2]

void CRhinoDisplayPipeline::DrawSurface ( int  )

Description: Draws the current 'surface' object using the current display attributes to define the way it will be shaded. Note: If the object is not a surface, or one that can't be shaded, this routine does nothing.

Parameters: int : [in] The index into the pipeline's object draw list indicating which object you want shaded.

Note: This should only be obtained while inside the SC_DRAWOBJECT channel within a display conduit by using the channel attribute: "m_nObjectIndex". Using any other value at any other time will have undetermined results.

◆ DrawSurfaceBucket()

void CRhinoDisplayPipeline::DrawSurfaceBucket ( const DisplayBucket bucket)
protected

◆ DrawSurfaceGrips()

void CRhinoDisplayPipeline::DrawSurfaceGrips ( )
protected

◆ DrawTangentBar()

void CRhinoDisplayPipeline::DrawTangentBar ( const ON_3dPoint mid_point,
const ON_3dVector direction_vector,
ON_3dPoint start_point = nullptr,
ON_3dPoint end_point = nullptr 
)

Description: Draws a tangent line segment decoration. Parameters: mid_point - [in] midpoint of line segment direction_vector - [in] unit vector direction of line segment. start_point -[out] if not NULL, the start of the tangent bar is returned here. end_point -[out] if not NULL, the end of the tangent bar is returned here. Remarks: These are the line segments used to indicate curve tangents. Generally, direction_vector should have length = 1. For special situations when a shorter/longer tangent bar is desired,

◆ DrawToDib()

bool CRhinoDisplayPipeline::DrawToDib ( CRhinoDib dib,
int  width,
int  height,
const CDisplayPipelineAttributes attrib 
)

◆ DrawTorus() [1/2]

void CRhinoDisplayPipeline::DrawTorus ( const ON_Torus torus)

Description: Draw a wireframe torus. Parameters: sphere - [in]

◆ DrawTorus() [2/2]

void CRhinoDisplayPipeline::DrawTorus ( const ON_Torus torus,
ON_Color  Color,
int  nThickness = 1,
UINT  nPattern = 0xFFFFFFFF 
)

◆ DrawTraceImage()

bool CRhinoDisplayPipeline::DrawTraceImage ( )

◆ DrawTransparentObjects()

void CRhinoDisplayPipeline::DrawTransparentObjects ( )
protected

◆ DrawTriangle() [1/4]

void CRhinoDisplayPipeline::DrawTriangle ( const ON_3dPoint p0,
const ON_3dPoint p1,
const ON_3dPoint p2 
)

◆ DrawTriangle() [2/4]

void CRhinoDisplayPipeline::DrawTriangle ( const ON_3dPoint p0,
const ON_3dPoint p1,
const ON_3dPoint p2,
ON_Color  color 
)

◆ DrawTriangle() [3/4]

void CRhinoDisplayPipeline::DrawTriangle ( const ON_3dPoint  corners[3])

◆ DrawTriangle() [4/4]

void CRhinoDisplayPipeline::DrawTriangle ( const ON_3dPoint  corners[3],
ON_Color  color 
)

◆ DrawWallpaper()

bool CRhinoDisplayPipeline::DrawWallpaper ( )

Pipeline OBJECTS drawing operations...

◆ DrawWireframeMesh()

void CRhinoDisplayPipeline::DrawWireframeMesh ( const ON_Mesh mesh,
const ON_Color color,
CRhinoCacheHandle cache = nullptr 
)

◆ DrawWireframeMeshes()

void CRhinoDisplayPipeline::DrawWireframeMeshes ( const ON_Mesh **  meshes,
int  count,
const ON_Color color,
CRhinoCacheHandle cache = nullptr 
)

◆ DrawZebraPreview() [1/2]

void CRhinoDisplayPipeline::DrawZebraPreview ( const ON_Brep brep,
const CRhinoZebraAnalysisSettings zas,
const ON_MeshParameters mp,
const ON_Color color,
CRhinoCacheHandle cache 
)

Description: Draws a shaded Brep with Zebra stripe preview. Parameters: brep [in] - Brep to draw. zas [in] - Zebra analysis settings. mp [in] - Analysis meshing parameters. color [in] - Object color. cache [in/out] - Optional. If not nullptr, the display may use this to attempt to draw the brep faster. Make sure to ALWAYS pass the same cache for a given Brep. If you pass the same cache for different Brep, performance of the display code will not be as good.

◆ DrawZebraPreview() [2/2]

void CRhinoDisplayPipeline::DrawZebraPreview ( const ON_Mesh mesh,
const CRhinoZebraAnalysisSettings zas,
const ON_Color color,
CRhinoCacheHandle cache 
)

Description: Draws a shaded Mesh with Zebra stripe preview. Parameters: mesh [in] - Mesh to draw. zas [in] - Zebra analysis settings. color [in] - Object color. cache [in/out] - Optional. If not nullptr, the display may use this to attempt to draw the brep faster. Make sure to ALWAYS pass the same cache for a given Brep. If you pass the same cache for different Brep, performance of the display code will not be as good.

◆ DynamicDisplayDowngradeEnabled()

bool CRhinoDisplayPipeline::DynamicDisplayDowngradeEnabled ( ) const

Returns 'true' if display degradation is enabled, 'false' otherwise.

◆ EnableChannel()

void CRhinoDisplayPipeline::EnableChannel ( UINT  )

◆ EnableClippingPlanes()

bool CRhinoDisplayPipeline::EnableClippingPlanes ( bool  enable = true)

◆ EnableColorWriting()

void CRhinoDisplayPipeline::EnableColorWriting ( bool  = true)

◆ EnableDepthTesting()

void CRhinoDisplayPipeline::EnableDepthTesting ( bool  = true)

◆ EnableDepthWriting()

void CRhinoDisplayPipeline::EnableDepthWriting ( bool  = true)

◆ EnableDrawGrayScale()

void CRhinoDisplayPipeline::EnableDrawGrayScale ( bool  = true)

◆ EnableDynamicDisplayDowngrade()

void CRhinoDisplayPipeline::EnableDynamicDisplayDowngrade ( bool  bEnable)

Enable degradation of the display to make a slow display render faster. Note: This will work correctly if a call to DrawFrameBuffer is followed by a call to ShowFrameBuffer.

◆ EnableEnvironment()

bool CRhinoDisplayPipeline::EnableEnvironment ( bool  = true)

◆ EnableFeedbackProcessing()

static void CRhinoDisplayPipeline::EnableFeedbackProcessing ( bool  bEnable = true)
static

Description:

◆ EnableFrameBufferCapture()

static void CRhinoDisplayPipeline::EnableFrameBufferCapture ( bool  bEnable = true)
static

Description:

STATIC Pipeline routines...

◆ EnableGroundPlane()

bool CRhinoDisplayPipeline::EnableGroundPlane ( bool  )
protected

◆ EnableMaterialCaching()

void CRhinoDisplayPipeline::EnableMaterialCaching ( bool  bEnable)
protected

◆ EnableMeshGeneration()

static void CRhinoDisplayPipeline::EnableMeshGeneration ( bool  bEnable = true)
static

Description: Turn on/off automatic mesh generation for surfaces in shaded display modes.

◆ EnableShaders()

bool CRhinoDisplayPipeline::EnableShaders ( bool  = true) const

Shader specifics...

◆ Engine()

CRhinoDisplayEngine* CRhinoDisplayPipeline::Engine ( bool  bCreate = false) const

Description: Every pipeline contains an instance of a display engine. The engine is used to perform the low level drawing operations for the pipeline. Parameters: bCreate: [in] If the an engine hasn't been created for this pipeline one will be created If an associated engine already exists, this parameter is ignored Returns: the engine associated to this pipeline

◆ EngineClass()

virtual const ON_ClassId* CRhinoDisplayPipeline::EngineClass ( )
protectedvirtual

◆ FeedbackProcessingEnabled()

static bool CRhinoDisplayPipeline::FeedbackProcessingEnabled ( )
static

Returns:

◆ FillSolidRect()

void CRhinoDisplayPipeline::FillSolidRect ( int  left,
int  top,
int  width,
int  height,
COLORREF  color,
int  transparency = 0 
)

Description: Draw a filled 2D rectangle. The rectangle is in screen coordinates of the active viewport and may be drawn with a level of transparency. Parameters: left, top: [in] 2D coordinate of the left/top corner of the rectangle. This point is is "Windows" coordinates where the top is is number of pixels from the top of the viewport width, height: [in] distances from left, top that define the rectangle color: [in] Fill color for rectangle transparency: [in] 0=opaque, 255=completely transparent

◆ FlushPipeline()

void CRhinoDisplayPipeline::FlushPipeline ( )

◆ ForceFrameBufferUpdate()

void CRhinoDisplayPipeline::ForceFrameBufferUpdate ( )

Description: This routine will force a complete frame buffer update, ignoring any and all InDynamicView update optimizations.

Note: A call to this routine will only be valid up until the next frame buffer update...After that, additional calls will need to be made for any other forced updates required (ie. This only works on a per-frame basis).

◆ FrameBufferCaptureEnabled()

static bool CRhinoDisplayPipeline::FrameBufferCaptureEnabled ( )
static

Returns:

◆ FreeResources()

bool CRhinoDisplayPipeline::FreeResources ( )

Description: Cleans up any allocated resources used by the pipeline as well as any display engine that might be attached.

Note: This routine should be able to be called from anywhere except while "inside" the pipeline. If called inside the pipeline, this rotuine will do nothing.

Returns: false - if resources were not deallocated. true - if resources were successfully deallocated.

◆ FreezeDrawing()

bool CRhinoDisplayPipeline::FreezeDrawing ( bool  )

◆ FromRuntimeSerialNumber()

static CRhinoDisplayPipeline* CRhinoDisplayPipeline::FromRuntimeSerialNumber ( unsigned int  sn)
static

◆ GeneratingSelectionMap()

bool CRhinoDisplayPipeline::GeneratingSelectionMap ( void  ) const

◆ GeometrySource()

const CRhinoDoc* CRhinoDisplayPipeline::GeometrySource ( ) const

Return the document that the pipeline uses to get geometry information from when drawing.

◆ GetBoundConduits()

ConduitList CRhinoDisplayPipeline::GetBoundConduits ( )

Returns: List of display conduits bound to this pipeline

◆ GetConduitViewExtents()

bool CRhinoDisplayPipeline::GetConduitViewExtents ( ON_BoundingBox )

Description: Gets the accumulated bounding box from all conduits that implement the SC_VIEWEXTENTS channel

◆ GetDepthBuffer()

bool CRhinoDisplayPipeline::GetDepthBuffer ( float *  zbuffer,
int  left,
int  top,
int  width,
int  height,
float *  fmin = nullptr,
float *  fmax = nullptr 
)

◆ GetDesiredSingleFrameRate()

UINT CRhinoDisplayPipeline::GetDesiredSingleFrameRate ( ) const

Returns: The desired amount of time to stay under for drawing a frame The pipeline makes decisions on level of detail when the frame rate exceeds this desired value.

◆ GetFrameETA()

UINT CRhinoDisplayPipeline::GetFrameETA ( ) const
inline

Description: Retrieve the estimated time that this frame drawing operation will complete. This is based off of previous frame drawing.

◆ GetFrameSize()

const ON_2iSize CRhinoDisplayPipeline::GetFrameSize ( ) const

Returns: The size of the framebuffer that this pipeline is drawing to

◆ GetFramesPerSecond()

UINT CRhinoDisplayPipeline::GetFramesPerSecond ( ) const

Returns: The average frames per second interval for drawing with the current set of geometry

◆ GetFrameTick()

UINT CRhinoDisplayPipeline::GetFrameTick ( ) const
inline

Description: Just calls the standard C++ clock function which retrieves the number of clock ticks that have elapsed since Rhino was launched

◆ GetFrameTickDelta()

UINT CRhinoDisplayPipeline::GetFrameTickDelta ( ) const
inline

Description: Retrieve the amount of time that has elapsed since the current frame draw operation has begun

◆ GetGroundPlane()

bool CRhinoDisplayPipeline::GetGroundPlane ( ON_Plane )
protected

Description: Creates a plane object that represents the ground plane currently being used/drawn. Returns: false - if there is no ground plane OR the ground plane is turned OFF true - if a valid ground plane exists AND it is currently turned ON

◆ GetObject()

const CRhinoObject* CRhinoDisplayPipeline::GetObject ( int  index) const

Description: The pipeline maintains a list of objects that it draws during a single frame. This function retrieves an object from this list. Parameters: index: [in] index in object list >= 0 and less than GetObjectCount()

◆ GetObjectAt() [1/2]

const CRhinoObject* CRhinoDisplayPipeline::GetObjectAt ( int  X,
int  Y 
)

◆ GetObjectAt() [2/2]

const CRhinoObject* CRhinoDisplayPipeline::GetObjectAt ( int  X,
int  Y,
ON_COMPONENT_INDEX ci 
)

◆ GetObjectCount()

int CRhinoDisplayPipeline::GetObjectCount ( ) const

Description: Retrieve the number of CRhinoObjects that this pipeline iterates through and draws

◆ GetObjectDisplayAttrs()

const CDisplayPipelineAttributes* CRhinoDisplayPipeline::GetObjectDisplayAttrs ( const CRhinoObject pObject,
const CRhinoObjectAttributes pAttributes = nullptr 
) const

Description: Returns the display pipeline drawing attributes that will be used to draw a given rhino object in this pipeline Parameters: pObject: [in] the object to look up display pipeline attributes for pAttributes: [in] if you want to use something other than the object's current attributes, pass in a different object attributes.

◆ GetObjectsAlphaMask()

bool CRhinoDisplayPipeline::GetObjectsAlphaMask ( CRhinoDib dib,
int  nWidth,
int  nHeight,
const CDisplayPipelineAttributes ,
COLORREF  MaskColorbg = RGB(255, 255, 255),
COLORREF  Background = RGB(0, 0, 0) 
)

Description: Returns a dib containing all Objects (based on display attributes) rendered using "MaskColor" (note: No shading), against a background color "Background"...

◆ GetObjectTransform()

const ON_Xform* CRhinoDisplayPipeline::GetObjectTransform ( int  index) const

Description: If the object at index has a model space transformation associated with it, return that transformation. If no transformation is associated, then NULL is returned Parameters: index: [in] index in list for the object in question. See GetObject(int index)

◆ GetObjectWireColor()

ON_Color CRhinoDisplayPipeline::GetObjectWireColor ( const CRhinoObject ,
const CRhinoObjectAttributes  
) const
protected

◆ GetRhinoView()

CRhinoView* CRhinoDisplayPipeline::GetRhinoView ( ) const

◆ GetRhinoVP()

CRhinoViewport* CRhinoDisplayPipeline::GetRhinoVP ( ) const

Returns: The viewport that this pipeline uses to define projections and what gets drawn. It is assumed that a pipeline always has an associated viewport.

◆ GetSelectionMap()

CRhinoDib* CRhinoDisplayPipeline::GetSelectionMap ( )

◆ GetSingleFrameRate()

UINT CRhinoDisplayPipeline::GetSingleFrameRate ( ) const

Returns: The average amount of time required to draw a single frame

◆ GetSpecularMask()

bool CRhinoDisplayPipeline::GetSpecularMask ( CRhinoDib dib,
int  nWidth,
int  nHeight,
const CDisplayPipelineAttributes ,
bool  bIgnoreTransparency 
)

Description: Returns a dib containing all objects (based on display attributes) rendered using their respective colors and shading against a background color "Background"...

◆ GetStereoParallax()

double CRhinoDisplayPipeline::GetStereoParallax ( ) const

◆ GetStereoSeparation()

double CRhinoDisplayPipeline::GetStereoSeparation ( ) const

◆ GetTiledFrameInfo()

void CRhinoDisplayPipeline::GetTiledFrameInfo ( ON_2iSize fullSize,
ON_4iRect currentTile 
) const

◆ GetWiresAlphaMask()

bool CRhinoDisplayPipeline::GetWiresAlphaMask ( CRhinoDib dib,
int  nWidth,
int  nHeight,
const CDisplayPipelineAttributes ,
int  nScale = 1,
COLORREF  MaskColorbg = RGB(255, 255, 255),
COLORREF  Background = RGB(0, 0, 0) 
)

Description: Returns a dib containing all wires (based on display attributes) rendered using "MaskColor" against a background color "Background"...

◆ GetWiresMask()

bool CRhinoDisplayPipeline::GetWiresMask ( CRhinoDib dib,
int  nWidth,
int  nHeight,
const CDisplayPipelineAttributes ,
int  nScale = 1,
COLORREF  Background = RGB(255, 255, 255) 
)

Description: Returns a dib containing all wires (based on display attributes) rendered using their respective colors against a background color "Background"...

◆ GetWnd()

HWND CRhinoDisplayPipeline::GetWnd ( ) const

Returns: The window that this pipeline is associated with.

◆ HiddenLineType()

const ON_Linetype* CRhinoDisplayPipeline::HiddenLineType ( void  ) const

◆ iCalcBoundingBox()

bool CRhinoDisplayPipeline::iCalcBoundingBox ( )
protected

◆ iCalcClippingPlanes()

bool CRhinoDisplayPipeline::iCalcClippingPlanes ( )
protected

◆ iDrawBackground()

bool CRhinoDisplayPipeline::iDrawBackground ( )
protected

◆ iDrawFeedback()

bool CRhinoDisplayPipeline::iDrawFeedback ( bool  bFrameBufferUpdated)
protected

◆ iDrawForeground()

bool CRhinoDisplayPipeline::iDrawForeground ( )
protected

◆ iDrawMiddleground()

bool CRhinoDisplayPipeline::iDrawMiddleground ( )
protected

◆ iDrawOverlays()

bool CRhinoDisplayPipeline::iDrawOverlays ( )
protected

◆ IgnoreLockedState()

void CRhinoDisplayPipeline::IgnoreLockedState ( bool  )

◆ iInitFrameBuffer()

bool CRhinoDisplayPipeline::iInitFrameBuffer ( )
protected

The following routines are "wrapper" routines around the virtual ones above. These versions call into their overridden counterparts, but then also process any/all registered conduits. This was done so that the overriding routines don't need to worry about how or when to do conduit processing...

◆ iMeshObjects()

bool CRhinoDisplayPipeline::iMeshObjects ( )
protected

◆ InDetailViewDraw()

const class CRhinoDetailViewObject* CRhinoDisplayPipeline::InDetailViewDraw ( ) const

Description: When Rhino is drawing geometry inside of a detail view (NestLevel()==1) this function returns the CRhinoDetailObject that the geometry is being drawn into

◆ InFeedbackMode() [1/2]

bool CRhinoDisplayPipeline::InFeedbackMode ( ) const

Returns: True if the pipeline is currently drawing a feedback type display. Feedback mode is defined as being in a GetPoint or in some kind of overlay conduit... but not in a dynamic view command (Pan, Rotate, Zoom, RotateCamera)

◆ InFeedbackMode() [2/2]

bool CRhinoDisplayPipeline::InFeedbackMode ( bool  bIgnoreOverlay) const

◆ InfiniteDepth()

bool CRhinoDisplayPipeline::InfiniteDepth ( ) const

Returns: Current value of m_pDisplayAttrs->m_bInfiniteDepth.

◆ InHiddenLinePass()

bool CRhinoDisplayPipeline::InHiddenLinePass ( void  ) const

◆ InitFrameBuffer()

virtual bool CRhinoDisplayPipeline::InitFrameBuffer ( )
virtual

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ InitializeEngine()

bool CRhinoDisplayPipeline::InitializeEngine ( )
protected

◆ InitializeEnvironments()

void CRhinoDisplayPipeline::InitializeEnvironments ( )
protected

◆ InitializeObjectLists()

void CRhinoDisplayPipeline::InitializeObjectLists ( )
protected

◆ InitializePipeline()

virtual bool CRhinoDisplayPipeline::InitializePipeline ( )
protectedvirtual

Called every time the pipeline is opened

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ InitTolerancesAndDetail()

bool CRhinoDisplayPipeline::InitTolerancesAndDetail ( )
protected

◆ InOverlayMode()

bool CRhinoDisplayPipeline::InOverlayMode ( ) const

Returns: True if the pipeline is currently in overlay mode. The overlay stage of drawing occurs after everything else has been drawn in a frame. It is used to draw things like highlighted geometry.

◆ InQuickDrawSurface()

bool CRhinoDisplayPipeline::InQuickDrawSurface ( ) const

Returns: true if the pipeline is currently inside of QuickDrawSurface().

◆ InsertionSort()

void CRhinoDisplayPipeline::InsertionSort ( int  a[],
int  lo0,
int  hi0,
ObjectSortFunc  fpSort 
)
protected

◆ InstanceDefinitionTransform()

const ON_Xform& CRhinoDisplayPipeline::InstanceDefinitionTransform ( ) const

Returns: The current instance definition transformation. The same as ModelTransform() excluding the dynamic transform.

◆ InStereoMode()

bool CRhinoDisplayPipeline::InStereoMode ( ) const

Returns: True if 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

◆ InterruptDrawing()

bool CRhinoDisplayPipeline::InterruptDrawing ( )

Description: 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. Returns: true if the pipeline should stop attempting to draw more geometry and just show the frame buffer

◆ InViewCapture()

bool CRhinoDisplayPipeline::InViewCapture ( ) const

Returns: True if this pipeline is currently in a View Capture scenario...either to clipboard or file. False otherwise.

◆ iObjectCulling()

bool CRhinoDisplayPipeline::iObjectCulling ( )
protected

◆ iPostProcessFrameBuffer()

bool CRhinoDisplayPipeline::iPostProcessFrameBuffer ( )
protected

◆ IsAccelerated()

bool CRhinoDisplayPipeline::IsAccelerated ( ) const

Returns: True if this pipeline is using an engine that takes advantage of hardware acceleration

◆ IsActive()

bool CRhinoDisplayPipeline::IsActive ( const CRhinoObject pObject) const

Description: 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. Returns: true if this object can be drawn in the pipeline's viewport based on it's object type and display attributes

◆ IsCloned()

bool CRhinoDisplayPipeline::IsCloned ( ) const
inline

◆ IsDisplayPrecisionErrorGreaterThan()

bool CRhinoDisplayPipeline::IsDisplayPrecisionErrorGreaterThan ( double  pixel_offset) const

Description: Checks whether the calculated pixel offset error is greater than the given 'pixel_offset'. 'pixel_offset' is expressed in pixel units, where a value of 1.0 represents the width of a pixel.

Returns: False: If the display precision error is smaller than given value. True: If the display precision error is larger than the given value.

◆ IsEntireActiveInstanceVisible()

bool CRhinoDisplayPipeline::IsEntireActiveInstanceVisible ( ) const

Description: Returns true if the pipline is in the middle of drawing a CRhinoInstanceObject and that instance is completely inside the view frustum

◆ iSetupFrustum()

bool CRhinoDisplayPipeline::iSetupFrustum ( )
protected

◆ iSetupLighting()

bool CRhinoDisplayPipeline::iSetupLighting ( )
protected

◆ IsPrinting()

bool CRhinoDisplayPipeline::IsPrinting ( ) const

Returns: True if this pipeline is currently drawing for printing purposes

◆ IsTransparentMaterial()

int CRhinoDisplayPipeline::IsTransparentMaterial ( const CDisplayPipelineMaterial ) const
protected

◆ IsValidPipelinePointer()

static bool CRhinoDisplayPipeline::IsValidPipelinePointer ( const void *  pipeline)
static

Description: Returns true if the pipeline pointer is null or points to an existing CRhinoDisplayPipline. Remarks: Calling CRhinoDisplayPipelin::IsValidPipelinePointer() is fast and should be used before dereferencing a CRhinoDisplayPipelin pointer that could possibly be invalid.

◆ IsVisible() [1/4]

bool CRhinoDisplayPipeline::IsVisible ( const class CDisplayPipelineObject &  dpo) const
protected

◆ IsVisible() [2/4]

bool CRhinoDisplayPipeline::IsVisible ( const CRhinoObject pObject) const

Returns: True if this object is inside the view frustum under the current viewport and model transformation settings. This function calls a virtual IsVisibleFinal function that subclassed 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.

◆ IsVisible() [3/4]

bool CRhinoDisplayPipeline::IsVisible ( const ON_3dPoint world_coordinate) const

Returns: True if a given 3d world coordinate point is inside the view frustum under the current viewport and model transformation settings Parameters: world_coordinate: [in] the point to test for visibility

◆ IsVisible() [4/4]

bool CRhinoDisplayPipeline::IsVisible ( const ON_BoundingBox bbox) const

Returns: True if some portion of a 3d world coordinate bounding box is inside the view frustum under the current viewport and model transformation settings Parameters: bbox: [in] the box to test for visibility

◆ MaterialCachingEnabled()

bool CRhinoDisplayPipeline::MaterialCachingEnabled ( void  ) const
protected

◆ MeasureString() [1/3]

static bool CRhinoDisplayPipeline::MeasureString ( ON_2dPoint boundsMin,
ON_2dPoint boundMax,
const wchar_t *  text,
ON_2dPoint  point,
bool  middle,
double  heightPixels,
const ON_Font font 
)
static

◆ MeasureString() [2/3]

static bool CRhinoDisplayPipeline::MeasureString ( ON_2dPoint boundsMin,
ON_2dPoint boundMax,
const wchar_t *  text,
ON_2dPoint  point,
bool  middle = false,
double  heightPixels = 12,
const wchar_t *  fontface = L"Arial" 
)
static

◆ MeasureString() [3/3]

static bool CRhinoDisplayPipeline::MeasureString ( ON_4iRect rect,
const wchar_t *  text,
ON_2dPoint  point,
bool  middle = false,
int  heightPixels = 12,
const wchar_t *  fontface = L"Arial" 
)
static

Description: Determine screen bounds that would be drawn to using the DrawString(..) function with the same parameters. Returns: true on success, false on failure

◆ MeshGenerationEnabled()

static bool CRhinoDisplayPipeline::MeshGenerationEnabled ( )
static

Returns: static state determining if pipelines should automatically generate meshes for surfaces when needed in shaded display modes

◆ ModelTransform()

const ON_Xform& CRhinoDisplayPipeline::ModelTransform ( ) const

Returns: The current model transformation that is applied to vertices when drawing.

◆ ModelTransformIsIdentity()

bool CRhinoDisplayPipeline::ModelTransformIsIdentity ( ) const

Added Oct 30, 07 - LW Returns the state of m_bModelXfromIsIdentity

◆ MultiplyObjectTransform()

bool CRhinoDisplayPipeline::MultiplyObjectTransform ( int  index,
const ON_Xform xform,
int  side 
)

Description: Adds(multiplies) a model space transformation on an object in the display list at index If the frame is currently in a dynamic display mode, then no transformation will be set Parameters: index - [in] xform - [in] side - [in] -1: pipeline object xform <- xform*(pipeline object xform) +1: pipeline object xform <- (pipeline object xform)*xform Remarks: If ViewInDynamicDisplay() is true, then you probably do not want to call MultObjectTransform(), but we'll let you decide. Be sure to test your code in many situations including while using the mouse to pan, rotate and zoom the view. Returns: true on success

◆ NestLevel()

int CRhinoDisplayPipeline::NestLevel ( ) const

Description: Returns 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

◆ NotifyConduits()

void CRhinoDisplayPipeline::NotifyConduits ( EConduitNotifiers  )
protected

◆ NotifyFrameSizeChanged()

virtual bool CRhinoDisplayPipeline::NotifyFrameSizeChanged ( int  nWidth,
int  nHeight 
)
virtual

Notifier routines used to maintain synchronization between view, viewport, pipeline, and engine...Note: CRhinoDisplayEngine has equivalent versions of these routines...

◆ NotifyProjectionChanged()

virtual bool CRhinoDisplayPipeline::NotifyProjectionChanged ( )
virtual

◆ ObjectCastsShadows()

bool CRhinoDisplayPipeline::ObjectCastsShadows ( const CRhinoObject pObject,
const ON_3dPoint ReferencePoint,
ON_BoundingBox = nullptr 
) const

Description: Determines if the given object will cast shadows based on its current state and the state of this pipeline's shadow casting attributes. Parameters: pObject: [in] object to test against shadow casting attributes ReferencePoint: [in] point value used as the "center" of reference when calculating the shadow bubble.

◆ ObjectColor()

ON_Color CRhinoDisplayPipeline::ObjectColor ( ) const

◆ ObjectHasTransform()

bool CRhinoDisplayPipeline::ObjectHasTransform ( int  index) const

Description: Returns true if the object at index has a model space transformation associated with it Parameters: index: [in] index in list for the object in question. See GetObject(int index)

◆ ObjectsShouldDrawShadedMeshes()

bool CRhinoDisplayPipeline::ObjectsShouldDrawShadedMeshes ( ) const

◆ ObjectsShouldDrawSilhouetteHightlights()

bool CRhinoDisplayPipeline::ObjectsShouldDrawSilhouetteHightlights ( ) const

◆ ObjectsShouldDrawWires()

bool CRhinoDisplayPipeline::ObjectsShouldDrawWires ( ) const

◆ OpenPipeline()

bool CRhinoDisplayPipeline::OpenPipeline ( )

Fixed pipeline operations...

◆ PipelineOpened()

bool CRhinoDisplayPipeline::PipelineOpened ( ) const

◆ PopDepthTesting()

void CRhinoDisplayPipeline::PopDepthTesting ( )

◆ PopDepthWriting()

void CRhinoDisplayPipeline::PopDepthWriting ( )

◆ PopDisplayAttrs()

void CRhinoDisplayPipeline::PopDisplayAttrs ( ) const
protected

◆ PopDrawInterrupt()

void CRhinoDisplayPipeline::PopDrawInterrupt ( )
protected

◆ PopModelTransform()

void CRhinoDisplayPipeline::PopModelTransform ( )

Description: Remove the currently pushed model transform from the stack and restore the previously pushed transform (if any).

◆ PopObjectColor()

void CRhinoDisplayPipeline::PopObjectColor ( ) const

◆ PopProjection()

void CRhinoDisplayPipeline::PopProjection ( )

◆ PopulateObjectsList()

bool CRhinoDisplayPipeline::PopulateObjectsList ( )
protected

◆ PopulateRenderedAttrs()

void CRhinoDisplayPipeline::PopulateRenderedAttrs ( CDisplayPipelineAttributes pAttrs) const
protected

◆ PostAttributesPass()

virtual void CRhinoDisplayPipeline::PostAttributesPass ( const CRhinoObject ,
CDisplayPipelineAttributes  
) const
protectedvirtual

◆ PostConstructInitialize()

virtual void CRhinoDisplayPipeline::PostConstructInitialize ( const char *  name)
virtual

Description: Post-constructor initialisation, used when a new pipeline is constructed through the ON_ClassId mechanism. Note that this function will go away when pipelines are no longer built on top of MFC. Parameters: name: [in] string that can be used to further specialise the freshly created instance

◆ PostObjectDrawing()

void CRhinoDisplayPipeline::PostObjectDrawing ( int  dpo_index)
protected

◆ PostProcessFrameBuffer()

virtual bool CRhinoDisplayPipeline::PostProcessFrameBuffer ( )
virtual

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ PreAttributesPass()

virtual void CRhinoDisplayPipeline::PreAttributesPass ( const CRhinoObject ,
CDisplayPipelineAttributes  
) const
protectedvirtual

◆ PreDrawSetup() [1/2]

void CRhinoDisplayPipeline::PreDrawSetup ( )

◆ PreDrawSetup() [2/2]

void CRhinoDisplayPipeline::PreDrawSetup ( const DisplayBucket aDrawBucket)

◆ PreObjectDrawing()

bool CRhinoDisplayPipeline::PreObjectDrawing ( int  dpo_index,
bool  skipAttributeSetup = false 
)
protected

Description: Called before an object is drawn. This function is responsible for determining if the object is visible and sets up m_pDisplayAttrs with attributes for this object Returns: true if the display should continue attempting to draw the object this frame false if an error occurred or the object is determined to not be visible

◆ ProcessConduits() [1/2]

bool CRhinoDisplayPipeline::ProcessConduits ( ConduitList list,
UINT  active_channel,
bool *  terminate = nullptr 
) const
protected

Helper function used to iterate through and process certain types of conduits...

◆ ProcessConduits() [2/2]

bool CRhinoDisplayPipeline::ProcessConduits ( ConduitList list,
UINT  active_channel,
int  dpo_index 
) const
protected

◆ ProcessShadedAnalysisMode()

void CRhinoDisplayPipeline::ProcessShadedAnalysisMode ( const CRhinoObject pObject)
protected

◆ PushDepthTesting()

void CRhinoDisplayPipeline::PushDepthTesting ( bool  )

◆ PushDepthWriting()

void CRhinoDisplayPipeline::PushDepthWriting ( bool  )

◆ PushDrawInterrupt()

void CRhinoDisplayPipeline::PushDrawInterrupt ( )
protected

◆ PushModelTransform()

void CRhinoDisplayPipeline::PushModelTransform ( const ON_Xform xform)

Description: Save the current model transform on a stack and set a new model transform Remark: This function does not multiply mt by the existing model transform. If you want to compound transformations multiply ModelTransform() by your xform before calling this function. Parameters: mt: [in] the transform that the engine's model transform will be set to.

◆ PushObjectColor()

void CRhinoDisplayPipeline::PushObjectColor ( const ON_Color color) const

◆ PushPipelineObjectAttributes()

void CRhinoDisplayPipeline::PushPipelineObjectAttributes ( int  dpo_index) const
protected

This is an expensive function call and should be rarely called during a frame draw.

◆ PushProjection()

void CRhinoDisplayPipeline::PushProjection ( const ON_Viewport )

◆ QuickDrawRenderMeshes()

void CRhinoDisplayPipeline::QuickDrawRenderMeshes ( )
protected

◆ QuickDrawSolids()

void CRhinoDisplayPipeline::QuickDrawSolids ( )
protected

◆ QuickDrawSurface()

void CRhinoDisplayPipeline::QuickDrawSurface ( int  nObjIdx)
protected

The following "quick" draw routines bypass as much of the display attribute juggling as possible. Their goal is to simply render a mesh to the backbuffer as fast as possible with total disregard of material or display mode.

◆ QuickDrawSurfaceBucket()

void CRhinoDisplayPipeline::QuickDrawSurfaceBucket ( const DisplayBucket bucket)
protected

◆ QuickSort()

void CRhinoDisplayPipeline::QuickSort ( int  a[],
int  l,
int  r,
ObjectSortFunc  fpSort 
)
protected

◆ RealtimeDisplayMode()

std::shared_ptr<RhRdk::Realtime::DisplayMode> CRhinoDisplayPipeline::RealtimeDisplayMode ( ) const

◆ Redraw()

bool CRhinoDisplayPipeline::Redraw ( ) const

Description: Returns true if this pipeline has set a flag that tells it that it needs to redraw itself. During the drawing of a frame, the pipeline may decide that it needs to run through the frame buffer drawing code again and does this by setting the redraw flag in the pipeline.

This DOES NOT set the redraw flag. For this use SetRedraw. If you want to tell a pipeline to redraw outside the scope of drawing a frame, call CRhinoView::Redraw or CRhinoDoc::Redraw

◆ RelativeDepthBias()

static double CRhinoDisplayPipeline::RelativeDepthBias ( )
static

Returns: The relative depth bias used in depth bias calculations. The returned value is independent of the current "ZBiasMode". The returned value is >= 0.0. Example:

/ Adjust clipping coordinate depth double bias_sign = +1.0 or -1.0; const double relative_depth_bias = CRhinoDisplayPipeline::RelativeDepthBias(); clip_z += pipeline->VP().ClipCoordDepthBias( bias_sign*relative_depth_bias, clip_z, clip_w );

/ Get clipbias transformation to adjust clipping coordinate depth double bias_sign = +1.0 or -1.0; const double relative_depth_bias = CRhinoDisplayPipeline::RelativeDepthBias(); ON_Xform clipbias; pipeline->VP().GetClipCoordDepthBiasXform( bias_sign*relative_depth_bias, clipbias ); ON_4dPoint clipping_coordinate_point = ...; ON_4dPoint biased_clipping_coordinate_point = clipbias*clipping_coordinate_point;

See Also: CRhinoDisplayEngine::CRhinoDisplayEngine::ZBiasDistance

◆ RenderPass()

int CRhinoDisplayPipeline::RenderPass ( ) const

Description: Returns 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 achived through drawing with multiple passes.

◆ RepurposeAlphaValues()

void CRhinoDisplayPipeline::RepurposeAlphaValues ( CRhinoDib dib,
const CDisplayPipelineAttributes  
)
protected

◆ ResetClippingSections()

void CRhinoDisplayPipeline::ResetClippingSections ( )
protected

dynamic clipping section display...

◆ ResetLevelOfDetail()

bool CRhinoDisplayPipeline::ResetLevelOfDetail ( )

◆ RestoreBackBuffer()

bool CRhinoDisplayPipeline::RestoreBackBuffer ( )

◆ RestoreDepthBuffer()

bool CRhinoDisplayPipeline::RestoreDepthBuffer ( )

◆ RuntimeSerialNumber()

unsigned int CRhinoDisplayPipeline::RuntimeSerialNumber ( ) const
inline

◆ SaveBackBuffer()

bool CRhinoDisplayPipeline::SaveBackBuffer ( )

Description: Saves the current backbuffer to something that can later be retrieved with the RestoreBackBuffer function. Remarks: This does not necessarily save the buffer to m_pFrameBuffer. The OpenGL implementation may attempt to save the buffer to a texture on the card.

Returns: true or false indicating success/failure

◆ SaveDepthBuffer()

bool CRhinoDisplayPipeline::SaveDepthBuffer ( )

◆ SelectionMap()

bool CRhinoDisplayPipeline::SelectionMap ( ) const

Returns true if this pipeline is currently being used to create a selection map (typically for Drag and Drop operations)

◆ SetCachedAttributesValid()

void CRhinoDisplayPipeline::SetCachedAttributesValid ( bool  valid)
protected

◆ SetCamera()

bool CRhinoDisplayPipeline::SetCamera ( const ON_Viewport )
protected

Description: Sets the camera frustum that this pipeline uses. Parameters: ON_Viewport: [in] the viewport settings that this pipeline will use as its camera Returns: true if a valid viewport was successfully assigned to this pipeline.

◆ SetCapture()

void CRhinoDisplayPipeline::SetCapture ( bool  bEnable = true)

Description: Tells the pipeline that it needs to copy the frame buffer contents to the pipeline managed frame buffer DIB at the end of drawing the current frame

◆ SetCurveThickness()

int CRhinoDisplayPipeline::SetCurveThickness ( int  )

◆ SetCustomDrawList()

void CRhinoDisplayPipeline::SetCustomDrawList ( const ObjectArray custom_list)

Description: Used to draw a set of objects other than the standard objects in a RhinoDocument. If a custom draw list exists in this pipeline, only the objects in this list will be drawn

If you want to remove the custom draw list from this pipeline, pass an empty list to this function

◆ SetDepthMode()

void CRhinoDisplayPipeline::SetDepthMode ( EDepthMode  )

◆ SetDesiredFrameRate()

bool CRhinoDisplayPipeline::SetDesiredFrameRate ( double  )

◆ SetDisplayMode()

bool CRhinoDisplayPipeline::SetDisplayMode ( const ON_UUID )

◆ SetDpiScale()

void CRhinoDisplayPipeline::SetDpiScale ( float  scale)

◆ SetDrawChannelsOverride()

PFDRAWOVERRIDEPROC CRhinoDisplayPipeline::SetDrawChannelsOverride ( PFDRAWOVERRIDEPROC  )

◆ SetFrameSize()

void CRhinoDisplayPipeline::SetFrameSize ( int  nWidth,
int  nHeight 
)

Description: Set the viewport size for this pipeline. This function does affect the CRhinoViewport that this pipeline uses.

◆ SetGeometrySource()

CRhinoDoc* CRhinoDisplayPipeline::SetGeometrySource ( CRhinoDoc pDoc)

Description: Sets a document that the pipeline uses to get geometry information from when drawing. Typically the pipeline will use RhinoApp().ObsoleteActiveDoc()

◆ SetInfiniteDepth()

bool CRhinoDisplayPipeline::SetInfiniteDepth ( bool  bInfiniteDepth)

Parameters: bInfiniteDepth - [in] desire setting for m_pDisplayAttrs->m_bInfiniteDepth Returns: Previous value of m_pDisplayAttrs->m_bInfiniteDepth

◆ SetInstanceDefinitionTransform()

void CRhinoDisplayPipeline::SetInstanceDefinitionTransform ( const ON_Xform xform)

Description: Set the instance definition transformation that is applied to blocks being drawn.

◆ SetLevelOfDetail()

bool CRhinoDisplayPipeline::SetLevelOfDetail ( UINT  nLOD)

Description: Called by the pipeline framework when ever the "current" single frame rate is greater than the "desired" frame rate. Note: An internal counter is maintained and incremented every time current rate > desired rate...then passed into this routine...

◆ SetLinePattern()

UINT CRhinoDisplayPipeline::SetLinePattern ( UINT  )

◆ SetModelTransform()

void CRhinoDisplayPipeline::SetModelTransform ( const ON_Xform xform)

Description: Set the model transformation that is applied to geometry being drawn. This includes both the dynamic transform and a potential instance definition transform.

◆ SetObjectColor()

ON_Color CRhinoDisplayPipeline::SetObjectColor ( const ON_Color color)

◆ SetObjectTransform()

bool CRhinoDisplayPipeline::SetObjectTransform ( int  index,
const ON_Xform xform 
)

Description: Sets a model space transformation on an object in the display list at index Returns: true on success

◆ SetPrintingMode()

void CRhinoDisplayPipeline::SetPrintingMode ( bool  bPrinting)

Description: Set this to true to inform the pipeline that the purpose of drawing future frames is for printing.

◆ SetRedraw()

void CRhinoDisplayPipeline::SetRedraw ( bool  enable)

Description: Sets a flag in the pipeline to tell it that it needs to redraw itself. During the drawing of a frame, the pipeline may decide that it needs to run through the frame buffer drawing code again and does this by setting the redraw flag in the pipeline.

If you want to tell a pipeline to redraw outside the scope of drawing a frame, call CRhinoView::Redraw or CRhinoDoc::Redraw

◆ SetRenderTarget() [1/2]

bool CRhinoDisplayPipeline::SetRenderTarget ( CRhinoView )

Description: Set a view/window/DC as the target-destination for rendering. Returns: Always returns true

◆ SetRenderTarget() [2/2]

bool CRhinoDisplayPipeline::SetRenderTarget ( HDC  pDC)

◆ SetShadingRequired()

void CRhinoDisplayPipeline::SetShadingRequired ( bool  bRequired = true)

Description: The "ShadingRequired" 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.

◆ SetStereoMode()

bool CRhinoDisplayPipeline::SetStereoMode ( bool  bStereo)

Description: Turn on/off stereo mode for the pipeline Returns: true on success false if you are attempting to turn on stereo mode for an engine that does not support stereo drawing

◆ SetStereoParallax()

void CRhinoDisplayPipeline::SetStereoParallax ( float  fPar)

◆ SetStereoSeparation()

void CRhinoDisplayPipeline::SetStereoSeparation ( float  fSep)

◆ SetTiledFrameInfo()

void CRhinoDisplayPipeline::SetTiledFrameInfo ( const ON_2iSize fullSize,
const ON_4iRect currentTile 
)

◆ SetupDisplayMaterial() [1/3]

bool CRhinoDisplayPipeline::SetupDisplayMaterial ( CDisplayPipelineMaterial ,
COLORREF   
) const

Description:

◆ SetupDisplayMaterial() [2/3]

bool CRhinoDisplayPipeline::SetupDisplayMaterial ( CDisplayPipelineMaterial ,
const CRhinoDoc ,
const CRhinoObject ,
const CRhinoObjectAttributes = nullptr,
const ON_Xform pOptionalBlockXform = nullptr 
) const

◆ SetupDisplayMaterial() [3/3]

bool CRhinoDisplayPipeline::SetupDisplayMaterial ( CDisplayPipelineMaterial ,
const CRhinoObject ,
const CRhinoObjectAttributes = nullptr,
const ON_Xform pOptionalBlockXform = nullptr 
) const

◆ SetupFrustum()

virtual bool CRhinoDisplayPipeline::SetupFrustum ( const ClippingInfo )
virtual

◆ SetupLighting()

virtual bool CRhinoDisplayPipeline::SetupLighting ( )
virtual

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ SetUseImageBasedLighting()

void CRhinoDisplayPipeline::SetUseImageBasedLighting ( bool  b)

◆ SetZBiasMode()

void CRhinoDisplayPipeline::SetZBiasMode ( int  )

◆ ShadingRequired()

bool CRhinoDisplayPipeline::ShadingRequired ( ) const

Description: If the pipeline is currently not using a render engine that supports shading and during the drawing of a frame it is determined that something needs to be shaded, this flag is set to inform the redraw mechanism that it should redraw and attempt to switch to a pipeline/engine that supports shading

◆ ShowFrameBuffer()

virtual bool CRhinoDisplayPipeline::ShowFrameBuffer ( HDC  hDC)
virtual

Reimplemented in CRhinoDisplayPipeline_OGL.

◆ SilhouetteAttrIsOn()

bool CRhinoDisplayPipeline::SilhouetteAttrIsOn ( void  ) const

◆ SortBucket()

void CRhinoDisplayPipeline::SortBucket ( DisplayBucket ,
ObjectSortFunc   
)
protected

◆ SortHighlightedObjects()

void CRhinoDisplayPipeline::SortHighlightedObjects ( ObjectSortFunc  = nullptr)
protected

◆ SortHighlightedSubWires()

void CRhinoDisplayPipeline::SortHighlightedSubWires ( ObjectSortFunc  = nullptr)
protected

◆ SortHighlightedSurfaces()

void CRhinoDisplayPipeline::SortHighlightedSurfaces ( ObjectSortFunc  = nullptr)
protected

◆ SortHighlightedTextDots()

void CRhinoDisplayPipeline::SortHighlightedTextDots ( ObjectSortFunc  = nullptr)
protected

◆ SortLockedObjects()

void CRhinoDisplayPipeline::SortLockedObjects ( ObjectSortFunc  = nullptr)
protected

◆ SortLockedSurfaces()

void CRhinoDisplayPipeline::SortLockedSurfaces ( ObjectSortFunc  = nullptr)
protected

object sorting...

◆ SortLockedTextDots()

void CRhinoDisplayPipeline::SortLockedTextDots ( ObjectSortFunc  = nullptr)
protected

◆ SortNormalObjects()

void CRhinoDisplayPipeline::SortNormalObjects ( ObjectSortFunc  = nullptr)
protected

◆ SortNormalSurfaces()

void CRhinoDisplayPipeline::SortNormalSurfaces ( ObjectSortFunc  = nullptr)
protected

◆ SortNormalTextDots()

void CRhinoDisplayPipeline::SortNormalTextDots ( ObjectSortFunc  = nullptr)
protected

◆ SortTransparentObjects()

void CRhinoDisplayPipeline::SortTransparentObjects ( ObjectSortFunc  = nullptr)
protected

◆ SupportsShading()

bool CRhinoDisplayPipeline::SupportsShading ( ) const

◆ SupportsTiling()

bool CRhinoDisplayPipeline::SupportsTiling ( ) const

Description: If the pipeline should render larger-than-screen images by tiling, then this function will return true. the current logic looks to see if the display attributes RealtimeDisplayId is ON_nil_uuid. Other implementations are possible.

◆ TechDrawingHiddenLines()

bool CRhinoDisplayPipeline::TechDrawingHiddenLines ( void  ) const

◆ TechPreProcessingObjects()

bool CRhinoDisplayPipeline::TechPreProcessingObjects ( void  ) const

◆ UpdateClippingFrustum()

void CRhinoDisplayPipeline::UpdateClippingFrustum ( )

◆ UpdateClippingSections() [1/2]

void CRhinoDisplayPipeline::UpdateClippingSections ( const CRhinoObject )
protected

◆ UpdateClippingSections() [2/2]

bool CRhinoDisplayPipeline::UpdateClippingSections ( int  )
protected

◆ UpdateFrameBufferObjects()

void CRhinoDisplayPipeline::UpdateFrameBufferObjects ( )
protected

◆ UpdateObjectLists()

bool CRhinoDisplayPipeline::UpdateObjectLists ( )
protected

◆ UpdateOverlayBufferObject()

void CRhinoDisplayPipeline::UpdateOverlayBufferObject ( const CRhinoObject ,
bool  ,
int   
)
protected

◆ UseImageBasedLighting()

bool CRhinoDisplayPipeline::UseImageBasedLighting ( ) const

◆ ViewInDynamicDisplay()

bool CRhinoDisplayPipeline::ViewInDynamicDisplay ( )

Description: 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. Returns: true if the current frame drawing is for a dynamic display viewport state.

◆ VP()

ON_Viewport& CRhinoDisplayPipeline::VP ( ) const

Returns: The viewport that this pipeline uses to define projection information when drawing

◆ ZBiasMode()

int CRhinoDisplayPipeline::ZBiasMode ( ) const

◆ ZBufferCapture()

bool CRhinoDisplayPipeline::ZBufferCapture ( ) const

Returns true if this pipeline is currently being used to create a z buffer map.

Friends And Related Function Documentation

◆ CDisplayPipelineDrawList

friend class CDisplayPipelineDrawList
friend

◆ CPipelineMeshingThread

friend class CPipelineMeshingThread
friend

◆ CRhDisplayEnginePrivate

friend class CRhDisplayEnginePrivate
friend

◆ CRhDisplayEnginePrivate_Metal

friend class CRhDisplayEnginePrivate_Metal
friend

◆ CRhDisplayEnginePrivate_OGL

friend class CRhDisplayEnginePrivate_OGL
friend

◆ CRhDisplayPipelinePrivate

friend class CRhDisplayPipelinePrivate
friend

◆ CRhGLSLRenderer

friend class CRhGLSLRenderer
friend

◆ CRhinoDetailViewObject

friend class CRhinoDetailViewObject
friend

◆ CRhinoDisplayConduit

friend class CRhinoDisplayConduit
friend

◆ CRhinoDisplayEngine

friend class CRhinoDisplayEngine
friend

◆ CRhinoDisplayPipelineRef

friend class CRhinoDisplayPipelineRef
friend

◆ CRhinoInstanceObject

friend class CRhinoInstanceObject
friend

◆ CRhinoViewport

friend class CRhinoViewport
friend

◆ CRhPerFrameCache

friend class CRhPerFrameCache
friend

◆ DrawChannelsOverride

bool DrawChannelsOverride ( CRhinoDisplayPipeline dp)
friend

Member Data Documentation

◆ AppearanceSettings

const CRhinoAppAppearanceSettings& CRhinoDisplayPipeline::AppearanceSettings
protected

◆ AppSettings

const CRhinoAppSettings& CRhinoDisplayPipeline::AppSettings
protected

◆ CRhinoObject

friend CRhinoDisplayPipeline::CRhinoObject
protected

◆ m_bBuildObjectLists

bool CRhinoDisplayPipeline::m_bBuildObjectLists
protected

◆ m_bCaptureFrameBuffer

bool CRhinoDisplayPipeline::m_bCaptureFrameBuffer

◆ m_bDrawGrayScale

bool CRhinoDisplayPipeline::m_bDrawGrayScale

◆ m_bDrawingGrips

bool CRhinoDisplayPipeline::m_bDrawingGrips
protected

◆ m_bDrawingSurfaces

bool CRhinoDisplayPipeline::m_bDrawingSurfaces
protected

◆ m_bDrawingWires

bool CRhinoDisplayPipeline::m_bDrawingWires
protected

◆ m_bEntireActiveInstanceVisible

bool CRhinoDisplayPipeline::m_bEntireActiveInstanceVisible

should only be true when inside instance drawing and the parent instance is entirely inside the view frustum

◆ m_bEnvironmentEnabled

bool CRhinoDisplayPipeline::m_bEnvironmentEnabled
protected

◆ m_bForceCompleteFrameUpdate

bool CRhinoDisplayPipeline::m_bForceCompleteFrameUpdate

Single pass, single frame flag indicating that all dynamic view update optimizations should be ignored...

◆ m_bForcedVisibility

bool CRhinoDisplayPipeline::m_bForcedVisibility

◆ m_bFreezeDrawing

bool CRhinoDisplayPipeline::m_bFreezeDrawing
protected

◆ m_bIgnoreLockedState

bool CRhinoDisplayPipeline::m_bIgnoreLockedState
protected

◆ m_bInOverlay

bool CRhinoDisplayPipeline::m_bInOverlay

◆ m_bInQuickDrawSurface

bool CRhinoDisplayPipeline::m_bInQuickDrawSurface = false
protected

◆ m_bInSelectionMask

bool CRhinoDisplayPipeline::m_bInSelectionMask
protected

◆ m_bInterrupted

bool CRhinoDisplayPipeline::m_bInterrupted

◆ m_bInZBufferCapture

bool CRhinoDisplayPipeline::m_bInZBufferCapture

◆ m_bIsOnScreenBuffer

bool CRhinoDisplayPipeline::m_bIsOnScreenBuffer
protected

◆ m_bIsPrinting

bool CRhinoDisplayPipeline::m_bIsPrinting
protected

◆ m_bNeedsCapture

bool CRhinoDisplayPipeline::m_bNeedsCapture
protected

◆ m_bPipelineOpened

bool CRhinoDisplayPipeline::m_bPipelineOpened

◆ m_bRedraw

bool CRhinoDisplayPipeline::m_bRedraw
protected

Pipeline attributes...

◆ m_bShadingRequired

bool CRhinoDisplayPipeline::m_bShadingRequired

◆ m_bSkipOrderedObjects

bool CRhinoDisplayPipeline::m_bSkipOrderedObjects

◆ m_bUseImageBasedLighting

bool CRhinoDisplayPipeline::m_bUseImageBasedLighting = false
protected

◆ m_Camera

ON_Viewport CRhinoDisplayPipeline::m_Camera

Set by DrawFramebuffer or SetCamera...

◆ m_Clipping

ClippingInfo CRhinoDisplayPipeline::m_Clipping

Bounding box of visible objects and near and far clipping planes

At the beginning of each frame, m_Clipping contains no information.

Bounding box of visible objects: In CRhinoDisplayPipeline::iCalcBoundingBox(), the active channel is set to SC_CALCBOUNDINGBOX and CRhinoDisplayPipeline::CalcBoundingBox() examines the document and sets m_Clipping.bbox. Then the conduits for the SC_CALCBOUNDINGBOX channel are called.have the opportunity to set ChannelAttributes::m_BoundingBox and ChannelAttributes::m_bUseExclusiveBBox. If conduits set ChannelAttributes::m_BoundingBox to a valid box, then it is unioned with m_Clipping.bbox (if m_bUseExclusiveBBox is false) or replaces m_Clipping.bbox (if m_bUseExclusiveBBox is true).

Clipping planes: After the m_Clipping.bbox is set, the near and far clipping planes are calculated in CRhinoDisplayPipeline::iCalcClippingPlanes().

the value of ChannelAttributes::m_bUseExclusiveBBox In CRhinoDisplayPipeline::iCalcClippingPlanes, m_Clipping is initialized and then the virtual function CRhinoDisplayPipeline::CalcClippingPlanes() is called. During the call, the near and far clipping planes can be adjusted as needed.

◆ m_CustomDrawList

ObjectArray CRhinoDisplayPipeline::m_CustomDrawList
protected

◆ m_dDesiredFrameRate

double CRhinoDisplayPipeline::m_dDesiredFrameRate

◆ m_DeferredDisplayMode

ON_UUID CRhinoDisplayPipeline::m_DeferredDisplayMode
protected

◆ m_DisplayAttrsStack

ON_ClassArray<CDisplayPipelineAttributes> CRhinoDisplayPipeline::m_DisplayAttrsStack
mutableprotected

◆ m_eDepthMode

EDepthMode CRhinoDisplayPipeline::m_eDepthMode
protected

◆ m_EnabledChannels

CSupportChannels CRhinoDisplayPipeline::m_EnabledChannels
protected

◆ m_eZBiasMode

EZBiasMode CRhinoDisplayPipeline::m_eZBiasMode
protected

◆ m_InterruptStack

ON_SimpleArray<DrawInterruptItem> CRhinoDisplayPipeline::m_InterruptStack
protected

◆ m_layout_tile

ON_4iRect CRhinoDisplayPipeline::m_layout_tile

Tiled position on high-res display.

◆ m_nAverageFrameRate

UINT CRhinoDisplayPipeline::m_nAverageFrameRate
protected

◆ m_nDegradeLevel

UINT CRhinoDisplayPipeline::m_nDegradeLevel

◆ m_nDesiredSingleFrameRate

UINT CRhinoDisplayPipeline::m_nDesiredSingleFrameRate
protected

◆ m_nDisplayHeight

int CRhinoDisplayPipeline::m_nDisplayHeight

◆ m_nDisplayWidth

int CRhinoDisplayPipeline::m_nDisplayWidth

◆ m_nest_level

int CRhinoDisplayPipeline::m_nest_level
protected

◆ m_nFrameCount

UINT CRhinoDisplayPipeline::m_nFrameCount
protected

◆ m_nFrameStartTime

UINT CRhinoDisplayPipeline::m_nFrameStartTime

◆ m_nFrameTimeEstimate

UINT CRhinoDisplayPipeline::m_nFrameTimeEstimate

◆ m_nInstanceNestLevel

int CRhinoDisplayPipeline::m_nInstanceNestLevel

◆ m_nLayoutHeight

int CRhinoDisplayPipeline::m_nLayoutHeight = -1

Height of high-res display (-1 if not in high-res operation)

◆ m_nLayoutWidth

int CRhinoDisplayPipeline::m_nLayoutWidth = -1

Width of high-res display (-1 if not in high-res operation)

The layout information is used when the pipeline is being sent to a high-resolution image (for printing or file save)

◆ m_nLOD

UINT CRhinoDisplayPipeline::m_nLOD

Level-Of-Detail...

◆ m_nOverlaySortIndex

int CRhinoDisplayPipeline::m_nOverlaySortIndex

◆ m_nPrevFrameRate

UINT CRhinoDisplayPipeline::m_nPrevFrameRate
protected

◆ m_nRenderPass

int CRhinoDisplayPipeline::m_nRenderPass
protected

◆ m_nSingleFrameRate

UINT CRhinoDisplayPipeline::m_nSingleFrameRate
protected

◆ m_ObjectColorStack

ON_SimpleArray<ON_Color> CRhinoDisplayPipeline::m_ObjectColorStack
mutableprotected

◆ m_ObjectMapList

ObjectArray CRhinoDisplayPipeline::m_ObjectMapList
protected

◆ m_pChannelAttrs

CChannelAttributes* CRhinoDisplayPipeline::m_pChannelAttrs
mutable

◆ m_pCurrentDetailObject

const class CRhinoDetailViewObject* CRhinoDisplayPipeline::m_pCurrentDetailObject = nullptr
protected

◆ m_pDC

HDC CRhinoDisplayPipeline::m_pDC
protected

These are mutually exclusive...

◆ m_pDisplayAttrs

CDisplayPipelineAttributes* CRhinoDisplayPipeline::m_pDisplayAttrs
mutable

◆ m_pDoc

CRhinoDoc* CRhinoDisplayPipeline::m_pDoc

Always set = to RhinoApp().ObsoleteActiveDoc() when pipeline is opened...

◆ m_pDrawList

class CDisplayPipelineDrawList* CRhinoDisplayPipeline::m_pDrawList
protected

points to m_pFBDrawList or m_pOBDrawList

◆ m_pEngine

CRhinoDisplayEngine* CRhinoDisplayPipeline::m_pEngine
protected

◆ m_pFBDrawList

class CDisplayPipelineDrawList* CRhinoDisplayPipeline::m_pFBDrawList
protected

"frame buffer" draw list (main list all objects are in)

◆ m_pfDrawChannelsOverride

PFDRAWOVERRIDEPROC CRhinoDisplayPipeline::m_pfDrawChannelsOverride
protected

◆ m_pFrameBuffer

CRhinoDib* CRhinoDisplayPipeline::m_pFrameBuffer

Buffer containing final rendered image...

◆ m_pOBDrawList

class CDisplayPipelineDrawList* CRhinoDisplayPipeline::m_pOBDrawList
protected

"overlay buffer" draw list (populated iDrawOverlays)

◆ m_pOffscreenBuffer

CRhinoDib* CRhinoDisplayPipeline::m_pOffscreenBuffer

Buffer used to render frames offscreen...

◆ m_pPerFrameCache

class CRhPerFrameCache* CRhinoDisplayPipeline::m_pPerFrameCache = nullptr
protected

◆ m_pRenderMeshes

ON_SimpleArray<class CDisplayMeshingObject>* CRhinoDisplayPipeline::m_pRenderMeshes
protected

◆ m_private

class CRhDisplayPipelinePrivate* CRhinoDisplayPipeline::m_private = nullptr
protected

◆ m_ProjectionStack

ON_ClassArray<ON_Viewport> CRhinoDisplayPipeline::m_ProjectionStack
mutableprotected

◆ m_pSelectionMap

CRhinoDib* CRhinoDisplayPipeline::m_pSelectionMap
protected

◆ m_pSortThis

CRhinoDisplayPipeline* CRhinoDisplayPipeline::m_pSortThis
staticprotected

sorting and comparing routines...

◆ m_pWnd

class CWnd* CRhinoDisplayPipeline::m_pWnd
protected

Different types of render targets...

◆ m_SavedClipping

ClippingInfo CRhinoDisplayPipeline::m_SavedClipping

m_SavedClipping is used internally. Never modify the contents of m_SavedClipping.