Rhino C++ API  8.14
Public Member Functions | Static Public Attributes | List of all members
CSupportChannels Struct Reference

#include <RhinoSdkDisplayConduit.h>

Public Member Functions

 CSupportChannels (UINT channels=CHANNELS_SUPPORTED)
 
 operator UINT () const
 
CSupportChannelsoperator= (UINT ch)
 
bool Supports (UINT ch) const
 

Static Public Attributes

const static UINT SC_ALL_DRAW_CHANNELS = SC_PREDRAWOBJECTS|SC_DRAWOBJECT|SC_POSTDRAWOBJECTS|SC_PREOBJECTDRAW|SC_POSTOBJECTDRAW|SC_CUSTOMRENDEROBJECTS
 
const static UINT SC_CALCBOUNDINGBOX = 0x00000008
 
const static UINT SC_CALCCLIPPINGPLANES = 0x00000010
 
const static UINT SC_CUSTOMRENDEROBJECTS = 0x00100000
 
const static UINT SC_DRAWBACKGROUND = 0x00000040
 
const static UINT SC_DRAWFOREGROUND = 0x00000400
 
const static UINT SC_DRAWMIDDLEGROUND = SC_PREDRAWMIDDLEGROUND|SC_PREDRAWOBJECTS|SC_DRAWOBJECT|SC_POSTDRAWOBJECTS|SC_CUSTOMRENDEROBJECTS
 
const static UINT SC_DRAWOBJECT = 0x00000100
 
const static UINT SC_DRAWOVERLAY = 0x00000800
 
const static UINT SC_INITFRAMEBUFFER = 0x00000001
 
const static UINT SC_MESHINGPARAMETERS = 0x00002000
 
const static UINT SC_OBJECT_BASED_CHANNEL = SC_OBJECTCULLING|SC_DRAWOBJECT|SC_OBJECTDISPLAYATTRS|SC_PREOBJECTDRAW|SC_POSTOBJECTDRAW
 
const static UINT SC_OBJECTCULLING = 0x00000004
 
const static UINT SC_OBJECTDISPLAYATTRS = 0x00004000
 
const static UINT SC_POSTDRAWOBJECTS = 0x00000200
 
const static UINT SC_POSTOBJECTDRAW = 0x00010000
 
const static UINT SC_POSTPROCESSFRAMEBUFFER = 0x00001000
 
const static UINT SC_PREDRAWMIDDLEGROUND = 0x00040000
 
const static UINT SC_PREDRAWOBJECTS = 0x00000080
 
const static UINT SC_PREDRAWTRANSPARENTOBJECTS = 0x00080000
 
const static UINT SC_PREOBJECTDRAW = 0x00008000
 
const static UINT SC_SETUPFRUSTUM = 0x00000002
 
const static UINT SC_SETUPLIGHTING = 0x00000020
 
const static UINT SC_VIEWEXTENTS = 0x00020000
 

Detailed Description

Copyright (c) 1993-2017 Robert McNeel & Associates. All rights reserved. Rhinoceros is a registered trademark of Robert McNeel & Associates.

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.

For complete Rhino SDK copyright information see http://www.rhino3d.com/developer. Specialiazed UINT class that ensures "supported" values only...

The display pipeline calls conduits during specific phases of drawing (channels) During the drawing of a single frame the channels are called in the following order

[Begin Drawing of a Frame] SC_CALCBOUNDINGBOX SC_CALCCLIPPINGPLANES SC_SETUPFRUSTUM SC_SETUPLIGHTING SC_INITFRAMEBUFFER SC_DRAWBACKGROUND If this is a layout and detail objects exist the channels are called in the same order for each detail object (drawn as a nested viewport) SC_PREDRAWMIDDLEGROUND SC_PREDRAWOBJECTS

For Each Visible Non Highlighted Object SC_OBJECTDISPLAYATTRS SC_PREOBJECTDRAW SC_DRAWOBJECT SC_POSTOBJECTDRAW Next Object

Here Rhino draws highlighted objects

SC_PREDRAWTRANSPARENTOBJECTS

Here Rhino draws transparent objects (sorted)

SC_POSTDRAWOBJECTS SC_DRAWFOREGROUND

For Each Visible Highlighted Object SC_OBJECTDISPLAYATTRS SC_PREOBJECTDRAW SC_DRAWOBJECT SC_POSTOBJECTDRAW Next Object

SC_POSTPROCESSFRAMEBUFFER - If a conduit exists that requires this SC_DRAWOVERLAY - If Rhino is in a feedback mode [End of Drawing of a Frame]

NOTE: There may be multiple SC_DRAWOBJECT calls for a single object. An example of when this could happen would be with a shaded sphere. The shaded mesh is first drawn and these channels would be processed; then at a later time the isocurves for the sphere would be drawn.

Constructor & Destructor Documentation

◆ CSupportChannels()

CSupportChannels::CSupportChannels ( UINT  channels = CHANNELS_SUPPORTED)
inline

Member Function Documentation

◆ operator UINT()

CSupportChannels::operator UINT ( ) const
inline

◆ operator=()

CSupportChannels& CSupportChannels::operator= ( UINT  ch)
inline

