123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include <tchar.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "GLBaseClasses"
- #pragma link "GLBitmapFont"
- #pragma link "GLCadencer"
- #pragma link "GLCoordinates"
- #pragma link "GLCrossPlatform"
- #pragma link "GLGeomObjects"
- #pragma link "GLGraph"
- #pragma link "GLObjects"
- #pragma link "GLPolyhedron"
- #pragma link "GLScene"
- #pragma link "GLWin32Viewer"
- #pragma link "GLWindowsFont"
- #pragma link "GLGizmoEx"
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- void __fastcall TForm1::UpdateTreeView()
- {
- int I;
- TTreeNode *ObjectNode;
- TTreeNode *CurrentNode;
- TreeView1->Items->Clear();
- // -- add two root nodes --
- ObjectNode = TreeView1->Items->AddFirst(NULL, "RootTempObjects");
- // -- get the object's tree --
- TreeView1->Items->BeginUpdate();
- // -- objects (with children too) --
- if (RootTempObjects)
- {
- ObjectNode->Data = RootTempObjects;
- for (I = 0; I < RootTempObjects->Count -1; I++)
- {
- // AddNodes(ObjectNode, Children[I]);
- if (IsSubComponent(RootTempObjects->Children[I])) {
- ObjectNode = TreeView1->Selected;
- exit;
- }
- else {
- CurrentNode = TreeView1->Items->
- AddChildObject(ObjectNode , RootTempObjects->Children[I]->Name, RootTempObjects->Children[I]);
- for (I = 0; I < RootTempObjects->Children[I]->Count -1; I++)
- // AddNodes(ObjectNode, Children[I]);
- if (IsSubComponent(RootTempObjects->Children[I])) {
- ObjectNode = TreeView1->Selected;
- exit;
- }
- else {
- CurrentNode = TreeView1->Items->
- AddChildObject(ObjectNode , RootTempObjects->Children[I]->Name, RootTempObjects->Children[I]);
- }
- }
- ObjectNode->Expand(true);
- }
- TreeView1->Items->EndUpdate();
- // -- add two root nodes --
- ObjectNode = TreeView1->Items->AddFirst(NULL, "World");
- // -- get the object's tree --
- TreeView1->Items->BeginUpdate();
- // -- objects (with children too) --
- if (GLRootObjects)
- {
- ObjectNode->Data = GLRootObjects;
- for (I = 0; I < RootTempObjects->Count -1; I++)
- {
- // AddNodes(ObjectNode, Children[I]);
- if (IsSubComponent(RootTempObjects->Children[I])) {
- ObjectNode = TreeView1->Selected;
- exit;
- }
- else {
- CurrentNode = TreeView1->Items->
- AddChildObject(ObjectNode , RootTempObjects->Children[I]->Name, RootTempObjects->Children[I]);
- }
- }
- ObjectNode->Expand(true);
- }
- TreeView1->Items->EndUpdate();
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormCreate(TObject *Sender)
- {
- Gizmo = new TGLGizmoEx(this);
- Gizmo->LabelFont = WindowsBitmapFont;
- Gizmo->Viewer = Viewer;
- Gizmo->ExcludeClassnameList->Add("TGLSphere");
- FCreationScenarious = -1;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormDestroy(TObject *Sender)
- {
- Gizmo->Free();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
- {
- Gizmo->CanAddObjToSelectionList = (Key==vkControl);
- Gizmo-> CanRemoveObjFromSelectionList = (Key==vkMenu);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
- {
- Gizmo->CanAddObjToSelectionList = false;
- Gizmo->CanRemoveObjFromSelectionList = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta,
- TPoint &MousePos, bool &Handled)
- {
- Camera->AdjustDistanceToTarget(Power(1.1, WheelDelta / 120));
- Gizmo->UpdateGizmo();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
- const double newTime)
- {
- Viewer->Invalidate();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Timer1Timer(TObject *Sender)
- {
- Panel1->Caption = Viewer->FramesPerSecondText();
- Viewer->ResetPerformanceMonitor();
- if (GLScene1->IsUpdating())
- UpdateTreeView();
- }
- //---------------------------------------------------------------------------
|