Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
I found this C++ code to retreive the Axis State of C4D
axisstate.x = doc->GetData(DOCUMENTSETTINGS_GENERAL).GetBool(DOCUMENT_STATEX) ? 1 : 0;
I am trying to translate this to python including the weird syntax of ? 1:0
? 1:0
what does this do ? Set True to 1 and false to 0 ?
The Documentation only gave me this which didn't enlighten me.
Thank you for your time. mogh
Hi @mogh This is a ternary operation,
python support it this way.
axisstate.x = 1 if doc.GetData(c4d.DOCUMENTSETTINGS_GENERAL).GetBool(DOCUMENT_STATEX) else 0
but regarding the statement, it could also be used without the ternary operator, since True == 1 as an integer so it will produce the same result
axisstate.x = int(doc.GetData(c4d.DOCUMENTSETTINGS_GENERAL).GetBool(DOCUMENT_STATEX))
Cheers, Maxime
result = <statement> ? 1 : 0; When the statement before the question mark evaluates to true, then the part before the colon is assigned, else the right part is assigned. In your case when the flag of DOCUMENTSETTINGS_GENERAL is set (= true) then the value 1 is assigned to axisstate.x, if flag is cleared (= false) then value 0 is set.
DOCUMENTSETTINGS_GENERAL
in other words, it is a shortcut for
if (doc->GetData(DOCUMENTSETTINGS_GENERAL).GetBool(DOCUMENT_STATEX)) axisstate.x = 1; else axisstate.x = 0;
thanks to all of you, got it working with axisstate.x = int(doc.GetData(c4d.DOCUMENTSETTINGS_GENERAL).GetBool(c4d.DOCUMENT_STATEX))
axisstate.x = int(doc.GetData(c4d.DOCUMENTSETTINGS_GENERAL).GetBool(c4d.DOCUMENT_STATEX))
kind regards mogh