SOCONE(3iv)

πŸ’– SoCone β€” cone shape node πŸ’–

okay bestie, welcome to the SoCone(3IV) page, aka the glow-up manual for everyone's fave pointy girl 🍦✨ she's a cone, she's iconic, she's literally just vibing on the y-axis. let's get into it.


🌈 INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoShape > SoCone

so yeah, she comes from a long line of distinguished ancestors πŸ’… the whole family tree is showing up to the function.


✨ SYNOPSIS ✨

#include <Inventor/nodes/SoCone.h>
enum Part {
     SoCone::SIDES       The conical part
     SoCone::BOTTOM      The bottom circular face
     SoCone::ALL         All parts
}

Fields from class SoCone:

  • SoSFBitMask β€” parts
  • SoSFFloat β€” bottomRadius
  • SoSFFloat β€” height

Methods from class SoCone:

  • SoCone()
  • void β€” addPart(SoCone::Part part)
  • void β€” removePart(SoCone::Part part)
  • SbBool β€” hasPart(SoCone::Part part) const
  • static SoType β€” getClassTypeId()

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 🌸

so this node? she represents a simple cone whose central axis is aligned with the y-axis. periodt. by default the cone is centered at (0,0,0) and has a size of -1 to +1 in all three directions. the cone has a radius of 1 at the bottom and a height of 2, with its apex at 1. and she has exactly two parts: the sides and the bottom. that's the whole lineup πŸŽ€

the cone gets transformed by the current cumulative transformation, and she's drawn with the current lighting model, drawing style, material, and geometric complexity. she's not doing her own thing, she's following the group chat rules πŸ’…

now, material tea β˜• if the current material binding is PER_PART or PER_PART_INDEXED, the first current material is used for the sides of the cone, and the second is used for the bottom. otherwise, the first material is used for the entire cone. one cone, one fit, no switching mid-outfit.

and the texture lore 🧡 when a texture is applied to a cone, it's applied differently to the sides and the bottom. on the sides, the texture wraps counterclockwise (from above) starting at the back of the cone. the texture has a vertical seam at the back, intersecting the yz-plane. for the bottom, a circle is cut out of the texture square and applied to the cone's base circle. the texture appears right side up when the top of the cone is tilted away from the camera. no cap, that's exactly how it behaves.


πŸŽ€ FIELDS πŸŽ€

  • SoSFBitMask parts β€” visible parts of cone. the vibe check on what she's showing off.
  • SoSFFloat bottomRadius
  • SoSFFloat height

these define the cone's height and the radius of the base circle. and bestie, listen: values must be greater than 0.0. no zero, no negatives, we don't do that here πŸ™ˆ


πŸ’… METHODS πŸ’…

  • SoCone() β€” creates a cone node with default settings. a fresh baby cone, factory settings, ready to slay.
  • void addPart(SoCone::Part part)
  • void removePart(SoCone::Part part)

these are convenience functions that make it easy to turn on or off a part of the cone. glow-up toggle, basically ✨

  • SbBool hasPart(SoCone::Part part) const β€” this convenience function returns whether a given part is on or off. is she wearing the bottom today? ask her.
  • static SoType getClassTypeId() β€” returns type identifier for this class.

πŸ”₯ ACTION BEHAVIOR πŸ”₯

  • SoGLRenderAction β€” draws cone based on the current coordinates, materials, drawing style, and so on. main character rendering moment.
  • SoRayPickAction β€” intersects the ray with the cone. the part of the cone that was picked is available from the SoConeDetail. πŸ‘€ she got picked, and yes there's a receipt.
  • SoGetBoundingBoxAction β€” computes the bounding box that encloses the cone. personal space, measured.
  • SoCallbackAction β€” if any triangle callbacks are registered with the action, they will be invoked for each successive triangle that approximates the cone. every little triangle gets its moment πŸ’–

⭐ FILE FORMAT/DEFAULTS ⭐

Cone {
   parts         ALL
   bottomRadius  1
   height        2
}

πŸ¦‹ SEE ALSO πŸ¦‹

SoConeDetail, SoCube, SoCylinder, SoSphere


🌟 quick reminder bestie: this whole page is SoCone(3IV), and yes the footer is literally SoCone(3IV)() β€” same girl, top and bottom, matching outfit. iykyk πŸ’œ

that's the page!! go forth and cone, you absolute legend πŸ‘‘πŸŒˆ