◆ Supports()

bool CSupportChannels::Supports ( UINT  ch) const
inline

Member Data Documentation

◆ SC_ALL_DRAW_CHANNELS

const static UINT CSupportChannels::SC_ALL_DRAW_CHANNELS = SC_PREDRAWOBJECTS|SC_DRAWOBJECT|SC_POSTDRAWOBJECTS|SC_PREOBJECTDRAW|SC_POSTOBJECTDRAW|SC_CUSTOMRENDEROBJECTS
static

◆ SC_CALCBOUNDINGBOX

const static UINT CSupportChannels::SC_CALCBOUNDINGBOX = 0x00000008
static

◆ SC_CALCCLIPPINGPLANES

const static UINT CSupportChannels::SC_CALCCLIPPINGPLANES = 0x00000010
static

◆ SC_CUSTOMRENDEROBJECTS

const static UINT CSupportChannels::SC_CUSTOMRENDEROBJECTS = 0x00100000
static

◆ SC_DRAWBACKGROUND

const static UINT CSupportChannels::SC_DRAWBACKGROUND = 0x00000040
static

◆ SC_DRAWFOREGROUND

const static UINT CSupportChannels::SC_DRAWFOREGROUND = 0x00000400
static

◆ SC_DRAWMIDDLEGROUND

const static UINT CSupportChannels::SC_DRAWMIDDLEGROUND = SC_PREDRAWMIDDLEGROUND|SC_PREDRAWOBJECTS|SC_DRAWOBJECT|SC_POSTDRAWOBJECTS|SC_CUSTOMRENDEROBJECTS
static

const static UINT SC_RESERVED_CHANNEL = 0x00200000; const static UINT SC_RESERVED_CHANNEL = 0x00400000; const static UINT SC_RESERVED_CHANNEL = 0x00800000; const static UINT SC_RESERVED_CHANNEL = 0x01000000; const static UINT SC_RESERVED_CHANNEL = 0x02000000; const static UINT SC_RESERVED_CHANNEL = 0x04000000; const static UINT SC_RESERVED_CHANNEL = 0x08000000; const static UINT SC_RESERVED_CHANNEL = 0x10000000; const static UINT SC_RESERVED_CHANNEL = 0x20000000; const static UINT SC_RESERVED_CHANNEL = 0x40000000; const static UINT SC_RESERVED_CHANNEL = 0x80000000; Helper masks that make some things a little easier... Note: These are not channels, but a combination of different channels...You should always use the specific channels above when defining or referring to channel values.

◆ SC_DRAWOBJECT

const static UINT CSupportChannels::SC_DRAWOBJECT = 0x00000100
static

◆ SC_DRAWOVERLAY

const static UINT CSupportChannels::SC_DRAWOVERLAY = 0x00000800
static

◆ SC_INITFRAMEBUFFER

const static UINT CSupportChannels::SC_INITFRAMEBUFFER = 0x00000001
static

◆ SC_MESHINGPARAMETERS

const static UINT CSupportChannels::SC_MESHINGPARAMETERS = 0x00002000
static

◆ SC_OBJECT_BASED_CHANNEL

const static UINT CSupportChannels::SC_OBJECT_BASED_CHANNEL = SC_OBJECTCULLING|SC_DRAWOBJECT|SC_OBJECTDISPLAYATTRS|SC_PREOBJECTDRAW|SC_POSTOBJECTDRAW
static

◆ SC_OBJECTCULLING

const static UINT CSupportChannels::SC_OBJECTCULLING = 0x00000004
static

◆ SC_OBJECTDISPLAYATTRS

const static UINT CSupportChannels::SC_OBJECTDISPLAYATTRS = 0x00004000
static

◆ SC_POSTDRAWOBJECTS

const static UINT CSupportChannels::SC_POSTDRAWOBJECTS = 0x00000200
static

◆ SC_POSTOBJECTDRAW

const static UINT CSupportChannels::SC_POSTOBJECTDRAW = 0x00010000
static

◆ SC_POSTPROCESSFRAMEBUFFER

const static UINT CSupportChannels::SC_POSTPROCESSFRAMEBUFFER = 0x00001000
static

◆ SC_PREDRAWMIDDLEGROUND

const static UINT CSupportChannels::SC_PREDRAWMIDDLEGROUND = 0x00040000
static

◆ SC_PREDRAWOBJECTS

const static UINT CSupportChannels::SC_PREDRAWOBJECTS = 0x00000080
static

◆ SC_PREDRAWTRANSPARENTOBJECTS

const static UINT CSupportChannels::SC_PREDRAWTRANSPARENTOBJECTS = 0x00080000
static

◆ SC_PREOBJECTDRAW

const static UINT CSupportChannels::SC_PREOBJECTDRAW = 0x00008000
static

◆ SC_SETUPFRUSTUM

const static UINT CSupportChannels::SC_SETUPFRUSTUM = 0x00000002
static

◆ SC_SETUPLIGHTING

const static UINT CSupportChannels::SC_SETUPLIGHTING = 0x00000020
static

◆ SC_VIEWEXTENTS

const static UINT CSupportChannels::SC_VIEWEXTENTS = 0x00020000
static