World3D là một kiến trúc mở

Một phần của tài liệu XÂY DỰNG THƯ VIỆN PHẦN MỀM HỖ TRỢ HỆ THỐNG THÔNG TIN ĐNA LÝ GIS 3D DỰA TRÊN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG BẰNG NGÔN NGỮ C++ (Trang 72 - 73)

World3D được thiết kế như là một đối tượng có kiến trúc mở. Nghĩa là người dùng có thể định nghĩa, can thiệp cũng như có thể thay đổi hầu hết các đáp ứng, các dialog

chuNn của World3D thông qua tập các biến cố. Ở đây, ta không dự định tìm hiểu chi tiết về các biến cố này mà chỉ điểm qua các nhóm biến cố chính. Chi tiết về các biến cố sẽ được trình bày rõ hơn ở phần phụ lục.

Các biến cố của World3D có thể phân thành các nhóm sau:

a. Nhóm các biến cố khi thay đổi trạng thái của World3D.

Các biến cố này được kích hoạt khi trạng thái của World3D thay đổi, bao gồm các biến cố sau:

OnCameraChanged: kích hoạt khi vị trí của camera bị thay đổi.

OnModeChanging, OnModeChanged: kích hoạt khi World3D đang/đã thay đổi

chế độ hoạt động.

OnMessage: kích hoạt khi World3D hay các đối tượng trong World3D cần gởi

một thơng điệp ra ngồi, biến cố này thường dùng để báo lỗi hay thực hiện debug.

b. Nhóm biến cố hiển thị đối tượng.

Nhóm biến cố này cho phép người dùng can thiệp vào quá trình vẽ các đối tượng 3D, bao gồm các biến cố sau:

OnPreRenderScene, OnPostRenderScene: kích hoạt khi Worl3D bắt đầu/kết

thúc q trình render các đối tượng.

OnRenderObject, OnRenderFastSelection: kích hoạt khi World3D cần render

một đối tượng nằm trong nó.

OnGDIDraw: kích hoạt sau khi q trình render hồn tất, cho phép người

người thực hiện các thao tác vẽ trên device context của World3D bằng các lệnh vẽ của GDI hoặc GDI+.

c. Nhóm biến cố tương tác với đối tượng.

Nhóm biến cố nào bao gồm các biến cố liên quan đến việc xử lý các đối tượng nằm trong World3D khi có tương tác với người dùng qua mouse, keyboard:

OnMouseEnterObj, OnMouseLeaveObj, OnMouseMoveObj: kích hoạt khi

mouse di chuyển vào/ra/bên trong đối tượng 3D.

OnMouseDownObj, OnMouseUpObj: kích hoạt khi mouse nhấn/thả trên một

Luận văn tốt nghiệp GVHH: Nguyễn Hữu Hải.

OnDragObject, OnDraggingObj, OnDropObj, OnDroppedObj: kích hoạt khi

một đối tượng bắt đầu/ đang kéo và sắp/đã thả xuống.

OnKeyDownObj, OnKeyUpObj: kích hoạt khi người dùng nhấn/thả phím khi

đang chọn một đối tượng.

d. Nhóm biến cố tạo/xóa đối tượng.

Nhóm biến cố tạo/xóa đối tượng được kích hoạt khi người dùng chèn/xóa đối tượng trong World3D, bao gồm các biến cố sau:

OnCreatingObject, OnCreateObject: kích hoạt khi người dùng tạo đối tượng,

và đối tượng đã được chèn lớp danh sách các đối tượng của World3D.

OnDeletingObject, OnDeleteObject: kích hoạt khi người dùng bắt đầu xóa đối

tượng và khi đối tượng đã được loại khỏi World3D.

e. Nhóm biến cố liên quan Action.

Nhóm các biến cố này cung cấp khả năng quản lý các hạng mục trong trình đơn popup của World3D khi người dùng click phải chuột, bao gồm các biến cố sau:

OnCreateStdAction, OnPerformStdAction: kích hoạt khi World3D khởi tạo các

action chuNn tùy vào ngữ cảnh và khi người dùng chọn vào các action này. • OnCreateObjectAction, OnPerformObjectAction: tương tự như hai biến bố trên

nhưng áp dụng cho các action do các đối tượng 3D tạo ra.

Một phần của tài liệu XÂY DỰNG THƯ VIỆN PHẦN MỀM HỖ TRỢ HỆ THỐNG THÔNG TIN ĐNA LÝ GIS 3D DỰA TRÊN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG BẰNG NGÔN NGỮ C++ (Trang 72 - 73)

Tải bản đầy đủ (PDF)

(117 trang)