SoDetail(3)
π SoDetail(3) β the Coin manual, but make it cute π
okay bestie, gather round, because we're talking about SoDetail from the Coin library, and honestly? she's the blueprint. the moment. the origin story. β¨
πΈ NAME πΈ
SoDetail β she's the superclass for all the classes that store detailed information about particular shapes. like, every detail class out there is her daughter. mother behavior fr. π
π SYNOPSIS π
#include <Inventor/details/SoDetail.h>
Inherited by SoConeDetail, SoCubeDetail, SoCylinderDetail, SoFaceDetail, SoLineDetail, SoNodeKitDetail, SoPointDetail, and SoTextDetail.
okay the way she has EIGHT whole children?? iconic lineage, no notes. π¦
β¨ Public Member Functions β¨
virtual ~SoDetail ()β the destructor, she says bye πvirtual SoDetail * copy (void) const =0β pure virtual, so you gotta implement it, bestievirtual SoType getTypeId (void) const =0β also pure virtual, also mandatory, no skipping πSbBool isOfType (const SoType type) constβ type check queen
π Static Public Member Functions π
static void initClass (void)β sets up the class, like getting ready for the group chatstatic void initClasses (void)β plural! sets up ALL of themstatic SoType getClassTypeId (void)β grabs the class type id
π Protected Member Functions π
SoDetail (void)β the default constructor, she's protected, so only her family can call her
π Detailed Description π
So like. The SoDetail class is the superclass for all classes storing detailed information about particular shapes. say it with me: superclass. mother. the blueprint.
Detail information about shapes is used in relation to picking actions in Coin. and what do they contain? they typically hold the relevant info about what particular part of the shape a pick ray intersected with. so when you click on something and Coin's like "oh that was the third face of that cone", that's a detail class doing her thing. π―
π§ Constructor & Destructor Documentation π§
SoDetail::~SoDetail () [virtual]
Destructor. she's logging off. π«Ά
SoDetail::SoDetail (void ) [protected]
Default constructor. protected, so don't get any ideas, she's exclusive. π
β Member Function Documentation β
void SoDetail::initClass (void ) [static]
Initialize relevant common data for all instances, like the type system. the shared glue, if you will. β¨
void SoDetail::initClasses (void ) [static]
Call the initClass() methods of all built-in detail classes. like a roll call but for classes. π’
(The initClass() method of user extension detail classes β if any β must be called explicitly by the application programmer in the application initialization code.)
so if you made your own detail class, that one's on you, bestie. she's not gonna do it for you. π
virtual SoDetail * SoDetail::copy (void ) const [pure virtual]
Return a deep copy of ourself. glow-up but it's a whole separate object. β¨
Note that if the Coin library has been built as a DLL under Microsoft Windows and you use this method from application code, you must make sure that both the Coin DLL and the application executable are using the same instance of a C Run-Time (CRT) library. Otherwise, you will get memory heap corruption upon deallocating the returned instances, eventually leading to mysterious crashes. π
okay that one's actually scary, not gonna lie. mysterious crashes?? that's giving horror movie. do NOT mix your CRT libraries. fr fr.
Implemented in SoConeDetail, SoCubeDetail, SoCylinderDetail, SoFaceDetail, SoLineDetail, SoNodeKitDetail, SoPointDetail, and SoTextDetail.
virtual SoType SoDetail::getTypeId (void ) const [pure virtual]
Returns the type identification of a detail derived from a class inheriting SoDetail. This is used for runtime type checking and "downward" casting. iykyk. π¦
Usage example:
void fuhbear(SoDetail * detail)
{
if (detail->getTypeId() == SoFaceDetail::getClassTypeId()) {
// safe downward cast, know the type
SoFaceDetail * facedetail = (SoFaceDetail *)detail;
}
return; // ignore if not a SoFaceDetail
}
(not the function being named fuhbear π she's so unserious but she's correct.)
For application programmers wanting to extend the library with new detail classes: this method needs to be overridden in all subclasses. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the predefined macros available through Inventor/nodes/SoSubDetail.h: SO_DETAIL_SOURCE and SO_DETAIL_INIT_CLASS. memorize those two, they're your besties now. π«Ά
Implemented in SoConeDetail, SoCubeDetail, SoCylinderDetail, SoFaceDetail, SoLineDetail, SoNodeKitDetail, SoPointDetail, and SoTextDetail.
SbBool SoDetail::isOfType (const SoType type) const
Returns TRUE if type is derived from (or is) this class. yes queen, tell me your whole family tree. π
SoType SoDetail::getClassTypeId (void ) [static]
Returns the type identification for this class. boom. done. β¨
π Author π
Generated automatically by Doxygen for Coin from the source code. she didn't write her own bio, the robot did it for her. honestly? relatable. π
and that's the whole page, bestie!! πΈ this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, and that's your SoDetail(3) moment. go forth and cast responsibly. ππβ¨
π¦ 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