소스 검색

Included grid options in TGLSkyDome

GLScene 2 년 전
부모
커밋
c1d6fadd49

+ 2 - 2
Packages/GLScene_Cg_DT.dproj

@@ -166,12 +166,12 @@
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>

+ 26 - 26
Packages/GLScene_RT.dpk

@@ -58,12 +58,12 @@ contains
   GLS.AVIRecorder in '..\Source\GLS.AVIRecorder.pas',
   GLS.AVIRecorder in '..\Source\GLS.AVIRecorder.pas',
   GLS.AnimatedSprite in '..\Source\GLS.AnimatedSprite.pas',
   GLS.AnimatedSprite in '..\Source\GLS.AnimatedSprite.pas',
   GLS.AnimationUtils in '..\Source\GLS.AnimationUtils.pas',
   GLS.AnimationUtils in '..\Source\GLS.AnimationUtils.pas',
-  GLS.ApplicationFileIO in '..\Source\GLS.ApplicationFileIO.pas',
-  GLS.AsyncHDS in '..\Source\GLS.AsyncHDS.pas',
-  GLS.AsyncTimer in '..\Source\GLS.AsyncTimer.pas',
+  GLS.ApplicationFileIO in '..\Source\VCL\GLS.ApplicationFileIO.pas',
+  GLS.AsyncHDS in '..\Source\VCL\GLS.AsyncHDS.pas',
+  GLS.AsyncTimer in '..\Source\VCL\GLS.AsyncTimer.pas',
   GLS.Atmosphere in '..\Source\GLS.Atmosphere.pas',
   GLS.Atmosphere in '..\Source\GLS.Atmosphere.pas',
   GLS.ArchiveManager in '..\Source\GLS.ArchiveManager.pas',
   GLS.ArchiveManager in '..\Source\GLS.ArchiveManager.pas',
-  GLS.BaseClasses in '..\Source\GLS.BaseClasses.pas',
+  GLS.BaseClasses in '..\Source\VCL\GLS.BaseClasses.pas',
   GLS.BaseMeshSilhouette in '..\Source\GLS.BaseMeshSilhouette.pas',
   GLS.BaseMeshSilhouette in '..\Source\GLS.BaseMeshSilhouette.pas',
   GLS.Behaviours in '..\Source\GLS.Behaviours.pas',
   GLS.Behaviours in '..\Source\GLS.Behaviours.pas',
   GLS.BitmapFont in '..\Source\GLS.BitmapFont.pas',
   GLS.BitmapFont in '..\Source\GLS.BitmapFont.pas',
@@ -134,16 +134,16 @@ contains
   GLS.FullScreenViewer in '..\Source\GLS.FullScreenViewer.pas',
   GLS.FullScreenViewer in '..\Source\GLS.FullScreenViewer.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
   GLS.GameMenu in '..\Source\GLS.GameMenu.pas',
   GLS.GameMenu in '..\Source\GLS.GameMenu.pas',
-  GLS.GeomObjects in '..\Source\GLS.GeomObjects.pas',
+  GLS.GeomObjects in '..\Source\VCL\GLS.GeomObjects.pas',
   GLS.GeometryBB in '..\Source\GLS.GeometryBB.pas',
   GLS.GeometryBB in '..\Source\GLS.GeometryBB.pas',
   Scena.Generics in '..\Source\Common\Scena.Generics.pas',
   Scena.Generics in '..\Source\Common\Scena.Generics.pas',
-  GLS.Gizmo in '..\Source\GLS.Gizmo.pas',
-  GLS.GizmoEx in '..\Source\GLS.GizmoEx.pas',
-  GLS.Graph in '..\Source\GLS.Graph.pas',
-  GLS.Graphics in '..\Source\GLS.Graphics.pas',
-  GLS.Gui in '..\Source\GLS.Gui.pas',
+  GLS.Gizmo in '..\Source\VCL\GLS.Gizmo.pas',
+  GLS.GizmoEx in '..\Source\VCL\GLS.GizmoEx.pas',
+  GLS.Graph in '..\Source\VCL\GLS.Graph.pas',
+  GLS.Graphics in '..\Source\VCL\GLS.Graphics.pas',
+  GLS.Gui in '..\Source\VCL\GLS.Gui.pas',
   GLS.HUDObjects in '..\Source\GLS.HUDObjects.pas',
   GLS.HUDObjects in '..\Source\GLS.HUDObjects.pas',
-  GLS.HeightData in '..\Source\GLS.HeightData.pas',
+  GLS.HeightData in '..\Source\VCL\GLS.HeightData.pas',
   GLS.HeightTileFileHDS in '..\Source\GLS.HeightTileFileHDS.pas',
   GLS.HeightTileFileHDS in '..\Source\GLS.HeightTileFileHDS.pas',
   GLS.ImageUtils in '..\Source\GLS.ImageUtils.pas',
   GLS.ImageUtils in '..\Source\GLS.ImageUtils.pas',
   GLS.Imposter in '..\Source\GLS.Imposter.pas',
   GLS.Imposter in '..\Source\GLS.Imposter.pas',
@@ -152,7 +152,6 @@ contains
   GLS.Joystick in '..\Source\VCL\GLS.Joystick.pas',
   GLS.Joystick in '..\Source\VCL\GLS.Joystick.pas',
   GLS.LensFlare in '..\Source\GLS.LensFlare.pas',
   GLS.LensFlare in '..\Source\GLS.LensFlare.pas',
   GLS.LinePFX in '..\Source\GLS.LinePFX.pas',
   GLS.LinePFX in '..\Source\GLS.LinePFX.pas',
-  Scena.Logger in '..\Source\Common\Scena.Logger.pas',
   GLS.Manager in '..\Source\GLS.Manager.pas',
   GLS.Manager in '..\Source\GLS.Manager.pas',
   GLS.Material in '..\Source\GLS.Material.pas',
   GLS.Material in '..\Source\GLS.Material.pas',
   GLS.MaterialEx in '..\Source\GLS.MaterialEx.pas',
   GLS.MaterialEx in '..\Source\GLS.MaterialEx.pas',
@@ -171,8 +170,8 @@ contains
   GLS.MultiSampleImage in '..\Source\GLS.MultiSampleImage.pas',
   GLS.MultiSampleImage in '..\Source\GLS.MultiSampleImage.pas',
   GLS.Navigator in '..\Source\GLS.Navigator.pas',
   GLS.Navigator in '..\Source\GLS.Navigator.pas',
   GLS.Nodes in '..\Source\GLS.Nodes.pas',
   GLS.Nodes in '..\Source\GLS.Nodes.pas',
-  GLS.ObjectManager in '..\Source\GLS.ObjectManager.pas',
-  GLS.Objects in '..\Source\GLS.Objects.pas',
+  GLS.ObjectManager in '..\Source\VCL\GLS.ObjectManager.pas',
+  GLS.Objects in '..\Source\VCL\GLS.Objects.pas',
   GLS.Octree in '..\Source\GLS.Octree.pas',
   GLS.Octree in '..\Source\GLS.Octree.pas',
   GLS.ParametricSurfaces in '..\Source\GLS.ParametricSurfaces.pas',
   GLS.ParametricSurfaces in '..\Source\GLS.ParametricSurfaces.pas',
   GLS.ParticleFX in '..\Source\GLS.ParticleFX.pas',
   GLS.ParticleFX in '..\Source\GLS.ParticleFX.pas',
@@ -205,26 +204,26 @@ contains
   GLSL.ShaderParameter in '..\Source\GLSL.ShaderParameter.pas',
   GLSL.ShaderParameter in '..\Source\GLSL.ShaderParameter.pas',
   GLSL.Shader in '..\Source\GLSL.Shader.pas',
   GLSL.Shader in '..\Source\GLSL.Shader.pas',
   GLS.Language in '..\Source\VCL\GLS.Language.pas',
   GLS.Language in '..\Source\VCL\GLS.Language.pas',
-  GLS.Memo in '..\Source\GLS.Memo.pas',
+  GLS.Memo in '..\Source\VCL\GLS.Memo.pas',
   GLS.ProjectedTextures in '..\Source\GLS.ProjectedTextures.pas',
   GLS.ProjectedTextures in '..\Source\GLS.ProjectedTextures.pas',
-  GLS.Scene in '..\Source\GLS.Scene.pas',
-  GLS.SceneForm in '..\Source\GLS.SceneForm.pas',
-  GLS.Screen in '..\Source\GLS.Screen.pas',
+  GLS.Scene in '..\Source\VCL\GLS.Scene.pas',
+  GLS.SceneForm in '..\Source\VCL\GLS.SceneForm.pas',
+  GLS.Screen in '..\Source\VCL\GLS.Screen.pas',
   GLS.ScreenSaver in '..\Source\GLS.ScreenSaver.pas',
   GLS.ScreenSaver in '..\Source\GLS.ScreenSaver.pas',
   GLS.Selection in '..\Source\GLS.Selection.pas',
   GLS.Selection in '..\Source\GLS.Selection.pas',
   GLS.ShadowHDS in '..\Source\GLS.ShadowHDS.pas',
   GLS.ShadowHDS in '..\Source\GLS.ShadowHDS.pas',
   GLS.ShadowPlane in '..\Source\GLS.ShadowPlane.pas',
   GLS.ShadowPlane in '..\Source\GLS.ShadowPlane.pas',
   GLS.ShadowVolume in '..\Source\GLS.ShadowVolume.pas',
   GLS.ShadowVolume in '..\Source\GLS.ShadowVolume.pas',
   GLS.SimpleNavigation in '..\Source\GLS.SimpleNavigation.pas',
   GLS.SimpleNavigation in '..\Source\GLS.SimpleNavigation.pas',
-  GLS.SkyDome in '..\Source\GLS.SkyDome.pas',
+  GLS.SkyDome in '..\Source\VCL\GLS.SkyDome.pas',
   GLS.SmoothNavigator in '..\Source\GLS.SmoothNavigator.pas',
   GLS.SmoothNavigator in '..\Source\GLS.SmoothNavigator.pas',
   GLS.SoundManager in '..\Source\GLS.SoundManager.pas',
   GLS.SoundManager in '..\Source\GLS.SoundManager.pas',
   GLS.SoundFileObjects in '..\Source\GLS.SoundFileObjects.pas',
   GLS.SoundFileObjects in '..\Source\GLS.SoundFileObjects.pas',
   GLS.SpacePartition in '..\Source\GLS.SpacePartition.pas',
   GLS.SpacePartition in '..\Source\GLS.SpacePartition.pas',
   GLS.State in '..\Source\GLS.State.pas',
   GLS.State in '..\Source\GLS.State.pas',
   GLS.SpaceText in '..\Source\GLS.SpaceText.pas',
   GLS.SpaceText in '..\Source\GLS.SpaceText.pas',
