Femlab 2

1.4.3. Вибір та виділення об'єктів

Вибір об'єктів у додатку GUI femlab здійснюється клацаннями миші по цих об'єктах. Не потрібно виконувати спеціальні команди та розгортати діалогові вікна для вибору тривимірних об'єктів. Залежно від режиму роботи GUI-програми femlab можливий вибір геометричних об'єктів, зон, меж, граней, ребер та точок (вершин).

Поодинокий вибір об'єктів

Одиничний вибір (і виділення) здійснюється простим клацанням лівої кнопки миші. При поодинокому виборі виділений об'єкт підсвічується коричневим кольором. Виділення можна виконати також клацанням по суміжному об'єкті. Режими виділення клацаннями суміжних об'єктів показані на рис. 1.44. Клацанням миші можна виділяти лише об'єкти, для яких встановлений атрибут Clickable (див. мал. 1.44).

Працюючи з тривимірною розрахунковою областю одному й тому положенню покажчика миші у полі axes може відповідати кілька її об'єктів. Який з цих об'єктів виявиться вибраним у результаті клацання мишею? Однозначний вибір визначається пріоритетами об'єктів.

Найвищий пріоритет мають позначки об'єктів. Далі у порядку зменшення пріоритету: вершини, ребра, грані.

Впорядкування в межах типу об'єкта існує лише для граней. Пріоритети граней, що перекриваються, визначаються їх площами. Найвищий пріоритет має найменша грань, тобто. перше клацання миші виділяє саме її. Друге клацання мишею виділяє наступну за пріоритетом грань і т.д. Це означає, що в межах сукупності граней, що перекриваються, виділення клацаннями миші носить циклічний характер.

Виділення відбувається під час відпускання кнопки миші. Поки кнопка натиснута, можна дізнатися, який об'єкт буде виділено, якщо подивитися на індикатор координат покажчика миші. При натиснутій кнопці тамзамість значень координат показується ім'я (мітка) об'єкта, що виділяється. Область індикатора координат знаходиться в нижньому лівому кутку фігури femlab (див. рис. 1.43). Переміщення вказівника миші при натиснутій кнопці призведе до скасування виділення. У цьому випадку на інструментальній панелі Orbit/Pan/Zoom кнопки керування камерою мають бути віджаті.

Як приклад розглянемо систему конус – кулю, зображену на рис. 1.52. Нехай GUI-додаток femlab працює в режимі Boundary Mode, нехай в даний момент жодна з граней не виділена. Позиції покажчика миші, у точці, позначеної стрілкою, відповідають дві грані: одна переднього плану, інша заднього. Через війну клацання мишею буде виділено межу заднього плану, т.к. вона має меншу площу (див. рис. 1.53). Повторне клацання мишею виділить грань переднього плану (див. рис. 1.54). Третє клацання мишею знову виділить грань заднього плану (див. рис. 1.53). Так циклічно повторюватиметься незалежно від переміщень покажчика миші між клацаннями.

миші
Мал. 1.52. Система конус – куля у режимі Boundary Mode

femlab
Мал. 1.53. Система конус – куля з виділеною гранню заднього плану

єктів
Мал. 1.54. Система конус – куля з виділеною гранню переднього плану

Множинне виділення об'єктів

Множинне виділення об'єктів здійснюється клацаннями миші при одночасно утримуваній клавіші Shift або клацаннями середньою кнопкою миші. Такий спосіб множинного виділення які завжди зручний, т.к. у разі перекриття об'єктів не завжди можна вгадати, який об'єкт додасться до виділеної групи, і скасувати це додавання після натискання не можна. У таких випадках можна використовувати прийоми, наведені нижче. Для виділення всіх об'єктів можна натиснути Ctrl-A. Потрібно враховувати, що клацання лівою кнопкою мишібез Shift призведе до одиничного виділення, скасовуючи всі попередні виділення із Shift.

На головній панелі інструментів є кнопка Select. Якщо вона натиснута, то можливе виділення об'єктів за допомогою прямокутника, що розтягується в результаті переміщення покажчика миші при натиснутій кнопці. При віджиманні кнопки миші виділяються ті об'єкти, які повністю потрапили в прямокутник, що розтягується. Якщо при розтягуванні прямокутника була натиснута клавіша Shift, відбувається додавання виділення. Якщо при розтягуванні прямокутника була натиснута клавіша Ctrl, то залишаться виділеними об'єкти, які повністю потрапили в прямокутник, і які раніше були виділені (це називається логічною операцією І).

Фіксація вибору об'єктів

Нехай є один або кілька виділених об'єктів, які підсвічені коричневим кольором. Щоб їх виділення не скасовувалося при виборі інших об'єктів, можна зафіксувати виділення. Фіксація виділення відбувається в результаті клацання правою кнопкою миші (або лівою при одночасному утриманні Ctrl) у будь-якому місці поля axes. Фіксовано виділені об'єкти підсвічуються сіро-синім кольором. Аналогічний ефект викликає натискання кнопки Confirm Selection на інструментальній панелі виділення об'єктів.

