SbViewportRegion(3)

πŸ“¦ version 2.5.0, in fedora 43, fedora 44

✨ NAME ✨

okay bestie, so SbViewportRegion(3) from the Library Functions Manual just dropped, and it's literally all about a viewport inside a full window πŸ’–

  • SbViewportRegion β€” The SbViewportRegion class is a viewport within a full window. πŸͺŸβœ¨

πŸ¦‹ SYNOPSIS πŸ¦‹

#include <Inventor/SbViewportRegion.h>

πŸ’– Public Member Functions πŸ’–

  • SbViewportRegion (void)
  • SbViewportRegion (short width, short height)
  • SbViewportRegion (SbVec2s winSize)
  • SbViewportRegion (const SbViewportRegion &vpReg)
  • void setWindowSize (short width, short height)
  • void setWindowSize (SbVec2s winSize)
  • void setViewport (float left, float bottom, float width, float height)
  • void setViewport (SbVec2f origin, SbVec2f size)
  • void setViewportPixels (short left, short bottom, short width, short height)
  • void setViewportPixels (SbVec2s origin, SbVec2s size)
  • const SbVec2s & getWindowSize (void) const
  • const SbVec2f & getViewportOrigin (void) const
  • const SbVec2s & getViewportOriginPixels (void) const
  • const SbVec2f & getViewportSize (void) const
  • const SbVec2s & getViewportSizePixels (void) const
  • float getViewportAspectRatio (void) const
  • void scaleWidth (float ratio)
  • void scaleHeight (float ratio)
  • void setPixelsPerInch (float ppi)
  • float getPixelsPerInch (void) const
  • float getPixelsPerPoint (void) const
  • void print (FILE *file) const

πŸ‘‘ Friends πŸ‘‘

  • int operator== (const SbViewportRegion &reg1, const SbViewportRegion &reg2)
  • int operator!= (const SbViewportRegion &reg1, const SbViewportRegion &reg2)

🌸 Detailed Description 🌸

The SbViewportRegion class is a viewport within a full window. πŸ’…

The SbViewportRegion class contains information to represent a subview within a window. It stores information about the origin and size of the subview, aswell as the size of the underlying "full" window. πŸͺŸ

Available methods include inquiries and manipulation in both normalized coordinates and pixel coordinates. ✨

Below is a small example showing how the viewport of a viewer class can be modified, within a "proper" Coin and window system context. Hit 'D' or 'U' to move the viewport region 40 pixels down or up, respectively. Click 'Esc' and zoom with left + middle mouse buttons, to see how the region is defined, where no 3D geometry will be visible outside it. Click 'Esc' again to use 'U' and 'D'. πŸ‘‘

// Copyright (C) 2000-2007 by Systems in Motion. All rights reserved.

#include <Inventor/Qt/SoQt.h>
#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
#include <Inventor/nodes/SoEventCallback.h>
#include <Inventor/nodes/SoSeparator.h>
#include <Inventor/nodes/SoCone.h>
#include <Inventor/events/SoKeyboardEvent.h>

// ************************************************************

static void
keypresscbfunc(void * userdata, SoEventCallback * keyboardcb)
{
  SoQtExaminerViewer * viewer = (SoQtExaminerViewer *)userdata;

  const SoEvent * event = keyboardcb->getEvent();

  int shift = 0;

  if (SO_KEY_PRESS_EVENT(event, U)) {
    shift = 40;
    keyboardcb->setHandled();
  }
  else if (SO_KEY_PRESS_EVENT(event, D)) {
    shift = -40;
    keyboardcb->setHandled();
  }

  if (keyboardcb->isHandled()) {
    SbViewportRegion vpr = viewer->getViewportRegion();
    SbVec2s size = vpr.getViewportSizePixels();
    SbVec2s origin = vpr.getViewportOriginPixels();
    origin[1] -= shift;
    vpr.setViewportPixels(origin, size);
    viewer->setViewportRegion(vpr);
  }
}

// ************************************************************

