Document settings

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 19/09/2010 at 08:01, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R12 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
I'm being particularly dense here, this is such a simple question. How do you get the document settings for a document? Here's what I'm doing in this code snippet, where 'doc' is a valid pointer to the current document:

BaseContainer bc;   
// get the document's base container   
bc = doc->GetData(DOCUMENTSETTINGS_GENERAL);   
// get the linear workflow setting   
if(bc.GetBool(DOCUMENT_LINEARWORKFLOW))   
// ... rest of code   

Then the Bool I want always returns FALSE, even when the setting is clearly on. If I use doc->GetSettingsInstance(DOCUMENTSETTINGS_GENERAL) instead, it always returns a NULL pointer.

There's something wrong with what I'm doing, but what? All I want to do is get the value of the linear workflow switch in the document settings.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 20/09/2010 at 01:23, xxxxxxxx wrote:

The easiest way is to simply access the document's container directly.

  
BaseContainer *data = doc->GetDataInstance();  
Bool lwf = data->GetBool(DOCUMENT_LINEARWORKFLOW,TRUE);  

doc- >GetData(DOCUMENTSETTINGS_GENERAL) returns the container IDs from 1000 to 1020. The LWF option has the ID of 2102. It is included in the container returned by DOCUMENTSETTINGS_DOCUMENT.

  
DOCUMENT_TIME                    = 1000, // BASETIME  
DOCUMENT_FPS                    = 1001, // LONG  
DOCUMENT_MINTIME                = 1002, // BASETIME  
DOCUMENT_MAXTIME                = 1003, // BASETIME  
DOCUMENT_LOOPMINTIME            = 1004, // BASETIME  
DOCUMENT_LOOPMAXTIME            = 1005, // BASETIME  
DOCUMENT_LOD                    = 1006, // REAL  
DOCUMENT_RENDERLOD                = 1007, // BOOL  
DOCUMENT_USEANIMATION            = 1008, // BOOL  
DOCUMENT_USEEXPRESSIONS            = 1009, // BOOL  
DOCUMENT_USEGENERATORS            = 1010, // BOOL  
DOCUMENT_USEDEFORMERS            = 1011, // BOOL  
DOCUMENT_PATH                    = 1012, // FILENAME  
DOCUMENT_NAME                    = 1013, // FILENAME  
DOCUMENT_STATEX                    = 1014, // BOOL  
DOCUMENT_STATEY                    = 1015, // BOOL  
DOCUMENT_STATEZ                    = 1016, // BOOL  
DOCUMENT_STATEW                    = 1017, // BOOL  
DOCUMENT_USERCHANGE                = 1018, // BOOL  
DOCUMENT_MODE                    = 1019, // LONG  
DOCUMENT_ACTION                    = 1020, // LONG  

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 20/09/2010 at 04:05, xxxxxxxx wrote:

Aha, now I understand, thank you!

When you have a moment, could the docs on this be upgraded? For DOCUMENTSETTINGS_GENERAL, the SDK says 'see ddoc.h'. Which I did, and the LWF flag is part of the enum, so it made me think the returned container would include that setting. Also, DOCUMENTSETTINGS_DOCUMENT is marked in the docs as 'Private!' which makes you think it shouldn't be used, when it obviously can be.

Thanks,

Steve