Viewport Filters
-
On 13/06/2014 at 02:10, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R14
Platform: Windows ;
Language(s) : C++ ;---------
Hi Folks,
I've seen some python code on how to turn some viewport filters on/off, but the c++ was a little confusing to me (maybe the syntax?). Is someone in the know able to clarify the following:
1. There's DOCUMENT_SELECTIONFILTER and DOCUMENTFILTER_ flags, which is used for turning off, say viewport polygons, and how is it done? Below is one of the variations I've tried:BaseDocument *doc = GetActiveDocument(); BaseContainer bc = doc->GetData(DOCUMENTSETTINGS_DOCUMENT); LONG Filter = bc.GetLong(DOCUMENT_SELECTIONFILTER); bc.SetLong(DISPLAYFILTER_POLYGON,...); // <--- does something go here? doc->SetData(DOCUMENTSETTINGS_DOCUMENT,bc);
2. Second to the above, can this be done on a per-viewport basis? I've tried the GetBaseDrawCount() to try and find a window count, but it always returns the same value (which is 4 for me) which leaves me unsure on how to get a viewport on an individual basis (if possible).
Cheers,
WP -
On 13/06/2014 at 08:06, xxxxxxxx wrote:
What you've got there is code for the SelectionFilter option. Not the DisplayView option.
This is how to enable/disable the DV polygon option.
AFAIK. This option can't be different for multiple windows.BaseDraw *bd = doc->GetActiveBaseDraw(); //Use "TRUE" or "FALSE" to turn it on/off bd->SetParameter(DescLevel(BASEDRAW_DISPLAYFILTER_POLYGON), FALSE, DESCFLAGS_SET_0);
Since you've said you don't understand that code you posted.
Here's also examples of how to use it to enable/disable the SelectionFilter's polygon option.
The SelectionFilter uses bitwise operators to enable/disable them.//This code Turns the Select->SelectionFilter menu polygon filter option OFF //The option found in the Select->Selection Filter menu //Gets the document's container which includes the selection filter bit mask BaseContainer bc = doc->GetData(DOCUMENTSETTINGS_DOCUMENT); LONG sf = bc.GetLong(DOCUMENT_SELECTIONFILTER); //Get the filter bit mask if(!(sf & SELECTIONFILTERBIT_POLYGON)) //If the polygon option is enabled { LONG f = sf | SELECTIONFILTERBIT_POLYGON; //Turns the polygon filter option off using the bitwise switching off code bc.SetLong(DOCUMENT_SELECTIONFILTER, f); } doc->SetData(DOCUMENTSETTINGS_DOCUMENT, bc); EventAdd(); //This code Turns the Select->SelectionFilter menu polygon filter option ON //The option found in the Select->Selection Filter menu //Gets the document's container which includes the selection filter bit mask BaseContainer bc = doc->GetData(DOCUMENTSETTINGS_DOCUMENT); LONG sf = bc.GetLong(DOCUMENT_SELECTIONFILTER); //Get the filter bit mask if(sf & SELECTIONFILTERBIT_POLYGON) //If the polygon option is enabled { LONG f = sf &~ SELECTIONFILTERBIT_POLYGON; //Turns the polygon filter option on using the bitwise switching ON code bc.SetLong(DOCUMENT_SELECTIONFILTER, f); } doc->SetData(DOCUMENTSETTINGS_DOCUMENT, bc); EventAdd();
-ScottA
-
On 14/06/2014 at 03:21, xxxxxxxx wrote:
Hi Scott,
thanks for the above, I seem to have the viewport filters under control now. I was all over the place with them!
The selection ones don't seem to be doing much for me - I'll need to have a closer look at them.
WP.