Фіксовано виділені об'єкти можна помітити на відміну виділення. Позначка таких об'єктів виконується так само, як і звичайне виділення. Це означає, що у процесі множинного виділення можна попутно мітити фіксовано виділені об'єкти. Позначені об'єкти підсвічуються зеленим кольором. З логічної та фізичної точки зору коричневе, сіро-синє та зелене виділення еквівалентні. Це означає, що команди обробки груп виділених об'єктів мають однакову дію на всі підсвічені об'єкти незалежно відкольори. На рис. 1.55 показаний приклад одночасної наявності в розрахунковій області виділених, фіксовано виділених і помічених на відміну виділення об'єктів. Клацніть правою кнопкою миші в полі axes призведе до фіксації просто виділених об'єктів і скасування виділення помічених об'єктів (рис. 1.56).

femlab
Мал. 1.55. Різне підсвічування виділених граней у режимі Boundary Mode

єктів
Мал. 1.56. Група виділених об'єктів після клацання правою кнопкою миші

Скасування виділення об'єктів незалежно від фіксації здійснюється шляхом виконання команди меню Edit/Deselect All або Ctrl-D. У наведеному прикладі натискання Ctrl-D призведе до того, що зображення розрахункової області знову набуде вигляду, показаного на рис. 1.52.

Списки виділення у діалогових вікнах

Багато діалогових вікнах, таких як Boundary Settings, Subdomain Settings та ін. є списки виділення з мітками (номерами) граней або зон. Виділені мітки у цих списках завжди однозначно відповідають виділенням у полі axes. Виділення та скасування виділення у списках здійснюється так само, як і у всіх браузерах файлової системи Windows: одиничне виділення – простим клацанням миші, множинне – з одночасним утримуванням Ctrl або Shift. Виділення та скасування виділення у списку діє незалежно від фіксації в полі axes.

Подвійне клацання по об'єкту призводить до розкриття діалогового вікна налаштування цього об'єкта. Якщо при наведенні вказівника миші вибір об'єкта неоднозначний, подвійне клацання призведе до швидкого циклічного перемикання вибору об'єктів. Це корисно за необхідності оперативної позначки фіксовано- виділених об'єктів. У режимі Draw Mode подвійне клацання правою кнопкою миші в полі axes призводить до розгортання діалогового вікна налаштування геометричного об'єкта, якщо вінє єдиним виділеним. У Point, Edge, Boundary та Subdomain Mode подвійне клацання в полі axes призводить до розгортання діалогового вікна налаштування точкових об'єктів (вершин), ребер, граней та зон (Point Settings, Edge Settings, Boundary Settings, Subdomain Settings).

Переміщення вказівника миші при натиснутій кнопці

Переміщення вказівника миші породжує дії, які визначаються станом режимних кнопок інструментальної панелі Orbit/Pan/Zoom. Якщо жодна з цих кнопок не натиснута, виконується рамкове виділення об'єктів, описане вище. Кнопка Select головної панелі інструментів віджимає всі режимні кнопки панелі Orbit/Pan/Zoom, включаючи режим рамкового виділення.

Вище було сказано, що виділення об'єкта відбувається під час відпускання кнопки миші. Якщо Ви, тримаючи кнопку миші на об'єкті, передумали його виділяти, то можна трошки змістити покажчик миші, тоді виділення об'єкта буде скасовано, проте потрібно враховувати, що в цьому випадку буде виконана дія, яка зумовлена ​​режимною кнопкою панелі Orbit/Pan/Zoom. Для запобігання зайвим діям при виділенні кнопку Select найкраще тримати натиснутою.

Виділення суміжних об'єктів

Виділення об'єктів здійснюється клацаннями миші за ними або суміжними об'єктами. Сумежний об'єкт, як правило, межує з кількома об'єктами. У зв'язку з цим є кілька методів виділення суміжних об'єктів. Методи їхнього виділення визначаються станом режимних кнопок інструментальної панелі виділення об'єктів. Цих кнопок дві: Select All Adjacent (виділення всіх суміжних об'єктів) та Cycle Adjacent (циклічне виділення суміжних об'єктів). Про ці методи (режимах) було сказано під час опису кнопок інструментальних панелей.

У цих режимів діють ще три метода. Ці методи можна застосуватитільки в режимі Boundary Mode: нормальне виділення граней (Normal Face Selection), виділення всіх граней, що належать тільки тій зоні, по якій зроблено клацання (All Faces with Adjacent Subdomains), а також виділення всіх граней, що обмежують зону та утворюють замкнуту поверхню (All Faces Adjacent to Subdomain). Третій із цих режимів відрізняється від другого лише в тому випадку, коли встановлено прапорець Boundary/Enable Borders.

Нехай розрахункова область має вигляд, показаний на рис. 1.52. Спробуємо зробити клацання мишею найближчою до камери спостереження грані конуса. На рисунках 1.57, 1.58, 1.59 показані результати такого клацання відповідно в режимах Normal Face Selection, All Faces with Adjacent Subdomains та All Faces Adjacent to Subdomain при встановленому прапорі Boundary/Enable Borders.

граней
Мал. 1.57. Одиничне виділення грані клацанням миші при чинному методі Normal Face Selection

єктів
Мал. 1.58. Виділення всіх зовнішніх граней нижньої зони за методом, що діє, All Faces with Adjacent Subdomains

єктів
Мал. 1.59. Виділення всіх зовнішніх граней нижньої зони за діючим методом All Faces Adjacent to Subdomain