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.