SOORTHOGRAPHICCAMERA(3iv)

πŸ’– SoOrthographicCamera β€” orthographic camera node ✨

okay bestie, pull up a chair because we're talking about SoOrthographicCamera, a whole manual page from the 3IV series, and she is lowkey iconic. no cap.


πŸ¦‹ INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoCamera > SoOrthographicCamera

like, she comes from a long line of distinguished ancestors and she's the baby of the family πŸ’…


✨ SYNOPSIS

#include <Inventor/nodes/SoOrthographicCamera.h>

πŸŽ€ Fields from class SoOrthographicCamera

  • SoSFFloat height

🌸 Fields from class SoCamera

  • SoSFEnum viewportMapping
  • SoSFVec3f position
  • SoSFRotation orientation
  • SoSFFloat aspectRatio
  • SoSFFloat nearDistance
  • SoSFFloat farDistance
  • SoSFFloat focalDistance

🫢 Methods from class SoOrthographicCamera

                     SoOrthographicCamera()
static SoType        getClassTypeId()

πŸ’œ Methods from class SoCamera

void                  pointAt(const SbVec3f &targetPoint)
virtual void          scaleHeight(float scaleFactor)
virtual SbViewVolume  getViewVolume(float useAspectRatio = 0.0) const
void                  viewAll(SoNode *sceneRoot, const SbViewportRegion
                           &vpRegion, float slack = 1.0)
void                  viewAll(SoPath *path, const SbViewportRegion
                           &vpRegion, float slack = 1.0)
SbViewportRegion      getViewportBounds(const SbViewportRegion &region)
                           const

🌈 Methods from class SoNode

void                setOverride(SbBool state)
SbBool              isOverride() const
SoNode *            copy(SbBool copyConnections = FALSE) const
virtual SbBool      affectsState() const
static SoNode *     getByName(const SbName &name)
static int          getByName(const SbName &name, SoNodeList &list)

⭐ Methods from class SoFieldContainer

void                setToDefaults()
SbBool              hasDefaultValues() const
SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
void                copyFieldValues(const SoFieldContainer *fc, SbBool
                         copyConnections = FALSE)
SbBool              set(const char *fieldDataString)
void                get(SbString &fieldDataString)
virtual int         getFields(SoFieldList &resultList) const
virtual SoField *   getField(const SbName &fieldName) const
SbBool              getFieldName(const SoField *field, SbName &fieldName)
                         const
SbBool              isNotifyEnabled() const
SbBool              enableNotify(SbBool flag)

🧚 Methods from class SoBase

void                ref()
void                unref() const
void                unrefNoDelete() const
void                touch()
virtual SoType      getTypeId() const
SbBool              isOfType(SoType type) const
virtual void        setName(const SbName &name)
virtual SbName      getName() const

πŸ”₯ DESCRIPTION

okay so. an orthographic camera defines a parallel projection from a viewpoint. the whole vibe is that this camera does not diminish objects with distance, the way an SoPerspectiveCamera does. nope! no shrinking with distance here, bestie, she simply refuses. πŸ™…β™€οΈ

the viewing volume for an orthographic camera is a rectangular parallelepiped (a box). yes. a box. that's the shape. it's giving "i contain multitudes but make them rectangular." πŸ“¦

by default, the camera is located at (0,0,1) and looks along the negative z-axis; the position and orientation fields can be used to change these values. the height field defines the total height of the viewing volume; this and the aspectRatio field determine its width. so height + aspectRatio = the width situation. math is math. ✨


🌸 FIELDS

  • SoSFFloat height β€” Height of the viewing volume. that's it, that's the whole job, and she does it flawlessly πŸ‘‘

πŸ’… METHODS

  • SoOrthographicCamera() β€” Creates an orthographic camera node with default settings. a fresh baby camera, defaults and all πŸŽ€
  • static SoType getClassTypeId() β€” Returns type identifier for this class. it's her ID. her little name tag. her passport. πŸͺͺ

πŸ‘‘ ACTION BEHAVIOR

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoHandleEventAction, SoRayPickAction

  • Sets the viewport and camera information in the state. every single one of them, doing the exact same thing, and honestly? consistent queens. πŸ’–

πŸ“ FILE FORMAT/DEFAULTS

OrthographicCamera {
   viewportMapping  ADJUST_CAMERA
   position         0 0 1
   orientation      0 0 1  0
   aspectRatio      1
   nearDistance     1
   farDistance      10
   focalDistance    5
   height           2
}

those are the defaults, copy them exactly, do not freestyle, i am begging πŸ™ˆ


🌈 SEE ALSO

  • SbViewVolume
  • SoPerspectiveCamera

and that's the whole page bestie!! go forth and render something parallel-projected πŸ’…βœ¨

okay so this was SoOrthographicCamera(3IV) β€” that's the title and the manual section, folded in right at the top because we're casual like that πŸ¦‹. and for the cute sign-off: the page signs itself SoOrthographicCamera(3IV)() at the bottom, which is the source/version situation, so consider that my little goodbye kiss πŸ˜­πŸ’–