-  GLS.SceneViewer in '..\Source\GLS.SceneViewer.pas',
-  GLS.SmartObjects in '..\Source\GLS.SmartObjects.pas',
+  GLS.SceneViewer in '..\Source\VCL\GLS.SceneViewer.pas',
+  GLS.SmartObjects in '..\Source\VCL\GLS.SmartObjects.pas',
   GLS.TerrainRenderer in '..\Source\GLS.TerrainRenderer.pas',
   GLS.TerrainRenderer in '..\Source\GLS.TerrainRenderer.pas',
   GLS.TexLensFlare in '..\Source\GLS.TexLensFlare.pas',
   GLS.TexLensFlare in '..\Source\GLS.TexLensFlare.pas',
   GLS.Texture in '..\Source\GLS.Texture.pas',
   GLS.Texture in '..\Source\GLS.Texture.pas',
@@ -246,11 +245,6 @@ contains
   GLS.WindowsContext in '..\Source\GLS.WindowsContext.pas',
   GLS.WindowsContext in '..\Source\GLS.WindowsContext.pas',
   GLS.WindowsFont in '..\Source\GLS.WindowsFont.pas',
   GLS.WindowsFont in '..\Source\GLS.WindowsFont.pas',
   GLS.zBuffer in '..\Source\GLS.zBuffer.pas',
   GLS.zBuffer in '..\Source\GLS.zBuffer.pas',
-  Scena.OpenGLAdapter in '..\Source\Common\Scena.OpenGLAdapter.pas',
-  GLS.PersistentClasses in '..\Source\GLS.PersistentClasses.pas',
-  Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
-  GLS.Polynomials in '..\Source\GLS.Polynomials.pas',
-  Scena.CrossXML in '..\Source\Common\Scena.CrossXML.pas',
   GLS.Silhouette in '..\Source\GLS.Silhouette.pas',
   GLS.Silhouette in '..\Source\GLS.Silhouette.pas',
   GLS.VectorLists in '..\Source\GLS.VectorLists.pas',
   GLS.VectorLists in '..\Source\GLS.VectorLists.pas',
   GLS.ScriptBase in '..\Source\GLS.ScriptBase.pas',
   GLS.ScriptBase in '..\Source\GLS.ScriptBase.pas',
@@ -259,6 +253,11 @@ contains
   PasGLTF in '..\Source\Common\PasGLTF.pas',
   PasGLTF in '..\Source\Common\PasGLTF.pas',
   PasJSON in '..\Source\Common\PasJSON.pas',
   PasJSON in '..\Source\Common\PasJSON.pas',
   PasDblStrUtils in '..\Source\Common\PasDblStrUtils.pas',
   PasDblStrUtils in '..\Source\Common\PasDblStrUtils.pas',
+  GLS.PersistentClasses in '..\Source\GLS.PersistentClasses.pas',
+  Scena.OpenGLAdapter in '..\Source\Common\Scena.OpenGLAdapter.pas',
+  Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
+  Scena.Polynomials in '..\Source\Common\Scena.Polynomials.pas',
+  Scena.CrossXML in '..\Source\Common\Scena.CrossXML.pas',
   Scena.OpenGLTokens in '..\Source\Common\Scena.OpenGLTokens.pas',
   Scena.OpenGLTokens in '..\Source\Common\Scena.OpenGLTokens.pas',
   Scena.Spline in '..\Source\Common\Scena.Spline.pas',
   Scena.Spline in '..\Source\Common\Scena.Spline.pas',
   Scena.Strings in '..\Source\Common\Scena.Strings.pas',
   Scena.Strings in '..\Source\Common\Scena.Strings.pas',
@@ -266,6 +265,7 @@ contains
   Scena.VectorGeometry in '..\Source\Common\Scena.VectorGeometry.pas',
   Scena.VectorGeometry in '..\Source\Common\Scena.VectorGeometry.pas',
   Scena.VectorTypes in '..\Source\Common\Scena.VectorTypes.pas',
   Scena.VectorTypes in '..\Source\Common\Scena.VectorTypes.pas',
   Scena.VectorTypesExt in '..\Source\Common\Scena.VectorTypesExt.pas',
   Scena.VectorTypesExt in '..\Source\Common\Scena.VectorTypesExt.pas',
+  Scena.Logger in '..\Source\Common\Scena.Logger.pas',
   GLS.InitOpenGL in '..\Source\VCL\GLS.InitOpenGL.pas';
   GLS.InitOpenGL in '..\Source\VCL\GLS.InitOpenGL.pas';
 
 
 end.
 end.

+ 26 - 26
Packages/GLScene_RT.dproj

@@ -162,12 +162,12 @@
         <DCCReference Include="..\Source\GLS.AVIRecorder.pas"/>
         <DCCReference Include="..\Source\GLS.AVIRecorder.pas"/>
         <DCCReference Include="..\Source\GLS.AnimatedSprite.pas"/>
         <DCCReference Include="..\Source\GLS.AnimatedSprite.pas"/>
         <DCCReference Include="..\Source\GLS.AnimationUtils.pas"/>
         <DCCReference Include="..\Source\GLS.AnimationUtils.pas"/>
-        <DCCReference Include="..\Source\GLS.ApplicationFileIO.pas"/>
-        <DCCReference Include="..\Source\GLS.AsyncHDS.pas"/>
-        <DCCReference Include="..\Source\GLS.AsyncTimer.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.ApplicationFileIO.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.AsyncHDS.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.AsyncTimer.pas"/>
         <DCCReference Include="..\Source\GLS.Atmosphere.pas"/>
         <DCCReference Include="..\Source\GLS.Atmosphere.pas"/>
         <DCCReference Include="..\Source\GLS.ArchiveManager.pas"/>
         <DCCReference Include="..\Source\GLS.ArchiveManager.pas"/>
-        <DCCReference Include="..\Source\GLS.BaseClasses.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.BaseClasses.pas"/>
         <DCCReference Include="..\Source\GLS.BaseMeshSilhouette.pas"/>
         <DCCReference Include="..\Source\GLS.BaseMeshSilhouette.pas"/>
         <DCCReference Include="..\Source\GLS.Behaviours.pas"/>
         <DCCReference Include="..\Source\GLS.Behaviours.pas"/>
         <DCCReference Include="..\Source\GLS.BitmapFont.pas"/>
         <DCCReference Include="..\Source\GLS.BitmapFont.pas"/>
@@ -238,16 +238,16 @@
         <DCCReference Include="..\Source\GLS.FullScreenViewer.pas"/>
         <DCCReference Include="..\Source\GLS.FullScreenViewer.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
         <DCCReference Include="..\Source\GLS.GameMenu.pas"/>
         <DCCReference Include="..\Source\GLS.GameMenu.pas"/>
-        <DCCReference Include="..\Source\GLS.GeomObjects.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.GeomObjects.pas"/>
         <DCCReference Include="..\Source\GLS.GeometryBB.pas"/>
         <DCCReference Include="..\Source\GLS.GeometryBB.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
-        <DCCReference Include="..\Source\GLS.Gizmo.pas"/>
-        <DCCReference Include="..\Source\GLS.GizmoEx.pas"/>
-        <DCCReference Include="..\Source\GLS.Graph.pas"/>
-        <DCCReference Include="..\Source\GLS.Graphics.pas"/>
-        <DCCReference Include="..\Source\GLS.Gui.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Gizmo.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.GizmoEx.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Graph.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Graphics.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Gui.pas"/>
         <DCCReference Include="..\Source\GLS.HUDObjects.pas"/>
         <DCCReference Include="..\Source\GLS.HUDObjects.pas"/>
-        <DCCReference Include="..\Source\GLS.HeightData.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.HeightData.pas"/>
         <DCCReference Include="..\Source\GLS.HeightTileFileHDS.pas"/>
         <DCCReference Include="..\Source\GLS.HeightTileFileHDS.pas"/>
         <DCCReference Include="..\Source\GLS.ImageUtils.pas"/>
         <DCCReference Include="..\Source\GLS.ImageUtils.pas"/>
         <DCCReference Include="..\Source\GLS.Imposter.pas"/>
         <DCCReference Include="..\Source\GLS.Imposter.pas"/>
@@ -256,7 +256,6 @@
         <DCCReference Include="..\Source\VCL\GLS.Joystick.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Joystick.pas"/>
         <DCCReference Include="..\Source\GLS.LensFlare.pas"/>
         <DCCReference Include="..\Source\GLS.LensFlare.pas"/>
         <DCCReference Include="..\Source\GLS.LinePFX.pas"/>
         <DCCReference Include="..\Source\GLS.LinePFX.pas"/>
-        <DCCReference Include="..\Source\Common\Scena.Logger.pas"/>
         <DCCReference Include="..\Source\GLS.Manager.pas"/>
         <DCCReference Include="..\Source\GLS.Manager.pas"/>
         <DCCReference Include="..\Source\GLS.Material.pas"/>
         <DCCReference Include="..\Source\GLS.Material.pas"/>
         <DCCReference Include="..\Source\GLS.MaterialEx.pas"/>
         <DCCReference Include="..\Source\GLS.MaterialEx.pas"/>
@@ -275,8 +274,8 @@
         <DCCReference Include="..\Source\GLS.MultiSampleImage.pas"/>
         <DCCReference Include="..\Source\GLS.MultiSampleImage.pas"/>
         <DCCReference Include="..\Source\GLS.Navigator.pas"/>
         <DCCReference Include="..\Source\GLS.Navigator.pas"/>
         <DCCReference Include="..\Source\GLS.Nodes.pas"/>
         <DCCReference Include="..\Source\GLS.Nodes.pas"/>
-        <DCCReference Include="..\Source\GLS.ObjectManager.pas"/>
-        <DCCReference Include="..\Source\GLS.Objects.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.ObjectManager.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Objects.pas"/>
         <DCCReference Include="..\Source\GLS.Octree.pas"/>
         <DCCReference Include="..\Source\GLS.Octree.pas"/>
         <DCCReference Include="..\Source\GLS.ParametricSurfaces.pas"/>
         <DCCReference Include="..\Source\GLS.ParametricSurfaces.pas"/>
         <DCCReference Include="..\Source\GLS.ParticleFX.pas"/>
         <DCCReference Include="..\Source\GLS.ParticleFX.pas"/>
@@ -309,26 +308,26 @@
         <DCCReference Include="..\Source\GLSL.ShaderParameter.pas"/>
         <DCCReference Include="..\Source\GLSL.ShaderParameter.pas"/>
         <DCCReference Include="..\Source\GLSL.Shader.pas"/>
         <DCCReference Include="..\Source\GLSL.Shader.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Language.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Language.pas"/>
