Custom drawn grips are randomly disappearing (C++)

OK, let me clarify this.

If you are creating custom grips, as demonstrated by the sample SDK project I’ve referenced, then your custom object needs to return a bounding box that takes these grip locations into account.

If you are drawing your grips in a conduit, which is the incorrect approach in my opinion, then your conduit will need to subscribe to the SC_CALCBOUNDINGBOX channel. When the overrride CRhinoDisplayConduit::ExecConduit overide is called, check for the SC_CALCBOUNDINGBOX and grow the channel attribute’s bounding box if needed.

bool CTestConduit::ExecConduit(CRhinoDisplayPipeline& dp, UINT nActiveChannel, bool& bTerminateChannel)
{
  switch (nActiveChannel)
  {
  case CSupportChannels::SC_CALCBOUNDINGBOX:
  {
    // Make sure our geometry is not clipped
    m_pChannelAttrs->m_BoundingBox.Union(...);
  }

– Dale