Rhino C++ API
8.10
|
#include <RhinoSdkDisplayPipeline.h>
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 } |
![]() | |
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 CRhinoObject * | ActiveTopLevelObject () 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 CChannelAttributes * | ChannelAttrs () const |
unsigned int | ClonedFrom () const |
virtual void | CloneFrom (const CRhinoDisplayPipeline &) |
CRhinoDisplayPipeline * | ClonePipeline (CRhinoViewport &) |
CRhinoDisplayPipeline * | ClonePipeline (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_UUID & | DeferredDisplayMode () const |
EDepthMode | DepthMode () const |
void | DisableChannel (UINT) |
void | DisableClippingPlanes () |
const CDisplayPipelineAttributes * | DisplayAttrs () 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 | DrawingLockedObjects (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... | |
CRhinoDisplayEngine * | Engine (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 CRhinoDoc * | GeometrySource () 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 CRhinoObject * | GetObject (int index) const |
const CRhinoObject * | GetObjectAt (int X, int Y) |
const CRhinoObject * | GetObjectAt (int X, int Y, ON_COMPONENT_INDEX &ci) |
int | GetObjectCount () const |
const CDisplayPipelineAttributes * | GetObjectDisplayAttrs (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_Xform * | GetObjectTransform (int index) const |
CRhinoView * | GetRhinoView () const |
CRhinoViewport * | GetRhinoVP () const |
CRhinoDib * | GetSelectionMap () |
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 ¤tTile) 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_Linetype * | HiddenLineType (void) const |
void | IgnoreLockedState (bool) |
const class CRhinoDetailViewObject * | InDetailViewDraw () 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_Xform & | InstanceDefinitionTransform () 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_Xform & | ModelTransform () 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::DisplayMode > | RealtimeDisplayMode () 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) |
CRhinoDoc * | SetGeometrySource (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 ¤tTile) |
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_Viewport & | VP () const |
int | ZBiasMode () const |
bool | ZBufferCapture () const |
Returns true if this pipeline is currently being used to create a z buffer map. More... | |
![]() | |
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_UserData * | FirstUserData () const |
virtual unsigned int | GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const |
class ON_UserData * | GetUserData (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_Object & | operator= (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 CRhinoDisplayPipeline * | CreateDefaultPipeline () |
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 CRhinoDisplayPipeline * | FromRuntimeSerialNumber (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 () |
Protected Types | |
typedef int(* | ObjectSortFunc) (const int *, const 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) |
Static Protected Attributes | |
static CRhinoDisplayPipeline * | m_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) |
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.
|
protected |
|
strong |
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::CRhinoDisplayPipeline | ( | CRhinoDoc * | pDoc | ) |
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
|
virtual |
int CRhinoDisplayPipeline::ActiveObjectIndex | ( | ) | const |
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"
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
const CRhinoObject* CRhinoDisplayPipeline::ActiveTopLevelObject | ( | ) | const |
|
protected |
|
protected |
(default should be false) Force the object to get drawn idependent of state...
bColorOverride | (default should be false) Override object's color using the display attrs... |
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
|
protected |
|
protected |
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...
|
protected |
|
protected |
|
virtual |
|
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.
bool CRhinoDisplayPipeline::CanSaveDepthBuffer | ( | ) |
bool CRhinoDisplayPipeline::CaptureFrameBuffer | ( | bool | bForce = false | ) |
const CChannelAttributes* CRhinoDisplayPipeline::ChannelAttrs | ( | ) | const |
Returns: This pipeline's channel attributes currently being used by the "active" channel.
|
protected |
|
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
|
inline |
This function will return 0 if the pipeline was not cloned, otherwise, the original pipeline serial number will be returned here.
|
virtual |
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.
CRhinoDisplayPipeline* CRhinoDisplayPipeline::ClonePipeline | ( | CRhinoViewport & | , |
HDC | |||
) |
bool CRhinoDisplayPipeline::ClosePipeline | ( | ) |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
protected |
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.
bool CRhinoDisplayPipeline::CopyBackBufferTo | ( | CRhinoDib & | ) |
bool CRhinoDisplayPipeline::CopyBackBufferTo | ( | HDC | ) |
void CRhinoDisplayPipeline::CopyBindingsFrom | ( | const CRhinoDisplayPipeline & | ) |
bool CRhinoDisplayPipeline::CopyDepthBufferTo | ( | CRhinoDib & | , |
bool | bConvertToImage = false , |
||
bool | bInvertDepthValues = false , |
||
CRhinoDib * | pBackgroundImage = nullptr |
||
) |
bool CRhinoDisplayPipeline::CopyDepthToBackBuffer | ( | ) |
bool CRhinoDisplayPipeline::CopyFrameBufferTo | ( | CRhinoDib & | ) |
bool CRhinoDisplayPipeline::CopyFrameBufferTo | ( | HDC | ) |
bool CRhinoDisplayPipeline::CopyToBackBuffer | ( | const CRhinoDib & | ) |
bool CRhinoDisplayPipeline::CopyToFrameBuffer | ( | const CRhinoDib & | ) |
|
static |
|
protected |
Wrapper functions for creating engines with specified projection and render target.
|
protected |
|
protected |
|
protected |
Frame buffer creation and manipulation routines...
called inside of OpenPipeline()...
|
protected |
so that derived pipelines can setup/change things before drawing starts...
bool CRhinoDisplayPipeline::CreateSelectionMap | ( | ObjectArray * | = nullptr , |
CDisplayPipelineAttributes * | = nullptr , |
||
HRGN | = nullptr |
||
) |
const ON_UUID& CRhinoDisplayPipeline::DeferredDisplayMode | ( | ) | const |
Returns: Display mode ID for a display mode that needs to be set after drawing completes...
EDepthMode CRhinoDisplayPipeline::DepthMode | ( | ) | const |
|
protected |
void CRhinoDisplayPipeline::DisableChannel | ( | UINT | ) |
void CRhinoDisplayPipeline::DisableClippingPlanes | ( | ) |
const CDisplayPipelineAttributes* CRhinoDisplayPipeline::DisplayAttrs | ( | ) | const |
Returns: The current display pipeline attributes used by the pipeline to define how objects are drawn
|
protected |
|
protected |
|
protected |
|
protected |
float CRhinoDisplayPipeline::DpiScale | ( | ) | const |
void CRhinoDisplayPipeline::Draw2dLine | ( | const ON_2iPoint & | , |
const ON_2iPoint & | , | ||
HPEN | , | ||
bool | = true |
||
) |
void CRhinoDisplayPipeline::Draw2dLine | ( | float | x0, |
float | y0, | ||
float | x1, | ||
float | y1, | ||
ON_Color | strokeColor, | ||
float | strokeWidth, | ||
RhinoDashStyle | style, | ||
bool | xormode | ||
) |
void CRhinoDisplayPipeline::Draw2dLine | ( | int | x0, |
int | y0, | ||
int | x1, | ||
int | y1, | ||
ON_Color | strokeColor, | ||
float | strokeWidth, | ||
RhinoDashStyle | style, | ||
bool | xormode | ||
) |
void CRhinoDisplayPipeline::Draw2dRectangle | ( | const ON_4iRect & | rect, |
HPEN | , | ||
bool | = true |
||
) |
void CRhinoDisplayPipeline::Draw2dRectangle | ( | float | x0, |
float | y0, | ||
float | x1, | ||
float | y1, | ||
ON_Color | strokeColor, | ||
float | strokeWidth, | ||
RhinoDashStyle | style, | ||
bool | xormode | ||
) |
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.
void CRhinoDisplayPipeline::DrawActivePoint | ( | const ON_3dPoint & | ) |
void CRhinoDisplayPipeline::DrawAnnotation | ( | ON_Annotation & | annotation, |
double | dimscale, | ||
ON_DimStyle & | dimstyle, | ||
ON_Color | color, | ||
void * | updater, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawAnnotation | ( | ON_Annotation & | annotation, |
ON_Color | color, | ||
void * | updater, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawAnnotationArrowhead | ( | const ON_Arrowhead & | arrowhead, |
ON_Xform | xform, | ||
ON_Color | color, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawArc | ( | const ON_Arc & | ) |
void CRhinoDisplayPipeline::DrawArc | ( | const ON_Arc & | , |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_GDI, and CRhinoDisplayPipeline_OGL.
|
protected |
void CRhinoDisplayPipeline::DrawBezier | ( | const ON_BezierCurve & | bezier_curve | ) |
void CRhinoDisplayPipeline::DrawBezier | ( | int | dim, |
BOOL32 | bRational, | ||
int | order, | ||
int | cv_stride, | ||
const double * | cv4d | ||
) |
cv_stride | number of doubles between CVs (>=3) |
cv4d | 4d homogeneous world coordinate CVs |
void CRhinoDisplayPipeline::DrawBezier | ( | int | order, |
const ON_3dPoint * | cv | ||
) |
3d world coordinate CVs
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
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
void CRhinoDisplayPipeline::DrawBitmap | ( | const CRhinoDib & | , |
int | nX, | ||
int | nY | ||
) |
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
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
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
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.
void CRhinoDisplayPipeline::DrawCircle | ( | const ON_Circle & | ) |
void CRhinoDisplayPipeline::DrawCircle | ( | const ON_Circle & | , |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
|
protected |
void CRhinoDisplayPipeline::DrawCone | ( | const ON_Cone & | cone | ) |
Description: Draw a wireframe cone. Parameters: cone - [in]
void CRhinoDisplayPipeline::DrawCone | ( | const ON_Cone & | cone, |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
void CRhinoDisplayPipeline::DrawConstructionPlane | ( | bool | depthBuffered, |
int | transparencyLevel | ||
) |
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 |
||
) |
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]
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
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.
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
|
protected |
void CRhinoDisplayPipeline::DrawCylinder | ( | const ON_Cylinder & | cylinder | ) |
Description: Draw a wireframe cylinder. Parameters: cylinder - [in]
void CRhinoDisplayPipeline::DrawCylinder | ( | const ON_Cylinder & | cylinder, |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
|
protected |
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.
void CRhinoDisplayPipeline::DrawDocumentCustomRenderMeshes | ( | ) |
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 |
||
) |
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 |
||
) |
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.
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 |
||
) |
void CRhinoDisplayPipeline::DrawDottedLine | ( | const ON_3dPoint & | , |
const ON_3dPoint & | |||
) |
bool CRhinoDisplayPipeline::DrawDynamicOverlays | ( | ) |
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.
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.
void CRhinoDisplayPipeline::DrawExtrusion | ( | const ON_Extrusion & | extrusion, |
const ON_Color & | wireColor, | ||
int | wireDensity, | ||
bool | edgeAnalysis, | ||
const class CRhDisplayPenPrivate * | pen, | ||
CRhinoCacheHandle * | cache | ||
) |
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.
void CRhinoDisplayPipeline::DrawFace | ( | const CRhinoObject * | pObject, |
int | face, | ||
const CDisplayPipelineAttributes * | = nullptr |
||
) |
void CRhinoDisplayPipeline::DrawFaces | ( | const CRhinoObject * | pObject, |
const ON_SimpleArray< int > & | faces, | ||
const CDisplayPipelineAttributes * | = nullptr |
||
) |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_GDI, and CRhinoDisplayPipeline_OGL.
bool CRhinoDisplayPipeline::DrawFrameBuffer | ( | const CDisplayPipelineAttributes & | attribs, |
const ON_Viewport & | , | ||
bool | updateContents, | ||
bool | drawFeedback = true , |
||
UINT | enabledConduits = CSupportChannels() |
||
) |
Pipeline overridable phases...
|
protected |
Low level object drawing routines...
|
protected |
High level object drawing routines...
|
protected |
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);
void CRhinoDisplayPipeline::DrawHatch | ( | const ON_Hatch & | hatch, |
float | strokeWidth, | ||
const ON_Color & | hatchColor, | ||
ON_Color | boundaryColor, | ||
CRhinoCacheHandle * | cache | ||
) |
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 | ||
) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
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
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.
bool CRhinoDisplayPipeline::DrawingGrips | ( | ) | const |
Returns: true if the pipeline is currently in a grip drawing operation
bool CRhinoDisplayPipeline::DrawingHighlightedObjects | ( | void | ) | const |
bool CRhinoDisplayPipeline::DrawingLockedObjects | ( | void | ) | const |
bool CRhinoDisplayPipeline::DrawingSurfaces | ( | ) | const |
Returns: true if the pipeline is currently in a surface drawing operation
bool CRhinoDisplayPipeline::DrawingWires | ( | ) | const |
Returns: true if the pipeline is currently in a curve drawing operation
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
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 | ||
) |
|
protected |
|
protected |
Mid level object drawing routines...
|
protected |
|
protected |
|
protected |
void CRhinoDisplayPipeline::DrawMesh | ( | const ON_Mesh & | mesh, |
bool | wires, | ||
bool | shaded, | ||
CRhinoCacheHandle * | cache | ||
) |
Draw a mesh based on the current state of display attributes.
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 | ||
) |
void CRhinoDisplayPipeline::DrawMeshes | ( | const ON_Mesh ** | meshes, |
int | count, | ||
bool | wires, | ||
bool | shaded, | ||
CRhinoCacheHandle * | cache | ||
) |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_GDI, and CRhinoDisplayPipeline_OGL.
bool CRhinoDisplayPipeline::DrawNestedFrame | ( | CDisplayPipelineAttributes * | da, |
CChannelAttributes * | ca, | ||
CSupportChannels | channels, | ||
int | nest_level, | ||
bool | activeViewport | ||
) |
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.
|
protected |
|
protected |
|
protected |
|
protected |
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
void CRhinoDisplayPipeline::DrawNurbsCurve | ( | const ON_NurbsCurve & | nurbs_curve | ) |
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
void CRhinoDisplayPipeline::DrawObject | ( | const CRhinoInstanceDefinition * | , |
const ON_Xform * | = nullptr |
||
) |
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.
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);
|
protected |
|
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()
void CRhinoDisplayPipeline::DrawObjects | ( | const ObjectArray & | , |
const ON_Xform * | = nullptr |
||
) |
void CRhinoDisplayPipeline::DrawObjects | ( | const ON_SimpleArray< CRhinoObject * > & | , |
const ON_Xform * | = nullptr |
||
) |
|
protected |
|
protected |
|
virtual |
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
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 | ||
) |
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
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.
void CRhinoDisplayPipeline::DrawPointCloud | ( | const ON_PointCloud & | cloud, |
float | pixelSize, | ||
ERhinoPointStyle | pointStyle, | ||
ON_Color | colorOverride, | ||
int | indexCount, | ||
const unsigned int * | indices, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawPointCloud | ( | const ON_PointCloud & | cloud, |
float | size, | ||
bool | sizeInWorld, | ||
ERhinoPointStyle | pointStyle, | ||
ON_Color | colorOverride, | ||
int | indexCount, | ||
const unsigned int * | indices, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawPointCloud | ( | int | pointCount, |
const ON_3dPoint * | points, | ||
ON_Color | color = ON_Color::UnsetColor |
||
) |
|
protected |
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 | ||
) |
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
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
void CRhinoDisplayPipeline::DrawRenderedMesh | ( | const ON_Mesh * | mesh, |
const CRhinoMaterial & | render_material, | ||
bool | bHighlighted | ||
) |
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
void CRhinoDisplayPipeline::DrawShadedBrep | ( | const ON_Brep * | brep, |
const CDisplayPipelineMaterial * | material, | ||
CRhinoCacheHandle * | cache | ||
) |
void CRhinoDisplayPipeline::DrawShadedBreps | ( | const ON_SimpleArray< ON_Brep * > & | breps, |
const CDisplayPipelineMaterial * | = nullptr |
||
) |
void CRhinoDisplayPipeline::DrawShadedMesh | ( | const ON_Mesh & | mesh, |
const CDisplayPipelineMaterial * | = nullptr |
||
) |
void CRhinoDisplayPipeline::DrawShadedMeshes | ( | const ON_Mesh *const * | meshes, |
int | count, | ||
const CDisplayPipelineMaterial * | material, | ||
CRhinoCacheHandle *const * | caches | ||
) |
void CRhinoDisplayPipeline::DrawShadedMeshes | ( | const ON_Mesh *const * | meshes, |
int | count, | ||
const CDisplayPipelineMaterial * | material, | ||
CRhinoCacheHandle *const * | caches, | ||
const ON_Xform *const * | transforms | ||
) |
bool CRhinoDisplayPipeline::DrawSilhouette | ( | const CRhinoObject * | , |
float | thickness = -1.0f , |
||
ON_Color | = ON_UNSET_COLOR , |
||
UINT | pattern = 0xFFFFFFFF |
||
) |
|
protected |
void CRhinoDisplayPipeline::DrawSphere | ( | const ON_Sphere & | sphere | ) |
Description: Draw a wireframe sphere. Parameters: sphere - [in]
void CRhinoDisplayPipeline::DrawSphere | ( | const ON_Sphere & | sphere, |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
void CRhinoDisplayPipeline::DrawString | ( | const ON_TextContent & | text, |
const ON_Xform & | textXform, | ||
ON_Color | color, | ||
CRhinoCacheHandle * | cache | ||
) |
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);
void CRhinoDisplayPipeline::DrawString | ( | const wchar_t * | string, |
const ON_3dPoint & | point, | ||
bool | bMiddle = false , |
||
int | height = 12 , |
||
const wchar_t * | fontface = L"Arial" |
||
) |
string | string to draw, can return a modified string |
point | definition point, either lower-left or middle |
bMiddle | true: middle justified, false: lower-left justified |
height | height in pixels |
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
string | string to draw, can return a modified string |
color | draw color |
point | definition point, either lower-left or middle |
bMiddle | TRUE: middle justified, FALSE: lower-left justified |
height | height in pixels |
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 | ||
) |
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
void CRhinoDisplayPipeline::DrawSubObject | ( | const CRhinoObject * | , |
ON_COMPONENT_INDEX | , | ||
const ON_Xform * | = nullptr |
||
) |
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
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.
|
protected |
|
protected |
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,
bool CRhinoDisplayPipeline::DrawToDib | ( | CRhinoDib & | dib, |
int | width, | ||
int | height, | ||
const CDisplayPipelineAttributes & | attrib | ||
) |
void CRhinoDisplayPipeline::DrawTorus | ( | const ON_Torus & | torus | ) |
Description: Draw a wireframe torus. Parameters: sphere - [in]
void CRhinoDisplayPipeline::DrawTorus | ( | const ON_Torus & | torus, |
ON_Color | Color, | ||
int | nThickness = 1 , |
||
UINT | nPattern = 0xFFFFFFFF |
||
) |
bool CRhinoDisplayPipeline::DrawTraceImage | ( | ) |
|
protected |
void CRhinoDisplayPipeline::DrawTriangle | ( | const ON_3dPoint & | p0, |
const ON_3dPoint & | p1, | ||
const ON_3dPoint & | p2 | ||
) |
void CRhinoDisplayPipeline::DrawTriangle | ( | const ON_3dPoint & | p0, |
const ON_3dPoint & | p1, | ||
const ON_3dPoint & | p2, | ||
ON_Color | color | ||
) |
void CRhinoDisplayPipeline::DrawTriangle | ( | const ON_3dPoint | corners[3] | ) |
void CRhinoDisplayPipeline::DrawTriangle | ( | const ON_3dPoint | corners[3], |
ON_Color | color | ||
) |
bool CRhinoDisplayPipeline::DrawWallpaper | ( | ) |
Pipeline OBJECTS drawing operations...
void CRhinoDisplayPipeline::DrawWireframeMesh | ( | const ON_Mesh & | mesh, |
const ON_Color & | color, | ||
CRhinoCacheHandle * | cache = nullptr |
||
) |
void CRhinoDisplayPipeline::DrawWireframeMeshes | ( | const ON_Mesh ** | meshes, |
int | count, | ||
const ON_Color & | color, | ||
CRhinoCacheHandle * | cache = nullptr |
||
) |
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.
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.
bool CRhinoDisplayPipeline::DynamicDisplayDowngradeEnabled | ( | ) | const |
Returns 'true' if display degradation is enabled, 'false' otherwise.
void CRhinoDisplayPipeline::EnableChannel | ( | UINT | ) |
bool CRhinoDisplayPipeline::EnableClippingPlanes | ( | bool | enable = true | ) |
void CRhinoDisplayPipeline::EnableColorWriting | ( | bool | = true | ) |
void CRhinoDisplayPipeline::EnableDepthTesting | ( | bool | = true | ) |
void CRhinoDisplayPipeline::EnableDepthWriting | ( | bool | = true | ) |
void CRhinoDisplayPipeline::EnableDrawGrayScale | ( | bool | = true | ) |
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.
bool CRhinoDisplayPipeline::EnableEnvironment | ( | bool | = true | ) |
|
static |
Description:
|
static |
Description:
STATIC Pipeline routines...
|
protected |
|
protected |
|
static |
Description: Turn on/off automatic mesh generation for surfaces in shaded display modes.
bool CRhinoDisplayPipeline::EnableShaders | ( | bool | = true | ) | const |
Shader specifics...
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
|
protectedvirtual |
Reimplemented in CRhinoDisplayPipeline_GDI, and CRhinoDisplayPipeline_OGL.
|
static |
Returns:
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
void CRhinoDisplayPipeline::FlushPipeline | ( | ) |
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).
|
static |
Returns:
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.
bool CRhinoDisplayPipeline::FreezeDrawing | ( | bool | ) |
|
static |
bool CRhinoDisplayPipeline::GeneratingSelectionMap | ( | void | ) | const |
const CRhinoDoc* CRhinoDisplayPipeline::GeometrySource | ( | ) | const |
Return the document that the pipeline uses to get geometry information from when drawing.
ConduitList CRhinoDisplayPipeline::GetBoundConduits | ( | ) |
Returns: List of display conduits bound to this pipeline
bool CRhinoDisplayPipeline::GetConduitViewExtents | ( | ON_BoundingBox & | ) |
Description: Gets the accumulated bounding box from all conduits that implement the SC_VIEWEXTENTS channel
bool CRhinoDisplayPipeline::GetDepthBuffer | ( | float * | zbuffer, |
int | left, | ||
int | top, | ||
int | width, | ||
int | height, | ||
float * | fmin = nullptr , |
||
float * | fmax = nullptr |
||
) |
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.
|
inline |
Description: Retrieve the estimated time that this frame drawing operation will complete. This is based off of previous frame drawing.
const ON_2iSize CRhinoDisplayPipeline::GetFrameSize | ( | ) | const |
Returns: The size of the framebuffer that this pipeline is drawing to
UINT CRhinoDisplayPipeline::GetFramesPerSecond | ( | ) | const |
Returns: The average frames per second interval for drawing with the current set of geometry
|
inline |
Description: Just calls the standard C++ clock function which retrieves the number of clock ticks that have elapsed since Rhino was launched
|
inline |
Description: Retrieve the amount of time that has elapsed since the current frame draw operation has begun
|
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
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()
const CRhinoObject* CRhinoDisplayPipeline::GetObjectAt | ( | int | X, |
int | Y | ||
) |
const CRhinoObject* CRhinoDisplayPipeline::GetObjectAt | ( | int | X, |
int | Y, | ||
ON_COMPONENT_INDEX & | ci | ||
) |
int CRhinoDisplayPipeline::GetObjectCount | ( | ) | const |
Description: Retrieve the number of CRhinoObjects that this pipeline iterates through and draws
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.
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"...
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)
|
protected |
CRhinoView* CRhinoDisplayPipeline::GetRhinoView | ( | ) | const |
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.
CRhinoDib* CRhinoDisplayPipeline::GetSelectionMap | ( | ) |
UINT CRhinoDisplayPipeline::GetSingleFrameRate | ( | ) | const |
Returns: The average amount of time required to draw a single frame
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"...
double CRhinoDisplayPipeline::GetStereoParallax | ( | ) | const |
double CRhinoDisplayPipeline::GetStereoSeparation | ( | ) | const |
void CRhinoDisplayPipeline::GetTiledFrameInfo | ( | ON_2iSize & | fullSize, |
ON_4iRect & | currentTile | ||
) | const |
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"...
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"...
HWND CRhinoDisplayPipeline::GetWnd | ( | ) | const |
Returns: The window that this pipeline is associated with.
const ON_Linetype* CRhinoDisplayPipeline::HiddenLineType | ( | void | ) | const |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
void CRhinoDisplayPipeline::IgnoreLockedState | ( | bool | ) |
|
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...
|
protected |
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
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)
bool CRhinoDisplayPipeline::InFeedbackMode | ( | bool | bIgnoreOverlay | ) | const |
bool CRhinoDisplayPipeline::InfiniteDepth | ( | ) | const |
Returns: Current value of m_pDisplayAttrs->m_bInfiniteDepth.
bool CRhinoDisplayPipeline::InHiddenLinePass | ( | void | ) | const |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_OGL.
|
protected |
|
protected |
|
protected |
|
protectedvirtual |
Called every time the pipeline is opened
Reimplemented in CRhinoDisplayPipeline_OGL.
|
protected |
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.
bool CRhinoDisplayPipeline::InQuickDrawSurface | ( | ) | const |
Returns: true if the pipeline is currently inside of QuickDrawSurface().
|
protected |
const ON_Xform& CRhinoDisplayPipeline::InstanceDefinitionTransform | ( | ) | const |
Returns: The current instance definition transformation. The same as ModelTransform() excluding the dynamic transform.
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
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
bool CRhinoDisplayPipeline::InViewCapture | ( | ) | const |
Returns: True if this pipeline is currently in a View Capture scenario...either to clipboard or file. False otherwise.
|
protected |
|
protected |
bool CRhinoDisplayPipeline::IsAccelerated | ( | ) | const |
Returns: True if this pipeline is using an engine that takes advantage of hardware acceleration
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
|
inline |
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.
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
|
protected |
|
protected |
bool CRhinoDisplayPipeline::IsPrinting | ( | ) | const |
Returns: True if this pipeline is currently drawing for printing purposes
|
protected |
|
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.
|
protected |
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.
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
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
|
protected |
|
static |
|
static |
|
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
|
static |
Returns: static state determining if pipelines should automatically generate meshes for surfaces when needed in shaded display modes
const ON_Xform& CRhinoDisplayPipeline::ModelTransform | ( | ) | const |
Returns: The current model transformation that is applied to vertices when drawing.
bool CRhinoDisplayPipeline::ModelTransformIsIdentity | ( | ) | const |
Added Oct 30, 07 - LW Returns the state of m_bModelXfromIsIdentity
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
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
|
protected |
|
virtual |
Notifier routines used to maintain synchronization between view, viewport, pipeline, and engine...Note: CRhinoDisplayEngine has equivalent versions of these routines...
|
virtual |
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.
ON_Color CRhinoDisplayPipeline::ObjectColor | ( | ) | const |
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)
bool CRhinoDisplayPipeline::ObjectsShouldDrawShadedMeshes | ( | ) | const |
bool CRhinoDisplayPipeline::ObjectsShouldDrawSilhouetteHightlights | ( | ) | const |
bool CRhinoDisplayPipeline::ObjectsShouldDrawWires | ( | ) | const |
bool CRhinoDisplayPipeline::OpenPipeline | ( | ) |
Fixed pipeline operations...
bool CRhinoDisplayPipeline::PipelineOpened | ( | ) | const |
void CRhinoDisplayPipeline::PopDepthTesting | ( | ) |
void CRhinoDisplayPipeline::PopDepthWriting | ( | ) |
|
protected |
|
protected |
void CRhinoDisplayPipeline::PopModelTransform | ( | ) |
Description: Remove the currently pushed model transform from the stack and restore the previously pushed transform (if any).
void CRhinoDisplayPipeline::PopObjectColor | ( | ) | const |
void CRhinoDisplayPipeline::PopProjection | ( | ) |
|
protected |
|
protected |
|
protectedvirtual |
|
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
|
protected |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_OGL.
|
protectedvirtual |
void CRhinoDisplayPipeline::PreDrawSetup | ( | ) |
void CRhinoDisplayPipeline::PreDrawSetup | ( | const DisplayBucket & | aDrawBucket | ) |
|
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
|
protected |
Helper function used to iterate through and process certain types of conduits...
|
protected |
|
protected |
void CRhinoDisplayPipeline::PushDepthTesting | ( | bool | ) |
void CRhinoDisplayPipeline::PushDepthWriting | ( | bool | ) |
|
protected |
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.
void CRhinoDisplayPipeline::PushObjectColor | ( | const ON_Color & | color | ) | const |
|
protected |
This is an expensive function call and should be rarely called during a frame draw.
void CRhinoDisplayPipeline::PushProjection | ( | const ON_Viewport & | ) |
|
protected |
|
protected |
|
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.
|
protected |
|
protected |
std::shared_ptr<RhRdk::Realtime::DisplayMode> CRhinoDisplayPipeline::RealtimeDisplayMode | ( | ) | const |
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
|
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
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.
|
protected |
|
protected |
dynamic clipping section display...
bool CRhinoDisplayPipeline::ResetLevelOfDetail | ( | ) |
bool CRhinoDisplayPipeline::RestoreBackBuffer | ( | ) |
bool CRhinoDisplayPipeline::RestoreDepthBuffer | ( | ) |
|
inline |
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
bool CRhinoDisplayPipeline::SaveDepthBuffer | ( | ) |
bool CRhinoDisplayPipeline::SelectionMap | ( | ) | const |
Returns true if this pipeline is currently being used to create a selection map (typically for Drag and Drop operations)
|
protected |
|
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.
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
int CRhinoDisplayPipeline::SetCurveThickness | ( | int | ) |
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
void CRhinoDisplayPipeline::SetDepthMode | ( | EDepthMode | ) |
bool CRhinoDisplayPipeline::SetDesiredFrameRate | ( | double | ) |
bool CRhinoDisplayPipeline::SetDisplayMode | ( | const ON_UUID & | ) |
void CRhinoDisplayPipeline::SetDpiScale | ( | float | scale | ) |
PFDRAWOVERRIDEPROC CRhinoDisplayPipeline::SetDrawChannelsOverride | ( | PFDRAWOVERRIDEPROC | ) |
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.
Description: Sets a document that the pipeline uses to get geometry information from when drawing. Typically the pipeline will use RhinoApp().ObsoleteActiveDoc()
bool CRhinoDisplayPipeline::SetInfiniteDepth | ( | bool | bInfiniteDepth | ) |
Parameters: bInfiniteDepth - [in] desire setting for m_pDisplayAttrs->m_bInfiniteDepth Returns: Previous value of m_pDisplayAttrs->m_bInfiniteDepth
void CRhinoDisplayPipeline::SetInstanceDefinitionTransform | ( | const ON_Xform & | xform | ) |
Description: Set the instance definition transformation that is applied to blocks being drawn.
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...
UINT CRhinoDisplayPipeline::SetLinePattern | ( | UINT | ) |
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.
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
void CRhinoDisplayPipeline::SetPrintingMode | ( | bool | bPrinting | ) |
Description: Set this to true to inform the pipeline that the purpose of drawing future frames is for printing.
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
bool CRhinoDisplayPipeline::SetRenderTarget | ( | CRhinoView & | ) |
Description: Set a view/window/DC as the target-destination for rendering. Returns: Always returns true
bool CRhinoDisplayPipeline::SetRenderTarget | ( | HDC | pDC | ) |
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.
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
void CRhinoDisplayPipeline::SetStereoParallax | ( | float | fPar | ) |
void CRhinoDisplayPipeline::SetStereoSeparation | ( | float | fSep | ) |
void CRhinoDisplayPipeline::SetTiledFrameInfo | ( | const ON_2iSize & | fullSize, |
const ON_4iRect & | currentTile | ||
) |
bool CRhinoDisplayPipeline::SetupDisplayMaterial | ( | CDisplayPipelineMaterial & | , |
COLORREF | |||
) | const |
Description:
bool CRhinoDisplayPipeline::SetupDisplayMaterial | ( | CDisplayPipelineMaterial & | , |
const CRhinoDoc * | , | ||
const CRhinoObject * | , | ||
const CRhinoObjectAttributes * | = nullptr , |
||
const ON_Xform * | pOptionalBlockXform = nullptr |
||
) | const |
bool CRhinoDisplayPipeline::SetupDisplayMaterial | ( | CDisplayPipelineMaterial & | , |
const CRhinoObject * | , | ||
const CRhinoObjectAttributes * | = nullptr , |
||
const ON_Xform * | pOptionalBlockXform = nullptr |
||
) | const |
|
virtual |
Reimplemented in CRhinoDisplayPipeline_OGL, and CRhinoDisplayPipeline_GDI.
|
virtual |
Reimplemented in CRhinoDisplayPipeline_OGL.
void CRhinoDisplayPipeline::SetUseImageBasedLighting | ( | bool | b | ) |
void CRhinoDisplayPipeline::SetZBiasMode | ( | int | ) |
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
|
virtual |
Reimplemented in CRhinoDisplayPipeline_OGL.
bool CRhinoDisplayPipeline::SilhouetteAttrIsOn | ( | void | ) | const |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
object sorting...
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::SupportsShading | ( | ) | const |
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.
bool CRhinoDisplayPipeline::TechDrawingHiddenLines | ( | void | ) | const |
bool CRhinoDisplayPipeline::TechPreProcessingObjects | ( | void | ) | const |
void CRhinoDisplayPipeline::UpdateClippingFrustum | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::UseImageBasedLighting | ( | ) | const |
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.
ON_Viewport& CRhinoDisplayPipeline::VP | ( | ) | const |
Returns: The viewport that this pipeline uses to define projection information when drawing
int CRhinoDisplayPipeline::ZBiasMode | ( | ) | const |
bool CRhinoDisplayPipeline::ZBufferCapture | ( | ) | const |
Returns true if this pipeline is currently being used to create a z buffer map.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::m_bCaptureFrameBuffer |
bool CRhinoDisplayPipeline::m_bDrawGrayScale |
|
protected |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::m_bEntireActiveInstanceVisible |
should only be true when inside instance drawing and the parent instance is entirely inside the view frustum
|
protected |
bool CRhinoDisplayPipeline::m_bForceCompleteFrameUpdate |
Single pass, single frame flag indicating that all dynamic view update optimizations should be ignored...
bool CRhinoDisplayPipeline::m_bForcedVisibility |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::m_bInOverlay |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::m_bInterrupted |
bool CRhinoDisplayPipeline::m_bInZBufferCapture |
|
protected |
|
protected |
|
protected |
bool CRhinoDisplayPipeline::m_bPipelineOpened |
|
protected |
Pipeline attributes...
bool CRhinoDisplayPipeline::m_bShadingRequired |
bool CRhinoDisplayPipeline::m_bSkipOrderedObjects |
|
protected |
ON_Viewport CRhinoDisplayPipeline::m_Camera |
Set by DrawFramebuffer or SetCamera...
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.
|
protected |
double CRhinoDisplayPipeline::m_dDesiredFrameRate |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
ON_4iRect CRhinoDisplayPipeline::m_layout_tile |
Tiled position on high-res display.
|
protected |
UINT CRhinoDisplayPipeline::m_nDegradeLevel |
|
protected |
int CRhinoDisplayPipeline::m_nDisplayHeight |
int CRhinoDisplayPipeline::m_nDisplayWidth |
|
protected |
|
protected |
UINT CRhinoDisplayPipeline::m_nFrameStartTime |
UINT CRhinoDisplayPipeline::m_nFrameTimeEstimate |
int CRhinoDisplayPipeline::m_nInstanceNestLevel |
int CRhinoDisplayPipeline::m_nLayoutHeight = -1 |
Height of high-res display (-1 if not in high-res operation)
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)
UINT CRhinoDisplayPipeline::m_nLOD |
Level-Of-Detail...
int CRhinoDisplayPipeline::m_nOverlaySortIndex |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
mutable |
|
protected |
|
protected |
These are mutually exclusive...
|
mutable |
CRhinoDoc* CRhinoDisplayPipeline::m_pDoc |
Always set = to RhinoApp().ObsoleteActiveDoc() when pipeline is opened...
|
protected |
points to m_pFBDrawList or m_pOBDrawList
|
protected |
|
protected |
"frame buffer" draw list (main list all objects are in)
|
protected |
CRhinoDib* CRhinoDisplayPipeline::m_pFrameBuffer |
Buffer containing final rendered image...
|
protected |
"overlay buffer" draw list (populated iDrawOverlays)
CRhinoDib* CRhinoDisplayPipeline::m_pOffscreenBuffer |
Buffer used to render frames offscreen...
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
staticprotected |
sorting and comparing routines...
|
protected |
Different types of render targets...
ClippingInfo CRhinoDisplayPipeline::m_SavedClipping |
m_SavedClipping is used internally. Never modify the contents of m_SavedClipping.