SoDetail(3)
π SoDetail(3) π
okay bestie, welcome to SoDetail, section 3 of the library functions manual. she's a superclass β the queen bee, the blueprint, the main character that all the other detail classes inherit their whole vibe from πβ¨
πΈ NAME πΈ
SoDetail β the superclass for all classes that store detailed info about particular shapes. fr fr, she's the mom of the whole detail fam.
β¨ SYNOPSIS β¨
#include <Inventor/details/SoDetail.h>
Inherited by SoConeDetail, SoCubeDetail, SoCylinderDetail, SoFaceDetail, SoLineDetail, SoNodeKitDetail, SoPointDetail, and SoTextDetail. the whole girl gang π
π Public Member Functions
virtual ~SoDetail ()virtual SoDetail * copy (void) const =0virtual SoType getTypeId (void) const =0SbBool isOfType (const SoType type) const
π¦ Static Public Member Functions
static void initClass (void)static void initClasses (void)static SoType getClassTypeId (void)
π Protected Member Functions
SoDetail (void)
π Detailed Description π
So SoDetail is the superclass for all classes that store detailed information about particular shapes. she's the ancestor, the origin story, the blueprint. π§
Detail info about shapes gets used in relation to picking actions in Coin. Basically they hold the relevant tea about what particular part of the shape a pick ray intersected with. it's giving "which bit of you did I just poke" π₯
π«Ά Constructor & Destructor Documentation π«Ά
SoDetail::~SoDetail () [virtual]
Destructor. she's logging off, closing the app, saying bye bestie π
SoDetail::SoDetail (void ) [protected]
Default constructor. protected, so don't come for her unless you're family.
β Member Function Documentation β
void SoDetail::initClass (void ) [static]
Initialize relevant common data for all instances, like the type system. getting everyone set up before the party starts β¨
void SoDetail::initClasses (void ) [static]
Call the initClass() methods of all built-in detail 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 like. the built-ins get their invite automatically. your custom ones? you gotta text them yourself. no cap. π±
virtual SoDetail * SoDetail::copy (void ) const [pure virtual]
Return a deep copy of ourself. a whole clone, a twin, a doppelgΓ€nger β deep copy means it's an actual new object, not just a link to the same one πͺ
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 is 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. πππ
like literally, mismatched CRT = heap corruption = mystery crashes. not a vibe. be careful out there.
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 run-time type checking and "downward" casting. she's checking IDs at the door πͺ
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
}
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 pre-defined macros available through Inventor/nodes/SoSubDetail.h: SO_DETAIL_SOURCE and SO_DETAIL_INIT_CLASS. β¨ those macros are the cheat codes iykyk
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. the vibe check function π
SoType SoDetail::getClassTypeId (void ) [static]
Returns the type for this class.
π Author π
Generated automatically by Doxygen for Coin from the source code. (so technically the author is a robot, but she ate regardless π )
and that's the whole page bestie!! π this manual page is from Coin, Version 3.1.3, and she's the SoDetail(3) girlie of the Library Functions Manual. go forth and copy deeply, and remember β same CRT instance or the heap will come for you πβ¨π¦
π¦ where this page comes from
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms