Moin Forum,
in einem Beispielprogramm lade ich ein paar STL-Dateien in meine GLScene:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| for i := 0 to DateiListe.Count-1 do begin
MyGLFreeForm := GLScene1.Objects.AddNewChild(TGLFreeForm) as TGLFreeForm; with MyGLFreeForm do begin Tag := i; Name := 'a_' + IntToStr(i); Material.Texture.Disabled := false; LoadFromFile(DateiListe[i]); Scale.X := 0.01; Scale.Y := 0.01; Scale.Z := 0.01; ShowAxes := false; end; |
Im OnClick-Ereignis des Viewers passiert folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure THauptForm.GLSceneViewer1Click(Sender: TObject); begin
if Assigned(PickedObject) then begin PickedObject.Material.FrontProperties.Diffuse.AsWinColor := AlteFarbe; PickedObject.ShowAxes := false; end;
PickedObject := (GLSceneViewer1.Buffer.GetPickedObject(LastMouseDown.x, LastMouseDown.y) as TGLCustomSceneObject); if Assigned(PickedObject) then begin GLCamera1.TargetObject := PickedObject; AlteFarbe := PickedObject.Material.FrontProperties.Diffuse.AsWinColor; PickedObject.Material.FrontProperties.Diffuse.AsWinColor := clYellow; Caption := DateiListe[PickedObject.Tag]; PickedObject.ShowAxes := True; end;
end; |
das heißt, dass das Target-Obejct meiner GLCamera1 gelb markiert wird. Das funktioniert auch, ich habe mir im Debugger angesehen, was das Target-Object ist. Wenn ich aber jetzt GLCamera1.MoveAroundTarget ausführe dann rotiert alles um die Positionen 0,0,0 (Siehe ScreenShots). Egal welches Objekt ich auswähle.
ich hoffe, Ihr könnt mir helfen?
Gruß Oliver
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...