int
main(int argc, char ** argv)
{
  QWidget * window = SoQt::init(argv[0]);

  SoSeparator * root = new SoSeparator;
  root->ref();

  root->addChild(new SoCone);

  SoQtExaminerViewer * viewer = new SoQtExaminerViewer(window);

  SoEventCallback * eventcb = new SoEventCallback;
  eventcb->addEventCallback(SoKeyboardEvent::getClassTypeId(),
                            keypresscbfunc, viewer);
  root->insertChild(eventcb, 0);

  viewer->setViewing(FALSE);
  viewer->setDecoration(FALSE);
  viewer->setSceneGraph(root);
  viewer->show();
  SoQt::show(window);

  SoQt::mainLoop();

  delete viewer;
  root->unref();
  return 0;
}

See also

  • SbViewVolume

πŸŽ€ Constructor & Destructor Documentation πŸŽ€

🧚 SbViewportRegion::SbViewportRegion (void )

The default SbViewportRegion constructor initializes the viewport to fully cover a [100, 100] size window with 72 pixels per inch resolution. πŸ’–

Referenced by getViewportOriginPixels(), getViewportSizePixels(), operator!=, operator==, and SbViewportRegion().

🧚 SbViewportRegion::SbViewportRegion (short width, short height)

Construct and initialize an SbViewportRegion instance with the given pixel value window dimensions. The viewport within this window will be set to cover the window completely. πŸ¦‹

References SoDebugError::postWarning().

🧚 SbViewportRegion::SbViewportRegion (SbVec2s winsizearg)

Construct and initialize an SbViewportRegion instance with the given pixel value window dimensions. The viewport within this window will be set to cover the window completely. 🌈

References SoDebugError::postWarning().

🧚 SbViewportRegion::SbViewportRegion (const SbViewportRegion & vpReg)

Copy constructor. πŸ“‹

References SbViewportRegion().

✨ Member Function Documentation ✨

okay so these are the methods, and every single one is doing its little thing. no skips, no cuts, we're covering all of them. πŸ’–


void SbViewportRegion::setWindowSize (short width, short height)

Sets the window size in pixels. The viewport rectangle dimensions will stay intact. fr fr, it does not resize the viewport itself.

  • See also β€” getWindowSize()
  • References β€” SoDebugError::postWarning()
  • Referenced by β€” setWindowSize(), and SoSceneManager::setWindowSize()

void SbViewportRegion::setWindowSize (SbVec2s winsizearg)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • References β€” SoDebugError::postWarning(), and setWindowSize()

void SbViewportRegion::setViewport (float left, float bottom, float width, float height)

Set up the origin and size of the viewport region in normalized coordinates. so like, the chill 0-to-1 vibe, not the pixel chaos.

  • See also β€” getViewportOrigin(), getViewportSize(), setViewportPixels()
  • References β€” SoDebugError::postWarning()
  • Referenced by β€” setViewport()

void SbViewportRegion::setViewport (SbVec2f origin, SbVec2f size)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • References β€” SoDebugError::postWarning(), and setViewport()

void SbViewportRegion::setViewportPixels (short left, short bottom, short width, short height)

Set up the origin and size of the viewport region in pixel coordinates. yes bestie, actual pixels, not normalized float nonsense.

  • See also β€” getViewportOriginPixels(), getViewportSizePixels(), setViewport()
  • References β€” SoDebugError::postWarning()
  • Referenced by β€” SoSceneManager::setOrigin(), SoSceneManager::setSize(), and setViewportPixels()

void SbViewportRegion::setViewportPixels (SbVec2s origin, SbVec2s size)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • References β€” SoDebugError::postWarning(), and setViewportPixels()

const SbVec2s & SbViewportRegion::getWindowSize (void ) const

Returns window dimensions (which are in absolute (i.e. pixel) coordinates).

  • See also β€” setWindowSize()
  • Referenced by β€” print(), SoSceneManager::setViewportRegion(), and SoCamera::viewAll()

const SbVec2f & SbViewportRegion::getViewportOrigin (void ) const

Return normalized viewport origin coordinates.

  • See also β€” setViewport(), getViewportOriginPixels()
  • Referenced by β€” print()

const SbVec2s & SbViewportRegion::getViewportOriginPixels (void ) const

Return viewport origin coordinates in pixel values.

  • See also β€” setViewportPixels(), getViewportOrigin()
  • References β€” SbViewportRegion(), and SbVec2s::setValue()
  • Referenced by β€” SoRayPickAction::computeWorldSpaceRay(), SoEvent::getNormalizedPosition(), SoEvent::getPosition(), SoExtSelection::GLRenderBelowPath(), operator==, print(), SoSceneManager::setSize(), and SoSceneManager::setViewportRegion()

