SoIndexedMarkerSet(3)
โจ SoIndexedMarkerSet โจ
okay bestie, come sit with me ๐ this is SoIndexedMarkerSet(3) from the Library Functions Manual โ yes, section 3, the iconic one, and she's long, so buckle up ๐
๐ธ NAME ๐ธ
SoIndexedMarkerSet โ the class whose whole job is displaying a set of bitmap markers at 3D positions ๐ฆ like little sparkles pinned to points in space, obsessed.
๐ SYNOPSIS ๐
#include <Inventor/nodes/SoIndexedMarkerSet.h>
and the family tea: she Inherits SoIndexedPointSet ๐ generational wealth fr fr.
๐ Public Member Functions ๐
the ones that are actually hers, living in her own house:
virtual SoType getTypeId (void) constโ hands you her runtime type id, the little name tag at the party ๐ท๏ธSoIndexedMarkerSet (void)โ the constructor, she's being born, slay โจvirtual void GLRender (SoGLRenderAction *action)โ the render moment, main character energy only ๐ฅvirtual void notify (SoNotList *list)โ the "hey something changed" scream into the group chat ๐ฃ
๐ inherited from SoIndexedPointSet
SoIndexedPointSet (void)โ her parent's constructor, the origin story ๐ฑvirtual void getBoundingBox (SoGetBoundingBoxAction *action)โ asks the parent for the bounding box ๐ฆvirtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)โ counts the primitives, she's doing inventory ๐งฎ
๐ inherited from SoVertexShape
virtual void write (SoWriteAction *action)โ writes herself out to file, journaling era ๐
๐ inherited from SoShape
virtual SbBool affectsState (void) constโ does she mess with the state? returns the answer ๐ซถvirtual void rayPick (SoRayPickAction *action)โ ray picking, very targeted ๐virtual void callback (SoCallbackAction *action)โ the callback hookup ๐const SoBoundingBoxCache * getBoundingBoxCache (void) constโ grabs the cached bounding box, efficiency queen ๐
๐ inherited from SoNode
void setOverride (const SbBool state)โ flips the override bit ๐๏ธSbBool isOverride (void) constโ are we overriding? asking for a friend ๐void setNodeType (const NodeType type)โ sets the node type ๐NodeType getNodeType (void) constโ gets the node type back โญvirtual SoNode * copy (SbBool copyconnections=FALSE) constโ clone her,copyconnectionsdefaults toFALSE๐งฌvirtual void doAction (SoAction *action)โ do the action, just do it ๐ชvirtual void GLRenderBelowPath (SoGLRenderAction *action)โ render below the path ๐ฃ๏ธvirtual void GLRenderInPath (SoGLRenderAction *action)โ render in the path ๐ค๏ธvirtual void GLRenderOffPath (SoGLRenderAction *action)โ render off the path, she's off the rails a lil ๐virtual void getMatrix (SoGetMatrixAction *action)โ matrix reveal ๐ฎvirtual void handleEvent (SoHandleEventAction *action)โ handles the event, so responsible ๐ซกvirtual void pick (SoPickAction *action)โ pick it ๐ฏvirtual void search (SoSearchAction *action)โ search party ๐virtual void audioRender (SoAudioRenderAction *action)โ audio render, she's got a soundtrack ๐งvirtual void grabEventsSetup (void)โ setting up the event grab ๐ซณvirtual void grabEventsCleanup (void)โ cleaning up the event grab, tidy ๐งนvirtual void startNotify (void)โ kicks off the notify chain ๐ขuint32_t getNodeId (void) constโ returns the node id as auint32_t๐virtual SoChildList * getChildren (void) constโ where my kids at ๐ญvirtual void writeInstance (SoOutput *out)โ writes this instance out โ๏ธvirtual SoNode * addToCopyDict (void) constโ adds herself to the copy dictionary ๐virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)โ copies the contents over ๐ซvirtual SoFieldContainer * copyThroughConnection (void) constโ copies through the connection ๐
๐ inherited from SoFieldContainer
void setToDefaults (void)โ reset to factory settings, fresh start โจSbBool hasDefaultValues (void) constโ are all the values default? ๐SbBool fieldsAreEqual (const SoFieldContainer *container) constโ comparing fields with another container, is it a match? ๐void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)โ copies the field values,copyconnectionsdefaults toFALSE๐SbBool set (const char *const fielddata)โ set from a field data string ๐void get (SbString &fielddata)โ get it back into a string ๐ฅvirtual int getFields (SoFieldList &l) constโ dumps the fields into a list ๐๏ธvirtual int getAllFields (SoFieldList &l) constโ all of them, no crumbs left ๐ฏvirtual SoField * getField (const SbName &name) constโ fetch a field by name ๐virtual SoField * getEventIn (const SbName &name) constโ grab an event-in by name ๐จvirtual SoField * getEventOut (const SbName &name) constโ grab an event-out by name ๐คSbBool getFieldName (const SoField *const field, SbName &name) constโ name that field ๐ท๏ธSbBool enableNotify (const SbBool flag)โ turn notifications on or off ๐๏ธSbBool isNotifyEnabled (void) constโ are notifications on? asking ๐ซถSbBool set (const char *fielddata, SoInput *input)โ set with field data and aSoInput๐ฅvoid get (SbString &fielddata, SoOutput *out)โ get with aSoOutput๐คvirtual SbBool validateNewFieldValue (SoField *field, void *newval)โ is this new value even valid, bestie? โvirtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)โ adds a write reference,isfromfielddefaults toFALSE๐งพSbBool getIsBuiltIn (void) constโ is she built in? ๐virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constโ memory accounting, split into managed and unmanaged ๐งvoid setUserData (void *userdata) constโ attach your own user data ๐void * getUserData (void) constโ get that user data back ๐
๐ inherited from SoBase
void ref (void) constโ ref count up โฌ๏ธvoid unref (void) constโ ref count down โฌ๏ธvoid unrefNoDelete (void) constโ unref but do not delete ๐ซint32_t getRefCount (void) constโ how many refs we got? ๐ขvoid touch (void)โ touch her, she notices ๐SbBool isOfType (SoType type) constโ are you that type? ๐งvirtual SbName getName (void) constโ what's her name? ๐ธvirtual void setName (const SbName &newname)โ rename her ๐ซvoid addAuditor (void *const auditor, const SoNotRec::Type type)โ add an auditor to the watch list ๐๏ธvoid removeAuditor (void *const auditor, const SoNotRec::Type type)โ remove that auditor ๐ชconst SoAuditorList & getAuditors (void) constโ the whole auditor list, everyone watching ๐SbBool shouldWrite (void)โ should she write? ๐คvoid assertAlive (void) constโ confirming she's alive, dramatic but fair ๐ญ
๐ Static Public Member Functions ๐
static SoType getClassTypeId (void)โ the class type id, static edition ๐ท๏ธstatic void initClass (void)โ boot her up โก
๐ inherited from SoIndexedPointSet
static SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void initClass (void)โ init the class โก
๐ inherited from SoIndexedShape
static SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void initClass (void)โ init the class โก
๐ inherited from SoVertexShape
static SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void initClass (void)โ init the class โก
๐ inherited from SoShape
static SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void initClass (void)โ init the class โกstatic void getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize)โ screen size from a state and bounding box into aSbVec2s๐ฅ๏ธstatic float getDecimatedComplexity (SoState *state, float complexity)โ decimated complexity as afloat๐
๐ inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)โ compat types as auint32_t๐คstatic SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic SoNode * getByName (const SbName &name)โ find a node by name ๐static int getByName (const SbName &name, SoNodeList &l)โ find by name, dump into aSoNodeList, return anint๐๏ธstatic void initClass (void)โ init the class โกstatic void initClasses (void)โ init all the classes, plural, we're doing this ๐static uint32_t getNextNodeId (void)โ the next node id, as auint32_t๐static int getActionMethodIndex (const SoType type)โ action method index ๐ฏstatic void getBoundingBoxS (SoAction *action, SoNode *node)โ static bounding box ๐static void GLRenderS (SoAction *action, SoNode *node)โ static GL render ๐จstatic void callbackS (SoAction *action, SoNode *node)โ static callback ๐static void getMatrixS (SoAction *action, SoNode *node)โ static matrix ๐ฎstatic void handleEventS (SoAction *action, SoNode *node)โ static event handling ๐ซกstatic void pickS (SoAction *action, SoNode *node)โ static pick ๐ฏstatic void rayPickS (SoAction *action, SoNode *node)โ static ray pick ๐ฅstatic void searchS (SoAction *action, SoNode *node)โ static search ๐static void writeS (SoAction *action, SoNode *node)โ static write โ๏ธstatic void audioRenderS (SoAction *action, SoNode *node)โ static audio render ๐งstatic void getPrimitiveCountS (SoAction *action, SoNode *node)โ static primitive count ๐งฎ
๐ inherited from SoFieldContainer
static void initClass (void)โ init the class โกstatic SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void cleanupClass (void)โ cleanup time, tidy up ๐งนstatic void initCopyDict (void)โ init the copy dictionary ๐static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)โ add an origโcopy pair ๐งฌstatic SoFieldContainer * checkCopy (const SoFieldContainer *orig)โ check the copy ๐static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)โ find the copy, withcopyconnections๐บ๏ธstatic void copyDone (void)โ copy's done, wrap it up โ
๐ inherited from SoBase
static void initClass (void)โ init the class โกstatic SoType getClassTypeId (void)โ class type id ๐ท๏ธstatic void addName (SoBase *const base, const char *const name)โ add a name ๐ท๏ธstatic void removeName (SoBase *const base, const char *const name)โ remove a name ๐ซstatic void incrementCurrentWriteCounter (void)โ write counter up โฌ๏ธstatic void decrementCurrentWriteCounter (void)โ write counter down โฌ๏ธstatic SoBase * getNamedBase (const SbName &name, SoType type)โ get a named base by name and type ๐static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)โ get named bases into aSoBaseList๐๏ธstatic SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)โ read it in, with an expected type ๐static void setInstancePrefix (const SbString &c)โ set the instance prefix ๐คstatic void setTraceRefs (SbBool trace)โ set trace refs ๐พstatic SbBool getTraceRefs (void)โ get trace refs ๐พstatic SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)โ wire up a route from one node/field to another ๐static SbBool readRoute (SoInput *input)โ read a route ๐
๐ฆ Public Attributes ๐ฆ
SoMFInt32 markerIndexโ the marker index field, anSoMFInt32, and she's right there for the public ๐
๐ธ inherited from SoIndexedShape
SoMFInt32 coordIndexโ coordinate index ๐งญSoMFInt32 materialIndexโ material index ๐จSoMFInt32 normalIndexโ normal index ๐SoMFInt32 textureCoordIndexโ texture coordinate index ๐งต
๐ธ inherited from SoVertexShape
SoSFNode vertexPropertyโ the vertex property node ๐
๐ Protected Member Functions ๐
the ones behind the velvet rope, members-only:
virtual const SoFieldData * getFieldData (void) constโ hands back the field data ๐๏ธvirtual ~SoIndexedMarkerSet ()โ the destructor, protected, she's shy ๐
๐ inherited from SoIndexedPointSet
virtual ~SoIndexedPointSet ()โ destructor, protected ๐ซงvirtual void generatePrimitives (SoAction *action)โ generates the primitives โจvirtual SbBool generateDefaultNormals (SoState *, SoNormalCache *nc)โ generates default normals into anSoNormalCache๐virtual SbBool generateDefaultNormals (SoState *state, SoNormalBundle *bundle)โ same job but with anSoNormalBundle๐Binding findNormalBinding (SoState *const state) constโ finds the normal binding ๐Binding findMaterialBinding (SoState *const state) constโ finds the material binding ๐Binding findTextureBinding (SoState *const state) constโ finds the texture binding ๐
๐ inherited from SoIndexedShape
SoIndexedShape (void)โ constructor, protected ๐virtual ~SoIndexedShape ()โ destructor ๐ซงvirtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er)โ computes the bounding box and center ๐ฆint getNumVerts (const int startCoord)โ number of verts from a starting coord ๐ขvoid setupIndices (const int numParts, const int numFaces, const SbBool needNormals, const SbBool needTexCoords)โ sets up the indices with part count, face count, and whether normals and tex coords are needed ๐งฎconst int32_t * getNormalIndices (void)โ pointer to the normal indices ๐const int32_t * getColorIndices (void)โ pointer to the color indices ๐จconst int32_t * getTexCoordIndices (void)โ pointer to the tex coord indices ๐งตSbBool getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const int32_t *&cindices, const int32_t *&nindices, const int32_t *&tindices, const int32_t *&mindices, int &numcindices, const SbBool needNormals, SbBool &normalCacheUsed)โ the whole vertex data bundle: coords, normals, color/normal/texcoord/material indices, the coord index count, whether normals are needed, and whether the normal cache got used ๐
๐ inherited from SoVertexShape
SoVertexShape (void)โ constructor, protected ๐virtual ~SoVertexShape ()โ destructor ๐ซงvirtual SbBool shouldGLRender (SoGLRenderAction *action)โ should this even GL render? asking first ๐void setNormalCache (SoState *const state, const int num, const SbVec3f *normals)โ stashesnumnormals into the normal cache ๐ฆSoNormalCache * getNormalCache (void) constโ grabs the normal cache ๐ฆSoNormalCache * generateAndReadLockNormalCache (SoState *const state)โ generates and read-locks the normal cache ๐void getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const SbBool neednormals)โ vertex data, this time with aneednormalsflag ๐void readLockNormalCache (void)โ read-lock the normal cache ๐void readUnlockNormalCache (void)โ read-*un*lock the normal cache, release her ๐
and bestie we are not done yet, there's more coming, don't you dare close the tab ๐
๐ธ Protected Member Functions inherited from SoShape ๐ธ
SoShape (void)virtual ~SoShape ()float getComplexityValue (SoAction *action)void beginSolidShape (SoGLRenderAction *action)void endSolidShape (SoGLRenderAction *action)void GLRenderBoundingBox (SoGLRenderAction *action)SbBool shouldPrimitiveCount (SoGetPrimitiveCountAction *action)SbBool shouldRayPick (SoRayPickAction *const action)void computeObjectSpaceRay (SoRayPickAction *const action)void computeObjectSpaceRay (SoRayPickAction *const action, const SbMatrix &matrix)virtual SoDetail * createTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp)virtual SoDetail * createLineSegmentDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp)virtual SoDetail * createPointDetail (SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp)void invokeTriangleCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3)void invokeLineSegmentCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2)void invokePointCallbacks (SoAction *const action, const SoPrimitiveVertex *const v)void beginShape (SoAction *const action, const TriangleShape shapetype, SoDetail *const detail=NULL)void shapeVertex (const SoPrimitiveVertex *const v)void endShape (void)void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal)void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *const tce, const float s, const float t, const float r, const SbVec3f &normal)SbBool startVertexArray (SoGLRenderAction *action, const SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const SbBool texpervertex, const SbBool colorpervertex)void finishVertexArray (SoGLRenderAction *action, const SbBool vbo, const SbBool normpervertex, const SbBool texpervertex, const SbBool colorpervertex)
๐ฆ Protected Member Functions inherited from SoNode ๐ฆ
SoNode (void)virtual ~SoNode ()virtual SbBool readInstance (SoInput *in, unsigned short flags)
๐ Protected Member Functions inherited from SoFieldContainer ๐
SoFieldContainer (void)virtual ~SoFieldContainer ()
๐ Protected Member Functions inherited from SoBase ๐
SoBase (void)virtual ~SoBase ()virtual void destroy (void)SbBool hasMultipleWriteRefs (void) constSbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constvoid writeFooter (SoOutput *out) constvirtual const char * getFileFormatName (void) const
โจ Static Protected Member Functions โจ
static const SoFieldData ** getFieldDataPtr (void)
โจ Static Protected Member Functions inherited from SoIndexedPointSet โจ
static const SoFieldData ** getFieldDataPtr (void)
โจ Static Protected Member Functions inherited from SoIndexedShape โจ
static const SoFieldData ** getFieldDataPtr (void)static SbBool areTexCoordsIndexed (SoAction *action)
โจ Static Protected Member Functions inherited from SoVertexShape โจ
static const SoFieldData ** getFieldDataPtr (void)
โจ Static Protected Member Functions inherited from SoShape โจ
static const SoFieldData ** getFieldDataPtr (void)
โจ Static Protected Member Functions inherited from SoNode โจ
static const SoFieldData ** getFieldDataPtr (void)static void setNextActionMethodIndex (int index)static int getNextActionMethodIndex (void)static void incNextActionMethodIndex (void)static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
โจ Static Protected Member Functions inherited from SoBase โจ
static uint32_t getCurrentWriteCounter (void)static void staticDataLock (void)static void staticDataUnlock (void)
๐ Additional Inherited Members ๐
Public Types inherited from SoShape
enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON, QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP }
Public Types inherited from SoNode
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002, INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010, INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080, COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 = 0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000, COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000 }
Protected Types inherited from SoIndexedPointSet
enum Binding { OVERALL, PER_VERTEX, PER_VERTEX_INDEXED }
Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
Protected Attributes inherited from SoIndexedPointSet
SoVertexArrayIndexer * vaindexer
Protected Attributes inherited from SoNode
uint32_t uniqueId
Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
Static Protected Attributes inherited from SoNode
static uint32_t nextUniqueId = 1static int nextActionMethodIndex = 0
โจ Detailed Description โจ
The SoIndexedMarkerSet class is used to display a set of bitmap markers at 3D positions. ๐
This node either uses the coordinates currently on the state (typically set up by a leading SoCoordinate3 node in the scenegraph) or from a SoVertexProperty node attached to this node to render a set of 3D points.
To add new markers, use the static functions in SoMarkerSet.
Here's a simple usage example of SoIndexedMarkerSet in a scenegraph:
#Inventor V2.1 ascii
Separator {
Material {
diffuseColor [
1 0 0, 0 1 0, 0 0 1, 1 1 0, 1 0 1, 1 1 1, 1 0.8 0.6, 0.6 0.8 1
]
}
MaterialBinding { value PER_VERTEX_INDEXED }
Coordinate3 {
point [
-1 1 0, -1 -1 0, 1 -1 0, 1 1 0, 0 2 -1, -2 0 -1, 0 -2 -1, 2 0 -1
]
}
IndexedMarkerSet {
coordIndex [0, 1, 2, 3, 4, 5, 6, 7]
markerIndex [0, 1, 0, 1, 0, 1, 0, 1]
}
}
FILE FORMAT/DEFAULTS:
IndexedMarkerSet {
vertexProperty NULL
coordIndex 0
materialIndex -1
normalIndex -1
textureCoordIndex -1
markerIndex -1
}
Since: TGS Inventor 6.0, Coin 3.1 ๐
๐ Constructor & Destructor Documentation ๐
SoIndexedMarkerSet::SoIndexedMarkerSet (void )
Constructor. ๐๏ธ
SoIndexedMarkerSet::~SoIndexedMarkerSet () [protected], [virtual]
Destructor. ๐
๐ฅ Member Function Documentation ๐ฅ
SoType SoIndexedMarkerSet::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and "downward" casting.
Usage example:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type
}
}
For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: 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 for instance Inventor/nodes/SoSubNode.h (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.
For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
Reimplemented from SoIndexedPointSet.
const SoFieldData * SoIndexedMarkerSet::getFieldData (void ) const [protected], [virtual]
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL.
Reimplemented from SoIndexedPointSet.
void SoIndexedMarkerSet::GLRender (SoGLRenderAction * action) [virtual]
Action method for the SoGLRenderAction.
This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method.
Reimplemented from SoIndexedPointSet.
void SoIndexedMarkerSet::notify (SoNotList * l) [virtual]
Notifies all auditors for this instance when changes are made.
Reimplemented from SoIndexedPointSet.
๐ Author ๐
Generated automatically by Doxygen for Coin from the source code.
That's the whole vibe, bestie! This page is from Coin, Version 3.1.3, and it's the SoIndexedMarkerSet(3) manpage. Stay iconic! ๐
โจ
๐ฆ 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