private void unMark(BrowserNodesEnumerator browserNodes)
        {
            foreach (BrowserNode node in browserNodes)
            {
                BrowserNodeDisplayStateEnum displaystate = node.BrowserNodeDefinition.DisplayState;
                if (displaystate == BrowserNodeDisplayStateEnum.kDefaultDisplayState ||
                    displaystate == BrowserNodeDisplayStateEnum.kGreenCheckDisplayState ||
                    displaystate == BrowserNodeDisplayStateEnum.kCyclicDisplayState)
                {
                    node.BrowserNodeDefinition.DisplayState = BrowserNodeDisplayStateEnum.kDefaultDisplayState;
                }

                if (node.NativeObject is BrowserFolder)
                {
                    unMark(node.BrowserNodes);
                }
            }
        }
        private void mark(BrowserNodesEnumerator browserNodes)
        {
            foreach (BrowserNode node in browserNodes)
            {
                if (node.NativeObject is BrowserFolder)
                {
                    mark(node.BrowserNodes);
                }

                if (node.NativeObject is ComponentOccurrence)
                {
                    ComponentOccurrence occ = (ComponentOccurrence)node.NativeObject;
                    int TranslationDegreesCount;
                    ObjectsEnumerator TranslationDegreesVectors;
                    int RotationDegreesCount;
                    ObjectsEnumerator RotationDegreesVectors;
                    Point             DOFCenter;

                    occ.GetDegreesOfFreedom(out TranslationDegreesCount, out TranslationDegreesVectors,
                                            out RotationDegreesCount, out RotationDegreesVectors, out DOFCenter);

                    BrowserNodeDisplayStateEnum displaystate = node.BrowserNodeDefinition.DisplayState;
                    if (displaystate == BrowserNodeDisplayStateEnum.kDefaultDisplayState ||
                        displaystate == BrowserNodeDisplayStateEnum.kGreenCheckDisplayState ||
                        displaystate == BrowserNodeDisplayStateEnum.kCyclicDisplayState)
                    {
                        if ((TranslationDegreesCount == 0) && (RotationDegreesCount == 0))
                        {
                            node.BrowserNodeDefinition.DisplayState = BrowserNodeDisplayStateEnum.kGreenCheckDisplayState;
                        }
                        //else if ((TranslationDegreesCount == 0) && (RotationDegreesCount == 1))
                        //{
                        //    node.BrowserNodeDefinition.DisplayState = BrowserNodeDisplayStateEnum.kCyclicDisplayState;
                        //}
                        else
                        {
                            node.BrowserNodeDefinition.DisplayState = BrowserNodeDisplayStateEnum.kDefaultDisplayState;
                        }
                    }
                }
            }
        }