-        <DCCReference Include="..\Source\GLS.Memo.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Memo.pas"/>
         <DCCReference Include="..\Source\GLS.ProjectedTextures.pas"/>
         <DCCReference Include="..\Source\GLS.ProjectedTextures.pas"/>
-        <DCCReference Include="..\Source\GLS.Scene.pas"/>
-        <DCCReference Include="..\Source\GLS.SceneForm.pas"/>
-        <DCCReference Include="..\Source\GLS.Screen.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Scene.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.SceneForm.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Screen.pas"/>
         <DCCReference Include="..\Source\GLS.ScreenSaver.pas"/>
         <DCCReference Include="..\Source\GLS.ScreenSaver.pas"/>
         <DCCReference Include="..\Source\GLS.Selection.pas"/>
         <DCCReference Include="..\Source\GLS.Selection.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowHDS.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowHDS.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowPlane.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowPlane.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowVolume.pas"/>
         <DCCReference Include="..\Source\GLS.ShadowVolume.pas"/>
         <DCCReference Include="..\Source\GLS.SimpleNavigation.pas"/>
         <DCCReference Include="..\Source\GLS.SimpleNavigation.pas"/>
-        <DCCReference Include="..\Source\GLS.SkyDome.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.SkyDome.pas"/>
         <DCCReference Include="..\Source\GLS.SmoothNavigator.pas"/>
         <DCCReference Include="..\Source\GLS.SmoothNavigator.pas"/>
         <DCCReference Include="..\Source\GLS.SoundManager.pas"/>
         <DCCReference Include="..\Source\GLS.SoundManager.pas"/>
         <DCCReference Include="..\Source\GLS.SoundFileObjects.pas"/>
         <DCCReference Include="..\Source\GLS.SoundFileObjects.pas"/>
         <DCCReference Include="..\Source\GLS.SpacePartition.pas"/>
         <DCCReference Include="..\Source\GLS.SpacePartition.pas"/>
         <DCCReference Include="..\Source\GLS.State.pas"/>
         <DCCReference Include="..\Source\GLS.State.pas"/>
         <DCCReference Include="..\Source\GLS.SpaceText.pas"/>
         <DCCReference Include="..\Source\GLS.SpaceText.pas"/>
-        <DCCReference Include="..\Source\GLS.SceneViewer.pas"/>
-        <DCCReference Include="..\Source\GLS.SmartObjects.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.SceneViewer.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.SmartObjects.pas"/>
         <DCCReference Include="..\Source\GLS.TerrainRenderer.pas"/>
         <DCCReference Include="..\Source\GLS.TerrainRenderer.pas"/>
         <DCCReference Include="..\Source\GLS.TexLensFlare.pas"/>
         <DCCReference Include="..\Source\GLS.TexLensFlare.pas"/>
         <DCCReference Include="..\Source\GLS.Texture.pas"/>
         <DCCReference Include="..\Source\GLS.Texture.pas"/>
@@ -350,11 +349,6 @@
         <DCCReference Include="..\Source\GLS.WindowsContext.pas"/>
         <DCCReference Include="..\Source\GLS.WindowsContext.pas"/>
         <DCCReference Include="..\Source\GLS.WindowsFont.pas"/>
         <DCCReference Include="..\Source\GLS.WindowsFont.pas"/>
         <DCCReference Include="..\Source\GLS.zBuffer.pas"/>
         <DCCReference Include="..\Source\GLS.zBuffer.pas"/>
-        <DCCReference Include="..\Source\Common\Scena.OpenGLAdapter.pas"/>
-        <DCCReference Include="..\Source\GLS.PersistentClasses.pas"/>
-        <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
-        <DCCReference Include="..\Source\GLS.Polynomials.pas"/>
-        <DCCReference Include="..\Source\Common\Scena.CrossXML.pas"/>
         <DCCReference Include="..\Source\GLS.Silhouette.pas"/>
         <DCCReference Include="..\Source\GLS.Silhouette.pas"/>
         <DCCReference Include="..\Source\GLS.VectorLists.pas"/>
         <DCCReference Include="..\Source\GLS.VectorLists.pas"/>
         <DCCReference Include="..\Source\GLS.ScriptBase.pas"/>
         <DCCReference Include="..\Source\GLS.ScriptBase.pas"/>
@@ -363,6 +357,11 @@
         <DCCReference Include="..\Source\Common\PasGLTF.pas"/>
         <DCCReference Include="..\Source\Common\PasGLTF.pas"/>
         <DCCReference Include="..\Source\Common\PasJSON.pas"/>
         <DCCReference Include="..\Source\Common\PasJSON.pas"/>
         <DCCReference Include="..\Source\Common\PasDblStrUtils.pas"/>
         <DCCReference Include="..\Source\Common\PasDblStrUtils.pas"/>
+        <DCCReference Include="..\Source\GLS.PersistentClasses.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.OpenGLAdapter.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.Polynomials.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.CrossXML.pas"/>
         <DCCReference Include="..\Source\Common\Scena.OpenGLTokens.pas"/>
         <DCCReference Include="..\Source\Common\Scena.OpenGLTokens.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Spline.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Spline.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Strings.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Strings.pas"/>
@@ -370,6 +369,7 @@
         <DCCReference Include="..\Source\Common\Scena.VectorGeometry.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorGeometry.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypes.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypes.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypesExt.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypesExt.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.Logger.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
         <None Include="..\Source\Common\Scena.inc"/>
         <None Include="..\Source\Common\Scena.inc"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">

+ 1 - 2
Source/GLS.Polynomials.pas → Source/Common/Scena.Polynomials.pas