const SbVec2f & SbViewportRegion::getViewportSize (void ) const

Returns the normalized viewport size.

  • See also β€” setViewport(), getViewportSizePixels()
  • Referenced by β€” print(), and SoCamera::viewAll()

const SbVec2s & SbViewportRegion::getViewportSizePixels (void ) const

Returns viewport size in pixel coordinates.

  • See also β€” setViewportPixels(), getViewportSize()
  • References β€” SbViewportRegion()
  • Referenced by β€” SoVectorizeAction::calibrate(), SoRayPickAction::computeWorldSpaceRay(), SoEvent::getNormalizedPosition(), getViewportAspectRatio(), SoImage::GLRender(), SoMarkerSet::GLRender(), SoText2::GLRender(), SoExtSelection::GLRenderBelowPath(), SoCamera::jitter(), operator==, print(), SoTabPlaneDragger::reallyAdjustScaleTabSize(), SoSceneManager::setOrigin(), and SoSceneManager::setViewportRegion()

float SbViewportRegion::getViewportAspectRatio (void ) const

Returns the aspect ratio of the viewport region. The aspect ratio is calculated as pixelwidth divided on pixelheight.

  • References β€” getViewportSizePixels()
  • Referenced by β€” SoCamera::getViewportBounds(), and print()

void SbViewportRegion::scaleWidth (float ratio)

Scale the width of the viewport region.

The scale factor should not make the viewport larger than the window. If this happens, the viewport will be clamped.
The scaling will be done around the viewport region center point, but if this causes the viewport origin to be moved below (0,0), the origin coordinates will be clamped.
  • See also β€” scaleHeight()
  • References β€” SoDebugError::postWarning()
  • Referenced by β€” SoCamera::getViewportBounds()

void SbViewportRegion::scaleHeight (float ratio)

Scale the height of the viewport region.

The scale factor should not make the viewport larger than the window. If this happens, the viewport will be clamped.
The scaling will be done around the viewport region center point, but if this causes the viewport origin to be moved below (0,0), the origin coordinates will be clamped.
  • See also β€” scaleWidth()
  • References β€” SoDebugError::postWarning()
  • Referenced by β€” SoCamera::getViewportBounds()

void SbViewportRegion::setPixelsPerInch (float ppi)

Set pixels per inch. Default value is 72. yeah, 72, the classic.

  • See also β€” getPixelsPerInch()
  • References β€” SoDebugError::postWarning()

float SbViewportRegion::getPixelsPerInch (void ) const

Get pixels per inch.

  • See also β€” setPixelsPerInch()
  • Referenced by β€” print()

float SbViewportRegion::getPixelsPerPoint (void ) const

Get pixels per point. A point is defined as something you can put 72 of per inch... iconic definition, honestly.

  • See also β€” setPixelsPerInch(), getPixelsPerInch()
  • Referenced by β€” print()

void SbViewportRegion::print (FILE * fp) const

Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile. so if you're optimized, this is giving silent treatment.

  • References β€” getPixelsPerInch(), getPixelsPerPoint(), getViewportAspectRatio(), getViewportOrigin(), getViewportOriginPixels(), getViewportSize(), getViewportSizePixels(), getWindowSize(), SbVec2f::print(), and SbVec2s::print()

int operator== (const SbViewportRegion & reg1, const SbViewportRegion & reg2) [friend]

Compares two SbViewportRegion instances for equality.

  • References β€” getViewportOriginPixels(), getViewportSizePixels(), operator==, and SbViewportRegion()
  • Referenced by β€” operator==

int operator!= (const SbViewportRegion & reg1, const SbViewportRegion & reg2) [friend]

Compares two SbViewportRegion instances for inequality.

  • Since β€” Coin 2.4
  • References β€” operator!=, and SbViewportRegion()
  • Referenced by β€” operator!=

✨ Author ✨

Generated automatically by Doxygen for Coin from the source code.


and that's the whole entire page, bestie! this was the SbViewportRegion(3) manual for Coin Version 2.5.0, auto-generated by Doxygen from the source code, and the footer didn't give us a date so we're just gonna celebrate the version. periodt. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from