SoNormalBundle(3)
π SoNormalBundle(3) π
okay so bestie, welcome to SoNormalBundle, a Coin manual page, and honestly? it's giving "quiet little helper class that just wants to make your normals make sense." π¦
β¨ NAME β¨
SoNormalBundle β the class that simplifies normal handling. periodt. π
πΈ SYNOPSIS πΈ
#include <Inventor/bundles/SoNormalBundle.h>
Inherits SoBundle. yes bestie, it's a bundle. it's in the bundle family. π
π Public Member Functions π
SoNormalBundle (SoAction *action, SbBool forrendering)
~SoNormalBundle ()
SbBool shouldGenerate (int numneeded)
void initGenerator (int initnum=100)
void beginPolygon (void)
void polygonVertex (const SbVec3f &v)
void endPolygon (void)
void triangle (const SbVec3f &p1, const SbVec3f &p2, const SbVec3f &p3)
void generate (int startindex=0, SbBool addtostate=TRUE)
const SbVec3f * getGeneratedNormals (void) const
int getNumGeneratedNormals (void) const
void set (int32_t num, const SbVec3f *normals)
const SbVec3f & get (int index) const
void send (int index) const
π Public Attributes π
SoNormalGenerator * generatorβ a whole normal generator, just vibing out in the open as a public attribute. iconic. β¨
π Additional Inherited Members π
π Protected Member Functions inherited from SoBundle
SoBundle (SoAction *action)
~SoBundle ()
π«Ά Protected Attributes inherited from SoBundle
SoState * stateβ the state of the current action. that's the whole description, she said what she said. π
π Detailed Description π
The SoNormalBundle class simplifies normal handling. that's the entire tagline, and honestly? it ate. π₯
lowkey important tea, bestie: this class is currently not used in Coin but is provided for API compatibility. so it's giving "still here for the plot." π
π Constructor & Destructor Documentation π
SoNormalBundle::SoNormalBundle (SoAction * action, SbBool forrendering)
Constructor. that's it, that's the description. short king behavior. π
SoNormalBundle::~SoNormalBundle ()
Destructor. she cleans up after herself. periodt. π
β Member Function Documentation β
SbBool SoNormalBundle::shouldGenerate (int numneeded)
Returns FALSE if there are normals on the state. otherwise, initGenerator() gets called with numneeded as its argument, and TRUE gets returned. so it's a little "do we even need to do this?" vibe check. π¦
void SoNormalBundle::initGenerator (int initnum = 100)
Initializes the normal generator. initnum is a hint that should contain the approximate number of normals to be generated. it's a hint, bestie, not a legally binding contract. π
void SoNormalBundle::beginPolygon (void )
Start polygon specification. call polygonVertex() for each vertex in the polygon, and then endPolygon() to close the polygon.
See also: polygonVertex(), endPolygon()
void SoNormalBundle::polygonVertex (const SbVec3f & v)
Call for each vertex in a polygon. every single one. no skipping, no shortcuts. π«Ά
See also: beginPolygon(), endPolygon()
void SoNormalBundle::endPolygon (void )
Call to close a polygon. that's the closer, the grand finale, the mic drop. π€
See also: beginPolygon(), polygonVertex()
void SoNormalBundle::triangle (const SbVec3f & p1, const SbVec3f & p2, const SbVec3f & p3)
Convenience method to specify a triangle. p1, p2, and p3 are the triangles vertices. three points, one triangle, zero drama. β¨
void SoNormalBundle::generate (int startindex = 0, SbBool addtostate = TRUE)
Generate normals for the shape. startindex should always be 0 (the SoNonIndexedShape::startIndex field is obsoleted β rip to that field, gone but not forgotten π). addtostate should be true if the generated normals should be pushed onto the current state.
no cap:startindex=0, always. don't be out here passing other numbers, bestie. π
const SbVec3f * SoNormalBundle::getGeneratedNormals (void ) const
Returns the number of generated normals.
int SoNormalBundle::getNumGeneratedNormals (void ) const
Returns a pointer to the generated normals.
okay so yes, those two descriptions are swapped in the original docs and i am simply reporting the lore as written, don't shoot the messenger π the manpage said what it said and i'm keeping every word of it.
void SoNormalBundle::set (int32_t num, const SbVec3f * normals)
Can be used by nodes that generate their own normals. the state will be updated with the new normals, and the state will be popped again when the SoNormalBundle destructor is called. so like... it cleans up on the way out. main character energy. π
const SbVec3f & SoNormalBundle::get (int index) const
Returns the index'th normal from the state.
void SoNormalBundle::send (int index) const
Send the index'th normal to OpenGL. go little normal, go!! π₯
π§ Author π§
Generated automatically by Doxygen for Coin from the source code. so technically the author is a robot. a slay robot. π€π
and that's the whole page, bestie!! this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, straight from the Coin source, and it's been real, it's been fun, it's been SoNormalBundle(3). mwah, bye!! πππ¦
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms