Bastep opened this issue on Nov 03, 2023 ยท 6 posts
Bastep posted Fri, 03 November 2023 at 2:15 PM
In the Poser API, there is the GetIdType() method under the object definition for SceneObjectType. This returns an integer. Is there a list of this ID?
Regards
class SceneObjectType(builtins.object)
Methods defined here:
GetIdType(...)
Return the exact type of this scene object.
<IntType> GetIdType()
Bastep posted Sat, 04 November 2023 at 7:09 PM
I created a list for GetIdType(...) myself. Is this list complete? Who knows. If I find something new I will add to the list.
Here the list:
ID_TYPE_BODY_ACTOR = 7
ID_TYPE_CAMERA = 8
ID_TYPE_LIGHT = 9
ID_TYPE_PROPS = 12
ID_TYPE_BASE = 16 # Magnet
ID_TYPE_DEFORMER = 18 # Magnet
ID_TYPE_ZONE = 21 # Magnet
ID_TYPE_HAIRPROP = 23 # Only applies to hair done in the Hairroom.
ID_TYPE_IS_CONTROL_PROP = 28
ID_TYPE_GROUPING = 29
ID_TYPE_MEASUREMENT = 34
# The following ID covers various scene objects.
# CenterOfMass
# GoalCenterOfMass
# BackgroundMaterialActor
# AtmosphereMaterialActor
# FocusDistanceControl
ID_TYPE_VARIOUS = 26
an0malaus posted Thu, 16 November 2023 at 8:16 PM
Here's what I've been able to determine:
PPM_GETIDTYPE = 'GetIdType'
ActorTypeNames = { 7 : 'actor',
8 : 'camera',
9 : 'light',
12 : 'prop', # IsPropInstance
15 : 'curveProp',
16 : 'baseProp',
18 : 'magnetDeformerProp',
19 : 'waveDeformerProp',
21 : 'sphereZoneProp',
23 : 'hairProp',
24 : 'uniformForceFieldProp',
25 : 'coneForceFieldProp',
26 : 'controlProp',
28 : 'controlHandleProp',
29 : 'groupingObject',
34 : 'measurementLine',
35 : 'measurementAngle',
36 : 'measurementCircle',
37 : 'measurementPolyline',
}
Not every valid IdType has a defined poser constant, though.
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
an0malaus posted Thu, 16 November 2023 at 8:19 PM
Ugh! I've spent too long away from this forum. Can't remember all the formatting settings. [Sigh] ;-)
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
Bastep posted Fri, 17 November 2023 at 5:17 AM
Hello, very nice to see more entries in the list. As I see it, there are no poser constants for the GetIdType method in the API.
I would like to make one comment. Number 7 is not just an Actor, it is a BodyActor. This could otherwise lead to confusion.
Kind regards
an0malaus posted Sat, 18 November 2023 at 3:01 AM
Yup. I should note that my dict is intended to ease the writing of Poser files. Every low-level object in a Poser scene is an "actor", including cameras, lights, the UNIVERSE actor, props, and, of course figure body parts. Only the "body actors" get the string "actor" in poser files as their TypeId string.
Poser has a long and storied history of using terms which later lead to confusion by varied usage. "Actor" is just one of many, sadly.
Early ideas were built upon, and later features introduced to Poser file syntax which rendered prior naming illogical, though they were initially logical, e.g. targetGeom channels (or morph targets) have an "indexes" attribute. Initially, this was the only attribute before the list of deltas, indicating the length of the list. However, that did not accurately indicate that zero deltas could be omitted, so, instead of repurposing "indexes" to indicate the range of valid indices or the number of vertices in the actor's geometry, a new attribute "numbDeltas" was added to (confusingly) indicate the number of geometry vertices, instead of a count of the number of non-zero deltas present.
Poser is fraught with contradictions due to the avoidance of backward incompatibility.
That, and the absolute absence of complete, detailed, official documentation of the Poser file formats and their syntax has been a hindrance which we struggle to overcome.
Understandable commercial pressures on the string of owners has also prevented this coming to fruition. We are lucky to have had such a supportive community willing to share their discoveries (even speculative) without ever having sighted a single line of code (Though some lists of constants have been known to be shared to help script developers).
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.