@@ -1,8 +1,7 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
-unit GLS.Polynomials;
+unit Scena.Polynomials;
 
 
 (*
 (*
   Utility functions for manipulationg and solving polynomials.
   Utility functions for manipulationg and solving polynomials.

+ 0 - 492
Source/GLS.Spline.pas

@@ -1,492 +0,0 @@
-//
-// The graphics platform GLScene https://github.com/glscene
-//
-unit Scena.Spline;
-
-(* Cubic spline interpolation functions *)
-
-interface
-
-uses
-  Scena.VectorTypes,
-  Scena.VectorGeometry;
-
-{$I Scena.inc}
-
-type
-
-  TCubicSplineMatrix = array of array [0 .. 3] of Single;
-
-  (* 3D cubic spline handler class.
-    This class allows to describe and calculate values of a time-based,
-    three-dimensionnal cubic spline.
-    Cubic spline pass through all given points and tangent on point N is
-    given by the (N-1) to (N+1) vector.
-    Note : X, Y & Z are actually interpolated independently. *)
-  TCubicSpline = class(TObject)
-  private
-    matX, matY, matZ, matW: TCubicSplineMatrix;
-    FNb: Integer;
-  public
-    (* Creates the spline and declares interpolation points.
-      Time references go from 0 (first point) to nb-1 (last point), the
-      first and last reference matrices respectively are used when T is
-      used beyond this range.
-      Note : "nil" single arrays are accepted, in this case the axis is
-      disabled and calculus will return 0 (zero) for this component. *)
-    constructor Create(const X, Y, Z, W: PFloatArray; const nb: Integer);
-    {$IFDEF CLR} unsafe; {$ENDIF}
-    destructor Destroy; override;
-    // Calculates X component at time t. 
-    function SplineX(const t: Single): Single;
-    // Calculates Y component at time t. 
-    function SplineY(const t: Single): Single;
-    // Calculates Z component at time t. 
-    function SplineZ(const t: Single): Single;
-    // Calculates W component at time t. 
-    function SplineW(const t: Single): Single;
-    // Calculates X and Y components at time t. 
-    procedure SplineXY(const t: Single; out X, Y: Single);
-    // Calculates X, Y and Z components at time t. 
-    procedure SplineXYZ(const t: Single; out X, Y, Z: Single);
-    // Calculates X, Y, Z and W components at time t. 
-    procedure SplineXYZW(const t: Single; out X, Y, Z, W: Single);
-    // Calculates affine vector at time t. 
-    function SplineAffineVector(const t: Single): TAffineVector; overload;
-    // Calculates affine vector at time t. 
-    procedure SplineAffineVector(const t: Single;
-      var vector: TAffineVector); overload;
-    // Calculates vector at time t. 
-    function SplineVector(const t: Single): TGLVector; overload;
-    // Calculates vector at time t. 
-    procedure SplineVector(const t: Single; var vector: TGLVector); overload;
-    // Calculates X component slope at time t. 
-    function SplineSlopeX(const t: Single): Single;
-    // Calculates Y component slope at time t. 
-    function SplineSlopeY(const t: Single): Single;
-    // Calculates Z component slope at time t. 
-    function SplineSlopeZ(const t: Single): Single;
-    // Calculates W component slope at time t. 
-    function SplineSlopeW(const t: Single): Single;
-    // Calculates the spline slope at time t. 
-    function SplineSlopeVector(const t: Single): TAffineVector; overload;
-    (* Calculates the intersection of the spline with the YZ plane.
-      Returns True if an intersection was found. *)
-    function SplineIntersecYZ(X: Single; var Y, Z: Single): Boolean;
-    (* Calculates the intersection of the spline with the XZ plane.
-      Returns True if an intersection was found. *)
-    function SplineIntersecXZ(Y: Single; var X, Z: Single): Boolean;
-    (* Calculates the intersection of the spline with the XY plane.
-      Returns True if an intersection was found. *)
-    function SplineIntersecXY(Z: Single; var X, Y: Single): Boolean;
-  end;
-
-// ------------------------------------------------------------------
-implementation
-// ------------------------------------------------------------------
-
-procedure VECCholeskyTriDiagResol(const b: array of Single; const nb: Integer;
-  var Result: array of Single);
-var
-  Y, LDiag, LssDiag: array of Single;
-  i, k, Debut, Fin: Integer;
-begin
-  Debut := 0;
-  Fin := nb - 1;
-  Assert(Length(b) > 0);
-  SetLength(LDiag, nb);
-  SetLength(LssDiag, nb - 1);
-  LDiag[Debut] := 1.4142135; // = sqrt(2)
-  LssDiag[Debut] := 1.0 / 1.4142135;
-  for k := Debut + 1 to Fin - 1 do
-  begin
-    LDiag[k] := Sqrt(4 - LssDiag[k - 1] * LssDiag[k - 1]);
-    LssDiag[k] := 1.0 / LDiag[k];
-  end;
-  LDiag[Fin] := Sqrt(2 - LssDiag[Fin - 1] * LssDiag[Fin - 1]);
-  SetLength(Y, nb);
-  Y[Debut] := b[Debut] / LDiag[Debut];
-  for i := Debut + 1 to Fin do
-    Y[i] := (b[i] - Y[i - 1] * LssDiag[i - 1]) / LDiag[i];
-  Assert(Length(Result) = nb);
-  Result[Fin] := Y[Fin] / LDiag[Fin];
-  for i := Fin - 1 downto Debut do
-    Result[i] := (Y[i] - Result[i + 1] * LssDiag[i]) / LDiag[i];
-end;
-
-procedure MATInterpolationHermite(const ordonnees: PFloatArray;
-  const nb: Integer; var Result: TCubicSplineMatrix); {$IFDEF CLR}unsafe;
-{$ENDIF}
-var
-  a, b, c, d: Single;
-  i, n: Integer;
-  bb, deriv: array of Single;
-begin
-  Result := nil;
-  if Assigned(ordonnees) and (nb > 0) then
-  begin
-    n := nb - 1;
-    SetLength(bb, nb);
-    bb[0] := 3 * (ordonnees[1] - ordonnees[0]);
-    bb[n] := 3 * (ordonnees[n] - ordonnees[n - 1]);
-    for i := 1 to n - 1 do
-      bb[i] := 3 * (ordonnees[i + 1] - ordonnees[i - 1]);
-    SetLength(deriv, nb);
-    VECCholeskyTriDiagResol(bb, nb, deriv);
-    SetLength(Result, n);
-    for i := 0 to n - 1 do
-    begin
-      a := ordonnees[i];
-      b := deriv[i];
-      c := 3 * (ordonnees[i + 1] - ordonnees[i]) - 2 * deriv[i] - deriv[i + 1];
-      d := -2 * (ordonnees[i + 1] - ordonnees[i]) + deriv[i] + deriv[i + 1];
-      Result[i][3] := a + i * (i * (c - i * d) - b);
-      Result[i][2] := b + i * (3 * i * d - 2 * c);
-      Result[i][1] := c - 3 * i * d;
-      Result[i][0] := d;
-    end;
-  end;
-end;
-
-function MATValeurSpline(const spline: TCubicSplineMatrix; const X: Single;
-  const nb: Integer): Single;
-var
-  i: Integer;
-begin
-  if Length(spline) > 0 then
-  begin
-    if X <= 0 then
-      i := 0
-    else if X > nb - 1 then
-      i := nb - 1
-    else
-      i := Integer(Trunc(X));
-    { TODO : the following line looks like a bug... }
-    if i = (nb - 1) then
-      Dec(i);
-    Result := ((spline[i][0] * X + spline[i][1]) * X + spline[i][2]) * X +
-      spline[i][3];
-  end
-  else
-    Result := 0;
-end;
-
-function MATValeurSplineSlope(const spline: TCubicSplineMatrix; const X: Single;
-  const nb: Integer): Single;
-var
-  i: Integer;
-begin
-  if Length(spline) > 0 then
-  begin
-    if X <= 0 then
-      i := 0
-    else if X > nb - 1 then
-      i := nb - 1
-    else
-      i := Integer(Trunc(X));
-    { TODO : the following line looks like a bug... }
-    if i = (nb - 1) then
-      Dec(i);
-    Result := (3 * spline[i][0] * X + 2 * spline[i][1]) * X + spline[i][2];
-  end
-  else
-    Result := 0;
-end;
-
-// ------------------
-// ------------------ TCubicSpline ------------------
-// ------------------
-
-constructor TCubicSpline.Create(const X, Y, Z, W: PFloatArray;
-  const nb: Integer); {$IFDEF CLR}unsafe; {$ENDIF}
-begin
-  inherited Create;
-  MATInterpolationHermite(X, nb, matX);
-  MATInterpolationHermite(Y, nb, matY);
-  MATInterpolationHermite(Z, nb, matZ);
-  MATInterpolationHermite(W, nb, matW);
-  FNb := nb;
-end;
-
-destructor TCubicSpline.Destroy;
-begin
-  inherited Destroy;
-end;
-
-function TCubicSpline.SplineX(const t: Single): Single;
-begin
-  Result := MATValeurSpline(matX, t, FNb);
-end;
-
-function TCubicSpline.SplineY(const t: Single): Single;
-begin
-  Result := MATValeurSpline(matY, t, FNb);
-end;
-
-function TCubicSpline.SplineZ(const t: Single): Single;
-begin
-  Result := MATValeurSpline(matZ, t, FNb);
-end;
-
-function TCubicSpline.SplineW(const t: Single): Single;
-begin
-  Result := MATValeurSpline(matW, t, FNb);
-end;
-
-procedure TCubicSpline.SplineXY(const t: Single; out X, Y: Single);
-begin
-  X := MATValeurSpline(matX, t, FNb);
-  Y := MATValeurSpline(matY, t, FNb);
-end;
-
-procedure TCubicSpline.SplineXYZ(const t: Single; out X, Y, Z: Single);
-begin
-  X := MATValeurSpline(matX, t, FNb);
-  Y := MATValeurSpline(matY, t, FNb);
-  Z := MATValeurSpline(matZ, t, FNb);
-end;
-
-procedure TCubicSpline.SplineXYZW(const t: Single; out X, Y, Z, W: Single);
-begin
-  X := MATValeurSpline(matX, t, FNb);
-  Y := MATValeurSpline(matY, t, FNb);
-  Z := MATValeurSpline(matZ, t, FNb);
-  W := MATValeurSpline(matW, t, FNb);
-end;
-
-function TCubicSpline.SplineAffineVector(const t: Single): TAffineVector;
-begin
-  Result.X := MATValeurSpline(matX, t, FNb);
-  Result.Y := MATValeurSpline(matY, t, FNb);
-  Result.Z := MATValeurSpline(matZ, t, FNb);
-end;
-
-procedure TCubicSpline.SplineAffineVector(const t: Single;
-  var vector: TAffineVector);
-begin
-  vector.X := MATValeurSpline(matX, t, FNb);
-  vector.Y := MATValeurSpline(matY, t, FNb);
-  vector.Z := MATValeurSpline(matZ, t, FNb);
-end;
-
-function TCubicSpline.SplineVector(const t: Single): TGLVector;
-begin
-  Result.X := MATValeurSpline(matX, t, FNb);
-  Result.Y := MATValeurSpline(matY, t, FNb);
-  Result.Z := MATValeurSpline(matZ, t, FNb);
-  Result.W := MATValeurSpline(matW, t, FNb);
-end;
-
-procedure TCubicSpline.SplineVector(const t: Single; var vector: TGLVector);
-begin
-  vector.X := MATValeurSpline(matX, t, FNb);
-  vector.Y := MATValeurSpline(matY, t, FNb);
-  vector.Z := MATValeurSpline(matZ, t, FNb);
-  vector.W := MATValeurSpline(matW, t, FNb);
-end;
-
-function TCubicSpline.SplineSlopeX(const t: Single): Single;
-begin
-  Result := MATValeurSplineSlope(matX, t, FNb);
-end;
-
-function TCubicSpline.SplineSlopeY(const t: Single): Single;
-begin
-  Result := MATValeurSplineSlope(matY, t, FNb);
-end;
-
-function TCubicSpline.SplineSlopeZ(const t: Single): Single;
-begin
-  Result := MATValeurSplineSlope(matZ, t, FNb);
-end;
-
-function TCubicSpline.SplineSlopeW(const t: Single): Single;
-begin
-  Result := MATValeurSplineSlope(matW, t, FNb);
-end;
-
-function TCubicSpline.SplineSlopeVector(const t: Single): TAffineVector;
-begin
-  Result.X := MATValeurSplineSlope(matX, t, FNb);
-  Result.Y := MATValeurSplineSlope(matY, t, FNb);
-  Result.Z := MATValeurSplineSlope(matZ, t, FNb);
-end;
-
-function TCubicSpline.SplineIntersecYZ(X: Single; var Y, Z: Single): Boolean;
-var
-  Sup, Inf, Mid: Single;
-  SSup, Sinf, Smid: Single;
-begin
-  Result := False;
-
-  Sup := FNb;
-  Inf := 0.0;
-
-  SSup := SplineX(Sup);
-  Sinf := SplineX(Inf);
-  if SSup > Sinf then
-  begin
-    if (SSup < X) or (Sinf > X) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineX(Mid);
-      if X < Smid then
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end
-      else
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end;
-    end;
-    Y := SplineY((Sup + Inf) * 0.5);
-    Z := SplineZ((Sup + Inf) * 0.5);
-  end
-  else
-  begin
-    if (Sinf < X) or (SSup > X) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineX(Mid);
-      if X < Smid then
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end
-      else
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end;
-    end;
-    Y := SplineY((Sup + Inf) * 0.5);
-    Z := SplineZ((Sup + Inf) * 0.5);
-  end;
-  Result := True;
-end;
-
-function TCubicSpline.SplineIntersecXZ(Y: Single; var X, Z: Single): Boolean;
-var
-  Sup, Inf, Mid: Single;
-  SSup, Sinf, Smid: Single;
-begin
-  Result := False;
-
-  Sup := FNb;
-  Inf := 0.0;
-
-  SSup := SplineY(Sup);
-  Sinf := SplineY(Inf);
-  if SSup > Sinf then
-  begin
-    if (SSup < Y) or (Sinf > Y) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineY(Mid);
-      if Y < Smid then
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end
-      else
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end;
-    end;
-    X := SplineX((Sup + Inf) * 0.5);
-    Z := SplineZ((Sup + Inf) * 0.5);
-  end
-  else
-  begin
-    if (Sinf < Y) or (SSup > Y) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineY(Mid);
-      if Y < Smid then
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end
-      else
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end;
-    end;
-    X := SplineX((Sup + Inf) * 0.5);
-    Z := SplineZ((Sup + Inf) * 0.5);
-  end;
-  Result := True;
-end;
-
-function TCubicSpline.SplineIntersecXY(Z: Single; var X, Y: Single): Boolean;
-var
-  Sup, Inf, Mid: Single;
-  SSup, Sinf, Smid: Single;
-begin
-  Result := False;
-
-  Sup := FNb;
-  Inf := 0.0;
-
-  SSup := SplineZ(Sup);
-  Sinf := SplineZ(Inf);
-  if SSup > Sinf then
-  begin
-    if (SSup < Z) or (Sinf > Z) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineZ(Mid);
-      if Z < Smid then
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end
-      else
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end;
-    end;
-    X := SplineX((Sup + Inf) * 0.5);
-    Y := SplineY((Sup + Inf) * 0.5);
-  end
-  else
-  begin
-    if (Sinf < Z) or (SSup > Z) then
-      Exit;
-    while Abs(SSup - Sinf) > 1E-4 do
-    begin
-      Mid := (Sup + Inf) * 0.5;
-      Smid := SplineZ(Mid);
-      if Z < Smid then
-      begin
-        Sinf := Smid;
-        Inf := Mid;
-      end
-      else
-      begin
-        SSup := Smid;
-        Sup := Mid;
-      end;
-    end;
-    X := SplineX((Sup + Inf) * 0.5);
-    Y := SplineY((Sup + Inf) * 0.5);
-  end;
-  Result := True;
-end;
-
-end.

+ 0 - 0
Source/GLS.ApplicationFileIO.pas → Source/VCL/GLS.ApplicationFileIO.pas


+ 0 - 1
Source/GLS.AsyncHDS.pas → Source/VCL/GLS.AsyncHDS.pas

@@ -1,7 +1,6 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.AsyncHDS;
 unit GLS.AsyncHDS;
 
 
 (*
 (*

+ 0 - 0
Source/GLS.AsyncTimer.pas → Source/VCL/GLS.AsyncTimer.pas


+ 0 - 0
Source/GLS.BaseClasses.pas → Source/VCL/GLS.BaseClasses.pas


+ 5 - 4
Source/GLS.GeomObjects.pas → Source/VCL/GLS.GeomObjects.pas

@@ -22,17 +22,18 @@ uses
 
 
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
   Scena.OpenGLAdapter,
   Scena.OpenGLAdapter,
+  Scena.VectorTypes,
+  Scena.VectorGeometry,
+  Scena.PipelineTransformation,
+  Scena.Polynomials,
+
   GLS.Scene,
   GLS.Scene,
   GLS.State,
   GLS.State,
   GLS.PersistentClasses,
   GLS.PersistentClasses,
-  Scena.VectorGeometry,
   GLS.VectorLists,
   GLS.VectorLists,
-  GLS.Polynomials,
   GLS.Silhouette,
   GLS.Silhouette,
-  Scena.VectorTypes,
   GLS.GeometryBB,
   GLS.GeometryBB,
   GLS.VectorFileObjects,
   GLS.VectorFileObjects,
-  Scena.PipelineTransformation,
   GLS.Material,
   GLS.Material,
   GLS.Texture,
   GLS.Texture,
 
 

+ 14 - 38
Source/GLS.Gizmo.pas → Source/VCL/GLS.Gizmo.pas

@@ -1,33 +1,12 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.Gizmo;
 unit GLS.Gizmo;
 
 
 (*
 (*
   Invisible component for helping to Move, Rotate and Scale an Object
   Invisible component for helping to Move, Rotate and Scale an Object
-  under GLScene (usefull for an Editor). 
+  under GLScene (usefull for an Editor).
 *)
 *)
-//
-// Original Header:
-//
-// ------------------------------------------------------------------------------
-// Unit : GLS.Gizmo  RC 1.0
-// ------------------------------------------------------------------------------
-// Original Author : ???????  (GLS.Gizmo In an ODEEditor)
-// ------------------------------------------------------------------------------
-// Modified by     : J.Delauney
-// Web Site        : http://KheopsInteractive.cjb.net
-// EMail           : [email protected]
-// Date            : 08/05/2005
-//
-// Modified by     : Marcus Oblak (8/3/2007)
-// - Corrected moving/rotating for children objects
-// - Better quantization for mouse operations (MoveCoef,RotationCoef)
-// - Added ScaleCoef
-// - Added GizmoThickness
-//
-// If you make some changes, please send your new version. Thanks
 // ------------------------------------------------------------------------------
 // ------------------------------------------------------------------------------
 // Description :
 // Description :
 // Invisible component for helping to Move, Rotate and Scale an Object
 // Invisible component for helping to Move, Rotate and Scale an Object
@@ -40,14 +19,13 @@ unit GLS.Gizmo;
 // - Add Interactive Camera Movements
 // - Add Interactive Camera Movements
 // - Adding Extended Controls with Keys
 // - Adding Extended Controls with Keys
 // - Maybe An Undo Function
 // - Maybe An Undo Function
-// - Others Ideas ???
 // ------------------------------------------------------------------------------
 // ------------------------------------------------------------------------------
 // Bugs Known :
 // Bugs Known :
 // - When you change the BoundingBoxColor and LabelInfosColor
 // - When you change the BoundingBoxColor and LabelInfosColor
 // The New Color is not Updated immediately, only after a new Click
 // The New Color is not Updated immediately, only after a new Click
 // (see in UpdateGizmo, SetBoundingBoxColor
 // (see in UpdateGizmo, SetBoundingBoxColor
 // and SetLabelInfosColor Procedures)
 // and SetLabelInfosColor Procedures)
-// -  DaStr: Bounding Box is not always drawn correctly because it does not
+// -  Bounding Box is not always drawn correctly because it does not
 // use objects' BarryCenter. For Example, if you select Space Text.
 // use objects' BarryCenter. For Example, if you select Space Text.
 // ------------------------------------------------------------------------------
 // ------------------------------------------------------------------------------
 
 
@@ -60,13 +38,15 @@ uses
   System.SysUtils,
   System.SysUtils,
   Vcl.StdCtrls,
   Vcl.StdCtrls,
 
 
+  Scena.VectorTypes,
+  Scena.VectorGeometry,
+  Scena.Strings,
+
   GLS.Scene,
   GLS.Scene,
   GLS.PersistentClasses,
   GLS.PersistentClasses,
   GLS.Color,
   GLS.Color,
   GLS.Objects,
   GLS.Objects,
-  Scena.VectorGeometry,
   GLS.Material,
   GLS.Material,
-  Scena.Strings,
   GLS.GeomObjects,
   GLS.GeomObjects,
   GLS.BitmapFont,
   GLS.BitmapFont,
   GLS.SceneViewer,
   GLS.SceneViewer,
@@ -74,8 +54,7 @@ uses
   GLS.Coordinates,
   GLS.Coordinates,
   GLS.RenderContextInfo,
   GLS.RenderContextInfo,
   GLS.State,
   GLS.State,
-  GLS.Selection,
-  Scena.VectorTypes;
+  GLS.Selection;
 
 
 type
 type
   TGLGizmoUndoCollection = class;
   TGLGizmoUndoCollection = class;
@@ -217,8 +196,7 @@ type
     FLabelFont: TGLCustomBitmapFont;
     FLabelFont: TGLCustomBitmapFont;
     procedure SetRootGizmo(const AValue: TGLBaseSceneObject);
     procedure SetRootGizmo(const AValue: TGLBaseSceneObject);
     procedure SetGizmoElements(const AValue: TGLGizmoElements);
     procedure SetGizmoElements(const AValue: TGLGizmoElements);
-    procedure SeTGLGizmoVisibleInfoLabels(const AValue
-      : TGLGizmoVisibleInfoLabels);
+    procedure SeTGLGizmoVisibleInfoLabels(const AValue: TGLGizmoVisibleInfoLabels);
     procedure SetBoundingBoxColor(const AValue: TGLColor);
     procedure SetBoundingBoxColor(const AValue: TGLColor);
     procedure SetSelectedColor(const AValue: TGLColor);
     procedure SetSelectedColor(const AValue: TGLColor);
     procedure SetVisibleInfoLabelsColor(const AValue: TGLColor);
     procedure SetVisibleInfoLabelsColor(const AValue: TGLColor);
@@ -284,16 +262,15 @@ type
     property NoZWrite: Boolean read FNoZWrite write FNoZWrite;
     property NoZWrite: Boolean read FNoZWrite write FNoZWrite;
     property GizmoThickness: Single read FGizmoThickness
     property GizmoThickness: Single read FGizmoThickness
       write SeTGLGizmoThickness;
       write SeTGLGizmoThickness;
-    {  Indicates whether the gizmo is enabled or not.
+    (*  Indicates whether the gizmo is enabled or not.
       WARNING: When loading/editing (possibly whenever a structureChanged
       WARNING: When loading/editing (possibly whenever a structureChanged
       call is made) a model, sometimes the gizmo will trigger a
       call is made) a model, sometimes the gizmo will trigger a
       bug if the mouse is inside the glscene Viewer. To prevent that,
       bug if the mouse is inside the glscene Viewer. To prevent that,
       remember to disable the gizmo before loading, then process windows
       remember to disable the gizmo before loading, then process windows
-      messages (i.e. application.processMessage) and then enable the gizmo
-      again. }
-    {  Warning Enable is ReadOnly property if you set to False, Gizmo is not Hidden
+      messages (i.e. application.processMessage) and then enable the gizmo again.
+      Warning Enable is ReadOnly property if you set to False, Gizmo is not Hidden
       use Visible instead if you want to Hide, if you want to Hide but keep enabled
       use Visible instead if you want to Hide, if you want to Hide but keep enabled
-      see the VisibleGizmo property }
+      see the VisibleGizmo property *)
     property Enabled: Boolean read FEnabled write FEnabled default False;
     property Enabled: Boolean read FEnabled write FEnabled default False;
     property LabelFont: TGLCustomBitmapFont read FLabelFont write SetLabelFont
     property LabelFont: TGLCustomBitmapFont read FLabelFont write SetLabelFont
       default nil;
       default nil;
@@ -301,9 +278,8 @@ type
       write FOnBeforeSelect;
       write FOnBeforeSelect;
     property OnSelectionLost: TNotifyEvent read FOnSelectionLost
     property OnSelectionLost: TNotifyEvent read FOnSelectionLost
       write FOnSelectionLost;
       write FOnSelectionLost;
-    {  Called before an Update is applied. The "vector" parameter is the difference
-      that will be applied to the object, according to the axis and
-      operation selected. }
+    (*  Called before an Update is applied. The "vector" parameter is the difference
+      that will be applied to the object, according to the axis and operation selected. *)
     property OnBeforeUpdate: TGLGizmoUpdateEvent read FOnBeforeUpdate
     property OnBeforeUpdate: TGLGizmoUpdateEvent read FOnBeforeUpdate
       write FOnBeforeUpdate;
       write FOnBeforeUpdate;
     property PickMode: TGLGizmoPickMode read FPickMode write FPickMode
     property PickMode: TGLGizmoPickMode read FPickMode write FPickMode

+ 14 - 27
Source/GLS.GizmoEx.pas → Source/VCL/GLS.GizmoEx.pas

@@ -1,7 +1,6 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.GizmoEx;
 unit GLS.GizmoEx;
 
 
 (*
 (*
@@ -129,12 +128,9 @@ type
   TInfoLabelCoordType = (ilcChanging, ilcChangeRate);
   TInfoLabelCoordType = (ilcChanging, ilcChangeRate);
 
 
   TGLGizmoExAxis = (gaNone, gaX, gaY, gaZ, gaXY, gaXZ, gaYZ, gaXYZ);
   TGLGizmoExAxis = (gaNone, gaX, gaY, gaZ, gaXY, gaXZ, gaYZ, gaXYZ);
-
-  TGLGizmoExSelectionRegion = (gsrRectangular, gsrCircular, gsrFence,
-    gsrLasso);
+  TGLGizmoExSelectionRegion = (gsrRectangular, gsrCircular, gsrFence, gsrLasso);
 
 
   TGLGizmoExReferenceCoordinateSystem = (rcsView, rcsLocal);
   TGLGizmoExReferenceCoordinateSystem = (rcsView, rcsLocal);
-
   TGLGizmoExSelRec = array of TPoint;
   TGLGizmoExSelRec = array of TPoint;
 
 
   TGLGizmoExOperation = (gopMove, gopRotate, gopScale, gopNone);
   TGLGizmoExOperation = (gopMove, gopRotate, gopScale, gopNone);
@@ -221,9 +217,7 @@ type
   TGLGizmoEx = class(TComponent)
   TGLGizmoEx = class(TComponent)
   private
   private
     FUIBaseGizmo: TGLBaseSceneObject;
     FUIBaseGizmo: TGLBaseSceneObject;
-
     FUIRootHelpers: TGLBaseSceneObject;
     FUIRootHelpers: TGLBaseSceneObject;
-
     FUIRootSelect: TGLBaseSceneObject; // for None
     FUIRootSelect: TGLBaseSceneObject; // for None
     FUIRootMovement: TGLBaseSceneObject; // for Move
     FUIRootMovement: TGLBaseSceneObject; // for Move
     FUIRootRotate: TGLBaseSceneObject; //for Rotate
     FUIRootRotate: TGLBaseSceneObject; //for Rotate
@@ -233,7 +227,6 @@ type
     FUIRootVisibleInfoLabels: TGLBaseSceneObject;
     FUIRootVisibleInfoLabels: TGLBaseSceneObject;
     FInterfaceRender: TGLDirectOpenGL;
     FInterfaceRender: TGLDirectOpenGL;
     FInternalRender: TGLDirectOpenGL;
     FInternalRender: TGLDirectOpenGL;
-
     FUISelectLineX, FUISelectLineY, FUISelectLineZ: TGLGizmoExUILines;  //  For None (Select)
     FUISelectLineX, FUISelectLineY, FUISelectLineZ: TGLGizmoExUILines;  //  For None (Select)
 
 
     //IC- Invisible Control
     //IC- Invisible Control
@@ -253,15 +246,12 @@ type
 
 
     //ForScale
     //ForScale
     FUIScaleArrowX, FUIScaleArrowY, FUIScaleArrowZ: TGLGizmoExUISphere; // For Scale
     FUIScaleArrowX, FUIScaleArrowY, FUIScaleArrowZ: TGLGizmoExUISphere; // For Scale
-
     FUIScaleLineX, FUIScaleLineY, FUIScaleLineZ, FUIScaleLineXY, FUIScaleLineYZ, FUIScaleLineXZ: TGLGizmoExUILines;
     FUIScaleLineX, FUIScaleLineY, FUIScaleLineZ, FUIScaleLineXY, FUIScaleLineYZ, FUIScaleLineXZ: TGLGizmoExUILines;
-
     FUIICScaleLineX, FUIICScaleLineY, FUIICScaleLineZ, FUIICScaleLineXY, FUIICScaleLineXZ, FUIICScaleLineYZ, FUIICScaleLineXYZ: TGLGizmoExUIFrustrum;
     FUIICScaleLineX, FUIICScaleLineY, FUIICScaleLineZ, FUIICScaleLineXY, FUIICScaleLineXZ, FUIICScaleLineYZ, FUIICScaleLineXYZ: TGLGizmoExUIFrustrum;
     FUIScalePlaneXY, FUIScalePlaneXZ, FUIScalePlaneYZ, FUIScalePlaneXYZ: TGLGizmoExUIPolyGon; // For Move
     FUIScalePlaneXY, FUIScalePlaneXZ, FUIScalePlaneYZ, FUIScalePlaneXYZ: TGLGizmoExUIPolyGon; // For Move
 
 
     FUIAxisLabelX, FUIAxisLabelY, FUIAxisLabelZ: TGLGizmoExUIFlatText;
     FUIAxisLabelX, FUIAxisLabelY, FUIAxisLabelZ: TGLGizmoExUIFlatText;
     FUIVisibleInfoLabels: TGLGizmoExUIFlatText;
     FUIVisibleInfoLabels: TGLGizmoExUIFlatText;
-
     FRootGizmo: TGLBaseSceneObject;
     FRootGizmo: TGLBaseSceneObject;
     FRootObjects: TGLBaseSceneObject;
     FRootObjects: TGLBaseSceneObject;
     FGizmoTmpRoot: TGLBaseSceneObject;
     FGizmoTmpRoot: TGLBaseSceneObject;
@@ -1131,7 +1121,7 @@ begin
   with FUIRotateLineX do
   with FUIRotateLineX do
   begin
   begin
     Options := [loUseNodeColorForLines];
     Options := [loUseNodeColorForLines];
-    //Äëÿ èñïðàâëåíèÿ ïðîáëåì ñ ïðîçðà÷íîñòüþ
+    // To fix transparency issues
     lineColor.Alpha := 0.1;
     lineColor.Alpha := 0.1;
     Nodecolor.Color := clrred;
     Nodecolor.Color := clrred;
     Nodecolor.Alpha := 0.1;
     Nodecolor.Alpha := 0.1;
@@ -1214,7 +1204,7 @@ begin
   with FUIRotateLineY do
   with FUIRotateLineY do
   begin
   begin
     Options := [loUseNodeColorForLines];
     Options := [loUseNodeColorForLines];
-    //Äëÿ èñïðàâëåíèÿ ïðîáëåì ñ ïðîçðà÷íîñòüþ
+    // To fix transparency issues
     lineColor.Alpha := 0.1;
     lineColor.Alpha := 0.1;
     Nodecolor.Color := clrLime;
     Nodecolor.Color := clrLime;
     Nodecolor.Alpha := 0.1;
     Nodecolor.Alpha := 0.1;
@@ -1298,7 +1288,7 @@ begin
   with FUIRotateLineZ do
   with FUIRotateLineZ do
   begin
   begin
     Options := [loUseNodeColorForLines];
     Options := [loUseNodeColorForLines];
-    //to correct transparency problem
+    // to correct transparency problem
     lineColor.Alpha := 0.1;
     lineColor.Alpha := 0.1;
     Nodecolor.Color := clrBlue;
     Nodecolor.Color := clrBlue;
     Nodecolor.Alpha := 0.1;
     Nodecolor.Alpha := 0.1;
@@ -2949,7 +2939,6 @@ begin
   end;
   end;
 end;
 end;
 
 
-
 procedure TGLGizmoEx.Loaded;
 procedure TGLGizmoEx.Loaded;
 begin
 begin
   inherited;
   inherited;
@@ -3598,7 +3587,6 @@ var
     for I := 0 to FSelectedObjects.Count - 1 do
     for I := 0 to FSelectedObjects.Count - 1 do
       with FSelectedObjects do
       with FSelectedObjects do
       begin
       begin
-
         case Ord(FReferenceCoordSystem) of
         case Ord(FReferenceCoordSystem) of
           0: v := FUIRootHelpers.AbsolutePosition;
           0: v := FUIRootHelpers.AbsolutePosition;
           1: v := TGLBaseSceneObject(Hit[I]).AbsolutePosition;
           1: v := TGLBaseSceneObject(Hit[I]).AbsolutePosition;
@@ -3826,10 +3814,8 @@ var
   end;
   end;
 
 
 begin
 begin
-
   if (not Enabled) or (RootGizmo = nil) or (RootObjects = nil) then
   if (not Enabled) or (RootGizmo = nil) or (RootObjects = nil) then
     Exit;
     Exit;
-
   if not FShowMultiSelecting then
   if not FShowMultiSelecting then
   begin
   begin
 
 
@@ -3911,13 +3897,10 @@ begin
      not Assigned(RootObjects) or
      not Assigned(RootObjects) or
      not Assigned(Viewer)      then
      not Assigned(Viewer)      then
     Exit;
     Exit;
-
   mx := X;
   mx := X;
   my := Y;
   my := Y;
-
   pick := InternalGetPickedObjects(X - 1, Y - 1, X + 1, Y + 1);
   pick := InternalGetPickedObjects(X - 1, Y - 1, X + 1, Y + 1);
   gotPick := False;
   gotPick := False;
-
   for I := 0 to pick.Count - 1 do
   for I := 0 to pick.Count - 1 do
     if (pick.Hit[I] is TGLGizmoExUIDisk) or
     if (pick.Hit[I] is TGLGizmoExUIDisk) or
       (pick.Hit[I] is TGLGizmoExUISphere) or
       (pick.Hit[I] is TGLGizmoExUISphere) or
@@ -4021,7 +4004,7 @@ begin
   if operation = gopNone then
   if operation = gopNone then
   begin
   begin
     pick := InternalGetPickedObjects(X - 1, Y - 1, X + 1, Y + 1, 8);
     pick := InternalGetPickedObjects(X - 1, Y - 1, X + 1, Y + 1, 8);
-    //î÷èñòêà ñïèñêà åñëè êëèêíóëè â ïóñòîòó
+    // clearing the list if clicked into the void
     if not FCanAddObjToSelectionList and not FCanRemoveObjFromSelectionList and (pick.Count = 0) then
     if not FCanAddObjToSelectionList and not FCanRemoveObjFromSelectionList and (pick.Count = 0) then
       ClearSelection;
       ClearSelection;
 
 
@@ -4063,7 +4046,7 @@ begin
       OnUpdate(self);
       OnUpdate(self);
 
 
     v := VectorMake(0, 0, 0);
     v := VectorMake(0, 0, 0);
-    //óñòàíàâëèâàåì ãèçìî â íóæíóþ ïîçèöèþ!
+    // set the gizmo to the right position!
     for  I := 0 to FSelectedObjects.Count - 1 do
     for  I := 0 to FSelectedObjects.Count - 1 do
       VectorAdd(v, TGLBaseSceneObject(FSelectedObjects.Hit[I]).AbsolutePosition, v);
       VectorAdd(v, TGLBaseSceneObject(FSelectedObjects.Hit[I]).AbsolutePosition, v);
 
 
@@ -4233,7 +4216,7 @@ begin
   UpdateGizmo;
   UpdateGizmo;
 end;
 end;
 
 
-////////////////////////////////////////////////////////////
+//===========================================================================================
 
 
 procedure TGLGizmoExObjectItem.AssignFromObject(const AObject: TGLBaseSceneObject; AssignAndRemoveObj: Boolean = False);
 procedure TGLGizmoExObjectItem.AssignFromObject(const AObject: TGLBaseSceneObject; AssignAndRemoveObj: Boolean = False);
 begin
 begin
@@ -4329,7 +4312,9 @@ begin
   FOldMatrix := Value;
   FOldMatrix := Value;
 end;
 end;
 
 
-{ TGLGizmoExUndoCollection }
+//==================================
+//     TGLGizmoExUndoCollection
+//=================================
 
 
 function TGLGizmoExObjectCollection.Add: TGLGizmoExObjectItem;
 function TGLGizmoExObjectCollection.Add: TGLGizmoExObjectItem;
 begin
 begin
@@ -4377,7 +4362,7 @@ begin
     GetItems(I).DoUndo;
     GetItems(I).DoUndo;
 end;
 end;
 
 
-/////////////////////////////////////////////////////////////
+//==================================================================
 
 
 constructor TGLGizmoExActionHistoryItem.Create(AOwner: TCollection);
 constructor TGLGizmoExActionHistoryItem.Create(AOwner: TCollection);
 begin
 begin
@@ -4403,7 +4388,9 @@ begin
     FGizmoObjectCollection := aValue;
     FGizmoObjectCollection := aValue;
 end;
 end;
 
 
-{ TGLGizmoExUndoCollection }
+//=======================================
+//      TGLGizmoExUndoCollection
+//=======================================
 
 
 constructor TGLGizmoExActionHistoryCollection.Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
 constructor TGLGizmoExActionHistoryCollection.Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
 begin
 begin

+ 4 - 3
Source/GLS.Graph.pas → Source/VCL/GLS.Graph.pas

@@ -16,17 +16,18 @@ uses
   
   
   GLS.Scene,
   GLS.Scene,
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
+  Scena.VectorTypes,
+  Scena.VectorGeometry,
+
   GLS.Context,
   GLS.Context,
   GLS.XOpenGL,
   GLS.XOpenGL,
-  Scena.VectorGeometry,
   GLS.Material,
   GLS.Material,
   GLS.Objects,
   GLS.Objects,
   GLS.VectorLists,
   GLS.VectorLists,
   GLS.Color,
   GLS.Color,
   GLS.BaseClasses,
   GLS.BaseClasses,
   GLS.RenderContextInfo,
   GLS.RenderContextInfo,
-  GLS.State,
-  Scena.VectorTypes;
+  GLS.State;
 
 
 type
 type
 
 

+ 4 - 3
Source/GLS.Graphics.pas → Source/VCL/GLS.Graphics.pas

@@ -32,16 +32,17 @@ uses
 
 
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
   Scena.VectorTypes,
   Scena.VectorTypes,
+  Scena.TextureFormat,
+  Scena.VectorGeometry,
+  Scena.Strings,
+
   GLS.State,
   GLS.State,
   GLS.ApplicationFileIO,
   GLS.ApplicationFileIO,
   GLS.PersistentClasses,
   GLS.PersistentClasses,
   GLS.Context,
   GLS.Context,
   GLS.ImageUtils,
   GLS.ImageUtils,
   GLS.Color,
   GLS.Color,
-  Scena.TextureFormat,
-  Scena.VectorGeometry,
   GLS.Utils,
   GLS.Utils,
-  Scena.Strings,
   Scena.Logger;
   Scena.Logger;
 
 
 {$DEFINE PRF_HACK_PASSES}
 {$DEFINE PRF_HACK_PASSES}

+ 2 - 1
Source/GLS.Gui.pas → Source/VCL/GLS.Gui.pas

@@ -17,12 +17,13 @@ uses
 
 
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
   Scena.VectorTypes,
   Scena.VectorTypes,
+  Scena.VectorGeometry,
+
   GLS.Scene,
   GLS.Scene,
   GLS.BitmapFont,
   GLS.BitmapFont,
   GLS.Material,
   GLS.Material,
   GLS.Context,
   GLS.Context,
   GLS.PersistentClasses,
   GLS.PersistentClasses,
-  Scena.VectorGeometry,
   GLS.Coordinates,
   GLS.Coordinates,
   GLS.BaseClasses;
   GLS.BaseClasses;
 
 

+ 2 - 3
Source/GLS.HeightData.pas → Source/VCL/GLS.HeightData.pas

@@ -28,9 +28,9 @@ uses
   System.Types,
   System.Types,
   Vcl.Graphics,
   Vcl.Graphics,
 
 
+  Scena.VectorGeometry,
   GLS.ApplicationFileIO,
   GLS.ApplicationFileIO,
   GLS.Utils,
   GLS.Utils,
-  Scena.VectorGeometry,
   GLS.Material,
   GLS.Material,
   GLS.BaseClasses;
   GLS.BaseClasses;
 
 
@@ -40,8 +40,7 @@ type
   PByteRaster = ^TByteRaster;
   PByteRaster = ^TByteRaster;
   TSmallintArray = array [0 .. MaxInt div (2 * SizeOf(SmallInt))] of SmallInt;
   TSmallintArray = array [0 .. MaxInt div (2 * SizeOf(SmallInt))] of SmallInt;
   PSmallIntArray = ^TSmallintArray;
   PSmallIntArray = ^TSmallintArray;
-  TSmallIntRaster = array [0 .. MaxInt div (2 * SizeOf(Pointer))
-    ] of PSmallIntArray;
+  TSmallIntRaster = array [0 .. MaxInt div (2 * SizeOf(Pointer))] of PSmallIntArray;
   PSmallIntRaster = ^TSmallIntRaster;
   PSmallIntRaster = ^TSmallIntRaster;
   TSingleRaster = array [0 .. MaxInt div (2 * SizeOf(Pointer))] of PSingleArray;
   TSingleRaster = array [0 .. MaxInt div (2 * SizeOf(Pointer))] of PSingleArray;
   PSingleRaster = ^TSingleRaster;
   PSingleRaster = ^TSingleRaster;

+ 2 - 2
Source/VCL/GLS.InitOpenGL.pas

@@ -12,8 +12,8 @@ uses
   Winapi.OpenGL,
   Winapi.OpenGL,
   Winapi.OpenGLext,
   Winapi.OpenGLext,
   Winapi.Windows,
   Winapi.Windows,
-  System.SysUtils,
-  Vcl.Forms;
+  Vcl.Forms,
+  System.SysUtils;
 
 
 type
 type
   TGLOpenGL = class
   TGLOpenGL = class

+ 0 - 2
Source/GLS.Memo.pas → Source/VCL/GLS.Memo.pas

@@ -23,8 +23,6 @@ uses
   VCL.StdCtrls, 
   VCL.StdCtrls, 
   VCL.ExtCtrls;
   VCL.ExtCtrls;
 
 
-
-
 type
 type
   TBorderType = (btRaised, btLowered, btFlatRaised, btFlatLowered);
   TBorderType = (btRaised, btLowered, btFlatRaised, btFlatLowered);
   TCommand = Integer;
   TCommand = Integer;

+ 0 - 0
Source/GLS.ObjectManager.pas → Source/VCL/GLS.ObjectManager.pas


+ 3 - 2
Source/GLS.Objects.pas → Source/VCL/GLS.Objects.pas

@@ -31,11 +31,12 @@ uses
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
   Scena.OpenGLAdapter,
   Scena.OpenGLAdapter,
   Scena.VectorTypes,
   Scena.VectorTypes,
-  GLS.VectorLists,
+  Scena.PipelineTransformation,
   Scena.VectorGeometry,
   Scena.VectorGeometry,
   Scena.Spline,
   Scena.Spline,
+
+  GLS.VectorLists,
   GLS.Scene,
   GLS.Scene,
-  Scena.PipelineTransformation,
   GLS.Context,
   GLS.Context,
   GLS.Silhouette,
   GLS.Silhouette,
   GLS.Color,
   GLS.Color,

+ 0 - 0
Source/GLS.Scene.pas → Source/VCL/GLS.Scene.pas


+ 0 - 1
Source/GLS.SceneForm.pas → Source/VCL/GLS.SceneForm.pas

@@ -1,7 +1,6 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.SceneForm;
 unit GLS.SceneForm;
 
 
 (*  GLScene form loader *)
 (*  GLScene form loader *)

+ 0 - 0
Source/GLS.SceneViewer.pas → Source/VCL/GLS.SceneViewer.pas


+ 0 - 0
Source/GLS.Screen.pas → Source/VCL/GLS.Screen.pas


+ 40 - 36
Source/GLS.SkyDome.pas → Source/VCL/GLS.SkyDome.pas

@@ -3,7 +3,7 @@
 //
 //
 unit GLS.SkyDome;
 unit GLS.SkyDome;
 
 
-(* Skydome object *)
+(* Skydome object with celestial grids *)
 
 
 interface
 interface
 
 
@@ -38,8 +38,7 @@ type
 
 
 // ------------------------- SkyBox class -------------------------
 // ------------------------- SkyBox class -------------------------
 
 
-  TGLSkyBoxStyle = (sbsFull, sbsTopHalf, sbsBottomHalf, sbTopTwoThirds,
-    sbsTopHalfClamped);
+  TGLSkyBoxStyle = (sbsFull, sbsTopHalf, sbsBottomHalf, sbTopTwoThirds, sbsTopHalfClamped);
 
 
   TGLSkyBox = class(TGLCameraInvariantObject, IGLMaterialLibrarySupported)
   TGLSkyBox = class(TGLCameraInvariantObject, IGLMaterialLibrarySupported)
   private
   private
@@ -77,26 +76,16 @@ type
     procedure Notification(AComponent: TComponent; Operation: TOperation);
     procedure Notification(AComponent: TComponent; Operation: TOperation);
       override;
       override;
   published
   published
-    property MaterialLibrary: TGLMaterialLibrary read FMaterialLibrary write
-      SetMaterialLibrary;
-    property MatNameTop: TGLLibMaterialName read FMatNameTop write
-      SetMatNameTop;
-    property MatNameBottom: TGLLibMaterialName read FMatNameBottom write
-      SetMatNameBottom;
-    property MatNameLeft: TGLLibMaterialName read FMatNameLeft write
-      SetMatNameLeft;
-    property MatNameRight: TGLLibMaterialName read FMatNameRight write
-      SetMatNameRight;
-    property MatNameFront: TGLLibMaterialName read FMatNameFront write
-      SetMatNameFront;
-    property MatNameBack: TGLLibMaterialName read FMatNameBack write
-      SetMatNameBack;
-    property MatNameClouds: TGLLibMaterialName read FMatNameClouds write
-      SetMatNameClouds;
-    property CloudsPlaneOffset: Single read FCloudsPlaneOffset write
-      SetCloudsPlaneOffset;
-    property CloudsPlaneSize: Single read FCloudsPlaneSize write
-      SetCloudsPlaneSize;
+    property MaterialLibrary: TGLMaterialLibrary read FMaterialLibrary write SetMaterialLibrary;
+    property MatNameTop: TGLLibMaterialName read FMatNameTop write SetMatNameTop;
+    property MatNameBottom: TGLLibMaterialName read FMatNameBottom write SetMatNameBottom;
+    property MatNameLeft: TGLLibMaterialName read FMatNameLeft write SetMatNameLeft;
+    property MatNameRight: TGLLibMaterialName read FMatNameRight write SetMatNameRight;
+    property MatNameFront: TGLLibMaterialName read FMatNameFront write SetMatNameFront;
+    property MatNameBack: TGLLibMaterialName read FMatNameBack write SetMatNameBack;
+    property MatNameClouds: TGLLibMaterialName read FMatNameClouds write SetMatNameClouds;
+    property CloudsPlaneOffset: Single read FCloudsPlaneOffset write SetCloudsPlaneOffset;
+    property CloudsPlaneSize: Single read FCloudsPlaneSize write SetCloudsPlaneSize;
     property Style: TGLSkyBoxStyle read FStyle write FStyle default sbsFull;
     property Style: TGLSkyBoxStyle read FStyle write FStyle default sbsFull;
   end;
   end;
 
 
@@ -143,8 +132,7 @@ type
     constructor Create(AOwner: TComponent);
     constructor Create(AOwner: TComponent);
     function Add: TGLSkyDomeBand;
     function Add: TGLSkyDomeBand;
     function FindItemID(ID: Integer): TGLSkyDomeBand;
     function FindItemID(ID: Integer): TGLSkyDomeBand;
-    property Items[index: Integer]: TGLSkyDomeBand read GetItems write SetItems;
-    default;
+    property Items[index: Integer]: TGLSkyDomeBand read GetItems write SetItems; default;
     procedure NotifyChange;
     procedure NotifyChange;
     procedure BuildList(var rci: TGLRenderContextInfo);
     procedure BuildList(var rci: TGLRenderContextInfo);
   end;
   end;
@@ -183,8 +171,7 @@ type
     constructor Create(AOwner: TComponent);
     constructor Create(AOwner: TComponent);
     function Add: TGLSkyDomeStar;
     function Add: TGLSkyDomeStar;
     function FindItemID(ID: Integer): TGLSkyDomeStar;
     function FindItemID(ID: Integer): TGLSkyDomeStar;
-    property Items[index: Integer]: TGLSkyDomeStar read GetItems write SetItems;
-    default;
+    property Items[index: Integer]: TGLSkyDomeStar read GetItems write SetItems; default;
     procedure BuildList(var rci: TGLRenderContextInfo; twinkle: Boolean);
     procedure BuildList(var rci: TGLRenderContextInfo; twinkle: Boolean);
     (* Adds nb random stars of the given color.
     (* Adds nb random stars of the given color.
       Stars are homogenously scattered on the complete sphere, not only the band defined or visible dome. *)
       Stars are homogenously scattered on the complete sphere, not only the band defined or visible dome. *)
@@ -196,7 +183,7 @@ type
     procedure LoadStarsFile(const starsFileName: string);
     procedure LoadStarsFile(const starsFileName: string);
   end;
   end;
 
 
-  TGLSkyDomeOption = (sdoTwinkle);
+  TGLSkyDomeOption = (sdoEquatorialGrid, sdoEclipticGrid, sdoGalacticGrid, sdoSupergalacticGrid, sdoTwinkle);
   TGLSkyDomeOptions = set of TGLSkyDomeOption;
   TGLSkyDomeOptions = set of TGLSkyDomeOption;
 
 
   (* Renders a sky dome always centered on the camera.
   (* Renders a sky dome always centered on the camera.
@@ -225,13 +212,12 @@ type
     property Options: TGLSkyDomeOptions read FOptions write SetOptions default [];
     property Options: TGLSkyDomeOptions read FOptions write SetOptions default [];
   end;
   end;
 
 
-  TEarthSkydomeOption = (esoFadeStarsWithSun, esoRotateOnTwelveHours, esoDepthTest);
-  TEarthSkydomeOptions = set of TEarthSkydomeOption;
+  TGLEarthSkydomeOption = (esoFadeStarsWithSun, esoRotateOnTwelveHours, esoDepthTest);
+  TGLEarthSkydomeOptions = set of TGLEarthSkydomeOption;
 
 
   (* Render a skydome like what can be seen on earth.
   (* Render a skydome like what can be seen on earth.
      Color is based on sun position and turbidity, to "mimic" atmospheric
      Color is based on sun position and turbidity, to "mimic" atmospheric
-     Rayleigh and Mie scatterings. The colors can be adjusted to render
-     weird/exoplanet atmospheres too.
+     Rayleigh and Mie scatterings. The colors can be adjusted to render exoplanet atmospheres too.
      The default slices/stacks values make for an average quality rendering,
      The default slices/stacks values make for an average quality rendering,
      for a very clean rendering, use 64/64 (more is overkill in most cases).
      for a very clean rendering, use 64/64 (more is overkill in most cases).
      The complexity is quite high though, making a T&L 3D board a necessity
      The complexity is quite high though, making a T&L 3D board a necessity
@@ -249,7 +235,7 @@ type
     FNightColor: TGLColor;
     FNightColor: TGLColor;
     FDeepColor: TGLColor;
     FDeepColor: TGLColor;
     FSlices, FStacks: Integer;
     FSlices, FStacks: Integer;
-    FExtendedOptions: TEarthSkydomeOptions;
+    FExtendedOptions: TGLEarthSkydomeOptions;
     FMorning: boolean;
     FMorning: boolean;
   protected
   protected
     procedure Loaded; override;
     procedure Loaded; override;
@@ -276,7 +262,7 @@ type
   published
   published
     // Elevation of the sun, measured in degrees
     // Elevation of the sun, measured in degrees
     property SunElevation: Single read FSunElevation write SetSunElevation;
     property SunElevation: Single read FSunElevation write SetSunElevation;
-    // Expresses the purity of air.  Value range is from 1 (pure athmosphere) to 120 (very nebulous)
+    // Expresses the purity of air. Value range is from 1 (pure athmosphere) to 120 (very nebulous)
     property Turbidity: Single read FTurbidity write SetTurbidity;
     property Turbidity: Single read FTurbidity write SetTurbidity;
     property SunZenithColor: TGLColor read FSunZenithColor write SetSunZenithColor;
     property SunZenithColor: TGLColor read FSunZenithColor write SetSunZenithColor;
     property SunDawnColor: TGLColor read FSunDawnColor write SetSunDawnColor;
     property SunDawnColor: TGLColor read FSunDawnColor write SetSunDawnColor;
@@ -284,7 +270,7 @@ type
     property SkyColor: TGLColor read FSkyColor write SetSkyColor;
     property SkyColor: TGLColor read FSkyColor write SetSkyColor;
     property NightColor: TGLColor read FNightColor write SetNightColor;
     property NightColor: TGLColor read FNightColor write SetNightColor;
     property DeepColor: TGLColor read FDeepColor write SetDeepColor;
     property DeepColor: TGLColor read FDeepColor write SetDeepColor;
-    property ExtendedOptions: TEarthSkydomeOptions read FExtendedOptions write FExtendedOptions;
+    property ExtendedOptions: TGLEarthSkydomeOptions read FExtendedOptions write FExtendedOptions;
     property Slices: Integer read FSlices write SetSlices default 24;
     property Slices: Integer read FSlices write SetSlices default 24;
     property Stacks: Integer read FStacks write SetStacks default 48;
     property Stacks: Integer read FStacks write SetStacks default 48;
   end;
   end;
@@ -1224,12 +1210,30 @@ begin
   StructureChanged;
   StructureChanged;
 end;
 end;
 
 
+//--------- Options to draw grids and twinkle stars --------
+
 procedure TGLSkyDome.SetOptions(const val: TGLSkyDomeOptions);
 procedure TGLSkyDome.SetOptions(const val: TGLSkyDomeOptions);
 begin
 begin
   if val <> FOptions then
   if val <> FOptions then
   begin
   begin
     FOptions := val;
     FOptions := val;
-    if sdoTwinkle in FOptions then
+    if sdoEquatorialGrid in FOptions then
+    begin
+      // DrawEquatorialGrid();
+    end
+    else if sdoEclipticGrid in FOptions then
+    begin
+      // DrawEclipticGrid();
+    end
+    else if sdoGalacticGrid in FOptions then
+    begin
+      // DrawGalacticGrid();
+    end
+    else if sdoSupergalacticGrid in FOptions then
+    begin
+      // DrawGalacticGrid();
+    end
+    else if sdoTwinkle in FOptions then
       ObjectStyle := ObjectStyle + [osDirectDraw]
       ObjectStyle := ObjectStyle + [osDirectDraw]
     else
     else
     begin
     begin

+ 7 - 6
Source/GLS.SmartObjects.pas → Source/VCL/GLS.SmartObjects.pas

@@ -5,8 +5,8 @@ unit GLS.SmartObjects;
 
 
 (*
 (*
   The smart spatial objects that have sences and artifitial intelligence
   The smart spatial objects that have sences and artifitial intelligence
-  to interact with player, base geometric and other smart objects of GLScene:
-  TGLGerm, TGLSmartCells, TGLSmartSwarm, TGLCyborg, TGLCyborgNet
+  to interact with player, base geometric and other smart objects:
+  TGLGerm, TGLSmartCells, TGLSmartSwarm, TGLSmartNet, TGLCyborg, TGLCyborgs
 *)
 *)
 
 
 interface
 interface
@@ -23,24 +23,25 @@ uses
   VCL.Consts,
   VCL.Consts,
 
 
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
-  GLS.Scene,
   Scena.VectorGeometry,
   Scena.VectorGeometry,
   Scena.VectorTypes,
   Scena.VectorTypes,
   Scena.VectorTypesExt,
   Scena.VectorTypesExt,
+  Scena.Strings,
+  Scena.PipelineTransformation,
+  Scena.Logger,
+
+  GLS.Scene,
   GLS.VectorLists,
   GLS.VectorLists,
   GLS.PersistentClasses,
   GLS.PersistentClasses,
   GLS.Silhouette,
   GLS.Silhouette,
-  Scena.Strings,
   GLS.Texture,
   GLS.Texture,
   GLS.Material,
   GLS.Material,
   GLS.Mesh,
   GLS.Mesh,
-  Scena.Logger,
   GLS.Octree,
   GLS.Octree,
   GLS.GeometryBB,
   GLS.GeometryBB,
   GLS.ApplicationFileIO,
   GLS.ApplicationFileIO,
   GLS.Context,
   GLS.Context,
   GLS.Color,
   GLS.Color,
-  Scena.PipelineTransformation,
   GLS.Selection,
   GLS.Selection,
   GLS.RenderContextInfo,
   GLS.RenderContextInfo,
   GLS.Coordinates,
   GLS.Coordinates,