diff options
author | Shashank | 2017-05-29 12:40:26 +0530 |
---|---|---|
committer | Shashank | 2017-05-29 12:40:26 +0530 |
commit | 0345245e860375a32c9a437c4a9d9cae807134e9 (patch) | |
tree | ad51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/graphic_objects/src | |
download | scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2 scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip |
CMSCOPE changed
Diffstat (limited to 'modules/graphic_objects/src')
329 files changed, 67636 insertions, 0 deletions
diff --git a/modules/graphic_objects/src/c/DllmainGraphic_objects.c b/modules/graphic_objects/src/c/DllmainGraphic_objects.c new file mode 100755 index 000000000..271042a6f --- /dev/null +++ b/modules/graphic_objects/src/c/DllmainGraphic_objects.c @@ -0,0 +1,33 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Allan CORNET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <windows.h> +/*--------------------------------------------------------------------------*/ +#pragma comment(lib,"../../../../bin/libintl.lib") +/*--------------------------------------------------------------------------*/ +int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +/*--------------------------------------------------------------------------*/ + diff --git a/modules/graphic_objects/src/c/core_Import.def b/modules/graphic_objects/src/c/core_Import.def new file mode 100755 index 000000000..2c728206b --- /dev/null +++ b/modules/graphic_objects/src/c/core_Import.def @@ -0,0 +1,10 @@ +LIBRARY core.dll + + +EXPORTS +; +com_ +getScilabMode +callFunctionFromGateway +MyHeapAlloc +MyHeapFree diff --git a/modules/graphic_objects/src/c/graphic_objects.vcxproj b/modules/graphic_objects/src/c/graphic_objects.vcxproj new file mode 100755 index 000000000..2e5c852f3 --- /dev/null +++ b/modules/graphic_objects/src/c/graphic_objects.vcxproj @@ -0,0 +1,361 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{30F9EE41-587B-4618-8DE7-698D3FBA4985}</ProjectGuid> + <RootNamespace>graphic_objects</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">sci$(ProjectName)</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">sci$(ProjectName)</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">sci$(ProjectName)</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">sci$(ProjectName)</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;../../../windows_tools/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>..\..\..\..\bin\scilocalization.lib;core.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/sci$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;../../../windows_tools/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL + +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/sci$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;../../../windows_tools/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>..\..\..\..\bin\scilocalization.lib;core.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/sci$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration> + </LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;../../../windows_tools/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL + +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/sci$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration> + </LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\cpp\AxesModel.cpp" /> + <ClCompile Include="..\cpp\CurrentFigure.cpp" /> + <ClCompile Include="..\cpp\CurrentObject.cpp" /> + <ClCompile Include="..\cpp\CurrentSubwin.cpp" /> + <ClCompile Include="..\cpp\Fac3DColorComputer.cpp" /> + <ClCompile Include="..\cpp\FigureList.cpp" /> + <ClCompile Include="..\cpp\FigureModel.cpp" /> + <ClCompile Include="..\cpp\getConsoleIdentifier.cpp" /> + <ClCompile Include="..\cpp\HandleManagement.cpp" /> + <ClCompile Include="..\cpp\MatPlotDecomposer.cpp" /> + <ClCompile Include="..\cpp\MeshData.cpp" /> + <ClCompile Include="..\cpp\MeshFecData.cpp" /> + <ClCompile Include="..\cpp\MeshFecDataDecomposer.cpp" /> + <ClCompile Include="..\cpp\NgonGridMatplotDataDecomposer.cpp" /> + <ClCompile Include="..\cpp\NormalGenerator.cpp" /> + <ClCompile Include="..\cpp\ScilabView.cpp" /> + <ClCompile Include="..\cpp\Texture.cpp" /> + <ClCompile Include="..\cpp\Triangulator.cpp" /> + <ClCompile Include="..\jni\Builder.cpp" /> + <ClCompile Include="..\jni\CallGraphicController.cpp" /> + <ClCompile Include="..\cpp\ColorComputer.cpp" /> + <ClCompile Include="..\cpp\createGraphicObject.cpp" /> + <ClCompile Include="..\cpp\Data3D.cpp" /> + <ClCompile Include="..\cpp\DataLoader.cpp" /> + <ClCompile Include="..\jni\CallXmlLoader.cpp" /> + <ClCompile Include="..\jni\DataLoader_wrap.c" /> + <ClCompile Include="..\cpp\dataModel.cpp" /> + <ClCompile Include="..\cpp\DecompositionUtils.cpp" /> + <ClCompile Include="..\cpp\deleteGraphicObject.cpp" /> + <ClCompile Include="..\jni\ObjectData_wrap.c" /> + <ClCompile Include="..\jni\PolylineData_wrap.c" /> + <ClCompile Include="..\jni\ScilabNativeView_wrap.c" /> + <ClCompile Include="DllmainGraphic_objects.c" /> + <ClCompile Include="..\cpp\Fac3DDecomposer.cpp" /> + <ClCompile Include="..\cpp\getGraphicObjectProperty.cpp" /> + <ClCompile Include="..\cpp\NgonData.cpp" /> + <ClCompile Include="..\cpp\NgonGeneralData.cpp" /> + <ClCompile Include="..\cpp\NgonGridData.cpp" /> + <ClCompile Include="..\cpp\NgonGridDataDecomposer.cpp" /> + <ClCompile Include="..\cpp\NgonGridGrayplotDataDecomposer.cpp" /> + <ClCompile Include="..\cpp\NgonGridMatplotData.cpp" /> + <ClCompile Include="..\cpp\NgonPolylineData.cpp" /> + <ClCompile Include="..\cpp\Plot3DDecomposer.cpp" /> + <ClCompile Include="..\cpp\PolylineDecomposer.cpp" /> + <ClCompile Include="..\cpp\setGraphicObjectProperty.cpp" /> + <ClCompile Include="..\jni\SurfaceData_wrap.c" /> + <ClCompile Include="..\cpp\createObjectData.cpp" /> + <ClCompile Include="..\cpp\pickSurface.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\includes\Fac3DColorComputer.hxx" /> + <ClInclude Include="..\..\includes\FigureList.h" /> + <ClInclude Include="..\..\includes\getConsoleIdentifier.h" /> + <ClInclude Include="..\..\includes\getGraphicObjectProperty.h" /> + <ClInclude Include="..\..\includes\graphicObjectProperties.h" /> + <ClInclude Include="..\..\includes\Matplot.h" /> + <ClInclude Include="..\..\includes\MatPlotDecomposer.hxx" /> + <ClInclude Include="..\..\includes\NgonGridMatplotDataDecomposer.hxx" /> + <ClInclude Include="..\..\includes\returnType.h" /> + <ClInclude Include="..\..\includes\ScilabView.hxx" /> + <ClInclude Include="..\..\includes\setGraphicObjectProperty.h" /> + <ClInclude Include="..\..\includes\Texture.hxx" /> + <ClInclude Include="..\..\includes\Triangulator.hxx" /> + <ClInclude Include="..\jni\Builder.hxx" /> + <ClInclude Include="..\jni\CallGraphicController.hxx" /> + <ClInclude Include="..\..\includes\createGraphicObject.h" /> + <ClInclude Include="..\..\includes\Data3D.hxx" /> + <ClInclude Include="..\..\includes\DataController.hxx" /> + <ClInclude Include="..\..\includes\DataProperties.hxx" /> + <ClInclude Include="..\..\includes\DecompositionUtils.hxx" /> + <ClInclude Include="..\..\includes\deleteGraphicObject.h" /> + <ClInclude Include="..\..\includes\dynlib_graphic_objects.h" /> + <ClInclude Include="..\..\includes\Fac3DDecomposer.hxx" /> + <ClInclude Include="..\..\includes\NgonData.hxx" /> + <ClInclude Include="..\..\includes\NgonGeneralData.hxx" /> + <ClInclude Include="..\..\includes\NgonGridData.hxx" /> + <ClInclude Include="..\..\includes\NgonGridDataDecomposer.hxx" /> + <ClInclude Include="..\..\includes\NgonGridGrayplotDataDecomposer.hxx" /> + <ClInclude Include="..\..\includes\NgonGridMatplotData.hxx" /> + <ClInclude Include="..\..\includes\NgonPolylineData.hxx" /> + <ClInclude Include="..\..\includes\NormalGenerator.hxx" /> + <ClInclude Include="..\..\includes\Plot3DDecomposer.hxx" /> + <ClInclude Include="..\..\includes\PolylineDecomposer.hxx" /> + <ClInclude Include="..\..\includes\TriangleMeshData.hxx" /> + <ClInclude Include="..\..\includes\TriangleMeshFecDataDecomposer.hxx" /> + <ClInclude Include="..\jni\CallXmlLoader.hxx" /> + </ItemGroup> + <ItemGroup> + <None Include="..\jni\ObjectData.i" /> + <None Include="..\jni\PolylineData.i" /> + <None Include="..\jni\SurfaceData.i" /> + <None Include="..\jni\ScilabNativeView.i" /> + <None Include="core_import.def" /> + <None Include="..\jni\DataLoader.i" /> + <None Include="..\..\graphic_objects.iss" /> + <None Include="..\..\sci_gateway\graphic_objects_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\commons\src\c\commons.vcxproj"> + <Project>{eca09a1e-6d12-4a47-92e1-a671c181df77}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\jvm\libjvm.vcxproj"> + <Project>{8ba2dda8-bd04-4d4d-8ee6-6caa955f7470}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj"> + <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\windows_tools\src\c\scilab_windows\scilab_windows.vcxproj"> + <Project>{8028f371-6a94-4a26-8804-6e7f05f1d1aa}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/graphic_objects/src/c/graphic_objects.vcxproj.filters b/modules/graphic_objects/src/c/graphic_objects.vcxproj.filters new file mode 100755 index 000000000..b61c492b9 --- /dev/null +++ b/modules/graphic_objects/src/c/graphic_objects.vcxproj.filters @@ -0,0 +1,304 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{f79df525-a28f-468e-baef-7a11c09d48b6}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{7d5a274b-0f38-4a01-9b9c-76921537ed71}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl</Extensions> + </Filter> + <Filter Include="localization"> + <UniqueIdentifier>{5ffd4074-3898-45da-bc72-d7e2f4d603af}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{b65a6b60-178c-4b9e-9564-39f5703fd8bd}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies\Imports"> + <UniqueIdentifier>{426706e8-160d-467c-a553-370ddc7e5bdd}</UniqueIdentifier> + </Filter> + <Filter Include="Swig Files"> + <UniqueIdentifier>{f978b9df-c998-47b7-9c55-5979f3804a5c}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\jni\CallGraphicController.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\ColorComputer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\createGraphicObject.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Data3D.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\DataLoader.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\DataLoader_wrap.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\dataModel.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\DecompositionUtils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\deleteGraphicObject.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="DllmainGraphic_objects.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Fac3DDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\getGraphicObjectProperty.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGeneralData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGridData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGridDataDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGridGrayplotDataDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGridMatplotData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonPolylineData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NormalGenerator.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Plot3DDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\PolylineDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\setGraphicObjectProperty.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\NgonGridMatplotDataDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\ScilabView.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\ScilabNativeView_wrap.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\AxesModel.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\CurrentFigure.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\CurrentObject.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\CurrentSubwin.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\FigureList.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\FigureModel.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\HandleManagement.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Fac3DColorComputer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\getConsoleIdentifier.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Triangulator.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\MatPlotDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\PolylineData_wrap.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\SurfaceData_wrap.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\createObjectData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\pickSurface.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\ObjectData_wrap.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\Texture.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\Builder.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\jni\CallXmlLoader.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\MeshData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\MeshFecData.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\cpp\MeshFecDataDecomposer.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\jni\CallGraphicController.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\createGraphicObject.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Data3D.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\DataController.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\DataProperties.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\DecompositionUtils.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\deleteGraphicObject.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\dynlib_graphic_objects.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Fac3DDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGeneralData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGridData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGridDataDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGridGrayplotDataDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGridMatplotData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonPolylineData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NormalGenerator.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Plot3DDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\PolylineDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\TriangleMeshData.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\TriangleMeshFecDataDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\NgonGridMatplotDataDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\FigureList.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\ScilabView.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Fac3DColorComputer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\getConsoleIdentifier.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\getGraphicObjectProperty.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\graphicObjectProperties.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\returnType.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\setGraphicObjectProperty.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Triangulator.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\MatPlotDecomposer.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Matplot.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\Texture.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\jni\Builder.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\jni\CallXmlLoader.hxx"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="core_import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="..\jni\DataLoader.i"> + <Filter>Swig Files</Filter> + </None> + <None Include="..\..\graphic_objects.iss" /> + <None Include="..\..\sci_gateway\graphic_objects_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + <None Include="..\jni\ScilabNativeView.i"> + <Filter>Swig Files</Filter> + </None> + <None Include="..\jni\PolylineData.i"> + <Filter>Swig Files</Filter> + </None> + <None Include="..\jni\SurfaceData.i"> + <Filter>Swig Files</Filter> + </None> + <None Include="..\jni\ObjectData.i"> + <Filter>Swig Files</Filter> + </None> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/graphic_objects/src/cpp/.deps/.dirstamp b/modules/graphic_objects/src/cpp/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/.dirstamp diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-AxesModel.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-AxesModel.Plo new file mode 100755 index 000000000..b02afb02d --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-AxesModel.Plo @@ -0,0 +1,265 @@ +src/cpp/libscigraphic_objects_la-AxesModel.lo: src/cpp/AxesModel.cpp \ + /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h includes/ScilabView.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h includes/AxesModel.h \ + ../../modules/core/includes/BOOL.h + +/usr/include/stdc-predef.h: + +/usr/include/string.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +includes/AxesModel.h: + +../../modules/core/includes/BOOL.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ColorComputer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ColorComputer.Plo new file mode 100755 index 000000000..4b374b44a --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ColorComputer.Plo @@ -0,0 +1,138 @@ +src/cpp/libscigraphic_objects_la-ColorComputer.lo: \ + src/cpp/ColorComputer.cpp /usr/include/stdc-predef.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + /usr/include/math.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + includes/getGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +/usr/include/math.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentFigure.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentFigure.Plo new file mode 100755 index 000000000..9ea22a9b2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentFigure.Plo @@ -0,0 +1,266 @@ +src/cpp/libscigraphic_objects_la-CurrentFigure.lo: \ + src/cpp/CurrentFigure.cpp /usr/include/stdc-predef.h \ + includes/ScilabView.hxx /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + ../../modules/core/includes/BOOL.h includes/CurrentFigure.h + +/usr/include/stdc-predef.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +../../modules/core/includes/BOOL.h: + +includes/CurrentFigure.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentObject.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentObject.Plo new file mode 100755 index 000000000..ee92a86fe --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentObject.Plo @@ -0,0 +1,316 @@ +src/cpp/libscigraphic_objects_la-CurrentObject.lo: \ + src/cpp/CurrentObject.cpp /usr/include/stdc-predef.h \ + includes/ScilabView.hxx /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/CurrentObject.h ../../modules/core/includes/BOOL.h \ + includes/setGraphicObjectProperty.h includes/graphicObjectProperties.h \ + includes/CurrentObject.h + +/usr/include/stdc-predef.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: + +includes/CurrentObject.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentSubwin.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentSubwin.Plo new file mode 100755 index 000000000..3e124c971 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-CurrentSubwin.Plo @@ -0,0 +1,258 @@ +src/cpp/libscigraphic_objects_la-CurrentSubwin.lo: \ + src/cpp/CurrentSubwin.cpp /usr/include/stdc-predef.h \ + includes/ScilabView.hxx /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h includes/CurrentSubwin.h + +/usr/include/stdc-predef.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +includes/CurrentSubwin.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Data3D.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Data3D.Plo new file mode 100755 index 000000000..ca0567944 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Data3D.Plo @@ -0,0 +1,243 @@ +src/cpp/libscigraphic_objects_la-Data3D.lo: src/cpp/Data3D.cpp \ + /usr/include/stdc-predef.h includes/Data3D.hxx /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/Data3D.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DataLoader.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DataLoader.Plo new file mode 100755 index 000000000..97b4a09be --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DataLoader.Plo @@ -0,0 +1,339 @@ +src/cpp/libscigraphic_objects_la-DataLoader.lo: src/cpp/DataLoader.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/5/cstring \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/string.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/DataLoader.hxx includes/MatPlotDecomposer.hxx \ + includes/Fac3DDecomposer.hxx /usr/include/c++/5/string \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/NgonGridMatplotData.hxx includes/NgonGridData.hxx \ + includes/NgonData.hxx includes/Data3D.hxx includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/Matplot.h \ + includes/dynlib_graphic_objects.h \ + includes/NgonGridGrayplotDataDecomposer.hxx \ + includes/NgonGridDataDecomposer.hxx \ + includes/NgonGridMatplotDataDecomposer.hxx includes/ColorComputer.hxx \ + includes/DecompositionUtils.hxx includes/Plot3DDecomposer.hxx \ + includes/PolylineDecomposer.hxx includes/MeshFecDataDecomposer.hxx \ + includes/NormalGenerator.hxx includes/getGraphicObjectProperty.h \ + includes/returnType.h includes/CurrentObject.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/cstring: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/string.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/DataLoader.hxx: + +includes/MatPlotDecomposer.hxx: + +includes/Fac3DDecomposer.hxx: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/NgonGridMatplotData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonData.hxx: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/Matplot.h: + +includes/dynlib_graphic_objects.h: + +includes/NgonGridGrayplotDataDecomposer.hxx: + +includes/NgonGridDataDecomposer.hxx: + +includes/NgonGridMatplotDataDecomposer.hxx: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/Plot3DDecomposer.hxx: + +includes/PolylineDecomposer.hxx: + +includes/MeshFecDataDecomposer.hxx: + +includes/NormalGenerator.hxx: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DecompositionUtils.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DecompositionUtils.Plo new file mode 100755 index 000000000..62ada5560 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-DecompositionUtils.Plo @@ -0,0 +1,56 @@ +src/cpp/libscigraphic_objects_la-DecompositionUtils.lo: \ + src/cpp/DecompositionUtils.cpp /usr/include/stdc-predef.h \ + includes/DecompositionUtils.hxx /usr/include/math.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/float.h + +/usr/include/stdc-predef.h: + +includes/DecompositionUtils.hxx: + +/usr/include/math.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/float.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DColorComputer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DColorComputer.Plo new file mode 100755 index 000000000..91ead5855 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DColorComputer.Plo @@ -0,0 +1,260 @@ +src/cpp/libscigraphic_objects_la-Fac3DColorComputer.lo: \ + src/cpp/Fac3DColorComputer.cpp /usr/include/stdc-predef.h \ + includes/DecompositionUtils.hxx includes/Fac3DColorComputer.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h + +/usr/include/stdc-predef.h: + +includes/DecompositionUtils.hxx: + +includes/Fac3DColorComputer.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DDecomposer.Plo new file mode 100755 index 000000000..a5d111593 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Fac3DDecomposer.Plo @@ -0,0 +1,287 @@ +src/cpp/libscigraphic_objects_la-Fac3DDecomposer.lo: \ + src/cpp/Fac3DDecomposer.cpp /usr/include/stdc-predef.h \ + includes/DecompositionUtils.hxx includes/ColorComputer.hxx \ + includes/DecompositionUtils.hxx includes/Fac3DColorComputer.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/Fac3DDecomposer.hxx \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/DecompositionUtils.hxx: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/Fac3DColorComputer.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/Fac3DDecomposer.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureList.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureList.Plo new file mode 100755 index 000000000..75dc8c9d1 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureList.Plo @@ -0,0 +1,265 @@ +src/cpp/libscigraphic_objects_la-FigureList.lo: src/cpp/FigureList.cpp \ + /usr/include/stdc-predef.h includes/ScilabView.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h includes/FigureList.h \ + ../../modules/core/includes/BOOL.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h + +/usr/include/stdc-predef.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +includes/FigureList.h: + +../../modules/core/includes/BOOL.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureModel.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureModel.Plo new file mode 100755 index 000000000..36850541d --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-FigureModel.Plo @@ -0,0 +1,265 @@ +src/cpp/libscigraphic_objects_la-FigureModel.lo: src/cpp/FigureModel.cpp \ + /usr/include/stdc-predef.h /usr/include/string.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h includes/ScilabView.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h includes/FigureModel.h \ + ../../modules/core/includes/BOOL.h + +/usr/include/stdc-predef.h: + +/usr/include/string.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +includes/FigureModel.h: + +../../modules/core/includes/BOOL.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-HandleManagement.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-HandleManagement.Plo new file mode 100755 index 000000000..e5f01bc9e --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-HandleManagement.Plo @@ -0,0 +1,258 @@ +src/cpp/libscigraphic_objects_la-HandleManagement.lo: \ + src/cpp/HandleManagement.cpp /usr/include/stdc-predef.h \ + includes/ScilabView.hxx /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/string /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/dynlib_graphic_objects.h includes/HandleManagement.h + +/usr/include/stdc-predef.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/dynlib_graphic_objects.h: + +includes/HandleManagement.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MatPlotDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MatPlotDecomposer.Plo new file mode 100755 index 000000000..419a279bc --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MatPlotDecomposer.Plo @@ -0,0 +1,348 @@ +src/cpp/libscigraphic_objects_la-MatPlotDecomposer.lo: \ + src/cpp/MatPlotDecomposer.cpp /usr/include/stdc-predef.h \ + includes/DecompositionUtils.hxx includes/MatPlotDecomposer.hxx \ + includes/DataProperties.hxx includes/ColorComputer.hxx \ + includes/DecompositionUtils.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/c++/5/cstring \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/setGraphicObjectProperty.h \ + includes/graphicObjectProperties.h includes/Matplot.h + +/usr/include/stdc-predef.h: + +includes/DecompositionUtils.hxx: + +includes/MatPlotDecomposer.hxx: + +includes/DataProperties.hxx: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/c++/5/cstring: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: + +includes/Matplot.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshData.Plo new file mode 100755 index 000000000..847fcd182 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshData.Plo @@ -0,0 +1,253 @@ +src/cpp/libscigraphic_objects_la-MeshData.lo: src/cpp/MeshData.cpp \ + /usr/include/stdc-predef.h includes/MeshData.hxx includes/Data3D.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/DataProperties.hxx \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/MeshData.hxx: + +includes/Data3D.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/DataProperties.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecData.Plo new file mode 100755 index 000000000..6475955e0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecData.Plo @@ -0,0 +1,258 @@ +src/cpp/libscigraphic_objects_la-MeshFecData.lo: src/cpp/MeshFecData.cpp \ + /usr/include/stdc-predef.h includes/MeshFecData.hxx includes/Data3D.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/MeshData.hxx \ + includes/MeshData.hxx includes/DataProperties.hxx /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/MeshFecData.hxx: + +includes/Data3D.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/MeshData.hxx: + +includes/MeshData.hxx: + +includes/DataProperties.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecDataDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecDataDecomposer.Plo new file mode 100755 index 000000000..1f24bf2e6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-MeshFecDataDecomposer.Plo @@ -0,0 +1,339 @@ +src/cpp/libscigraphic_objects_la-MeshFecDataDecomposer.lo: \ + src/cpp/MeshFecDataDecomposer.cpp /usr/include/stdc-predef.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + includes/DecompositionUtils.hxx includes/MeshFecDataDecomposer.hxx \ + /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/DecompositionUtils.hxx: + +includes/MeshFecDataDecomposer.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonData.Plo new file mode 100755 index 000000000..826984bc1 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonData.Plo @@ -0,0 +1,254 @@ +src/cpp/libscigraphic_objects_la-NgonData.lo: src/cpp/NgonData.cpp \ + /usr/include/stdc-predef.h includes/NgonData.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/Data3D.hxx \ + includes/DataProperties.hxx ../../modules/core/includes/BOOL.h \ + /usr/include/libio.h /usr/include/_G_config.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/DataProperties.hxx \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/NgonData.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/DataProperties.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGeneralData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGeneralData.Plo new file mode 100755 index 000000000..07dad7493 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGeneralData.Plo @@ -0,0 +1,310 @@ +src/cpp/libscigraphic_objects_la-NgonGeneralData.lo: \ + src/cpp/NgonGeneralData.cpp /usr/include/stdc-predef.h \ + /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc includes/NgonGeneralData.hxx \ + includes/NgonData.hxx includes/Data3D.hxx includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/DataProperties.hxx \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/DataProperties.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridData.Plo new file mode 100755 index 000000000..87a942a55 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridData.Plo @@ -0,0 +1,291 @@ +src/cpp/libscigraphic_objects_la-NgonGridData.lo: \ + src/cpp/NgonGridData.cpp /usr/include/stdc-predef.h \ + includes/NgonGridData.hxx /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/NgonData.hxx \ + includes/Data3D.hxx includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/NgonGridData.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/NgonData.hxx: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridDataDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridDataDecomposer.Plo new file mode 100755 index 000000000..8f8114106 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridDataDecomposer.Plo @@ -0,0 +1,280 @@ +src/cpp/libscigraphic_objects_la-NgonGridDataDecomposer.lo: \ + src/cpp/NgonGridDataDecomposer.cpp /usr/include/stdc-predef.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + includes/DecompositionUtils.hxx includes/NgonGridDataDecomposer.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/DecompositionUtils.hxx: + +includes/NgonGridDataDecomposer.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.Plo new file mode 100755 index 000000000..51d4eb9f3 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.Plo @@ -0,0 +1,288 @@ +src/cpp/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.lo: \ + src/cpp/NgonGridGrayplotDataDecomposer.cpp /usr/include/stdc-predef.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + includes/DecompositionUtils.hxx \ + includes/NgonGridGrayplotDataDecomposer.hxx /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + includes/NgonGridDataDecomposer.hxx /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/DecompositionUtils.hxx: + +includes/NgonGridGrayplotDataDecomposer.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/NgonGridDataDecomposer.hxx: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotData.Plo new file mode 100755 index 000000000..486676515 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotData.Plo @@ -0,0 +1,326 @@ +src/cpp/libscigraphic_objects_la-NgonGridMatplotData.lo: \ + src/cpp/NgonGridMatplotData.cpp /usr/include/stdc-predef.h \ + includes/NgonGridMatplotData.hxx /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/NgonGridData.hxx \ + includes/NgonData.hxx includes/Data3D.hxx includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/Matplot.h \ + includes/dynlib_graphic_objects.h includes/Texture.hxx \ + /usr/include/c++/5/climits \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/NgonGridMatplotData.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/NgonGridData.hxx: + +includes/NgonData.hxx: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/Matplot.h: + +includes/dynlib_graphic_objects.h: + +includes/Texture.hxx: + +/usr/include/c++/5/climits: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/x86_64-linux-gnu/bits/xopen_lim.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.Plo new file mode 100755 index 000000000..e87d5dcee --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.Plo @@ -0,0 +1,350 @@ +src/cpp/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.lo: \ + src/cpp/NgonGridMatplotDataDecomposer.cpp /usr/include/stdc-predef.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + includes/DecompositionUtils.hxx includes/NgonGridDataDecomposer.hxx \ + /usr/include/c++/5/string \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/NgonGridMatplotDataDecomposer.hxx includes/ColorComputer.hxx \ + includes/Matplot.h includes/dynlib_graphic_objects.h \ + /usr/include/c++/5/iostream /usr/include/c++/5/ostream \ + /usr/include/c++/5/ios /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/bits/locale_classes.h \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/CurrentObject.h ../../modules/core/includes/BOOL.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/DecompositionUtils.hxx: + +includes/NgonGridDataDecomposer.hxx: + +/usr/include/c++/5/string: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/NgonGridMatplotDataDecomposer.hxx: + +includes/ColorComputer.hxx: + +includes/Matplot.h: + +includes/dynlib_graphic_objects.h: + +/usr/include/c++/5/iostream: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonPolylineData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonPolylineData.Plo new file mode 100755 index 000000000..fb40920d3 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NgonPolylineData.Plo @@ -0,0 +1,313 @@ +src/cpp/libscigraphic_objects_la-NgonPolylineData.lo: \ + src/cpp/NgonPolylineData.cpp /usr/include/stdc-predef.h \ + /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc includes/NgonPolylineData.hxx \ + includes/NgonGeneralData.hxx includes/NgonData.hxx includes/Data3D.hxx \ + includes/DataProperties.hxx ../../modules/core/includes/BOOL.h \ + /usr/include/libio.h /usr/include/_G_config.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/DataProperties.hxx \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +includes/NgonPolylineData.hxx: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/DataProperties.hxx: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NormalGenerator.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NormalGenerator.Plo new file mode 100755 index 000000000..42c182b59 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-NormalGenerator.Plo @@ -0,0 +1,54 @@ +src/cpp/libscigraphic_objects_la-NormalGenerator.lo: \ + src/cpp/NormalGenerator.cpp /usr/include/stdc-predef.h \ + /usr/include/math.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + includes/NormalGenerator.hxx + +/usr/include/stdc-predef.h: + +/usr/include/math.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +includes/NormalGenerator.hxx: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Plot3DDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Plot3DDecomposer.Plo new file mode 100755 index 000000000..a6d019c5b --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Plot3DDecomposer.Plo @@ -0,0 +1,290 @@ +src/cpp/libscigraphic_objects_la-Plot3DDecomposer.lo: \ + src/cpp/Plot3DDecomposer.cpp /usr/include/stdc-predef.h \ + /usr/include/c++/5/cstring \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/string.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + includes/DecompositionUtils.hxx includes/Plot3DDecomposer.hxx \ + includes/NgonGridDataDecomposer.hxx /usr/include/c++/5/string \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/cstring: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/string.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +includes/DecompositionUtils.hxx: + +includes/Plot3DDecomposer.hxx: + +includes/NgonGridDataDecomposer.hxx: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-PolylineDecomposer.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-PolylineDecomposer.Plo new file mode 100755 index 000000000..b12d98fc0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-PolylineDecomposer.Plo @@ -0,0 +1,436 @@ +src/cpp/libscigraphic_objects_la-PolylineDecomposer.lo: \ + src/cpp/PolylineDecomposer.cpp /usr/include/stdc-predef.h \ + /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc includes/DecompositionUtils.hxx \ + includes/PolylineDecomposer.hxx /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/Triangulator.hxx \ + /usr/include/c++/5/algorithm /usr/include/c++/5/utility \ + /usr/include/c++/5/bits/stl_relops.h /usr/include/c++/5/bits/stl_algo.h \ + /usr/include/c++/5/cstdlib /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/5/bits/algorithmfwd.h \ + /usr/include/c++/5/bits/stl_heap.h /usr/include/c++/5/bits/stl_tempbuf.h \ + /usr/include/c++/5/bits/stl_construct.h /usr/include/c++/5/limits \ + /usr/include/c++/5/list /usr/include/c++/5/bits/stl_list.h \ + /usr/include/c++/5/bits/list.tcc /usr/include/c++/5/vector \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + includes/ColorComputer.hxx includes/DecompositionUtils.hxx \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +includes/DecompositionUtils.hxx: + +includes/PolylineDecomposer.hxx: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/Triangulator.hxx: + +/usr/include/c++/5/algorithm: + +/usr/include/c++/5/utility: + +/usr/include/c++/5/bits/stl_relops.h: + +/usr/include/c++/5/bits/stl_algo.h: + +/usr/include/c++/5/cstdlib: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/c++/5/bits/algorithmfwd.h: + +/usr/include/c++/5/bits/stl_heap.h: + +/usr/include/c++/5/bits/stl_tempbuf.h: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/limits: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +includes/ColorComputer.hxx: + +includes/DecompositionUtils.hxx: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ScilabView.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ScilabView.Plo new file mode 100755 index 000000000..fdffbe575 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-ScilabView.Plo @@ -0,0 +1,459 @@ +src/cpp/libscigraphic_objects_la-ScilabView.lo: src/cpp/ScilabView.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/5/algorithm \ + /usr/include/c++/5/utility \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stl_relops.h /usr/include/c++/5/bits/stl_pair.h \ + /usr/include/c++/5/bits/move.h /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/stl_algo.h /usr/include/c++/5/cstdlib \ + /usr/include/stdlib.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/5/bits/algorithmfwd.h \ + /usr/include/c++/5/bits/stl_heap.h /usr/include/c++/5/bits/stl_tempbuf.h \ + /usr/include/c++/5/bits/stl_construct.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/iostream \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/postypes.h /usr/include/c++/5/cwchar \ + /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/cstring /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h includes/ScilabView.hxx \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + includes/dynlib_graphic_objects.h src/jni/CallGraphicController.hxx \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/libio.h \ + /usr/include/_G_config.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + ../../modules/commons/src/jni/GiwsException.hxx includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/createGraphicObject.h \ + includes/setGraphicObjectProperty.h includes/returnType.h \ + includes/CurrentObject.h includes/getGraphicObjectProperty.h \ + includes/graphicObjectProperties.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + includes/deleteGraphicObject.h ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h + +/usr/include/stdc-predef.h: + +/usr/include/c++/5/algorithm: + +/usr/include/c++/5/utility: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stl_relops.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/stl_algo.h: + +/usr/include/c++/5/cstdlib: + +/usr/include/stdlib.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/c++/5/bits/algorithmfwd.h: + +/usr/include/c++/5/bits/stl_heap.h: + +/usr/include/c++/5/bits/stl_tempbuf.h: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/iostream: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/cstring: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/x86_64-linux-gnu/bits/xopen_lim.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +includes/dynlib_graphic_objects.h: + +src/jni/CallGraphicController.hxx: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +../../modules/commons/src/jni/GiwsException.hxx: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/createGraphicObject.h: + +includes/setGraphicObjectProperty.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/getGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +includes/deleteGraphicObject.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Texture.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Texture.Plo new file mode 100755 index 000000000..68ee71fd9 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Texture.Plo @@ -0,0 +1,46 @@ +src/cpp/libscigraphic_objects_la-Texture.lo: src/cpp/Texture.cpp \ + /usr/include/stdc-predef.h includes/Texture.hxx includes/Matplot.h \ + includes/dynlib_graphic_objects.h /usr/include/c++/5/cstring \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/string.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string3.h + +/usr/include/stdc-predef.h: + +includes/Texture.hxx: + +includes/Matplot.h: + +includes/dynlib_graphic_objects.h: + +/usr/include/c++/5/cstring: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/string.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Triangulator.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Triangulator.Plo new file mode 100755 index 000000000..223b6f49b --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-Triangulator.Plo @@ -0,0 +1,391 @@ +src/cpp/libscigraphic_objects_la-Triangulator.lo: \ + src/cpp/Triangulator.cpp /usr/include/stdc-predef.h \ + includes/Triangulator.hxx /usr/include/c++/5/algorithm \ + /usr/include/c++/5/utility \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/stl_relops.h /usr/include/c++/5/bits/stl_pair.h \ + /usr/include/c++/5/bits/move.h /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/stl_algo.h /usr/include/c++/5/cstdlib \ + /usr/include/stdlib.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/5/bits/algorithmfwd.h \ + /usr/include/c++/5/bits/stl_heap.h /usr/include/c++/5/bits/stl_tempbuf.h \ + /usr/include/c++/5/bits/stl_construct.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/limits \ + /usr/include/c++/5/list /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc \ + /usr/include/c++/5/iostream /usr/include/c++/5/ostream \ + /usr/include/c++/5/ios /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/bits/stringfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h + +/usr/include/stdc-predef.h: + +includes/Triangulator.hxx: + +/usr/include/c++/5/algorithm: + +/usr/include/c++/5/utility: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/stl_relops.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/stl_algo.h: + +/usr/include/c++/5/cstdlib: + +/usr/include/stdlib.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/c++/5/bits/algorithmfwd.h: + +/usr/include/c++/5/bits/stl_heap.h: + +/usr/include/c++/5/bits/stl_tempbuf.h: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/limits: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: + +/usr/include/c++/5/iostream: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createGraphicObject.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createGraphicObject.Plo new file mode 100755 index 000000000..a248db518 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createGraphicObject.Plo @@ -0,0 +1,417 @@ +src/cpp/libscigraphic_objects_la-createGraphicObject.lo: \ + src/cpp/createGraphicObject.cpp /usr/include/stdc-predef.h \ + includes/createGraphicObject.h includes/dynlib_graphic_objects.h \ + ../../modules/core/includes/BOOL.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + includes/getGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/CurrentObject.h includes/setGraphicObjectProperty.h \ + includes/FigureModel.h includes/AxesModel.h includes/CurrentSubwin.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + ../../modules/commons/src/jni/GiwsException.hxx \ + src/jni/CallXmlLoader.hxx src/jni/Builder.hxx \ + includes/DataController.hxx includes/DataModel.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_map.h /usr/include/c++/5/bits/stl_multimap.h \ + includes/Data3D.hxx includes/DataProperties.hxx \ + includes/NgonGeneralData.hxx includes/NgonData.hxx \ + includes/NgonGridData.hxx includes/NgonGridMatplotData.hxx \ + includes/Matplot.h includes/NgonPolylineData.hxx includes/MeshData.hxx \ + includes/MeshFecData.hxx includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/createGraphicObject.h: + +includes/dynlib_graphic_objects.h: + +../../modules/core/includes/BOOL.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/setGraphicObjectProperty.h: + +includes/FigureModel.h: + +includes/AxesModel.h: + +includes/CurrentSubwin.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +../../modules/commons/src/jni/GiwsException.hxx: + +src/jni/CallXmlLoader.hxx: + +src/jni/Builder.hxx: + +includes/DataController.hxx: + +includes/DataModel.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonGridMatplotData.hxx: + +includes/Matplot.h: + +includes/NgonPolylineData.hxx: + +includes/MeshData.hxx: + +includes/MeshFecData.hxx: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createObjectData.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createObjectData.Plo new file mode 100755 index 000000000..703fabfb2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-createObjectData.Plo @@ -0,0 +1,140 @@ +src/cpp/libscigraphic_objects_la-createObjectData.lo: \ + src/cpp/createObjectData.cpp /usr/include/stdc-predef.h \ + /usr/include/stdio.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/createGraphicObject.h includes/dynlib_graphic_objects.h \ + ../../modules/core/includes/BOOL.h includes/deleteGraphicObject.h \ + includes/returnType.h includes/getGraphicObjectProperty.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/CurrentObject.h includes/setGraphicObjectProperty.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/createGraphicObject.h: + +includes/dynlib_graphic_objects.h: + +../../modules/core/includes/BOOL.h: + +includes/deleteGraphicObject.h: + +includes/returnType.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-dataModel.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-dataModel.Plo new file mode 100755 index 000000000..123955188 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-dataModel.Plo @@ -0,0 +1,283 @@ +src/cpp/libscigraphic_objects_la-dataModel.lo: src/cpp/dataModel.cpp \ + /usr/include/stdc-predef.h includes/DataModel.hxx /usr/include/c++/5/map \ + /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/memoryfwd.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/ext/alloc_traits.h /usr/include/c++/5/bits/stl_map.h \ + /usr/include/c++/5/bits/stl_multimap.h \ + /usr/include/c++/5/bits/range_access.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/char_traits.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/iosfwd \ + /usr/include/c++/5/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/basic_string.tcc includes/Data3D.hxx \ + includes/DataProperties.hxx ../../modules/core/includes/BOOL.h \ + /usr/include/libio.h /usr/include/_G_config.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h includes/NgonGeneralData.hxx \ + includes/NgonData.hxx includes/NgonGridData.hxx \ + includes/NgonGridMatplotData.hxx includes/Matplot.h \ + includes/dynlib_graphic_objects.h includes/NgonPolylineData.hxx \ + includes/MeshData.hxx includes/MeshFecData.hxx \ + includes/graphicObjectProperties.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h + +/usr/include/stdc-predef.h: + +includes/DataModel.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonGridMatplotData.hxx: + +includes/Matplot.h: + +includes/dynlib_graphic_objects.h: + +includes/NgonPolylineData.hxx: + +includes/MeshData.hxx: + +includes/MeshFecData.hxx: + +includes/graphicObjectProperties.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-deleteGraphicObject.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-deleteGraphicObject.Plo new file mode 100755 index 000000000..66d58f005 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-deleteGraphicObject.Plo @@ -0,0 +1,396 @@ +src/cpp/libscigraphic_objects_la-deleteGraphicObject.lo: \ + src/cpp/deleteGraphicObject.cpp /usr/include/stdc-predef.h \ + includes/deleteGraphicObject.h includes/dynlib_graphic_objects.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + ../../modules/commons/src/jni/GiwsException.hxx \ + includes/DataController.hxx includes/DataModel.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_map.h /usr/include/c++/5/bits/stl_multimap.h \ + includes/Data3D.hxx includes/DataProperties.hxx \ + ../../modules/core/includes/BOOL.h includes/NgonGeneralData.hxx \ + includes/NgonData.hxx includes/NgonGridData.hxx \ + includes/NgonGridMatplotData.hxx includes/Matplot.h \ + includes/NgonPolylineData.hxx includes/MeshData.hxx \ + includes/MeshFecData.hxx includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +includes/deleteGraphicObject.h: + +includes/dynlib_graphic_objects.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +../../modules/commons/src/jni/GiwsException.hxx: + +includes/DataController.hxx: + +includes/DataModel.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +../../modules/core/includes/BOOL.h: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonGridMatplotData.hxx: + +includes/Matplot.h: + +includes/NgonPolylineData.hxx: + +includes/MeshData.hxx: + +includes/MeshFecData.hxx: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getConsoleIdentifier.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getConsoleIdentifier.Plo new file mode 100755 index 000000000..2767c9fd4 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getConsoleIdentifier.Plo @@ -0,0 +1,351 @@ +src/cpp/libscigraphic_objects_la-getConsoleIdentifier.lo: \ + src/cpp/getConsoleIdentifier.cpp /usr/include/stdc-predef.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + includes/getConsoleIdentifier.h includes/dynlib_graphic_objects.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + ../../modules/commons/src/jni/GiwsException.hxx + +/usr/include/stdc-predef.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +includes/getConsoleIdentifier.h: + +includes/dynlib_graphic_objects.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +../../modules/commons/src/jni/GiwsException.hxx: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getGraphicObjectProperty.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getGraphicObjectProperty.Plo new file mode 100755 index 000000000..570102841 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-getGraphicObjectProperty.Plo @@ -0,0 +1,429 @@ +src/cpp/libscigraphic_objects_la-getGraphicObjectProperty.lo: \ + src/cpp/getGraphicObjectProperty.cpp /usr/include/stdc-predef.h \ + /usr/include/stdlib.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc \ + ../../modules/commons/src/jni/GiwsException.hxx \ + includes/DataController.hxx includes/DataModel.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_map.h /usr/include/c++/5/bits/stl_multimap.h \ + includes/Data3D.hxx includes/DataProperties.hxx \ + includes/NgonGeneralData.hxx includes/NgonData.hxx \ + includes/NgonGridData.hxx includes/NgonGridMatplotData.hxx \ + includes/Matplot.h includes/NgonPolylineData.hxx includes/MeshData.hxx \ + includes/MeshFecData.hxx includes/graphicObjectProperties.h \ + includes/ScilabView.hxx /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc + +/usr/include/stdc-predef.h: + +/usr/include/stdlib.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +../../modules/commons/src/jni/GiwsException.hxx: + +includes/DataController.hxx: + +includes/DataModel.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonGridMatplotData.hxx: + +includes/Matplot.h: + +includes/NgonPolylineData.hxx: + +includes/MeshData.hxx: + +includes/MeshFecData.hxx: + +includes/graphicObjectProperties.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-pickSurface.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-pickSurface.Plo new file mode 100755 index 000000000..b5594c6ec --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-pickSurface.Plo @@ -0,0 +1,161 @@ +src/cpp/libscigraphic_objects_la-pickSurface.lo: src/cpp/pickSurface.cpp \ + /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/getGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-setGraphicObjectProperty.Plo b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-setGraphicObjectProperty.Plo new file mode 100755 index 000000000..4b1e3e9f9 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.deps/libscigraphic_objects_la-setGraphicObjectProperty.Plo @@ -0,0 +1,429 @@ +src/cpp/libscigraphic_objects_la-setGraphicObjectProperty.lo: \ + src/cpp/setGraphicObjectProperty.cpp /usr/include/stdc-predef.h \ + includes/setGraphicObjectProperty.h /usr/include/stdlib.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + ../../modules/core/includes/BOOL.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + includes/graphicObjectProperties.h \ + ../../modules/jvm/includes/getScilabJavaVM.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/c++/5/bits/ios_base.h \ + /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc \ + ../../modules/commons/src/jni/GiwsException.hxx \ + includes/DataController.hxx includes/DataModel.hxx \ + /usr/include/c++/5/map /usr/include/c++/5/bits/stl_tree.h \ + /usr/include/c++/5/bits/stl_map.h /usr/include/c++/5/bits/stl_multimap.h \ + includes/Data3D.hxx includes/DataProperties.hxx \ + includes/NgonGeneralData.hxx includes/NgonData.hxx \ + includes/NgonGridData.hxx includes/NgonGridMatplotData.hxx \ + includes/Matplot.h includes/NgonPolylineData.hxx includes/MeshData.hxx \ + includes/MeshFecData.hxx includes/graphicObjectProperties.h \ + includes/ScilabView.hxx /usr/include/c++/5/list \ + /usr/include/c++/5/bits/stl_list.h /usr/include/c++/5/bits/list.tcc \ + /usr/include/c++/5/vector /usr/include/c++/5/bits/stl_construct.h \ + /usr/include/c++/5/bits/stl_uninitialized.h \ + /usr/include/c++/5/bits/stl_vector.h \ + /usr/include/c++/5/bits/stl_bvector.h /usr/include/c++/5/bits/vector.tcc + +/usr/include/stdc-predef.h: + +includes/setGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +../../modules/core/includes/BOOL.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +includes/graphicObjectProperties.h: + +../../modules/jvm/includes/getScilabJavaVM.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +../../modules/commons/src/jni/GiwsException.hxx: + +includes/DataController.hxx: + +includes/DataModel.hxx: + +/usr/include/c++/5/map: + +/usr/include/c++/5/bits/stl_tree.h: + +/usr/include/c++/5/bits/stl_map.h: + +/usr/include/c++/5/bits/stl_multimap.h: + +includes/Data3D.hxx: + +includes/DataProperties.hxx: + +includes/NgonGeneralData.hxx: + +includes/NgonData.hxx: + +includes/NgonGridData.hxx: + +includes/NgonGridMatplotData.hxx: + +includes/Matplot.h: + +includes/NgonPolylineData.hxx: + +includes/MeshData.hxx: + +includes/MeshFecData.hxx: + +includes/graphicObjectProperties.h: + +includes/ScilabView.hxx: + +/usr/include/c++/5/list: + +/usr/include/c++/5/bits/stl_list.h: + +/usr/include/c++/5/bits/list.tcc: + +/usr/include/c++/5/vector: + +/usr/include/c++/5/bits/stl_construct.h: + +/usr/include/c++/5/bits/stl_uninitialized.h: + +/usr/include/c++/5/bits/stl_vector.h: + +/usr/include/c++/5/bits/stl_bvector.h: + +/usr/include/c++/5/bits/vector.tcc: diff --git a/modules/graphic_objects/src/cpp/.dirstamp b/modules/graphic_objects/src/cpp/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/cpp/.dirstamp diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-AxesModel.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-AxesModel.o Binary files differnew file mode 100755 index 000000000..36ee73db6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-AxesModel.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ColorComputer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ColorComputer.o Binary files differnew file mode 100755 index 000000000..e4451c0a2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ColorComputer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentFigure.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentFigure.o Binary files differnew file mode 100755 index 000000000..0a11d63de --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentFigure.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentObject.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentObject.o Binary files differnew file mode 100755 index 000000000..50e313099 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentObject.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentSubwin.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentSubwin.o Binary files differnew file mode 100755 index 000000000..d0d3c5747 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-CurrentSubwin.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Data3D.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Data3D.o Binary files differnew file mode 100755 index 000000000..20386ca5a --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Data3D.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DataLoader.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DataLoader.o Binary files differnew file mode 100755 index 000000000..537ab68ff --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DataLoader.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DecompositionUtils.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DecompositionUtils.o Binary files differnew file mode 100755 index 000000000..abceab62c --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-DecompositionUtils.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DColorComputer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DColorComputer.o Binary files differnew file mode 100755 index 000000000..4fcbc5706 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DColorComputer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DDecomposer.o Binary files differnew file mode 100755 index 000000000..8ef821c41 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Fac3DDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureList.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureList.o Binary files differnew file mode 100755 index 000000000..e54fbb37b --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureList.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureModel.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureModel.o Binary files differnew file mode 100755 index 000000000..aeccf38e9 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-FigureModel.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-HandleManagement.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-HandleManagement.o Binary files differnew file mode 100755 index 000000000..35f97a9f1 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-HandleManagement.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MatPlotDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MatPlotDecomposer.o Binary files differnew file mode 100755 index 000000000..084d1de91 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MatPlotDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshData.o Binary files differnew file mode 100755 index 000000000..8b6d05cc0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecData.o Binary files differnew file mode 100755 index 000000000..46bf0b65d --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecDataDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecDataDecomposer.o Binary files differnew file mode 100755 index 000000000..4531ff1ca --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-MeshFecDataDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonData.o Binary files differnew file mode 100755 index 000000000..58213544e --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGeneralData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGeneralData.o Binary files differnew file mode 100755 index 000000000..32b69e0e0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGeneralData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridData.o Binary files differnew file mode 100755 index 000000000..7a68340de --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridDataDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridDataDecomposer.o Binary files differnew file mode 100755 index 000000000..69fd1fc60 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridDataDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.o Binary files differnew file mode 100755 index 000000000..5cdbaccd5 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotData.o Binary files differnew file mode 100755 index 000000000..c5ef15ff4 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.o Binary files differnew file mode 100755 index 000000000..4a193bb74 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonPolylineData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonPolylineData.o Binary files differnew file mode 100755 index 000000000..36421843d --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NgonPolylineData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NormalGenerator.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NormalGenerator.o Binary files differnew file mode 100755 index 000000000..2bbe05f8e --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-NormalGenerator.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Plot3DDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Plot3DDecomposer.o Binary files differnew file mode 100755 index 000000000..b65310f0e --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Plot3DDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-PolylineDecomposer.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-PolylineDecomposer.o Binary files differnew file mode 100755 index 000000000..b0e0ff18b --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-PolylineDecomposer.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ScilabView.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ScilabView.o Binary files differnew file mode 100755 index 000000000..c1de15063 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-ScilabView.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Texture.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Texture.o Binary files differnew file mode 100755 index 000000000..e9866eadd --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Texture.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Triangulator.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Triangulator.o Binary files differnew file mode 100755 index 000000000..270450fbe --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-Triangulator.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createGraphicObject.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createGraphicObject.o Binary files differnew file mode 100755 index 000000000..5bf6c1b7f --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createGraphicObject.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createObjectData.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createObjectData.o Binary files differnew file mode 100755 index 000000000..c5a453815 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-createObjectData.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-dataModel.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-dataModel.o Binary files differnew file mode 100755 index 000000000..b0b060729 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-dataModel.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-deleteGraphicObject.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-deleteGraphicObject.o Binary files differnew file mode 100755 index 000000000..ac5a95135 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-deleteGraphicObject.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getConsoleIdentifier.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getConsoleIdentifier.o Binary files differnew file mode 100755 index 000000000..ab5d689e6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getConsoleIdentifier.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getGraphicObjectProperty.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getGraphicObjectProperty.o Binary files differnew file mode 100755 index 000000000..74921b19c --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-getGraphicObjectProperty.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-pickSurface.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-pickSurface.o Binary files differnew file mode 100755 index 000000000..978a967cf --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-pickSurface.o diff --git a/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-setGraphicObjectProperty.o b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-setGraphicObjectProperty.o Binary files differnew file mode 100755 index 000000000..bd6c6db6e --- /dev/null +++ b/modules/graphic_objects/src/cpp/.libs/libscigraphic_objects_la-setGraphicObjectProperty.o diff --git a/modules/graphic_objects/src/cpp/AxesModel.cpp b/modules/graphic_objects/src/cpp/AxesModel.cpp new file mode 100755 index 000000000..80222e832 --- /dev/null +++ b/modules/graphic_objects/src/cpp/AxesModel.cpp @@ -0,0 +1,37 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include "ScilabView.hxx" + +extern "C" +{ +#include "AxesModel.h" +} + +int getAxesModel(void) +{ + return ScilabView::getAxesModel(); +} +void setAxesModel(int UID) +{ + ScilabView::setAxesModel(UID); +} + +BOOL isAxesModel(int UID) +{ + if (UID == getAxesModel()) + { + return TRUE; + } + return FALSE; +} diff --git a/modules/graphic_objects/src/cpp/ColorComputer.cpp b/modules/graphic_objects/src/cpp/ColorComputer.cpp new file mode 100755 index 000000000..5c9628519 --- /dev/null +++ b/modules/graphic_objects/src/cpp/ColorComputer.cpp @@ -0,0 +1,208 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ColorComputer.hxx" + +extern "C" +{ +#include <math.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +void ColorComputer::getColor(double s, double smin, double srange, double indexOffset, double* colormap, int colormapSize, float* returnedColor) +{ + double value = 0.; + int index = 0; + + if (!DecompositionUtils::isANumber(s)) + { + /* Black is output if s is a Nan */ + returnedColor[0] = MIN_COMPONENT_VALUE; + returnedColor[1] = MIN_COMPONENT_VALUE; + returnedColor[2] = MIN_COMPONENT_VALUE; + } + else + { + value = (s - smin) / (srange); + index = (int) ((double)(colormapSize - 1) * value + indexOffset); + + /* Clamp */ + if (index < 0) + { + index = 0; + } + else if (index > colormapSize - 1) + { + index = colormapSize - 1; + } + + returnedColor[0] = (float)colormap[index]; + returnedColor[1] = (float)colormap[colormapSize + index]; + returnedColor[2] = (float)colormap[2 * colormapSize + index]; + } +} + +void ColorComputer::getColor(double s, double smin, double srange, double indexOffset, double* colormap, int minIndex, int maxIndex, int colormapSize, float* returnedColor) +{ + double value = 0.; + int index = 0; + + if (!DecompositionUtils::isANumber(s)) + { + /* Black is output if s is a Nan */ + returnedColor[0] = MIN_COMPONENT_VALUE; + returnedColor[1] = MIN_COMPONENT_VALUE; + returnedColor[2] = MIN_COMPONENT_VALUE; + } + else + { + value = (s - smin) / (srange); + index = (int) ((double)(maxIndex - minIndex) * value + indexOffset + (double) minIndex); + + /* Clamp */ + if (index < minIndex) + { + index = minIndex; + } + else if (index > maxIndex) + { + index = maxIndex; + } + + returnedColor[0] = (float)colormap[index]; + returnedColor[1] = (float)colormap[colormapSize + index]; + returnedColor[2] = (float)colormap[2 * colormapSize + index]; + } +} + +double ColorComputer::getIndex(double s, double smin, double srange, double indexOffset, int minIndex, int maxIndex) +{ + double value = 0.; + double index = 0.; + + if (!DecompositionUtils::isANumber(s)) + { + /* Black is output if s is a Nan. */ + index = BLACK_INDEX; + } + else + { + value = (s - smin) / (srange); + index = (double)(maxIndex - minIndex) * value + indexOffset + (double) minIndex; + + index = floor(index); + + /* Clamp */ + if (index < (double) minIndex) + { + index = (double) minIndex; + } + else if (index > (double) maxIndex) + { + index = (double) maxIndex; + } + } + + return index; +} + +double ColorComputer::getDirectIndex(double s, int colormapSize) +{ + double index = 0.; + + if (s <= (double) WHITE_LOWER_INDEX) + { + /* Lowest index if the color is below the white range's lower index */ + index = 0.0; + } + else if (s <= (double) BLACK_LOWER_INDEX) + { + /* White is output */ + index = WHITE_INDEX; + } + else if ((((double) BLACK_LOWER_INDEX < s) && (s < (double) BLACK_UPPER_INDEX)) || !DecompositionUtils::isANumber(s)) + { + /* Black is also output for Nan values */ + index = BLACK_INDEX; + } + else + { + index = floor(s); + + if (index > (double)(colormapSize - 1)) + { + index = (double) (colormapSize - 1); + } + } + + return index; +} + +double ColorComputer::getClampedDirectIndex(double s, int colormapSize) +{ + double index = s; + + /* Black is output if s is a Nan or if it corresponds to the black color */ + if (!DecompositionUtils::isANumber(s) || ((BLACK_INDEX <= s) && (s < 0.0))) + { + index = BLACK_INDEX; + } + else + { + index = floor(index); + + /* Clamp */ + if (s < 0.0) + { + index = 0.0; + } + else if (s > (double)(colormapSize - 1)) + { + index = (double) (colormapSize - 1); + } + } + + return index; +} + +void ColorComputer::getClampedDirectColor(double s, double* colormap, int colormapSize, float* returnedColor) +{ + int index = 0; + + if (!DecompositionUtils::isANumber(s)) + { + /* Black is output if s is a Nan */ + returnedColor[0] = MIN_COMPONENT_VALUE; + returnedColor[1] = MIN_COMPONENT_VALUE; + returnedColor[2] = MIN_COMPONENT_VALUE; + } + else + { + /* Clamp */ + if (s < 0.0) + { + s = 0.0; + } + else if (s > (double)(colormapSize - 1)) + { + s = (double) (colormapSize - 1); + } + + index = (int) s; + + returnedColor[0] = (float)colormap[index]; + returnedColor[1] = (float)colormap[colormapSize + index]; + returnedColor[2] = (float)colormap[2 * colormapSize + index]; + } +} diff --git a/modules/graphic_objects/src/cpp/CurrentFigure.cpp b/modules/graphic_objects/src/cpp/CurrentFigure.cpp new file mode 100755 index 000000000..b74f682b4 --- /dev/null +++ b/modules/graphic_objects/src/cpp/CurrentFigure.cpp @@ -0,0 +1,40 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ScilabView.hxx" + +extern "C" +{ +#include <string.h> + +#include "BOOL.h" +#include "CurrentFigure.h" +} + +int getCurrentFigure(void) +{ + return ScilabView::getCurrentFigure(); +} + +void setCurrentFigure(int UID) +{ + ScilabView::setCurrentFigure(UID); +} + +BOOL isCurrentFigure(int UID) +{ + if (UID == ScilabView::getCurrentFigure()) + { + return TRUE; + } + return FALSE; +} diff --git a/modules/graphic_objects/src/cpp/CurrentObject.cpp b/modules/graphic_objects/src/cpp/CurrentObject.cpp new file mode 100755 index 000000000..99b38dbcd --- /dev/null +++ b/modules/graphic_objects/src/cpp/CurrentObject.cpp @@ -0,0 +1,63 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ScilabView.hxx" + +extern "C" +{ +#include <string.h> +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" + +#include "BOOL.h" +#include "CurrentObject.h" +} + + +int getCurrentObject(void) +{ + return ScilabView::getCurrentObject(); +} + +void setCurrentObject(int UID) +{ + ScilabView::setCurrentObject(UID); +} + +BOOL isCurrentObject(int UID) +{ + if (UID == ScilabView::getCurrentObject()) + { + return TRUE; + } + return FALSE; +} + +int getParentObject(int iUID) +{ + int iParent = 0; + int* piParent = &iParent; + if (iUID == 0) + { + return 0; + } + + getGraphicObjectProperty(iUID, __GO_PARENT__, jni_int, (void**)&piParent); + return iParent; +} + +void setParentObject(int iUID, int iParent) +{ + setGraphicObjectProperty(iUID, __GO_PARENT__, &iParent, jni_int, 1); + return; +} diff --git a/modules/graphic_objects/src/cpp/CurrentSubwin.cpp b/modules/graphic_objects/src/cpp/CurrentSubwin.cpp new file mode 100755 index 000000000..cfae88753 --- /dev/null +++ b/modules/graphic_objects/src/cpp/CurrentSubwin.cpp @@ -0,0 +1,28 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ScilabView.hxx" + +extern "C" +{ +#include "CurrentSubwin.h" +} + +int getCurrentSubWin(void) +{ + return ScilabView::getCurrentSubWin(); +} + +void setCurrentSubWin(int UID) +{ + ScilabView::setCurrentSubWin(UID); +} diff --git a/modules/graphic_objects/src/cpp/Data3D.cpp b/modules/graphic_objects/src/cpp/Data3D.cpp new file mode 100755 index 000000000..5fdfdcfda --- /dev/null +++ b/modules/graphic_objects/src/cpp/Data3D.cpp @@ -0,0 +1,52 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "Data3D.hxx" + +extern "C" { +#include "BOOL.h" + +#include "graphicObjectProperties.h" +} + +Data3D::Data3D(void) +{ + +} + +Data3D::~Data3D(void) +{ + +} + +int Data3D::getPropertyFromName(int propertyName) +{ + return UNKNOWN_DATA_PROPERTY; +} + +int Data3D::setDataProperty(int property, void const* value, int numElements) +{ + return 0; +} + +void Data3D::getDataProperty(int property, void **_pvData) +{ + if (property == UNKNOWN_DATA_PROPERTY) + { + *_pvData = NULL; + } + else + { + *_pvData = NULL; + } +} + diff --git a/modules/graphic_objects/src/cpp/DataLoader.cpp b/modules/graphic_objects/src/cpp/DataLoader.cpp new file mode 100755 index 000000000..0debb6089 --- /dev/null +++ b/modules/graphic_objects/src/cpp/DataLoader.cpp @@ -0,0 +1,454 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * Copyright (C) 2011-2012 - DIGITEO - Pierre Lando + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <cstring> + +#include "DataLoader.hxx" + +#include "MatPlotDecomposer.hxx" +#include "Fac3DDecomposer.hxx" +#include "NgonGridMatplotData.hxx" +#include "NgonGridGrayplotDataDecomposer.hxx" +#include "NgonGridMatplotDataDecomposer.hxx" +#include "Plot3DDecomposer.hxx" +#include "PolylineDecomposer.hxx" +#include "MeshFecDataDecomposer.hxx" +#include "NormalGenerator.hxx" + +extern "C" +{ +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +int getTextureWidth(int id) +{ + int iType = 0; + int *piType = &iType; + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::getTextureWidth(id); + } + else + { + return 0; + } +} + +int getTextureHeight(int id) +{ + int iType = 0; + int *piType = &iType; + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::getTextureHeight(id); + } + else + { + return 0; + } +} + +int fillTextureData(int id, unsigned char* buffer, int bufferLength) +{ + int iType = 0; + int *piType = &iType; + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::fillTextureData(id, buffer, bufferLength); + } + else + { + return 0; + } +} + +int fillSubTextureData(int id, unsigned char* buffer, int bufferLength, int x, int y, int width, int height) +{ + int iType = 0; + int *piType = &iType; + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::fillTextureData(id, buffer, bufferLength, x, y, width, height); + } + else + { + return 0; + } +} + +int getDataSize(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + return Fac3DDecomposer::getDataSize(id); + case __GO_FEC__ : + return MeshFecDataDecomposer::getDataSize(id); + case __GO_GRAYPLOT__ : + return NgonGridGrayplotDataDecomposer::getDataSize(id); + case __GO_MATPLOT__ : + return NgonGridMatplotDataDecomposer::getDataSize(id); + case __GO_PLOT3D__ : + return Plot3DDecomposer::getDataSize(id); + case __GO_POLYLINE__ : + return PolylineDecomposer::getDataSize(id); + default : + return 0; + } + +} + +void fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + Fac3DDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + case __GO_FEC__ : + MeshFecDataDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + case __GO_GRAYPLOT__ : + NgonGridGrayplotDataDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + case __GO_MATPLOT__ : + NgonGridMatplotDataDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + case __GO_PLOT3D__ : + Plot3DDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + case __GO_POLYLINE__ : + PolylineDecomposer::fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + break; + } +} + + +void fillNormals(int id, float* position, float* buffer, int bufferLength, int elementsSize) +{ + + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + { + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + CalculatePolygonNormalFlat(position, buffer, bufferLength, elementsSize, numVerticesPerGon); + } + break; + case __GO_FEC__ : + break; + case __GO_GRAYPLOT__ : + break; + case __GO_MATPLOT__ : + break; + case __GO_PLOT3D__ : + { + //CalculateGridNormalFlat(position, buffer, bufferLength, elementsSize); + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + CalculateGridNormalSmooth(position, buffer, bufferLength, elementsSize, numX, numY); + } + break; + case __GO_POLYLINE__ : + break; + } +} + +void fillTextureCoordinates(int id, float* BUFF, int bufferLength) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + Fac3DDecomposer::fillTextureCoordinates(id, BUFF, bufferLength); + break; + case __GO_FEC__ : + MeshFecDataDecomposer::fillTextureCoordinates(id, BUFF, bufferLength); + break; + case __GO_POLYLINE__ : + PolylineDecomposer::fillTextureCoordinates(id, BUFF, bufferLength); + break; + } +} + +void fillColors(int id, float* BUFF, int bufferLength, int elementsSize) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FEC__ : + MeshFecDataDecomposer::fillColors(id, BUFF, bufferLength, elementsSize); + break; + case __GO_GRAYPLOT__ : + NgonGridGrayplotDataDecomposer::fillColors(id, BUFF, bufferLength, elementsSize); + break; + case __GO_MATPLOT__ : + NgonGridMatplotDataDecomposer::fillColors(id, BUFF, bufferLength, elementsSize); + break; + case __GO_PLOT3D__ : + Plot3DDecomposer::fillColors(id, BUFF, bufferLength, elementsSize); + break; + case __GO_POLYLINE__ : + PolylineDecomposer::fillColors(id, BUFF, bufferLength, elementsSize); + break; + } +} + + +int getIndicesSize(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + return Fac3DDecomposer::getIndicesSize(id); + case __GO_FEC__ : + return MeshFecDataDecomposer::getIndicesSize(id); + case __GO_GRAYPLOT__ : + return NgonGridGrayplotDataDecomposer::getIndicesSize(id); + case __GO_MATPLOT__ : + return NgonGridMatplotDataDecomposer::getIndicesSize(id); + case __GO_PLOT3D__ : + return Plot3DDecomposer::getIndicesSize(id); + case __GO_POLYLINE__ : + return PolylineDecomposer::getIndicesSize(id); + default : + return 0; + } +} + + +int fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + return Fac3DDecomposer::fillIndices(id, buffer, bufferLength, logMask); + case __GO_FEC__ : + return MeshFecDataDecomposer::fillIndices(id, buffer, bufferLength, logMask); + case __GO_GRAYPLOT__ : + return NgonGridGrayplotDataDecomposer::fillIndices(id, buffer, bufferLength, logMask); + case __GO_MATPLOT__ : + return NgonGridMatplotDataDecomposer::fillIndices(id, buffer, bufferLength, logMask); + case __GO_PLOT3D__ : + return Plot3DDecomposer::fillIndices(id, buffer, bufferLength, logMask); + case __GO_POLYLINE__ : + return PolylineDecomposer::fillIndices(id, buffer, bufferLength, logMask); + default : + return 0; + } +} + +int getWireIndicesSize(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + return Fac3DDecomposer::getWireIndicesSize(id); + case __GO_FEC__ : + return MeshFecDataDecomposer::getWireIndicesSize(id); + case __GO_PLOT3D__ : + return Plot3DDecomposer::getWireIndicesSize(id); + case __GO_POLYLINE__ : + return PolylineDecomposer::getWireIndicesSize(id); + default : + return 0; + } +} + +int fillWireIndices(int id, int* buffer, int bufferLength, int logMask) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + switch (iType) + { + case __GO_FAC3D__ : + return Fac3DDecomposer::fillWireIndices(id, buffer, bufferLength, logMask); + case __GO_FEC__ : + return MeshFecDataDecomposer::fillWireIndices(id, buffer, bufferLength, logMask); + case __GO_PLOT3D__ : + return Plot3DDecomposer::fillWireIndices(id, buffer, bufferLength, logMask); + case __GO_POLYLINE__ : + return PolylineDecomposer::fillWireIndices(id, buffer, bufferLength, logMask); + default : + return 0; + } +} + +int getMarkIndicesSize(int id) +{ + return 0; +} + +int fillMarkIndices(int id, int* BUFF, int bufferLength) +{ + // TODO. + return 0; +} + +JavaDirectBuffer getTextureData(int id) +{ + JavaDirectBuffer info; + int iType = 0; + int *piType = &iType; + + info.address = NULL; + info.size = 0; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + void * address = NULL; + unsigned int size = 0; + + if (!MatPlotDecomposer::getTextureData(id, &address, &size)) + { + return info; + } + info.address = address; + info.size = size; + } + + return info; +} + +int getTextureImageType(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::getTextureImageType(id); + } + + return -1; +} + +int getTextureDataType(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::getTextureDataType(id); + } + + return -1; +} + +int getTextureGLType(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::getTextureGLType(id); + } + + return -1; +} + +void disposeTextureData(int id, unsigned char * buffer) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + MatPlotDecomposer::disposeTextureData(id, buffer); + } +} + +int isTextureRowOrder(int id) +{ + int iType = 0; + int *piType = &iType; + + getGraphicObjectProperty(id, __GO_TYPE__, jni_int, (void**) &piType); + + if (iType == __GO_MATPLOT__) + { + return MatPlotDecomposer::isTextureRowOrder(id); + } + + return 0; +} + +void setABGRExt(int isAvailable) +{ + NgonGridMatplotData::setABGRSupported(isAvailable != 0); +} diff --git a/modules/graphic_objects/src/cpp/DecompositionUtils.cpp b/modules/graphic_objects/src/cpp/DecompositionUtils.cpp new file mode 100755 index 000000000..5c0e3c06e --- /dev/null +++ b/modules/graphic_objects/src/cpp/DecompositionUtils.cpp @@ -0,0 +1,289 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "DecompositionUtils.hxx" + +extern "C" +{ +#include <math.h> +#include <float.h> +#ifdef _MSC_VER +#define isnan _isnan + // isinf(x) + // | +%inf -> 1 + // | -%inf -> -1 + // | _ -> 0 +#define isinf(x) (_fpclass(x)==_FPCLASS_PINF?1:(_fpclass(x)==_FPCLASS_NINF?-1:0)) +#endif +} + +int DecompositionUtils::isANumber(double x) +{ + if (isnan(x)) + { + return 0; + } + else + { + return 1; + } +} + +int DecompositionUtils::isFinite(double x) +{ + if (isinf(x)) + { + return 0; + } + else + { + return 1; + } +} + +int DecompositionUtils::isValid(double x) +{ + if (isnan(x) || isinf(x)) + { + return 0; + } + else + { + return 1; + } +} + +int DecompositionUtils::isValid(double x, double y, double z) +{ + if (isnan(x) || isnan(y) || isnan(z) || isinf(x) || isinf(y) || isinf(z)) + { + return 0; + } + else + { + return 1; + } +} + +int DecompositionUtils::isValid(double x, double y) +{ + if (isnan(x) || isnan(y) || isinf(x) || isinf(y)) + { + return 0; + } + else + { + return 1; + } +} + +double DecompositionUtils::getLog10Value(double value) +{ + return log10(value); +} + +int DecompositionUtils::isLogValid(double x) +{ + if (x > 0.0) + { + return 1; + } + else + { + return 0; + } +} + +int DecompositionUtils::isLogValid(double x, double y, double z, int logMask) +{ + int valid = 1; + + if (logMask & 0x1) + { + valid &= (x > 0.0); + } + + if (logMask & 0x2) + { + valid &= (y > 0.0); + } + + if (logMask & 0x4) + { + valid &= (z > 0.0); + } + + return valid; +} + +int DecompositionUtils::isLogValid(double x, double y, int logMask) +{ + int valid = 1; + + if (logMask & 0x1) + { + valid &= (x > 0.0); + } + + if (logMask & 0x2) + { + valid &= (y > 0.0); + } + + return valid; +} + +double DecompositionUtils::getMaxDoubleValue(void) +{ + return DBL_MAX; +} + +double DecompositionUtils::getMinDoubleValue(void) +{ + return DBL_MIN; +} + +double DecompositionUtils::getAbsoluteValue(double value) +{ + return fabs(value); +} + +double DecompositionUtils::getSquareRoot(double value) +{ + return sqrt(value); +} + +/* + * Decomposes a rectangle into two adjacent triangles. + * The rectangle's vertices are supposed to be specified in + * counter-clockwise order, with 0 corresponding to the former's lower-left vertex. + * The two output triangles' vertex indices are also specified in + * counter-clockwise order. + */ +void DecompositionUtils::getDecomposedRectangleTriangleIndices(int* indices) +{ + indices[0] = 0; + indices[1] = 1; + indices[2] = 2; + indices[3] = 0; + indices[4] = 2; + indices[5] = 3; +} + +/* To do: use a Vector3d class to perform vector operations. */ +void DecompositionUtils::getDecomposedQuadTriangleIndices(double vertices[4][3], int* facetVertexIndices, int* triangleVertexIndices) +{ + /* The two decompositions' midpoints */ + double mid0[3]; + double mid1[3]; + + /* The vectors from one midpoint to its opposite vertices */ + double mo0[3]; + double mo1[3]; + + double nmo0 = 0.; + double nmo1 = 0.; + + double dot0 = 0.; + double dot1 = 0.; + + double denom = 0.; + + /* + * The input vertices are given in counter-clockwise order, from v0 to v3. + * Two decompositions are possible: either (v0,v1,v2) and (v0,v2,v3) or (v1,v2,v3) and (v1,v3,v0). + * The best one is the one that yields the most coplanar triangles. To estimate this, for each configuration, + * we compute the midpoint of the triangles' shared edge, which are respectively mid0 and mid1. + * The angles (v1 mid0 v3) and (v2 mid1 v0) give an approximation of the angles between the two triangles' planes + * for respectively the first and second condigurations. + */ + + mid0[0] = 0.5 * (vertices[0][0] + vertices[2][0]); + mid0[1] = 0.5 * (vertices[0][1] + vertices[2][1]); + mid0[2] = 0.5 * (vertices[0][2] + vertices[2][2]); + mid1[0] = 0.5 * (vertices[1][0] + vertices[3][0]); + mid1[1] = 0.5 * (vertices[1][1] + vertices[3][1]); + mid1[2] = 0.5 * (vertices[1][2] + vertices[3][2]); + + /* 1st decomposition */ + + /* mo0 = v1 - mid0 */ + mo0[0] = vertices[1][0] - mid0[0]; + mo0[1] = vertices[1][1] - mid0[1]; + mo0[2] = vertices[1][2] - mid0[2]; + + /* mo1 = v3 - mid0 */ + mo1[0] = vertices[3][0] - mid0[0]; + mo1[1] = vertices[3][1] - mid0[1]; + mo1[2] = vertices[3][2] - mid0[2]; + + nmo0 = mo0[0] * mo0[0] + mo0[1] * mo0[1] + mo0[2] * mo0[2]; + nmo1 = mo1[0] * mo1[0] + mo1[1] * mo1[1] + mo1[2] * mo1[2]; + + if (nmo0 * nmo1 > 0.0) + { + denom = DecompositionUtils::getSquareRoot(nmo0 * nmo1); + } + else + { + denom = 1.0; + } + + dot0 = (mo0[0] * mo1[0] + mo0[1] * mo1[1] + mo0[2] * mo1[2]) / denom; + + /* 2nd decomposition */ + + /* mo0 = v2 - mid1 */ + mo0[0] = vertices[2][0] - mid1[0]; + mo0[1] = vertices[2][1] - mid1[1]; + mo0[2] = vertices[2][2] - mid1[2]; + + /* mo1 = v0 - mid1 */ + mo1[0] = vertices[0][0] - mid1[0]; + mo1[1] = vertices[0][1] - mid1[1]; + mo1[2] = vertices[0][2] - mid1[2]; + + nmo0 = mo0[0] * mo0[0] + mo0[1] * mo0[1] + mo0[2] * mo0[2]; + nmo1 = mo1[0] * mo1[0] + mo1[1] * mo1[1] + mo1[2] * mo1[2]; + + if (nmo0 * nmo1 > 0.0) + { + denom = getSquareRoot(nmo0 * nmo1); + } + else + { + denom = 1.0; + } + + dot1 = (mo0[0] * mo1[0] + mo0[1] * mo1[1] + mo0[2] * mo1[2]) / denom; + + /* The lower the dot product, the closer to -1, and the more coplanar the triangles are. */ + if (dot0 <= dot1) + { + triangleVertexIndices[0] = facetVertexIndices[0]; + triangleVertexIndices[1] = facetVertexIndices[1]; + triangleVertexIndices[2] = facetVertexIndices[2]; + triangleVertexIndices[3] = facetVertexIndices[0]; + triangleVertexIndices[4] = facetVertexIndices[2]; + triangleVertexIndices[5] = facetVertexIndices[3]; + } + else + { + triangleVertexIndices[0] = facetVertexIndices[1]; + triangleVertexIndices[1] = facetVertexIndices[2]; + triangleVertexIndices[2] = facetVertexIndices[3]; + triangleVertexIndices[3] = facetVertexIndices[1]; + triangleVertexIndices[4] = facetVertexIndices[3]; + triangleVertexIndices[5] = facetVertexIndices[0]; + } +} + diff --git a/modules/graphic_objects/src/cpp/Fac3DColorComputer.cpp b/modules/graphic_objects/src/cpp/Fac3DColorComputer.cpp new file mode 100755 index 000000000..bff8a45e0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/Fac3DColorComputer.cpp @@ -0,0 +1,323 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "DecompositionUtils.hxx" +#include "Fac3DColorComputer.hxx" + +extern "C" +{ +#include <stdlib.h> +} + +Fac3DColorComputer::Fac3DColorComputer(void) +{ + colors = NULL; + numColors = 0; + colorFlag = 0; + /* 1: direct mapping */ + dataMapping = 1; + numGons = 0; + numVerticesPerGon = 0; + numColorsPerFacet = 0; + perVertex = 0; + minColorValue = 0.0; + maxColorValue = 0.0; + colorRange = 0.0; + usedMinColorValue = 0.0; + colorRangeValid = 0; +} + +Fac3DColorComputer::Fac3DColorComputer(double* colors, int numColors, int colorFlag, int dataMapping, int numGons, int numVerticesPerGon) +{ + this->colors = colors; + this->numColors = numColors; + this->colorFlag = colorFlag; + this->dataMapping = dataMapping; + this->numGons = numGons; + this->numVerticesPerGon = numVerticesPerGon; + + if (numColors == numGons * numVerticesPerGon) + { + perVertex = 1; + numColorsPerFacet = numVerticesPerGon; + } + else + { + perVertex = 0; + numColorsPerFacet = 1; + } + + /* Scaled */ + if (dataMapping == 0) + { + if (numColors == 0) + { + colorRangeValid = 0; + + /* Set the actually used color range to [0.0, 1.0] */ + usedMinColorValue = 0.0; + colorRange = 1.0; + } + else + { + colorRangeValid = 1; + computeMinMaxValues(); + + colorRange = maxColorValue - minColorValue; + usedMinColorValue = minColorValue; + + /* + * The color range is invalid when its minimum and maximum values are equal. + * This does not matter when all the color values are either infinite or Nans, + * as facets will be considered as invalid anyway. + */ + if (colorRange < DecompositionUtils::getMinDoubleValue()) + { + colorRangeValid = 0; + + /* Set the actually used color range to [0.0, 1.0] */ + usedMinColorValue = 0.0; + colorRange = 1.0; + } + } + } + +} + +Fac3DColorComputer::~Fac3DColorComputer(void) +{ + +} + +int Fac3DColorComputer::isInterpolatedShadingUsed(void) +{ + int interpolatedShading = 0; + + /* + * Interpolated shading is used only when colors are defined per vertex + * and color flag is equal to 3. In any other case, flat shading is used. + */ + if (perVertex == 1 && colorFlag == 3) + { + interpolatedShading = 1; + } + + return interpolatedShading; +} + +double Fac3DColorComputer::getOutputFacetColor(int facetIndex, int vertexIndex) +{ + /* + * Special case for scaled colors: return the color at half + * the used color range if it is not value, whatever perVertex's value. + */ + if (dataMapping == 0 && colorRangeValid == 0) + { + return 0.5 * (colorRange); + } + else + { + return getFacetColor(facetIndex, vertexIndex); + } + +} + +/* To do: + * -rename getFacetColor to getFacetValue. or getVertexColorIndex + * -streamline. + */ +double Fac3DColorComputer::getFacetColor(int facetIndex, int vertexIndex) +{ + double color = 0.0; + + if (perVertex == 1) + { + if (colorFlag == 2) + { + color = computeAverageValue(facetIndex); + } + else if (colorFlag == 3) + { + color = colors[facetIndex * numVerticesPerGon + vertexIndex]; + } + else if (colorFlag == 4) + { + color = colors[facetIndex * numVerticesPerGon]; + } + } + else if (perVertex == 0) + { + color = colors[facetIndex]; + } + + return color; +} + +/* + * To do: + * -streamline. + */ +int Fac3DColorComputer::isFacetColorValid(int facetIndex) +{ + double color = 0.; + int valid = 0; + + /* Special case, no colors therefore facets are always valid */ + if (colorFlag == 0 || colorFlag == 1 || numColors == 0) + { + return 1; + } + + /* Special case for colorFlag == 3 and perVertex color values */ + if (colorFlag == 3 && perVertex == 1) + { + valid = 0; + + for (int i = 0; i < numVerticesPerGon; i++) + { + color = getFacetColor(facetIndex, i); + + if (dataMapping == 1) + { + /* + * The facet is valid if at least one of its vertex colors is not in the interval + * [0,1) and is a valid number. + */ + if ((int) color != 0 && DecompositionUtils::isANumber(color)) + { + valid = 1; + break; + } + } + else if (dataMapping == 0) + { + /* If at least one color value is infinite, the facet is considered as invalid. */ + if (!DecompositionUtils::isFinite(color)) + { + valid = 0; + break; + } + + /* If at least one value is a number, the facet is valid, provided it has no infinite values. */ + if (DecompositionUtils::isANumber(color) && valid == 0) + { + valid = 1; + } + + } + } + + } + else + { + /* Vertex index set to 0 as all the vertices of a given facet have the same color value */ + color = getFacetColor(facetIndex, 0); + + if (dataMapping == 1) + { + /* The facet is valid if its color value is not in the interval [0,1) and is a valid number. */ + if ((int) color == 0 || DecompositionUtils::isANumber(color) == 0) + { + valid = 0; + } + else + { + valid = 1; + } + } + else if (dataMapping == 0) + { + /* The facet is valid if its color value is valid. */ + if (DecompositionUtils::isValid(color)) + { + valid = 1; + } + else + { + valid = 0; + } + + } + } + + return valid; +} + +double Fac3DColorComputer::computeAverageValue(int facetIndex) +{ + double averageValue = 0.; + int i = 0; + + averageValue = 0.0; + + for (i = 0; i < numVerticesPerGon; i++) + { + averageValue += colors[numVerticesPerGon * facetIndex + i]; + } + + averageValue /= (double) numVerticesPerGon; + + return averageValue; +} + +void Fac3DColorComputer::computeMinMaxValues(void) +{ + double maxDouble = 0.; + double tmpValueMin = 0.; + double tmpValueMax = 0.; + + int i = 0; + + maxDouble = DecompositionUtils::getMaxDoubleValue(); + + tmpValueMin = maxDouble; + tmpValueMax = -maxDouble; + + for (i = 0; i < numGons; i++) + { + computeFacetMinMax(i, &tmpValueMin, &tmpValueMax); + } + + minColorValue = tmpValueMin; + maxColorValue = tmpValueMax; +} + +void Fac3DColorComputer::computeFacetMinMax(int facetIndex, double* currentMin, double* currentMax) +{ + double value = 0.; + + for (int i = 0; i < numColorsPerFacet; i++) + { + value = getFacetColor(facetIndex, i); + + if (DecompositionUtils::isValid(value)) + { + if (value < *currentMin) + { + *currentMin = value; + } + + if (value > *currentMax) + { + *currentMax = value; + } + } + } + +} + +void Fac3DColorComputer::getColorRangeValue(double* minColorValue, double* colorRange) +{ + *minColorValue = usedMinColorValue; + *colorRange = this->colorRange; +} + diff --git a/modules/graphic_objects/src/cpp/Fac3DDecomposer.cpp b/modules/graphic_objects/src/cpp/Fac3DDecomposer.cpp new file mode 100755 index 000000000..bfdafb38b --- /dev/null +++ b/modules/graphic_objects/src/cpp/Fac3DDecomposer.cpp @@ -0,0 +1,599 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "DecompositionUtils.hxx" +#include "ColorComputer.hxx" +#include "Fac3DColorComputer.hxx" +#include "Fac3DDecomposer.hxx" + +extern "C" +{ +#include <stdlib.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +int Fac3DDecomposer::getDataSize(int id) +{ + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + return numVerticesPerGon * numGons; +} + +void Fac3DDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + int i = 0; + + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + int bufferOffset = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_int, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_int, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_int, (void**) &z); + + + for (i = 0; i < numVerticesPerGon * numGons; i++) + { + if (coordinateMask & 0x1) + { + double xi = x[i]; + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(x[i]); + } + buffer[bufferOffset] = (float)(xi * scale[0] + translation[0]); + } + + if (coordinateMask & 0x2) + { + double yi = y[i]; + if (logMask & 0x2) + { + yi = DecompositionUtils::getLog10Value(y[i]); + } + buffer[bufferOffset + 1] = (float)(yi * scale[1] + translation[1]); + } + + if (coordinateMask & 0x4) + { + double zi = z[i]; + if (logMask & 0x4) + { + zi = DecompositionUtils::getLog10Value(z[i]); + } + buffer[bufferOffset + 2] = (float)(zi * scale[2] + translation[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += 4; + } + +} + +void Fac3DDecomposer::fillTextureCoordinates(int id, float* buffer, int bufferLength) +{ + int parentFigure = 0; + int* pparentFigure = &parentFigure; + int parent = 0; + int* pparent = &parent; + + double* colors = NULL; + double* colormap = NULL; + double* z = NULL; + + double color = 0.; + + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + int numColors = 0; + int* piNumColors = &numColors; + + int colormapSize = 0; + int* piColormapSize = &colormapSize; + + int colorFlag = 0; + int* piColorFlag = &colorFlag; + + int dataMapping = 0; + int* piDataMapping = &dataMapping; + + int perVertex = 0; + + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_COLORS__, jni_int, (void**) &piNumColors); + getGraphicObjectProperty(id, __GO_DATA_MODEL_COLORS__, jni_double_vector, (void**) &colors); + + + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + + if (parentFigure == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_COLOR_FLAG__, jni_int, (void**) &piColorFlag); + getGraphicObjectProperty(id, __GO_DATA_MAPPING__, jni_int, (void**) &piDataMapping); + + /* Do not fill */ + if (colorFlag == 0) + { + return; + } + + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + if (numColors == numGons * numVerticesPerGon) + { + perVertex = 1; + } + else if (numColors == numGons) + { + perVertex = 0; + } + + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_int, (void**) &z); + + if (colorFlag == 1) + { + fillNormalizedZColorsTextureCoordinates(buffer, bufferLength, colormap, colormapSize, z, numGons, numVerticesPerGon); + } + else if (colorFlag > 1 && numColors == 0) + { + /* + * The color buffer must be filled with the color_mode value. + * To do: correctly take into account Nan and infinite values. + */ + int colorMode = 0; + int* piColorMode = &colorMode; + + getGraphicObjectProperty(id, __GO_COLOR_MODE__, jni_int, (void**) &piColorMode); + + color = (double) colorMode; + color = DecompositionUtils::getAbsoluteValue(color); + + fillConstantColorsTextureCoordinates(buffer, bufferLength, colormap, colormapSize, + color, numGons, numVerticesPerGon); + } + else + { + fillDataColorsTextureCoordinates(buffer, bufferLength, colormap, colormapSize, + colors, colorFlag, perVertex, dataMapping, numGons, numVerticesPerGon); + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); +} + +void Fac3DDecomposer::fillNormalizedZColorsTextureCoordinates(float* buffer, int bufferLength, double* colormap, int colormapSize, + double* z, int numGons, int numVerticesPerGon) +{ + double zavg = 0.; + double zMin = 0.; + double zMax = 0.; + double zRange = 0.; + double minDoubleValue = 0.; + float index = 0.; + + int i = 0; + int j = 0; + int bufferOffset = 0; + + computeMinMaxValues(z, numGons * numVerticesPerGon, numGons, numVerticesPerGon, ALL_VALUES, &zMin, &zMax); + + minDoubleValue = DecompositionUtils::getMinDoubleValue(); + + /* To be verified */ + if ((zMax - zMin) < minDoubleValue) + { + zRange = 1.0; + } + else + { + zRange = zMax - zMin; + } + + for (i = 0; i < numGons; i++) + { + /* Per-face average */ + zavg = computeAverageValue(&z[i * numVerticesPerGon], numVerticesPerGon); + index = (float)((ColorComputer::getIndex(zavg, zMin, zRange, Z_COLOR_OFFSET, 0, colormapSize - 1) + 2.0 + COLOR_TEXTURE_OFFSET) / (float) (colormapSize + 2)); + + for (j = 0; j < numVerticesPerGon; j++) + { + buffer[bufferOffset++] = index; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 1.0; + } + } + +} + +void Fac3DDecomposer::fillConstantColorsTextureCoordinates(float* buffer, int bufferLength, double* colormap, int colormapSize, + double colorValue, int numGons, int numVerticesPerGon) +{ + int bufferOffset = 0; + + double index = (ColorComputer::getClampedDirectIndex(colorValue - 1.0, colormapSize) + 2.0 + COLOR_TEXTURE_OFFSET) / (float) (colormapSize + 2); + + for (int i = 0; i < numGons * numVerticesPerGon; i++) + { + buffer[bufferOffset++] = (float)index; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 1.0; + } + +} + +void Fac3DDecomposer::fillDataColorsTextureCoordinates(float* buffer, int bufferLength, double* colormap, int colormapSize, + double* colors, int colorFlag, int perVertex, int dataMapping, int numGons, int numVerticesPerGon) +{ + double colMin = 0.; + double colRange = 0.; + double color = 0.; + double colorTextureOffset = 0.; + double index = 0.; + + int bufferOffset = 0; + + int numColors = 0; + + Fac3DColorComputer colorComputer; + + if (perVertex) + { + numColors = numGons * numVerticesPerGon; + } + else + { + numColors = numGons; + } + + colorComputer = Fac3DColorComputer(colors, numColors, colorFlag, dataMapping, numGons, numVerticesPerGon); + + /* 0: colors are scaled */ + if (dataMapping == 0) + { + colorComputer.getColorRangeValue(&colMin, &colRange); + } + + /* + * The color texture offset value is used to center color sub-intervals + * on integer index values when interpolated shading is used or to be sure + * to fetch the correct color value when flat shading is used. + */ + colorTextureOffset = COLOR_TEXTURE_OFFSET; + + for (int i = 0; i < numGons; i++) + { + for (int j = 0; j < numVerticesPerGon; j++) + { + color = colorComputer.getOutputFacetColor(i, j); + + if (dataMapping == 1) + { + color = DecompositionUtils::getAbsoluteValue(color); + index = ColorComputer::getClampedDirectIndex(color - 1.0 , colormapSize); + } + else if (dataMapping == 0) + { + index = ColorComputer::getIndex(color, colMin, colRange, COLOR_OFFSET, 0, colormapSize - 1); + } + + /* The offset corresponding to the black and white colors must added to the index and the colormap size. */ + buffer[bufferOffset++] = (float) ((index + colorTextureOffset + 2.0) / (double) (colormapSize + 2)); + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 1.0; + } + } +} + +double Fac3DDecomposer::computeAverageValue(double* values, int numVertices) +{ + double averageValue = 0.0; + + for (int i = 0; i < numVertices; i++) + { + averageValue += values[i]; + } + + averageValue /= (double) numVertices; + + return averageValue; +} + +void Fac3DDecomposer::computeMinMaxValues(double* values, int numValues, int numGons, int numVerticesPerGon, int minMaxComputation, + double* valueMin, double* valueMax) +{ + double maxDouble = DecompositionUtils::getMaxDoubleValue(); + double tmpValueMin = maxDouble; + double tmpValueMax = -maxDouble; + double value = 0.; + + int numIterations = 0; + + if (minMaxComputation != ALL_VALUES) + { + numIterations = numGons; + } + else + { + numIterations = numValues; + } + + for (int i = 0; i < numIterations; i++) + { + if (minMaxComputation == FIRST_VERTEX_VALUE) + { + value = values[i * numVerticesPerGon]; + } + else if (minMaxComputation == FACE_AVERAGE) + { + value = computeAverageValue(&values[i * numVerticesPerGon], numVerticesPerGon); + } + else + { + value = values[i]; + } + + if (DecompositionUtils::isValid(value)) + { + if (value < tmpValueMin) + { + tmpValueMin = value; + } + + if (value > tmpValueMax) + { + tmpValueMax = value; + } + } + } + + *valueMin = tmpValueMin; + *valueMax = tmpValueMax; +} + +int Fac3DDecomposer::getIndicesSize(int id) +{ + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + if (numVerticesPerGon < 2) + { + return 0; + } + + return 3 * (numVerticesPerGon - 2) * numGons; +} + +/* + * To do: use a polygon triangulation algorithm, as the fan decomposition used may produce + * overlapping triangles for non-convex polygons. + */ +int Fac3DDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + double xc = 0.; + double yc = 0.; + double zc = 0.; + + double* colors = NULL; + + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + int numColors = 0; + int* piNumColors = &numColors; + + int colorFlag = 0; + int* piColorFlag = &colorFlag; + + int dataMapping = 0; + int* piDataMapping = &dataMapping; + + int bufferOffset = 0; + int vertexOffset = 0; + + Fac3DColorComputer colorComputer; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_COLORS__, jni_int, (void**) &piNumColors); + getGraphicObjectProperty(id, __GO_DATA_MODEL_COLORS__, jni_double_vector, (void**) &colors); + + getGraphicObjectProperty(id, __GO_COLOR_FLAG__, jni_int, (void**) &piColorFlag); + + getGraphicObjectProperty(id, __GO_DATA_MAPPING__, jni_int, (void**) &piDataMapping); + + /* At least 3 vertices per N-gon are required to output triangles. */ + if (numVerticesPerGon < 3) + { + return 0; + } + + colorComputer = Fac3DColorComputer(colors, numColors, colorFlag, dataMapping, numGons, numVerticesPerGon); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + for (int i = 0; i < numGons; i++) + { + int isValid = 1; + + for (int j = 0; j < numVerticesPerGon; j++) + { + xc = x[vertexOffset + j]; + yc = y[vertexOffset + j]; + zc = z[vertexOffset + j]; + + if (!DecompositionUtils::isValid(xc, yc, zc) || !DecompositionUtils::isLogValid(xc, yc, zc, logMask)) + { + isValid = 0; + break; + } + } + + if (isValid == 0 || colorComputer.isFacetColorValid(i) == 0) + { + vertexOffset += numVerticesPerGon; + continue; + } + + /* Performs a fan decomposition, vertices are ordered counter-clockwise. */ + for (int j = 0; j < numVerticesPerGon - 2; j++) + { + buffer[bufferOffset] = vertexOffset; + buffer[bufferOffset + 1] = vertexOffset + j + 2; + buffer[bufferOffset + 2] = vertexOffset + j + 1; + + bufferOffset += 3; + } + + vertexOffset += numVerticesPerGon; + } + + return bufferOffset; +} + +int Fac3DDecomposer::getWireIndicesSize(int id) +{ + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + return 2 * numVerticesPerGon * numGons; +} + +int Fac3DDecomposer::fillWireIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + double xc = 0.; + double yc = 0.; + double zc = 0.; + + int numVerticesPerGon = 0; + int* piNumVerticesPerGon = &numVerticesPerGon; + int numGons = 0; + int* piNumGons = &numGons; + + int bufferOffset = 0; + int vertexOffset = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &piNumVerticesPerGon); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &piNumGons); + + /* At least 2 vertices per N-gon are required to output segments. */ + if (numVerticesPerGon < 2) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + for (int i = 0; i < numGons; i++) + { + int isValid = 1; + + for (int j = 0; j < numVerticesPerGon; j++) + { + xc = x[vertexOffset + j]; + yc = y[vertexOffset + j]; + zc = z[vertexOffset + j]; + + if (!DecompositionUtils::isValid(xc, yc, zc) || !DecompositionUtils::isLogValid(xc, yc, zc, logMask)) + { + isValid = 0; + break; + } + } + + if (isValid == 0) + { + vertexOffset += numVerticesPerGon; + continue; + } + + for (int j = 0; j < numVerticesPerGon; j++) + { + buffer[bufferOffset] = vertexOffset + j; + buffer[bufferOffset + 1] = vertexOffset + (j + 1) % numVerticesPerGon; + + bufferOffset += 2; + } + + vertexOffset += numVerticesPerGon; + } + + return bufferOffset; +} + diff --git a/modules/graphic_objects/src/cpp/FigureList.cpp b/modules/graphic_objects/src/cpp/FigureList.cpp new file mode 100755 index 000000000..8feaf78ba --- /dev/null +++ b/modules/graphic_objects/src/cpp/FigureList.cpp @@ -0,0 +1,75 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ScilabView.hxx" + +extern "C" +{ +#include "FigureList.h" +#ifdef _MSC_VER +#include "strdup_windows.h" +#else +#include <string.h> +#endif +#include "FigureList.h" +} + +int sciGetNbFigure(void) +{ + return ScilabView::getNbFigure(); +} + +void sciGetFiguresId(int ids[]) +{ + return ScilabView::getFiguresId(ids); +} + +int getValidDefaultFigureId() +{ + return ScilabView::getValidDefaultFigureId(); +} + +BOOL sciIsExistingFigure(int id) +{ + return (ScilabView::existsFigureId(id) == true ? TRUE : FALSE); +} + +BOOL sciHasFigures() +{ + return (ScilabView::isEmptyFigureList() == true ? FALSE : TRUE); +} + +int getFigureFromIndex(int figNum) +{ + return ScilabView::getFigureFromIndex(figNum); +} + +void registerToController() +{ + ScilabView::registerToController(); +} +void unregisterToController() +{ + ScilabView::unregisterToController(); +} + +int search_path(char* _pstPath) +{ + return ScilabView::search_path(_pstPath); +} + +char* get_path(int uid) +{ + std::string path = ScilabView::get_path(uid); + return strdup(path.c_str()); +} + diff --git a/modules/graphic_objects/src/cpp/FigureModel.cpp b/modules/graphic_objects/src/cpp/FigureModel.cpp new file mode 100755 index 000000000..3709937eb --- /dev/null +++ b/modules/graphic_objects/src/cpp/FigureModel.cpp @@ -0,0 +1,38 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include "ScilabView.hxx" + +extern "C" +{ +#include "FigureModel.h" +} + +int getFigureModel(void) +{ + return ScilabView::getFigureModel(); +} + +void setFigureModel(int UID) +{ + ScilabView::setFigureModel(UID); +} + +BOOL isFigureModel(int UID) +{ + if (UID == getFigureModel()) + { + return TRUE; + } + return FALSE; +} diff --git a/modules/graphic_objects/src/cpp/HandleManagement.cpp b/modules/graphic_objects/src/cpp/HandleManagement.cpp new file mode 100755 index 000000000..60996ad6f --- /dev/null +++ b/modules/graphic_objects/src/cpp/HandleManagement.cpp @@ -0,0 +1,28 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ScilabView.hxx" + +extern "C" +{ +#include "HandleManagement.h" +} + +long getHandle(int UID) +{ + return ScilabView::getObjectHandle(UID); +} + +int getObjectFromHandle(long handle) +{ + return ScilabView::getObjectFromHandle(handle); +} diff --git a/modules/graphic_objects/src/cpp/MatPlotDecomposer.cpp b/modules/graphic_objects/src/cpp/MatPlotDecomposer.cpp new file mode 100755 index 000000000..2d4e4ad2c --- /dev/null +++ b/modules/graphic_objects/src/cpp/MatPlotDecomposer.cpp @@ -0,0 +1,257 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Pierre Lando + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "DecompositionUtils.hxx" +#include "MatPlotDecomposer.hxx" +#include "DataProperties.hxx" +#include "ColorComputer.hxx" +#include <iostream> +#include <cstring> + +extern "C" { +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "Matplot.h" +} + +int MatPlotDecomposer::getTextureWidth(int id) +{ + int width = 0; + int* piWidth = &width; + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piWidth); + + return width - 1; +} + + +int MatPlotDecomposer::getTextureHeight(int id) +{ + int height = 0; + int* piHeight = &height; + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piHeight); + + return height - 1; +} + + +int MatPlotDecomposer::fillTextureData(int id, unsigned char* buffer, int bufferLength) +{ + // Indexed colors + void * data = NULL; + int parentFigure = 0; + int * piParentFigure = &parentFigure; + double * colormap = NULL; + int colormapSize = 0; + int * piColormapSize = &colormapSize; + int datatype = -1; + int * pidataType = &datatype; + const int h = getTextureHeight(id); + const int w = getTextureWidth(id); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, &data); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_DATA_TYPE__, jni_int, (void**) &pidataType); + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &piParentFigure); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + switch ((DataType)datatype) + { + case MATPLOT_HM1_Char : + case MATPLOT_Char : + { + char * index = (char *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + { + unsigned char * index = (unsigned char *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_Int : + { + int * index = (int *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_UInt : + { + unsigned int * index = (unsigned int *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_Short : + { + short * index = (short *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_UShort : + { + unsigned short * index = (unsigned short *)data; + for (int i = 0 ; i < w * h; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + double * index = (double *)data; + for (int i = 0 ; i < w * h ; i++) + { + ColorComputer::getDirectByteColor(index[i] - 1, colormap, colormapSize, &buffer[4 * i], false); + } + break; + } + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); + + return bufferLength; +} + + +int MatPlotDecomposer::fillTextureData(int id, unsigned char* buffer, int bufferLength, int x, int y, int width, int height) +{ + double* value = NULL; + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &value); + if (width * height * 4 == bufferLength) + { + int parentFigure = 0; + int * piParentFigure = &parentFigure; + double* colormap = NULL; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &piParentFigure); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + int textureHeight = getTextureHeight(id); + int k = 0; + for (int j = y ; j < y + height ; j++) + { + for (int i = x ; i < x + width ; i++) + { + ColorComputer::getDirectByteColor(value[j + i * textureHeight] - 1, colormap, colormapSize, &buffer[k]); + buffer[k + 3] = 255; + k += 4; + } + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); + + return bufferLength; + } + else + { + return 0; + } +} + +int MatPlotDecomposer::getTextureImageType(int id) +{ + int type = -1; + int * piType = &type; + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__, jni_int, (void**) &piType); + + return type; +} + +int MatPlotDecomposer::getTextureDataType(int id) +{ + int type = -1; + int * piType = &type; + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_DATA_TYPE__, jni_int, (void**) &piType); + + return type; +} + +int MatPlotDecomposer::getTextureGLType(int id) +{ + int type = -1; + int * piType = &type; + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_GL_TYPE__, jni_int, (void**) &piType); + + return type; +} + +int MatPlotDecomposer::getTextureData(int id, void ** address, unsigned int * size) +{ + int type = getTextureImageType(id); + if (type == MATPLOT_INDEX) + { + // Indexed colors + const int h = getTextureHeight(id); + const int w = getTextureWidth(id); + const int bsize = w * h * sizeof(int); + unsigned char * buffer = new unsigned char[bsize]; + fillTextureData(id, buffer, bsize); + + *address = buffer; + *size = bsize; + + return 1; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, jni_double_vector, address); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__, jni_int, (void **)&size); + + return 1; +} + +void MatPlotDecomposer::disposeTextureData(int id, unsigned char * buffer) +{ + if (buffer) + { + delete[] buffer; + } +} + +int MatPlotDecomposer::isTextureRowOrder(int id) +{ + int rowOrder; + int * piRowOrder = &rowOrder; + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_DATA_ORDER__, jni_int, (void**) &piRowOrder); + + return rowOrder; +} + +int buildMatplotType(DataType datatype, DataOrder dataorder, ImageType imagetype) +{ + return ((int)datatype) | ((int)dataorder << 8) | ((int)imagetype << 16); +} diff --git a/modules/graphic_objects/src/cpp/MeshData.cpp b/modules/graphic_objects/src/cpp/MeshData.cpp new file mode 100755 index 000000000..7be7128a0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/MeshData.cpp @@ -0,0 +1,364 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "MeshData.hxx" +#include "DataProperties.hxx" + +extern "C" { +#include <string.h> +#include "BOOL.h" + +#include "graphicObjectProperties.h" +} + +MeshData::MeshData(void) +{ + vertices = NULL; + indices = NULL; + values = NULL; + + numberVertices = 0; + numberElements = 0; + numberVerticesByElem = 3; +} + +/* To be correctly implemented */ +MeshData::MeshData(unsigned int numberVertices, unsigned int numberElements, unsigned int numberVerticesByElem) +{ + vertices = new double[numberVerticesByElem * numberVertices]; + indices = new unsigned int[numberVerticesByElem * numberElements]; + + this->numberVertices = numberVertices; + this->numberElements = numberElements; + this->numberVerticesByElem = numberVerticesByElem; +} + +/* To be correctly implemented */ +MeshData::~MeshData(void) +{ + if (numberVertices > 0) + { + delete [] vertices; + delete [] values; + } + + if (numberElements > 0) + { + delete [] indices; + } + +} + +int MeshData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_VERTICES__ : + return NUM_VERTICES; + case __GO_DATA_MODEL_NUM_INDICES__ : + return NUM_INDICES; + case __GO_DATA_MODEL_X__ : + return X_COORDINATES; + case __GO_DATA_MODEL_Y__ : + return Y_COORDINATES; + case __GO_DATA_MODEL_Z__ : + return Z_COORDINATES; + case __GO_DATA_MODEL_COORDINATES__ : + return COORDINATES; + case __GO_DATA_MODEL_INDICES__ : + return INDICES; + case __GO_DATA_MODEL_VALUES__ : + return VALUES; + case __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ : + return NUM_VERTICES_BY_ELEM; + default : + return Data3D::getPropertyFromName(propertyName); + } + +} + + +int MeshData::setDataProperty(int property, void const* value, int numElements) +{ + switch (property) + { + case NUM_VERTICES : + return setNumVertices(*((unsigned int const*) value)); + case NUM_INDICES : + return setNumIndices(*((unsigned int const*) value)); + case X_COORDINATES : + setDataX((double const*) value, numElements); + break; + case Y_COORDINATES : + setDataY((double const*) value, numElements); + break; + case Z_COORDINATES : + setDataZ((double const*) value, numElements); + break; + case COORDINATES : + setVertices((double const*) value, numElements); + break; + case INDICES : + setIndices((unsigned int const*) value, numElements); + break; + case VALUES : + setValues((double const*) value, numElements); + break; + case NUM_VERTICES_BY_ELEM : + numberVerticesByElem = *((unsigned int const*) value); + break; + default : + return Data3D::setDataProperty(property, value, numElements); + } + + return 1; +} + +void MeshData::getDataProperty(int property, void **_pvData) +{ + switch (property) + { + case NUM_VERTICES : + ((int *)*_pvData)[0] = getNumVertices(); + break; + case NUM_INDICES : + ((int *)*_pvData)[0] = getNumIndices(); + break; + case COORDINATES : + *_pvData = getVertices(); + break; + case INDICES : + *_pvData = getIndices(); + break; + case VALUES : + *_pvData = getValues(); + break; + case NUM_VERTICES_BY_ELEM : + ((int *) *_pvData)[0] = numberVerticesByElem; + break; + default : + Data3D::getDataProperty(property, _pvData); + } +} + +unsigned int MeshData::getNumVertices(void) +{ + return numberVertices; +} + +/* + * Values are considered as being specified per-vertex for now + * To be corrected + */ +int MeshData::setNumVertices(unsigned int numVertices) +{ + int result = 1; + + if (numVertices == 0 && numberVertices > 0) + { + numberVertices = 0; + + delete [] vertices; + delete [] values; + + return 1; + } + + if (numVertices != this->numberVertices) + { + double* newVertices = NULL; + double* newValues = NULL; + + try + { + newVertices = new double[3 * numVertices]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + + try + { + newValues = new double[numVertices]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + + if (result) + { + if (this->numberVertices > 0) + { + delete [] vertices; + delete [] values; + } + + vertices = newVertices; + values = newValues; + + this->numberVertices = numVertices; + + resetCoordinates(); + } + else + { + /* Failed allocation, nothing is set */ + if (newVertices != NULL) + { + delete [] newVertices; + } + + if (newValues != NULL) + { + delete [] newValues; + } + } + + } + + return result; +} + +unsigned int MeshData::getNumIndices(void) +{ + return numberElements; +} + +int MeshData::setNumIndices(unsigned int numIndices) +{ + int result = 1; + + if (numIndices != this->numberElements) + { + unsigned int* newIndices = NULL; + + try + { + newIndices = new unsigned int[numberVerticesByElem * numIndices]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + + if (result) + { + if (this->numberElements > 0) + { + delete [] indices; + } + + indices = newIndices; + + this->numberElements = numIndices; + } + else + { + /* Failed allocation, nothing is set */ + if (newIndices != NULL) + { + delete [] newIndices; + } + } + + } + + return result; +} + +double* MeshData::getVertices(void) +{ + return vertices; +} + +void MeshData::setVertices(double const* vertices, unsigned int numElements) +{ + if (numElements <= numberVertices) + { + memcpy(this->vertices, vertices, numElements * 3 * sizeof(double)); + } +} + +unsigned int* MeshData::getIndices(void) +{ + return indices; +} + +void MeshData::setIndices(unsigned int const* indices, unsigned int numElements) +{ + if (numElements <= numberElements) + { + memcpy(this->indices, indices, numElements * numberVerticesByElem * sizeof(unsigned int)); + } +} + +void MeshData::setDataX(double const* data, unsigned int numElements) +{ + if (numElements <= numberVertices) + { + for (unsigned int i = 0 ; i < numElements ; i++) + { + vertices[3 * i] = data[i]; + } + } +} + +void MeshData::setDataY(double const* data, unsigned int numElements) +{ + if (numElements <= numberVertices) + { + for (unsigned int i = 0 ; i < numElements ; i++) + { + vertices[3 * i + 1] = data[i]; + } + } +} + +void MeshData::setDataZ(double const* data, unsigned int numElements) +{ + if (numElements <= numberVertices) + { + for (unsigned int i = 0; i < numElements; i++) + { + vertices[3 * i + 2] = data[i]; + } + } +} + +void MeshData::setValues(double const* data, unsigned int numElements) +{ + if (numElements <= numberVertices) + { + memcpy(this->values, data, numElements * sizeof(double)); + } +} + +double* MeshData::getValues(void) +{ + return values; +} + +unsigned int MeshData::scilabIndexToIndex(unsigned int scilabIndex) +{ + return (scilabIndex - 1); +} + +void MeshData::resetCoordinates(void) +{ + memset(vertices, 0, numberVertices * 3 * sizeof(double)); +} + diff --git a/modules/graphic_objects/src/cpp/MeshFecData.cpp b/modules/graphic_objects/src/cpp/MeshFecData.cpp new file mode 100755 index 000000000..7a98adec9 --- /dev/null +++ b/modules/graphic_objects/src/cpp/MeshFecData.cpp @@ -0,0 +1,212 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "MeshFecData.hxx" +#include "MeshData.hxx" +#include "DataProperties.hxx" + +extern "C" { +#include <string.h> +#include "BOOL.h" + +#include "graphicObjectProperties.h" +} + +MeshFecData::MeshFecData(void) +{ + vertices = NULL; + indices = NULL; + values = NULL; + fecValues = NULL; + + numberVertices = 0; + numberElements = 0; + numberVerticesByElem = 3; +} + +MeshFecData::MeshFecData(unsigned int numberVertices, unsigned int numberElements, unsigned int numberVerticesByElem) +{ + vertices = new double[numberVerticesByElem * numberVertices]; + indices = new unsigned int[numberVerticesByElem * numberElements]; + fecValues = new double[(numberVerticesByElem + 2) * numberElements]; + + this->numberVerticesByElem = numberVerticesByElem; + this->numberVertices = numberVertices; + this->numberElements = numberElements; +} + +MeshFecData::~MeshFecData(void) +{ + if (numberVertices > 0) + { + delete [] vertices; + delete [] values; + } + + if (numberElements > 0) + { + delete [] indices; + delete [] fecValues; + } + + numberVertices = 0; + numberElements = 0; +} + +int MeshFecData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_INDICES__ : + return NUM_INDICES; + case __GO_DATA_MODEL_FEC_ELEMENTS__ : + return FEC_ELEMENTS; + default : + return MeshData::getPropertyFromName(propertyName); + } +} + + +int MeshFecData::setDataProperty(int property, void const* value, int numElements) +{ + if (property == NUM_INDICES) + { + return setNumIndices(*((unsigned int const*) value)); + } + else if (property == FEC_ELEMENTS) + { + setFecElements((double const*) value, numElements); + } + else + { + return MeshData::setDataProperty(property, value, numElements); + } + + return 1; +} + +void MeshFecData::getDataProperty(int property, void **_pvData) +{ + if (property == NUM_INDICES) + { + ((int *) *_pvData)[0] = getNumIndices(); + } + else if (property == FEC_ELEMENTS) + { + *_pvData = getFecElements(); + } + else + { + MeshData::getDataProperty(property, _pvData); + } + +} + +unsigned int MeshFecData::getNumIndices(void) +{ + return numberElements; +} + +int MeshFecData::setNumIndices(unsigned int numIndices) +{ + int result = 1; + if (numIndices != this->numberElements) + { + unsigned int* newIndices = NULL; + double* newFecValues = NULL; + + try + { + newIndices = new unsigned int[numberVerticesByElem * numIndices]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + + try + { + newFecValues = new double[(numberVerticesByElem + 2) * numIndices]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + + + if (result) + { + if (this->numberElements > 0) + { + delete [] indices; + delete [] fecValues; + } + + indices = newIndices; + fecValues = newFecValues; + + this->numberElements = numIndices; + } + else + { + /* Failed allocation, nothing is set */ + if (newIndices != NULL) + { + delete [] newIndices; + } + + if (newFecValues != NULL) + { + delete [] newFecValues; + } + } + + } + + return result; +} + +void MeshFecData::setFecElements(double const* data, int numElements) +{ + if ((unsigned int)numElements > numberElements) + { + return; + } + + for (int i = 0; i < numElements; i++) + { + for (unsigned j = 0; j < numberVerticesByElem; ++j) + { + indices[numberVerticesByElem * i + j] = scilabIndexToIndex((unsigned int) data[(j + 1) * numElements + i]); + } + + /* Element number */ + fecValues[i] = data[i]; + + /* Element vertices */ + for (unsigned int j = 1; j <= numberVerticesByElem; ++j) + { + fecValues[j * numElements + i] = data[j * numElements + i]; + } + + /* Flag */ + fecValues[(numberVerticesByElem + 1) * numElements + i] = data[(numberVerticesByElem + 1) * numElements + i]; + } +} + +double* MeshFecData::getFecElements(void) +{ + return fecValues; +} + diff --git a/modules/graphic_objects/src/cpp/MeshFecDataDecomposer.cpp b/modules/graphic_objects/src/cpp/MeshFecDataDecomposer.cpp new file mode 100755 index 000000000..f482bf6fe --- /dev/null +++ b/modules/graphic_objects/src/cpp/MeshFecDataDecomposer.cpp @@ -0,0 +1,598 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ColorComputer.hxx" +#include "DecompositionUtils.hxx" +#include "MeshFecDataDecomposer.hxx" + +#include <iostream> + +extern "C" +{ +#include <stdlib.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +int MeshFecDataDecomposer::getDataSize(int id) +{ + int numVertices = 0; + int* piNumVertices = &numVertices; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + + return numVertices; +} + +void MeshFecDataDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* coordinates = NULL; + + int numVertices = 0; + int* piNumVertices = &numVertices; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &coordinates); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + + for (int i = 0; i < numVertices; i++) + { + if (coordinateMask & 0x1) + { + double xi = coordinates[3 * i]; + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(xi); + } + buffer[elementsSize * i] = (float)(xi * scale[0] + translation[0]); + } + + if (coordinateMask & 0x2) + { + double yi = coordinates[3 * i + 1]; + if (logMask & 0x2) + { + yi = DecompositionUtils::getLog10Value(yi); + } + buffer[elementsSize * i + 1] = (float)(yi * scale[1] + translation[1]); + } + + if (coordinateMask & 0x4) + { + double zi = coordinates[3 * i + 2]; + if (logMask & 0x4) + { + zi = DecompositionUtils::getLog10Value(zi); + } + buffer[elementsSize * i + 2] = (float)(zi * scale[2] + translation[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[elementsSize * i + 3] = 1.0; + } + } + +} + +void MeshFecDataDecomposer::fillTextureCoordinates(int id, float* buffer, int bufferLength) +{ + int parentFigure = 0; + int * piParentFigure = &parentFigure; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + int* colorRange = NULL; + + double colorsNumber = 0.; + double scale = 0.; + double t = 0.; + + double* values = NULL; + double* zBounds = NULL; + + double minValue = 0.; + double maxValue = 0.; + + int numVertices = 0; + int* piNumVertices = &numVertices; + + int bufferOffset = 0; + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &piParentFigure); + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parentFigure == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_COLOR_RANGE__, jni_int_vector, (void**) &colorRange); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + if (colorRange[0] != 0 || colorRange[1] != 0) + { + colorsNumber = (double) (1 + colorRange[1] - colorRange[0]); + } + else + { + colorsNumber = (double) colormapSize; + } + + releaseGraphicObjectProperty(__GO_COLOR_RANGE__, colorRange, jni_int_vector, 0); + + /** To take into account the presence of exterior colors: + * - We add 2 to the number of colors. + * - We skip the first color. + */ + t = 3. / (2. * (colorsNumber + 2.)); + scale = (colorsNumber - 1.) / (colorsNumber + 2); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + getGraphicObjectProperty(id, __GO_DATA_MODEL_VALUES__, jni_double_vector, (void**) &values); + getGraphicObjectProperty(id, __GO_Z_BOUNDS__, jni_double_vector, (void**) &zBounds); + + /* Z-bounds are not taken into account if either of them is invalid */ + if ((zBounds[0] != 0.0 || zBounds[1] != 0.0) && (DecompositionUtils::isValid(zBounds[0]) && DecompositionUtils::isValid(zBounds[1])) && (zBounds[0] != zBounds[1])) + { + minValue = zBounds[0]; + maxValue = zBounds[1]; + } + else + { + computeMinMaxValues(values, numVertices, &minValue, &maxValue); + } + + releaseGraphicObjectProperty(__GO_Z_BOUNDS__, zBounds, jni_double_vector, 0); + + if (maxValue == minValue) + { + for (int i = 0; i < numVertices; i++) + { + buffer[bufferOffset++] = (float)minValue; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 1; + } + } + else + { + for (int i = 0; i < numVertices; i++) + { + buffer[bufferOffset++] = (float)(t + scale * (values[i] - minValue) / (maxValue - minValue)); + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 0; + buffer[bufferOffset++] = 1; + } + } +} + +void MeshFecDataDecomposer::fillColors(int id, float* buffer, int bufferLength, int elementsSize) +{ + int parent = 0; + int parentFigure = 0; + int * piParentFigure = &parentFigure; + + double* values = NULL; + double* zBounds = NULL; + double* colormap = NULL; + + double minValue = 0.; + double maxValue = 0.; + double valueRange = 0.; + + float minColor[3]; + float maxColor[3]; + + int colormapSize = 0; + int* piColormapSize = &colormapSize; + + int numVertices = 0; + int* piNumVertices = &numVertices; + + int minColorIndex = 0; + int maxColorIndex = 0; + + int* colorRange = NULL; + int useOutsideColors = 0; + int bufferOffset = 0; + + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &piParentFigure); + + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_VALUES__, jni_double_vector, (void**) &values); + + getGraphicObjectProperty(id, __GO_Z_BOUNDS__, jni_double_vector, (void**) &zBounds); + getGraphicObjectProperty(id, __GO_COLOR_RANGE__, jni_int_vector, (void**) &colorRange); + + if (colorRange[0] != 0 || colorRange[1] != 0) + { + /* To do: use a scilab index to colormap index conversion function */ + minColorIndex = colorRange[0] - 1; + maxColorIndex = colorRange[1] - 1; + + if (minColorIndex < 0) + { + minColorIndex = 0; + } + if (maxColorIndex < 0) + { + maxColorIndex = 0; + } + + if (maxColorIndex > colormapSize - 1) + { + maxColorIndex = colormapSize - 1; + } + if (minColorIndex > colormapSize - 1) + { + minColorIndex = colormapSize - 1; + } + + } + else + { + minColorIndex = 0; + maxColorIndex = colormapSize - 1; + } + + releaseGraphicObjectProperty(__GO_COLOR_RANGE__, colorRange, jni_int_vector, 0); + + computeMinMaxValues(values, numVertices, &minValue, &maxValue); + + /* Z-bounds are not taken into account if either of them is invalid */ + if ((zBounds[0] != 0.0 || zBounds[1] != 0.0) && (DecompositionUtils::isValid(zBounds[0]) && DecompositionUtils::isValid(zBounds[1])) && (zBounds[0] != zBounds[1])) + { + int* outsideColors; + + minValue = zBounds[0]; + maxValue = zBounds[1]; + + getGraphicObjectProperty(id, __GO_OUTSIDE_COLOR__, jni_int_vector, (void**) &outsideColors); + + if (outsideColors[0] != 0 || outsideColors[1] != 0) + { + useOutsideColors = 1; + + ColorComputer::getDirectColor((double) outsideColors[0] - 1.0, colormap, colormapSize, minColor); + ColorComputer::getDirectColor((double) outsideColors[1] - 1.0, colormap, colormapSize, maxColor); + } + } + + releaseGraphicObjectProperty(__GO_Z_BOUNDS__, zBounds, jni_double_vector, 0); + + /* To be verified (when reverse z bounds are specified) */ + if (DecompositionUtils::getAbsoluteValue(maxValue - minValue) < DecompositionUtils::getMinDoubleValue()) + { + valueRange = 1.0; + } + else + { + valueRange = maxValue - minValue; + } + + for (int i = 0; i < numVertices; i++) + { + bufferOffset = elementsSize * i; + + if (useOutsideColors == 1) + { + if (values[i] < minValue) + { + buffer[bufferOffset] = minColor[0]; + buffer[bufferOffset + 1] = minColor[1]; + buffer[bufferOffset + 2] = minColor[2]; + } + else if (values[i] > maxValue) + { + buffer[bufferOffset] = maxColor[0]; + buffer[bufferOffset + 1] = maxColor[1]; + buffer[bufferOffset + 2] = maxColor[2]; + } + else + { + /* To do: replace 0.5 by a macro-definition */ + ColorComputer::getColor(values[i], minValue, valueRange, 0.5, colormap, minColorIndex, maxColorIndex, colormapSize, &buffer[bufferOffset]); + } + } + else + { + /* To do: replace 0.5 by a macro-definition */ + ColorComputer::getColor(values[i], minValue, valueRange, 0.5, colormap, minColorIndex, maxColorIndex, colormapSize, &buffer[bufferOffset]); + } + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); +} + +void MeshFecDataDecomposer::computeMinMaxValues(double* values, int numValues, double* valueMin, double* valueMax) +{ + double maxDouble = DecompositionUtils::getMaxDoubleValue(); + double tmpValueMin = maxDouble; + double tmpValueMax = -maxDouble; + double value = 0.; + + for (int i = 0; i < numValues; i++) + { + value = values[i]; + + if (value < tmpValueMin) + { + tmpValueMin = value; + } + + if (value > tmpValueMax) + { + tmpValueMax = value; + } + } + + *valueMin = tmpValueMin; + *valueMax = tmpValueMax; +} + +int MeshFecDataDecomposer::getIndicesSize(int id) +{ + int numIndices = 0; + int* piNumIndices = &numIndices; + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**) &piNumIndices); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return 3 * (nVertex - 2) * numIndices; +} + +int MeshFecDataDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* coordinates = NULL; + double* values = NULL; + + int numIndices = 0; + int* piNumIndices = &numIndices; + int numVertices = 0; + int* piNumVertices = &numVertices; + int nVertex = 0; + int* piNVertex = &nVertex; + + int* triangleIndices = NULL; + + int v0 = 0; + int v1 = 0; + int v2 = 0; + int bufferOffset = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**) &piNumIndices); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &coordinates); + getGraphicObjectProperty(id, __GO_DATA_MODEL_VALUES__, jni_double_vector, (void**) &values); + + /* 0 facets */ + if (numIndices == 0 || numVertices < 3) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_INDICES__, jni_int_vector, (void**) &triangleIndices); + + for (int i = 0; i < numIndices; i++) + { + v0 = triangleIndices[nVertex * i]; + for (unsigned int j = 1; j < nVertex - 1; ++j) + { + v1 = triangleIndices[nVertex * i + j]; + v2 = triangleIndices[nVertex * i + j + 1]; + + if (areFaceIndicesValid(numVertices, v0, v1, v2) && + areFaceVerticesValid(coordinates, v0, v1, v2, logMask) && + areFaceValuesValid(values, v0, v1, v2)) + { + buffer[bufferOffset] = v0; + buffer[bufferOffset + 1] = v1; + buffer[bufferOffset + 2] = v2; + bufferOffset += 3; + } + } + } + + return bufferOffset; +} + +int MeshFecDataDecomposer::areFaceVerticesValid(double* coordinates, int v0, int v1, int v2, int logMask) +{ + double vertex0[3]; + double vertex1[3]; + double vertex2[3]; + + getVertexCoordinates(coordinates, v0, vertex0); + getVertexCoordinates(coordinates, v1, vertex1); + getVertexCoordinates(coordinates, v2, vertex2); + + if (DecompositionUtils::isValid(vertex0[0], vertex0[1], vertex0[2]) && + DecompositionUtils::isLogValid(vertex0[0], vertex0[1], vertex0[2], logMask) && + DecompositionUtils::isValid(vertex1[0], vertex1[1], vertex1[2]) && + DecompositionUtils::isLogValid(vertex1[0], vertex1[1], vertex1[2], logMask) && + DecompositionUtils::isValid(vertex2[0], vertex2[1], vertex2[2]) && + DecompositionUtils::isLogValid(vertex2[0], vertex2[1], vertex2[2], logMask)) + { + return 1; + } + + return 0; +} + +int MeshFecDataDecomposer::areSegmentVerticesValid(double* coordinates, int v0, int v1, int logMask) +{ + double vertex0[3]; + double vertex1[3]; + + getVertexCoordinates(coordinates, v0, vertex0); + getVertexCoordinates(coordinates, v1, vertex1); + + if (DecompositionUtils::isValid(vertex0[0], vertex0[1], vertex0[2]) && + DecompositionUtils::isLogValid(vertex0[0], vertex0[1], vertex0[2], logMask) && + DecompositionUtils::isValid(vertex1[0], vertex1[1], vertex1[2]) && + DecompositionUtils::isLogValid(vertex1[0], vertex1[1], vertex1[2], logMask)) + { + return 1; + } + + return 0; +} + +int MeshFecDataDecomposer::areFaceValuesValid(double* values, int v0, int v1, int v2) +{ + if (DecompositionUtils::isValid(values[v0], values[v1], values[v2])) + { + return 1; + } + + return 0; +} + +int MeshFecDataDecomposer::areSegmentValuesValid(double* values, int v0, int v1) +{ + if (DecompositionUtils::isValid(values[v0], values[v1])) + { + return 1; + } + + return 0; +} + +int MeshFecDataDecomposer::areFaceIndicesValid(int numVertices, int v0, int v1, int v2) +{ + if (v0 < 0 || v0 >= numVertices || v1 < 0 || v1 >= numVertices || v2 < 0 || v2 >= numVertices) + { + return 0; + } + + return 1; +} + +int MeshFecDataDecomposer::areSegmentIndicesValid(int numVertices, int v0, int v1) +{ + if (v0 < 0 || v0 >= numVertices || v1 < 0 || v1 >= numVertices) + { + return 0; + } + + return 1; +} + + +void MeshFecDataDecomposer::getVertexCoordinates(double* coordinates, int index, double* vertexCoordinates) +{ + vertexCoordinates[0] = coordinates[3 * index]; + vertexCoordinates[1] = coordinates[3 * index + 1]; + vertexCoordinates[2] = coordinates[3 * index + 2]; +} + +int MeshFecDataDecomposer::getWireIndicesSize(int id) +{ + int numTriangles = 0; + int* piNumTriangles = &numTriangles; + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**) &piNumTriangles); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return 2 * nVertex * numTriangles; +} + +/* + * To do: output shared edges once instead of twice (once per adjacent face). + */ +int MeshFecDataDecomposer::fillWireIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* coordinates = NULL; + double* values = NULL; + + int numVertices = 0; + int* piNumVertices = &numVertices; + int numIndices = 0; + int* piNumIndices = &numIndices; + int* triangleIndices = NULL; + int nVertex = 0; + int* piNVertex = &nVertex; + + int v0 = 0; + int v1 = 0; + int v2 = 0; + int bufferOffset = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**) &piNumIndices); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**) &piNumVertices); + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &coordinates); + getGraphicObjectProperty(id, __GO_DATA_MODEL_VALUES__, jni_double_vector, (void**) &values); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + /* 0 segments */ + if (numIndices == 0 || numVertices < 3) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_INDICES__, jni_int_vector, (void**) &triangleIndices); + + for (int i = 0; i < numIndices; i++) + { + for (unsigned int j = 0; j < nVertex - 1; ++j) + { + v0 = triangleIndices[nVertex * i + j]; + v1 = triangleIndices[nVertex * i + j + 1]; + if (areSegmentIndicesValid(numVertices, v0, v1) && + areSegmentVerticesValid(coordinates, v0, v1, logMask) && + areSegmentValuesValid(values, v0, v1)) + { + buffer[bufferOffset] = v0; + buffer[bufferOffset + 1] = v1; + bufferOffset += 2; + } + } + + v0 = triangleIndices[nVertex * i + nVertex - 1]; + v1 = triangleIndices[nVertex * i]; + if (areSegmentIndicesValid(numVertices, v0, v1) && + areSegmentVerticesValid(coordinates, v0, v1, logMask) && + areSegmentValuesValid(values, v0, v1)) + { + buffer[bufferOffset] = v0; + buffer[bufferOffset + 1] = v1; + bufferOffset += 2; + } + } + + return bufferOffset; +} + diff --git a/modules/graphic_objects/src/cpp/NgonData.cpp b/modules/graphic_objects/src/cpp/NgonData.cpp new file mode 100755 index 000000000..7cfd398cd --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonData.cpp @@ -0,0 +1,106 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "NgonData.hxx" +#include "DataProperties.hxx" + +extern "C" { +#include "BOOL.h" + +#include <string.h> + +#include "graphicObjectProperties.h" + +} + +NgonData::NgonData(void) +{ + numGons = 0; + numVerticesPerGon = 0; +} + +/* To be implemented */ +NgonData::~NgonData(void) +{ + +} + +int NgonData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_GONS__ : + return NUM_GONS; + case __GO_DATA_MODEL_NUM_VERTICES_PER_GON__ : + return NUM_VERTICES_PER_GON; + default : + return Data3D::getPropertyFromName(propertyName); + } + +} + +int NgonData::setDataProperty(int property, void const* value, int numElements) +{ + + if (property == NUM_GONS) + { + setNumGons(*((int*) value)); + } + else if (property == NUM_VERTICES_PER_GON) + { + setNumVerticesPerGon(*((int*) value)); + } + else + { + return Data3D::setDataProperty(property, value, numElements); + } + + return 1; +} + +void NgonData::getDataProperty(int property, void **_pvData) +{ + if (property == NUM_GONS) + { + ((int *) *_pvData)[0] = getNumGons(); + } + else if (property == NUM_VERTICES_PER_GON) + { + ((int *) *_pvData)[0] = getNumVerticesPerGon(); + } + else + { + Data3D::getDataProperty(property, _pvData); + } + +} + +void NgonData::setNumGons(int numGons) +{ + this->numGons = numGons; +} + +int NgonData::getNumGons(void) +{ + return numGons; +} + +void NgonData::setNumVerticesPerGon(int numVerticesPerGon) +{ + this->numVerticesPerGon = numVerticesPerGon; +} + +int NgonData::getNumVerticesPerGon(void) +{ + return numVerticesPerGon; +} + diff --git a/modules/graphic_objects/src/cpp/NgonGeneralData.cpp b/modules/graphic_objects/src/cpp/NgonGeneralData.cpp new file mode 100755 index 000000000..b8ea011b5 --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGeneralData.cpp @@ -0,0 +1,304 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <iostream> + +#include "NgonGeneralData.hxx" +#include "DataProperties.hxx" + +extern "C" { +#include "BOOL.h" + +#include <string.h> + +#include "graphicObjectProperties.h" +} + +NgonGeneralData::NgonGeneralData(void) +{ + numGons = 0; + numVerticesPerGon = 0; + + coordinates = NULL; + + colorValues = NULL; + numColors = 0; +} + +NgonGeneralData::~NgonGeneralData(void) +{ + if (numGons * numVerticesPerGon > 0) + { + delete [] coordinates; + } + + if (numColors > 0) + { + delete [] colorValues; + } +} + +int NgonGeneralData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ : + return NUM_ELEMENTS_ARRAY; + case __GO_DATA_MODEL_COORDINATES__ : + return COORDINATES; + case __GO_DATA_MODEL_X__ : + return X_COORDINATES; + case __GO_DATA_MODEL_Y__ : + return Y_COORDINATES; + case __GO_DATA_MODEL_Z__ : + return Z_COORDINATES; + case __GO_DATA_MODEL_COLORS__ : + return COLORS; + case __GO_DATA_MODEL_NUM_COLORS__ : + return NUM_COLORS; + default : + return NgonData::getPropertyFromName(propertyName); + } +} + +int NgonGeneralData::setDataProperty(int property, void const* value, int numElements) +{ + switch (property) + { + case NUM_ELEMENTS_ARRAY : + return setNumElementsArray((int const*) value); + case COORDINATES : + setData((double const*) value, numElements); + break; + case X_COORDINATES : + setDataX((double const*) value, numElements); + break; + case Y_COORDINATES : + setDataY((double const*) value, numElements); + break; + case Z_COORDINATES : + setDataZ((double const*) value, numElements); + break; + case COLORS : + setColors((double const*) value, numElements); + break; + default : + return NgonData::setDataProperty(property, value, numElements); + } + + return 1; +} + +void NgonGeneralData::getDataProperty(int property, void **_pvData) +{ + switch (property) + { + case NUM_ELEMENTS_ARRAY : + /* Not implemented yet */ + // getNumElementsArray(); + break; + case COORDINATES : + *_pvData = getData(); + break; + case X_COORDINATES : + *_pvData = getDataX(); + break; + case Y_COORDINATES : + *_pvData = getDataY(); + break; + case Z_COORDINATES : + *_pvData = getDataZ(); + break; + case COLORS : + *_pvData = getColors(); + break; + case NUM_COLORS : + ((int *) *_pvData)[0] = getNumColors(); + break; + default : + NgonData::getDataProperty(property, _pvData); + } +} + +double* NgonGeneralData::getData() +{ + return coordinates; +} + +double* NgonGeneralData::getDataX(void) +{ + return coordinates; +} + +double* NgonGeneralData::getDataY(void) +{ + return &coordinates[numGons * numVerticesPerGon]; +} + +double* NgonGeneralData::getDataZ(void) +{ + return &coordinates[2 * numGons * numVerticesPerGon]; +} + +/* + * Only partially implemented + * Must be made consistent with setNumElementsArray + */ +void NgonGeneralData::setData(double const* data, int numElements) +{ + if (numElements != numGons * numVerticesPerGon) + { + delete [] coordinates; + + numVerticesPerGon = numElements / numGons; + coordinates = new double[3 * numElements]; + } + + memcpy(coordinates, data, 3 * numElements * sizeof(double)); +} + +void NgonGeneralData::setDataX(double const* data, int numElements) +{ + double* xCoordinates = NULL; + + xCoordinates = coordinates; + memcpy(xCoordinates, data, numElements * sizeof(double)); +} + +void NgonGeneralData::setDataY(double const* data, int numElements) +{ + double* yCoordinates; + + yCoordinates = &coordinates[numGons * numVerticesPerGon]; + memcpy(yCoordinates, data, numElements * sizeof(double)); +} + +void NgonGeneralData::setDataZ(double const* data, int numElements) +{ + double* zCoordinates = NULL; + + zCoordinates = &coordinates[2 * numGons * numVerticesPerGon]; + memcpy(zCoordinates, data, numElements * sizeof(double)); +} + +int NgonGeneralData::getNumElements(void) +{ + return numGons; +} + +int NgonGeneralData::setNumElementsArray(int const* numElementsArray) +{ + double* newCoordinates = NULL; + double* newColorValues = NULL; + int result = 1; + + /* Test whether the number of colors is valid */ + if ((numElementsArray[2] != numElementsArray[0]*numElementsArray[1]) && + (numElementsArray[2] != numElementsArray[0]) && + (numElementsArray[2] != 0)) + { + return 0; + } + + if (numGons * numVerticesPerGon != numElementsArray[0]*numElementsArray[1]) + { + try + { + newCoordinates = new double[3 * numElementsArray[0]*numElementsArray[1]]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + result = 1; + } + + if (numElementsArray[2] != this->numColors) + { + if (numElementsArray[2] > 0) + { + try + { + newColorValues = new double[numElementsArray[2]]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + } + + if (result == 1) + { + if (newCoordinates != NULL) + { + if (numGons * numVerticesPerGon > 0) + { + delete [] coordinates; + } + + coordinates = newCoordinates; + + numGons = numElementsArray[0]; + numVerticesPerGon = numElementsArray[1]; + } + + if (newColorValues != NULL || numElementsArray[2] == 0) + { + if (this->numColors > 0) + { + delete [] colorValues; + } + + colorValues = newColorValues; + this->numColors = numElementsArray[2]; + } + } + else + { + if (newCoordinates != NULL) + { + delete [] newCoordinates; + } + + if (newColorValues != NULL) + { + delete [] newColorValues; + } + } + + return result; +} + +double* NgonGeneralData::getColors(void) +{ + return colorValues; +} + +void NgonGeneralData::setColors(double const* colors, int numElements) +{ + if (numElements > numColors) + { + return; + } + memcpy(colorValues, colors, numElements * sizeof(double)); +} + +int NgonGeneralData::getNumColors(void) +{ + return numColors; +} + diff --git a/modules/graphic_objects/src/cpp/NgonGridData.cpp b/modules/graphic_objects/src/cpp/NgonGridData.cpp new file mode 100755 index 000000000..4085b26ff --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGridData.cpp @@ -0,0 +1,387 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "NgonGridData.hxx" + +extern "C" { +#include <string.h> +#include <stdlib.h> + +#include "graphicObjectProperties.h" +} + +NgonGridData::NgonGridData(void) +{ + numGons = 0; + + /* Grid: must be set to 4 */ + numVerticesPerGon = 4; + + xCoordinates = NULL; + yCoordinates = NULL; + zCoordinates = NULL; + + xSize = 0; + ySize = 0; + + xDimensions[0] = 0; + xDimensions[1] = 0; + + yDimensions[0] = 0; + yDimensions[1] = 0; + + /* Set to 0 as a default */ + zCoordinatesShift = 0.0; +} + +NgonGridData::~NgonGridData(void) +{ + if (xSize > 0) + { + delete [] xCoordinates; + } + + if (ySize > 0) + { + delete [] yCoordinates; + } + + if (xSize > 0 && ySize > 0) + { + delete [] zCoordinates; + } +} + +int NgonGridData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_X__ : + return NUM_X; + case __GO_DATA_MODEL_NUM_Y__ : + return NUM_Y; + case __GO_DATA_MODEL_NUM_Z__ : + return NUM_Z; + case __GO_DATA_MODEL_X_DIMENSIONS__ : + return X_DIMENSIONS; + case __GO_DATA_MODEL_Y_DIMENSIONS__ : + return Y_DIMENSIONS; + case __GO_DATA_MODEL_GRID_SIZE__ : + return GRID_SIZE; + case __GO_DATA_MODEL_X__ : + return X_COORDINATES; + case __GO_DATA_MODEL_Y__ : + return Y_COORDINATES; + case __GO_DATA_MODEL_Z__ : + return Z_COORDINATES; + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ : + return Z_COORDINATES_SHIFT; + default : + return NgonData::getPropertyFromName(propertyName); + } + +} + +int NgonGridData::setDataProperty(int property, void const* value, int numElements) +{ + switch (property) + { + case GRID_SIZE : + return setGridSize((int const*) value); + case X_COORDINATES : + setDataX((double const*) value, numElements); + break; + case Y_COORDINATES : + setDataY((double const*) value, numElements); + break; + case Z_COORDINATES : + setDataZ((double const*) value, numElements); + break; + case Z_COORDINATES_SHIFT : + setZCoordinatesShift((double const*) value); + break; + default : + return NgonData::setDataProperty(property, value, numElements); + } + + return 1; +} + +void NgonGridData::getDataProperty(int property, void **_pvData) +{ + switch (property) + { + case NUM_X: + ((int *) *_pvData)[0] = getNumX(); + break; + case NUM_Y : + ((int *) *_pvData)[0] = getNumY(); + break; + case NUM_Z : + ((int *) *_pvData)[0] = getNumZ(); + break; + case X_DIMENSIONS : + *_pvData = getXDimensions(); + break; + case Y_DIMENSIONS : + *_pvData = getYDimensions(); + break; + case X_COORDINATES : + *_pvData = getDataX(); + break; + case Y_COORDINATES : + *_pvData = getDataY(); + break; + case Z_COORDINATES : + *_pvData = getDataZ(); + break; + case Z_COORDINATES_SHIFT : + ((double *) *_pvData)[0] = getZCoordinatesShift(); + break; + default : + NgonData::getDataProperty(property, _pvData); + } +} + +int NgonGridData::setGridSize(int const* gridSize) +{ + int newXSize = 0; + int newYSize = 0; + int xModified = 0; + int yModified = 0; + int zModified = 0; + int result = 0; + + double* newXCoordinates = NULL; + double* newYCoordinates = NULL; + double* newZCoordinates = NULL; + + result = 1; + + xModified = 0; + yModified = 0; + zModified = 0; + + if ((gridSize[0] != 1) && (gridSize[1] != 1)) + { + return 0; + } + + if ((gridSize[2] != 1) && (gridSize[3] != 1)) + { + return 0; + } + + newXSize = gridSize[0] * gridSize[1]; + newYSize = gridSize[2] * gridSize[3]; + + + if (newXSize != xSize) + { + xModified = 1; + + try + { + newXCoordinates = new double[newXSize]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (newYSize != ySize) + { + yModified = 1; + + try + { + newYCoordinates = new double[newYSize]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (newXSize * newYSize != xSize * ySize) + { + zModified = 1; + + try + { + newZCoordinates = new double[newXSize * newYSize]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (result) + { + if (xModified) + { + if (xSize > 0) + { + delete [] xCoordinates; + } + + xCoordinates = newXCoordinates; + xSize = newXSize; + } + + xDimensions[0] = gridSize[0]; + xDimensions[1] = gridSize[1]; + + if (yModified) + { + if (ySize > 0) + { + delete [] yCoordinates; + } + + yCoordinates = newYCoordinates; + ySize = newYSize; + } + + yDimensions[0] = gridSize[2]; + yDimensions[1] = gridSize[3]; + + if (zModified) + { + if (xSize * ySize > 0) + { + delete [] zCoordinates; + } + + zCoordinates = newZCoordinates; + + numGons = (xSize - 1) * (ySize - 1); + } + + } + else + { + /* Failed allocation(s) */ + + if (xModified && (newXCoordinates != NULL)) + { + delete [] newXCoordinates; + } + + if (yModified && (newYCoordinates != NULL)) + { + delete [] newYCoordinates; + } + + if (zModified && (newZCoordinates != NULL)) + { + delete [] newZCoordinates; + } + + } + + return result; +} + +int NgonGridData::getNumX(void) +{ + return xSize; +} + +int NgonGridData::getNumY(void) +{ + return ySize; +} + +int NgonGridData::getNumZ(void) +{ + return xSize * ySize; +} + +int* NgonGridData::getXDimensions(void) +{ + return xDimensions; +} + +int* NgonGridData::getYDimensions(void) +{ + return yDimensions; +} + +void NgonGridData::setDataX(double const* data, int numElements) +{ + if (numElements > xSize) + { + return; + } + + for (int i = 0; i < numElements; i++) + { + xCoordinates[i] = data[i]; + } +} + +void NgonGridData::setDataY(double const* data, int numElements) +{ + if (numElements > ySize) + { + return; + } + + for (int i = 0; i < numElements; i++) + { + yCoordinates[i] = data[i]; + } +} + +void NgonGridData::setDataZ(double const* data, int numElements) +{ + if (numElements > xSize * ySize) + { + return; + } + + for (int i = 0; i < numElements; i++) + { + zCoordinates[i] = data[i]; + } +} + +void NgonGridData::setZCoordinatesShift(double const* data) +{ + zCoordinatesShift = *data; +} + +double* NgonGridData::getDataX(void) +{ + return xCoordinates; +} + +double* NgonGridData::getDataY(void) +{ + return yCoordinates; +} + +double* NgonGridData::getDataZ(void) +{ + return zCoordinates; +} + +double NgonGridData::getZCoordinatesShift(void) +{ + return zCoordinatesShift; +} diff --git a/modules/graphic_objects/src/cpp/NgonGridDataDecomposer.cpp b/modules/graphic_objects/src/cpp/NgonGridDataDecomposer.cpp new file mode 100755 index 000000000..4f32ff480 --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGridDataDecomposer.cpp @@ -0,0 +1,701 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ColorComputer.hxx" +#include "DecompositionUtils.hxx" +#include "NgonGridDataDecomposer.hxx" + +extern "C" +{ +#include <stdlib.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +NgonGridDataDecomposer* NgonGridDataDecomposer::decomposer = NULL; + +int NgonGridDataDecomposer::getDataSize(int id) +{ + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + +#if PER_VERTEX_VALUES + return numX * numY; +#else + return 4 * (numX - 1) * (numY - 1); +#endif +} + +void NgonGridDataDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* x = NULL; + double* y = NULL; + double zShift = 0.; + double* pdZShift = &zShift; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + NgonGridDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double, (void**) &pdZShift); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + decomposer->fillGridVertices(buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, x, y, &zShift, numX, numY); +} + +void NgonGridDataDecomposer::fillGridVertices(float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask, + double* x, double* y, double* z, int numX, int numY) +{ + double xi = 0.; + double yj = 0.; + double zij = 0.; + + int bufferOffset = 0; + +#if PER_VERTEX_VALUES + for (int j = 0; j < numY; j++) + { + yj = y[j]; + + if (coordinateMask & 0x2) + { + if (logMask & 0x2) + { + yj = DecompositionUtils::getLog10Value(yj); + } + } + + for (int i = 0; i < numX; i++) + { + xi = x[i]; + bufferOffset = elementsSize * (numX * j + i); + + if (coordinateMask & 0x1) + { + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(xi); + } + + buffer[bufferOffset] = xi * scale[0] + translation[0]; + } + + if (coordinateMask & 0x2) + { + buffer[bufferOffset + 1] = yj * scale[1] + translation[1]; + } + + if (coordinateMask & 0x4) + { + zij = getZCoordinate(z, numX, numY, i, j, logMask & 0x4); + + buffer[bufferOffset + 2] = zij * scale[2] + translation[2]; + } + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[bufferOffset + 3] = 1.0; + } + } + } +#else + + double yjp1 = 0.; + double xip1 = 0.; + + bufferOffset = 0; + + for (int j = 0; j < numY - 1; j++) + { + double ycoords[4]; + int yindices[4]; + + yj = y[j]; + yjp1 = y[j + 1]; + + if (coordinateMask & 0x2) + { + if (logMask & 0x2) + { + yj = DecompositionUtils::getLog10Value(yj); + yjp1 = DecompositionUtils::getLog10Value(yjp1); + } + } + + ycoords[0] = yj; + ycoords[1] = yj; + ycoords[2] = yjp1; + ycoords[3] = yjp1; + + yindices[0] = j; + yindices[1] = j; + yindices[2] = j + 1; + yindices[3] = j + 1; + + for (int i = 0; i < numX - 1; i++) + { + double xcoords[4]; + int xindices[4]; + + xi = x[i]; + xip1 = x[i + 1]; + + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(xi); + xip1 = DecompositionUtils::getLog10Value(xip1); + } + + xcoords[0] = xi; + xcoords[1] = xip1; + xcoords[2] = xi; + xcoords[3] = xip1; + + xindices[0] = i; + xindices[1] = i + 1; + xindices[2] = i; + xindices[3] = i + 1; + + /* + * If color values are defined per facet, we must duplicate shared vertices in order + * to be able to render flat-shading facets, as the renderer uses smooth shading as a default. + * Reducing duplication would require being able to enable flat shading at render time. + */ + for (int k = 0; k < 4; k++) + { + if (coordinateMask & 0x1) + { + buffer[bufferOffset] = (float)(xcoords[k] * scale[0] + translation[0]); + } + + if (coordinateMask & 0x2) + { + buffer[bufferOffset + 1] = (float)(ycoords[k] * scale[1] + translation[1]); + } + + if (coordinateMask & 0x4) + { + zij = getZCoordinate(z, numX, numY, xindices[k], yindices[k], logMask & 0x4); + + buffer[bufferOffset + 2] = (float)(zij * scale[2] + translation[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + + } + + } + +#endif + +} + +void NgonGridDataDecomposer::fillNormalizedZGridColors(float* buffer, int bufferLength, int elementsSize, double* colormap, int colormapSize, + double* z, int numX, int numY) +{ + double zMin = 0.; + double zMax = 0.; + double zRange = 0.; + double minDoubleValue = 0.; + + int bufferOffset = 0; + + computeMinMaxZValues(z, numX, numY, &zMin, &zMax); + + minDoubleValue = DecompositionUtils::getMinDoubleValue(); + + /* To be verified */ + if ((zMax - zMin) < minDoubleValue) + { + zRange = 1.0; + } + else + { + zRange = zMax - zMin; + } + +#if PER_VERTEX_VALUES + for (int j = 0; j < numY; j++) + { + for (int i = 0; i < numX; i++) + { + int currentPointIndex = getPointIndex(numX, numY, i, j); + + ColorComputer::getColor(z[currentPointIndex], zMin, zRange, Z_COLOR_OFFSET, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + } +#else + for (int j = 0; j < numY - 1; j++) + { + for (int i = 0; i < numX - 1; i++) + { + double avgz; + float facetColor[3]; + + avgz = computeFacetAverageZValue(z, numX, numY, i, j); + + ColorComputer::getColor(avgz, zMin, zRange, Z_COLOR_OFFSET, colormap, colormapSize, facetColor); + + writeFacetColorToBuffer(buffer, bufferOffset, facetColor, elementsSize); + + bufferOffset += 4 * elementsSize; + } + } +#endif + +} + +void NgonGridDataDecomposer::fillDirectGridColors(float* buffer, int bufferLength, int elementsSize, double* colormap, int colormapSize, + double* z, int numX, int numY) +{ + int currentPointIndex = 0; + int bufferOffset = 0; + +#if PER_VERTEX_VALUES + for (int j = 0; j < numY; j++) + { + for (int i = 0; i < numX; i++) + { + currentPointIndex = getPointIndex(numX, numY, i, j); + + ColorComputer::getDirectColor(z[currentPointIndex] - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + } +#else + for (int j = 0; j < numY - 1; j++) + { + for (int i = 0; i < numX - 1; i++) + { + float facetColor[3]; + + currentPointIndex = getPointIndex(numX, numY, i, j); + + ColorComputer::getDirectColor(z[currentPointIndex] - 1.0, colormap, colormapSize, facetColor); + + writeFacetColorToBuffer(buffer, bufferOffset, facetColor, elementsSize); + + bufferOffset += 4 * elementsSize; + } + } +#endif + +} + +void NgonGridDataDecomposer::getFacetCoordinates(double* x, double* y, double*z, int numX, int numY, int i, int j, + double vertices[4][3]) +{ + vertices[0][0] = x[i]; + vertices[0][1] = y[j]; + vertices[0][2] = getZCoordinate(z, numX, numY, i, j);; + + vertices[1][0] = x[i + 1]; + vertices[1][1] = y[j]; + vertices[1][2] = getZCoordinate(z, numX, numY, i + 1, j); + + vertices[2][0] = x[i + 1]; + vertices[2][1] = y[j + 1]; + vertices[2][2] = getZCoordinate(z, numX, numY, i + 1, j + 1); + + vertices[3][0] = x[i]; + vertices[3][1] = y[j + 1]; + vertices[3][2] = getZCoordinate(z, numX, numY, i, j + 1); +} + +double NgonGridDataDecomposer::getZCoordinate(double* z, int numX, int numY, int i, int j) +{ + return *z; +} + +double NgonGridDataDecomposer::getZCoordinate(double* z, int numX, int numY, int i, int j, int logUsed) +{ + double zij = 0.; + + if (logUsed) + { + /* If the logarithmic scale is used, add the default offset */ + zij = *z + DEFAULT_LOG_COORD_Z; + } + else + { + zij = *z; + } + + return zij; +} + +double NgonGridDataDecomposer::getValue(double* values, int numX, int numY, int i, int j) +{ + return values[numX * j + i]; +} + +int NgonGridDataDecomposer::getIndicesSize(int id) +{ + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + if (numX == 0 || numY == 0) + { + return 0; + } + + return 6 * (numX - 1) * (numY - 1); +} + + +int NgonGridDataDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + int numberIndices = 0; + + NgonGridDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* 0 indices if 0 points */ + if (numX == 0 || numY == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + numberIndices = decomposer->fillTriangleIndices(buffer, bufferLength, logMask, x, y, z, z, 1, numX, numY); + + return numberIndices; +} + +/* + * To do: merge with Plot3DDecomposer::fillWireIndices, as these functions perform a lot of redundant work. + */ +int NgonGridDataDecomposer::fillTriangleIndices(int* buffer, int bufferLength, int logMask, double* x, double* y, double* z, double* values, int perNodeValues, int numX, int numY) +{ + int bufferOffset = 0; + + int currentRowValid = 0; + int nextRowValid = 0; + + int currentColumnValid = 0; + int nextColumnValid = 0; + + int currentEdgeValid = 0; + int nextEdgeValid = 0; + + int currentFacetValid = 0; + + int ij = 0; + int ip1j = 0; + int ip1jp1 = 0; + int ijp1 = 0; + + /* 0 indices if less than 2 points along either dimension */ + if (numX < 2 || numY < 2) + { + return 0; + } + + /* First row */ + currentRowValid = DecompositionUtils::isValid(y[0]); + + if (logMask & 0x2) + { + currentRowValid &= DecompositionUtils::isLogValid(y[0]); + } + + /* To do: optimize */ + for (int j = 0; j < numY - 1; j++) + { + nextRowValid = DecompositionUtils::isValid(y[j + 1]); + + if (logMask & 0x2) + { + nextRowValid &= DecompositionUtils::isLogValid(y[j + 1]); + } + + if (!currentRowValid || !nextRowValid) + { + currentRowValid = nextRowValid; + continue; + } + else + { + currentRowValid = nextRowValid; + } + + currentColumnValid = DecompositionUtils::isValid(x[0]); + + if (logMask & 0x1) + { + currentColumnValid &= DecompositionUtils::isLogValid(x[0]); + } + + ij = getPointIndex(numX, numY, 0, j); + ijp1 = getPointIndex(numX, numY, 0, j + 1); + + currentEdgeValid = isFacetEdgeValid(z, values, perNodeValues, numX, numY, 0, j, logMask & 0x4); + + for (int i = 0; i < numX - 1; i++) + { + nextColumnValid = DecompositionUtils::isValid(x[i + 1]); + + if (logMask & 0x1) + { + nextColumnValid &= DecompositionUtils::isLogValid(x[i + 1]); + } + + ip1j = getPointIndex(numX, numY, i + 1, j); + ip1jp1 = getPointIndex(numX, numY, i + 1, j + 1); + + currentFacetValid = isFacetValid(z, values, perNodeValues, numX, numY, i, j, logMask & 0x4, currentEdgeValid, &nextEdgeValid); + + if (currentColumnValid && nextColumnValid && (currentFacetValid)) + { + int facetVertexIndices[4]; + int triangleVertexIndices[6]; + int firstVertexIndex; + +#if PER_VERTEX_VALUES + facetVertexIndices[0] = ij; + facetVertexIndices[1] = ip1j; + facetVertexIndices[2] = ip1jp1; + facetVertexIndices[3] = ijp1; +#else + firstVertexIndex = getFirstVertexIndex(numX, numY, i, j); + + facetVertexIndices[0] = firstVertexIndex; + facetVertexIndices[1] = firstVertexIndex + 1; + facetVertexIndices[2] = firstVertexIndex + 3; + facetVertexIndices[3] = firstVertexIndex + 2; +#endif + + getFacetTriangles(x, y, z, numX, numY, i, j, facetVertexIndices, triangleVertexIndices); + + buffer[bufferOffset] = triangleVertexIndices[0]; + buffer[bufferOffset + 1] = triangleVertexIndices[1]; + buffer[bufferOffset + 2] = triangleVertexIndices[2]; + buffer[bufferOffset + 3] = triangleVertexIndices[3]; + buffer[bufferOffset + 4] = triangleVertexIndices[4]; + buffer[bufferOffset + 5] = triangleVertexIndices[5]; + + bufferOffset += 6; + } + + currentColumnValid = nextColumnValid; + + currentEdgeValid = nextEdgeValid; + + ij = ip1j; + ijp1 = ip1jp1; + } + } + + return bufferOffset; +} + +void NgonGridDataDecomposer::getFacetTriangles(double* x, double* y, double* z, int numX, int numY, int i, int j, + int* facetVertexIndices, int* triangleVertexIndices) +{ + /* Facets are plane: they are all decomposed the same way */ + triangleVertexIndices[0] = facetVertexIndices[0]; + triangleVertexIndices[1] = facetVertexIndices[1]; + triangleVertexIndices[2] = facetVertexIndices[2]; + triangleVertexIndices[3] = facetVertexIndices[0]; + triangleVertexIndices[4] = facetVertexIndices[2]; + triangleVertexIndices[5] = facetVertexIndices[3]; +} + +int NgonGridDataDecomposer::isFacetValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed, int currentEdgeValid, int* nextEdgeValid) +{ + *nextEdgeValid = isFacetEdgeValid(z, values, perNodeValues, numX, numY, i + 1, j, logUsed); + + if (currentEdgeValid && *nextEdgeValid) + { + return 1; + } + else + { + return 0; + } +} + +int NgonGridDataDecomposer::isFacetEdgeValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed) +{ + double zij = 0.; + double zijp1 = 0.; + + int lowerZValid = 0; + int upperZValid = 0; + + zij = getZCoordinate(z, numX, numY, i, j); + zijp1 = getZCoordinate(z, numX, numY, i, j + 1); + + lowerZValid = DecompositionUtils::isValid(zij); + upperZValid = DecompositionUtils::isValid(zijp1); + + if (logUsed) + { + lowerZValid &= DecompositionUtils::isLogValid(zij); + upperZValid &= DecompositionUtils::isLogValid(zijp1); + } + + if (lowerZValid && upperZValid) + { + return 1; + } + else + { + return 0; + } +} + +int NgonGridDataDecomposer::getPointIndex(int numX, int numY, int i, int j) +{ + return numX * j + i; +} + +void NgonGridDataDecomposer::computeMinMaxZValues(double* z, int numX, int numY, double* zMin, double* zMax) +{ + double maxDouble = 0; + double tmpZMin = 0; + double tmpZMax = 0; + double zi = 0; + + int currentPoint = 0; + + maxDouble = DecompositionUtils::getMaxDoubleValue(); + + tmpZMin = maxDouble; + tmpZMax = -maxDouble; + + for (int j = 0; j < numY; j++) + { + for (int i = 0; i < numX; i++) + { + currentPoint = getPointIndex(numX, numY, i, j); + zi = z[currentPoint]; + + if (DecompositionUtils::isValid(zi)) + { + if (zi < tmpZMin) + { + tmpZMin = zi; + } + + if (zi > tmpZMax) + { + tmpZMax = zi; + } + } + } + } + + *zMin = tmpZMin; + *zMax = tmpZMax; +} + +double NgonGridDataDecomposer::computeFacetAverageZValue(double* z, int numX, int numY, int i, int j) +{ + double avgz = 0.; + int pointIndex = 0; + + avgz = 0.0; + pointIndex = getPointIndex(numX, numY, i, j); + avgz += z[pointIndex]; + pointIndex = getPointIndex(numX, numY, i + 1, j); + avgz += z[pointIndex]; + pointIndex = getPointIndex(numX, numY, i, j + 1); + avgz += z[pointIndex]; + pointIndex = getPointIndex(numX, numY, i + 1, j + 1); + avgz += z[pointIndex]; + + avgz *= 0.25; + + return avgz; +} + +void NgonGridDataDecomposer::writeFacetColorToBuffer(float* buffer, int bufferOffset, float* color, int elementsSize, bool hasTransparency) +{ + for (int k = 0; k < 4; k++) + { + buffer[bufferOffset] = color[0]; + buffer[bufferOffset + 1] = color[1]; + buffer[bufferOffset + 2] = color[2]; + + if (elementsSize == 4) + { + if (hasTransparency) + { + buffer[bufferOffset + 3] = color[3]; + } + else + { + buffer[bufferOffset + 3] = 1.0; + } + } + + bufferOffset += elementsSize; + } +} + +int NgonGridDataDecomposer::getFirstVertexIndex(int numX, int numY, int i, int j) +{ + return 4 * j * (numX - 1) + 4 * i; +} + diff --git a/modules/graphic_objects/src/cpp/NgonGridGrayplotDataDecomposer.cpp b/modules/graphic_objects/src/cpp/NgonGridGrayplotDataDecomposer.cpp new file mode 100755 index 000000000..c071a1afd --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGridGrayplotDataDecomposer.cpp @@ -0,0 +1,223 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ColorComputer.hxx" +#include "DecompositionUtils.hxx" +#include "NgonGridGrayplotDataDecomposer.hxx" + +extern "C" +{ +#include <stdlib.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +NgonGridGrayplotDataDecomposer* NgonGridGrayplotDataDecomposer::decomposer = NULL; + +/* + * To do: allowing either per-vertex or per-facet colors + */ +void NgonGridGrayplotDataDecomposer::fillColors(int id, float* buffer, int bufferLength, int elementsSize) +{ + int parentFigure = 0; + int* pparentFigure = &parentFigure; + int parent = 0; + int* pparent = &parent; + + double* z = NULL; + double* colormap = NULL; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + int dataMapping = 0; + int* piDataMapping = &dataMapping; + + NgonGridGrayplotDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + + if (parentFigure == 0) + { + return; + } + + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + getGraphicObjectProperty(id, __GO_DATA_MAPPING__, jni_int, (void**) &piDataMapping); + + if (dataMapping == 0) + { + decomposer->fillNormalizedZGridColors(buffer, bufferLength, elementsSize, colormap, colormapSize, z, numX, numY); + } + else if (dataMapping == 1) + { + decomposer->fillDirectGridColors(buffer, bufferLength, elementsSize, colormap, colormapSize, z, numX, numY); + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); +} + +int NgonGridGrayplotDataDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + double zShift = 0.0; + double* pdZShift = &zShift; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + int dataMapping = 0; + int* piDataMapping = &dataMapping; + + int perNodeValues = 1; + + int numberIndices = 0; + + NgonGridGrayplotDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* 0 indices if 0 points */ + if (numX == 0 || numY == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MAPPING__, jni_int, (void**) &piDataMapping); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double, (void**) &pdZShift); + + /* + * Data mapping values 0 and 1 respectively correspond to scaled and direct colors, for which per-node + * and per-facet values are respectively used. + */ + perNodeValues = !dataMapping; + + numberIndices = decomposer->fillTriangleIndices(buffer, bufferLength, logMask, x, y, &zShift, z, perNodeValues, numX, numY); + + return numberIndices; +} + +int NgonGridGrayplotDataDecomposer::isFacetValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed, int currentEdgeValid, int* nextEdgeValid) +{ + *nextEdgeValid = isFacetEdgeValid(z, values, perNodeValues, numX, numY, i + 1, j, logUsed); + + if (!perNodeValues) + { + /* + * Grid values are defined per facet. + * In addition to edge validity, which in this case is determined only by z coordinates, the + * facet's (i,j) value must also be read in order to determine its overall validity. + */ + double zij = getValue(values, numX, numY, i, j); + + if (DecompositionUtils::isValid(zij) && currentEdgeValid && *nextEdgeValid) + { + return 1; + } + else + { + return 0; + } + } + else + { + /* + * Grid values are defined per node, and have therefore been already used + * to determine edge validity + */ + if (currentEdgeValid && *nextEdgeValid) + { + return 1; + } + else + { + return 0; + } + } +} + +/* + * To be merged with its parent's isFacetEdgeValid function. + */ +int NgonGridGrayplotDataDecomposer::isFacetEdgeValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed) +{ + double zij = 0.; + double zijp1 = 0.; + + int lowerZValid = 0; + int upperZValid = 0; + + /* First, z-coordinate values are tested */ + zij = getZCoordinate(z, numX, numY, i, j, logUsed); + zijp1 = getZCoordinate(z, numX, numY, i, j + 1, logUsed); + + lowerZValid = DecompositionUtils::isValid(zij); + upperZValid = DecompositionUtils::isValid(zijp1); + + if (logUsed) + { + lowerZValid &= DecompositionUtils::isLogValid(zij); + upperZValid &= DecompositionUtils::isLogValid(zijp1); + } + + /* + * If values are defined per node, edge validity must also + * take into account grid values at the edge's nodes. + */ + if (perNodeValues) + { + zij = getValue(values, numX, numY, i, j); + zijp1 = getValue(values, numX, numY, i, j + 1); + + lowerZValid &= DecompositionUtils::isValid(zij); + upperZValid &= DecompositionUtils::isValid(zijp1); + } + + if (lowerZValid && upperZValid) + { + return 1; + } + else + { + return 0; + } +} + diff --git a/modules/graphic_objects/src/cpp/NgonGridMatplotData.cpp b/modules/graphic_objects/src/cpp/NgonGridMatplotData.cpp new file mode 100755 index 000000000..a650d5532 --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGridMatplotData.cpp @@ -0,0 +1,688 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "NgonGridMatplotData.hxx" +#include "Texture.hxx" + +#include <climits> + +extern "C" { +#include <string.h> +#include <stdlib.h> + +#include "graphicObjectProperties.h" +} + +const bool NgonGridMatplotData::isLittleEndian = NgonGridMatplotData::initEndian(); +bool NgonGridMatplotData::isABGRSupported = false; + +NgonGridMatplotData::NgonGridMatplotData(void) +{ + this->data = NULL; + this->dataSize = 0; + this->scilabData = NULL; + this->type = 0; + this->imagetype = MATPLOT_NONE; +} + +NgonGridMatplotData::~NgonGridMatplotData(void) +{ + disposeTextureData(); + if (this->scilabData) + { + delete[] (unsigned char *)this->scilabData; + this->scilabData = NULL; + } +} + +int NgonGridMatplotData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_GRID_SIZE__ : + return GRID_SIZE; + case __GO_DATA_MODEL_MATPLOT_BOUNDS__ : + return MATPLOT_BOUNDS; + case __GO_DATA_MODEL_MATPLOT_TYPE__ : + return MATPLOT_TYPE; + case __GO_DATA_MODEL_Z__ : + return Z_COORDINATES; + case __GO_DATA_MODEL_MATPLOT_GL_TYPE__ : + return MATPLOT_GL_TYPE; + case __GO_DATA_MODEL_MATPLOT_DATA_INFOS__ : + return MATPLOT_DATA_INFOS; + case __GO_DATA_MODEL_MATPLOT_DATA_TYPE__ : + return MATPLOT_DATA_TYPE; + case __GO_DATA_MODEL_MATPLOT_DATA_ORDER__ : + return MATPLOT_DATA_ORDER; + case __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ : + return MATPLOT_IMAGE_TYPE; + case __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ : + return MATPLOT_IMAGE_DATA; + case __GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__ : + return MATPLOT_IMAGE_DATASIZE; + default : + return NgonGridData::getPropertyFromName(propertyName); + } +} + +int NgonGridMatplotData::setDataProperty(int property, void const* value, int numElements) +{ + switch (property) + { + case GRID_SIZE : + { + return setGridSize((int const*) value); + } + case MATPLOT_BOUNDS : + { + setBounds((double const*) value); + break; + } + case Z_COORDINATES : + { + setDataZ((double const*) value, numElements); + break; + } + case MATPLOT_IMAGE_TYPE : + { + return setImageType(*((int const*) value)); + } + case MATPLOT_DATA_INFOS : + { + setDataInfos(*((int const*) value)); + break; + } + case MATPLOT_DATA_TYPE : + { + setDataType(*((int const*) value)); + break; + } + case MATPLOT_DATA_ORDER : + { + setDataOrder(*((int const*) value)); + break; + } + case MATPLOT_IMAGE_DATA : + { + setImageData((void const *) value, numElements); + break; + } + default : + { + return NgonGridData::setDataProperty(property, value, numElements); + } + } + + return 1; +} + +void NgonGridMatplotData::getDataProperty(int property, void **_pvData) +{ + switch (property) + { + case MATPLOT_BOUNDS : + { + *_pvData = getBounds(); + break; + } + case MATPLOT_TYPE : + { + ((int *) *_pvData)[0] = getType(); + break; + } + case Z_COORDINATES : + { + *_pvData = getScilabData(); + break; + } + case MATPLOT_IMAGE_TYPE : + { + ((int *) *_pvData)[0] = getImageType(); + break; + } + case MATPLOT_GL_TYPE : + { + ((int *) *_pvData)[0] = getGLType(); + break; + } + case MATPLOT_DATA_INFOS : + { + ((int *) *_pvData)[0] = getDataInfos(); + break; + } + case MATPLOT_DATA_TYPE : + { + ((int *) *_pvData)[0] = getDataType(); + break; + } + case MATPLOT_DATA_ORDER : + { + ((int *) *_pvData)[0] = getDataOrder(); + break; + } + case MATPLOT_IMAGE_DATA : + { + *_pvData = getImageData(); + break; + } + case MATPLOT_IMAGE_DATASIZE : + { + ((unsigned int *) *_pvData)[0] = getImageDataSize(); + break; + } + default : + { + NgonGridData::getDataProperty(property, _pvData); + break; + } + } +} + +/* + * To be done: refactoring with NgonGridData, as these two classes' + * setGridSize methods are almost identical. + */ +int NgonGridMatplotData::setGridSize(int const* gridSize) +{ + int newXSize = 0; + int newYSize = 0; + int xModified = 0; + int yModified = 0; + int zModified = 0; + int result = 0; + int formerGridSize = 0; + + double* newXCoordinates = NULL; + double* newYCoordinates = NULL; + double* newZCoordinates = NULL; + + result = 1; + + xModified = 0; + yModified = 0; + zModified = 0; + + if ((gridSize[0] != 1) && (gridSize[1] != 1)) + { + return 0; + } + + if ((gridSize[2] != 1) && (gridSize[3] != 1)) + { + return 0; + } + + newXSize = gridSize[0] * gridSize[1]; + newYSize = gridSize[2] * gridSize[3]; + + if (newXSize != xSize) + { + xModified = 1; + + try + { + newXCoordinates = new double[newXSize]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (newYSize != ySize) + { + yModified = 1; + + try + { + newYCoordinates = new double[newYSize]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (!result || (!xModified && !yModified)) + { + return result; + } + + if (xSize > 0 && ySize > 0) + { + formerGridSize = (xSize - 1) * (ySize - 1); + } + else + { + formerGridSize = 0; + } + + if ((newXSize - 1) * (newYSize - 1) != formerGridSize) + { + zModified = 1; + + try + { + newZCoordinates = new double[(newXSize - 1) * (newYSize - 1)]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (result) + { + if (xModified) + { + if (xSize > 0) + { + delete [] xCoordinates; + } + + xCoordinates = newXCoordinates; + xSize = newXSize; + } + + xDimensions[0] = gridSize[0]; + xDimensions[1] = gridSize[1]; + + if (yModified) + { + if (ySize > 0) + { + delete [] yCoordinates; + } + + yCoordinates = newYCoordinates; + ySize = newYSize; + } + + yDimensions[0] = gridSize[2]; + yDimensions[1] = gridSize[3]; + + if (zModified) + { + if (formerGridSize > 0) + { + delete [] zCoordinates; + } + + zCoordinates = newZCoordinates; + + numGons = (xSize - 1) * (ySize - 1); + + } + + if (xModified || yModified) + { + computeCoordinates(); + } + + } + else + { + /* Failed allocation(s) */ + + if (xModified && (newXCoordinates != NULL)) + { + delete [] newXCoordinates; + } + + if (yModified && (newYCoordinates != NULL)) + { + delete [] newYCoordinates; + } + + if (zModified && (newZCoordinates != NULL)) + { + delete [] newZCoordinates; + } + + } + + return result; +} + +void NgonGridMatplotData::setBounds(double const* bounds) +{ + if (bounds == NULL) + { + /* Type 0 object: bounds are computed from element indices by the setGridSize method */ + type = 0; + } + else + { + /* To be done: test whether max > min */ + boundingRectangle[0] = bounds[0]; + boundingRectangle[1] = bounds[2]; + boundingRectangle[2] = bounds[1]; + boundingRectangle[3] = bounds[3]; + + type = 1; + } +} + +double* NgonGridMatplotData::getBounds(void) +{ + return boundingRectangle; +} + +void NgonGridMatplotData::computeCoordinates(void) +{ + if (type == 0) + { + for (int i = 0; i < xSize; i++) + { + xCoordinates[i] = 0.5 + (double) i; + } + + for (int i = 0; i < ySize; i++) + { + yCoordinates[i] = 0.5 + (double) i; + } + + boundingRectangle[0] = 0.5; + boundingRectangle[1] = 0.5 + (double) (xSize - 1); + boundingRectangle[2] = 0.5; + boundingRectangle[3] = 0.5 + (double) (ySize - 1); + } + else + { + double min = boundingRectangle[0]; + double max = boundingRectangle[1]; + int numElements = 0; + + + if (xSize == 1) + { + numElements = 1; + } + else + { + numElements = xSize - 1; + } + + for (int i = 0; i < xSize; i++) + { + xCoordinates[i] = min + (double) i * (max - min) / (double) numElements; + } + + min = boundingRectangle[2]; + max = boundingRectangle[3]; + + if (ySize == 1) + { + numElements = 1; + } + else + { + numElements = ySize - 1; + } + + for (int i = 0; i < ySize; i++) + { + yCoordinates[i] = min + (double) i * (max - min) / (double) numElements; + } + } +} + +void NgonGridMatplotData::setDataZ(double const* data, int numElements) +{ + if (numElements > (xSize - 1) * (ySize - 1)) + { + return; + } + + for (int i = 0; i < numElements; i++) + { + zCoordinates[i] = data[i]; + } +} + +int NgonGridMatplotData::setImageType(int imagetype) +{ + const ImageType type = (ImageType)imagetype; + + if (this->imagetype != type) + { + int grid[4] = {xSize, 1, ySize, 1}; + if (this->datatype == MATPLOT_UChar || this->datatype == MATPLOT_Char) + { + if (this->imagetype == MATPLOT_RGB) + { + grid[2] = (ySize - 1) * 3 + 1; + } + else if (this->imagetype == MATPLOT_RGBA || this->imagetype == MATPLOT_ARGB) + { + grid[2] = (ySize - 1) * 4 + 1; + } + + if (type == MATPLOT_RGB) + { + if ((grid[2] - 1) % 3 != 0) + { + return 0; + } + grid[2] = (grid[2] - 1) / 3 + 1; + } + else if (type == MATPLOT_RGBA || type == MATPLOT_ARGB) + { + if ((grid[2] - 1) % 4 != 0) + { + return 0; + } + grid[2] = (grid[2] - 1) / 4 + 1; + } + + this->setGridSize(grid); + } + + this->imagetype = type; + + if (this->scilabData) + { + setImageData(this->scilabData, (xSize - 1) * (ySize - 1)); + } + } + + return 1; +} + +int NgonGridMatplotData::getImageType() +{ + return (int)this->imagetype; +} + +int NgonGridMatplotData::getGLType() +{ + return (int)this->gltype; +} + +int NgonGridMatplotData::getDataType() +{ + return (int)this->datatype; +} + +void NgonGridMatplotData::setDataType(int datatype) +{ + if (this->datatype != (DataType)datatype) + { + this->datatype = (DataType)datatype; + disposeTextureData(); + } +} + +int NgonGridMatplotData::getDataOrder() +{ + return (int)this->dataorder; +} + +void NgonGridMatplotData::setDataOrder(int dataorder) +{ + this->dataorder = (DataOrder)dataorder; +} + +void * NgonGridMatplotData::getImageData() +{ + if (this->data) + { + return this->data; + } + else if (this->scilabData) + { + setImageData(this->scilabData, (xSize - 1) * (ySize - 1)); + return this->data; + } + + return NULL; +} + +void * NgonGridMatplotData::getScilabData() +{ + return this->scilabData; +} + +unsigned int NgonGridMatplotData::getImageDataSize() +{ + return this->dataSize; +} + +void NgonGridMatplotData::setDataInfos(int infos) +{ + setDataType(infos & 0xFF); + setDataOrder((infos & 0xFF00) >> 8); + setImageType((infos & 0xFF0000) >> 16); +} + +int NgonGridMatplotData::getDataInfos() +{ + return buildMatplotType(this->datatype, this->dataorder, this->imagetype); +} + +void NgonGridMatplotData::setImageData(void const* data, const int numElements) +{ + if (!data) + { + disposeTextureData(); + return; + } + + unsigned int dataSize = 0; + const int N = ySize - 1; + const int M = xSize - 1; + const int NM = N * M; + + if (numElements > NM) + { + return; + } + + if (data != this->scilabData) + { + if (scilabData) + { + delete[] (unsigned char *)scilabData; + scilabData = NULL; + } + + unsigned int _size; + + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + _size = numElements * 3; + break; + case MATPLOT_HM3_Double : + _size = numElements * sizeof(double) * 3; + break; + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + _size = numElements * 4; + break; + case MATPLOT_HM4_Double : + _size = numElements * sizeof(double) * 4; + break; + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_Char : + case MATPLOT_UChar : + _size = numElements; + break; + case MATPLOT_Int : + case MATPLOT_UInt : + _size = numElements * sizeof(int); + break; + case MATPLOT_Short : + case MATPLOT_UShort : + _size = numElements * sizeof(short); + break; + case MATPLOT_HM1_Double : + case MATPLOT_Double : + _size = numElements * sizeof(double); + break; + } + this->scilabData = new unsigned char[_size]; + // todo: on peut ameliorer ca + // pr certains type de donnees (et certains modes) scilabData == data + // dc on peut eviter cette copie + memcpy(this->scilabData, data, _size); + } + + void * dest = this->data; + if (this->imagetype == MATPLOT_INDEX) + { + this->gltype = MATPLOT_GL_RGBA_BYTE; + } + else if (Texture::getImage(data, numElements, this->datatype, this->imagetype, &(this->data), &(this->dataSize), &(this->gltype))) + { + if (dest) + { + delete[] (unsigned char *)dest; + } + } + + //std::cout << this->imagetype << "::" << this->datatype << "::" << this->dataorder << "::" << this->dataSize << "::" << (void*)this->data << std::endl; +} + +int NgonGridMatplotData::getType(void) +{ + return type; +} + +bool NgonGridMatplotData::initEndian() +{ + const int num = 1; + + return *(char *)&num == 1; +} + +void NgonGridMatplotData::setABGRSupported(bool _isABGRSupported) +{ + isABGRSupported = _isABGRSupported; +} + +void NgonGridMatplotData::disposeTextureData(void) +{ + if (this->data) + { + delete[] (unsigned char *)this->data; + this->data = NULL; + this->dataSize = 0; + } +} diff --git a/modules/graphic_objects/src/cpp/NgonGridMatplotDataDecomposer.cpp b/modules/graphic_objects/src/cpp/NgonGridMatplotDataDecomposer.cpp new file mode 100755 index 000000000..c494285e2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonGridMatplotDataDecomposer.cpp @@ -0,0 +1,837 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "ColorComputer.hxx" +#include "DecompositionUtils.hxx" +#include "NgonGridDataDecomposer.hxx" +#include "NgonGridMatplotDataDecomposer.hxx" + +#include <iostream> + +extern "C" +{ +#include <stdlib.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +NgonGridMatplotDataDecomposer* NgonGridMatplotDataDecomposer::decomposer = NULL; + +void NgonGridMatplotDataDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* matplotScale = NULL; + double* matplotTranslate = NULL; + double zShift = 0.; + double* pdZShift = &zShift; + + double xTrans[2]; + double yTrans[2]; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + NgonGridMatplotDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_MATPLOT_SCALE__, jni_double_vector, (void**) &matplotScale); + getGraphicObjectProperty(id, __GO_MATPLOT_TRANSLATE__, jni_double_vector, (void**) &matplotTranslate); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double, (void**) &pdZShift); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* The position of the lower-left corner and the distance between two adjacent vertices i and i+1 (respectively) along the x-axis */ + xTrans[0] = matplotTranslate[0]; + xTrans[1] = matplotScale[0]; + + /* The position of the lower-left corner and the distance between two adjacent vertices j and j+1 (respectively) along the y-axis */ + yTrans[0] = matplotTranslate[1]; + yTrans[1] = matplotScale[1]; + + /* + * We pass the scale and translate values (for both the x and y axes) as the x and y coordinate arrays, + * because Matplot vertex coordinates are directly computed from these values. + */ + decomposer->fillGridVertices(buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, (double*) xTrans, (double*) yTrans, &zShift, numX, numY); + + releaseGraphicObjectProperty(__GO_MATPLOT_SCALE__, matplotScale, jni_double_vector, 0); + releaseGraphicObjectProperty(__GO_MATPLOT_TRANSLATE__, matplotTranslate, jni_double_vector, 0); +} + +/* To do: refactor with its parent class' same method */ +void NgonGridMatplotDataDecomposer::fillGridVertices(float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask, + double* x, double* y, double* z, int numX, int numY) +{ + double xi = 0.; + double yj = 0.; + double zij = 0.; + double yjp1 = 0.; + double xip1 = 0.; + + int bufferOffset = 0; + +#if PER_VERTEX_VALUES + for (int j = 0; j < numY; j++) + { + yj = (double) j * y[1] + y[0]; + + if (coordinateMask & 0x2) + { + if (logMask & 0x2) + { + yj = DecompositionUtils::getLog10Value(yj); + } + } + + for (int i = 0; i < numX; i++) + { + xi = (double) i * x[1] + x[0]; + bufferOffset = elementsSize * (numX * j + i); + + if (coordinateMask & 0x1) + { + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(xi); + } + + buffer[bufferOffset] = xi * scale[0] + translation[0]; + } + + if (coordinateMask & 0x2) + { + buffer[bufferOffset + 1] = yj * scale[1] + translation[1]; + } + + if (coordinateMask & 0x4) + { + zij = getZCoordinate(z, numX, numY, i, j, logMask & 0x4); + + buffer[bufferOffset + 2] = zij * scale[2] + translation[2]; + } + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[bufferOffset + 3] = 1.0; + } + } + } +#else + bufferOffset = 0; + + for (int j = 0; j < numY - 1; j++) + { + double ycoords[4]; + int yindices[4]; + + yj = (double) j * y[1] + y[0]; + yjp1 = (double) (j + 1) * y[1] + y[0]; + + if (coordinateMask & 0x2) + { + if (logMask & 0x2) + { + yj = DecompositionUtils::getLog10Value(yj); + yjp1 = DecompositionUtils::getLog10Value(yjp1); + } + } + + ycoords[0] = yj; + ycoords[1] = yj; + ycoords[2] = yjp1; + ycoords[3] = yjp1; + + yindices[0] = j; + yindices[1] = j; + yindices[2] = j + 1; + yindices[3] = j + 1; + + for (int i = 0; i < numX - 1; i++) + { + double xcoords[4]; + int xindices[4]; + + xi = (double) i * x[1] + x[0]; + xip1 = (double) (i + 1) * x[1] + x[0]; + + if (logMask & 0x1) + { + xi = DecompositionUtils::getLog10Value(xi); + xip1 = DecompositionUtils::getLog10Value(xip1); + } + + xcoords[0] = xi; + xcoords[1] = xip1; + xcoords[2] = xi; + xcoords[3] = xip1; + + xindices[0] = i; + xindices[1] = i + 1; + xindices[2] = i; + xindices[3] = i + 1; + + for (int k = 0; k < 4; k++) + { + if (coordinateMask & 0x1) + { + buffer[bufferOffset] = (float)(xcoords[k] * scale[0] + translation[0]); + } + + if (coordinateMask & 0x2) + { + buffer[bufferOffset + 1] = (float)(ycoords[k] * scale[1] + translation[1]); + } + + /*if (coordinateMask & 0x4) + zij = getZCoordinate(z, numX, numY, xindices[k], yindices[k], logMask & 0x4); + buffer[bufferOffset +2] = (float)(zij * scale[2] + translation[2]); + }*/ + + if (elementsSize == 4 && (coordinateMask & 0x8)) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + } + } + +#endif +} + +/* + * To do: + * -clean-up: replace explicitely computed z indices by getPointIndex calls + * -remove the per-vertex color fill code + */ +void NgonGridMatplotDataDecomposer::fillColors(int id, float* buffer, int bufferLength, int elementsSize) +{ + int parent = 0; + int* pparent = &parent; + int parentFigure = 0; + int* pparentFigure = &parentFigure; + + void * data = NULL; + double* colormap = NULL; + double currentZ = 0.; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + int datatype = -1; + int * pidataType = &datatype; + int imagetype = 0; + int * piImagetype = &imagetype; + int gltype = 0; + int * piGltype = &gltype; + + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__, jni_double_vector, &data); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_DATA_TYPE__, jni_int, (void**) &pidataType); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__, jni_int, (void **)&piImagetype); + getGraphicObjectProperty(id, __GO_DATA_MODEL_MATPLOT_GL_TYPE__, jni_int, (void **)&piGltype); + + /* In order not to access invalid data when reading the last line's last element */ + if (numX < 2) + { + return; + } + + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + +#if PER_VERTEX_VALUES + for (int j = 0; j < numY - 1; j++) + { + for (int i = 0; i < numX - 1; i++) + { + currentZ = z[i * (numY - 1) + (numY - 2 - j)]; + + ColorComputer::getDirectColor((double) currentZ - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + + /* Last element (same as the above loop's last) */ + currentZ = z[(numX - 2) * (numY - 1) + (numY - 2 - j)]; + + ColorComputer::getDirectColor((double) currentZ - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + + /* Last line */ + for (int i = 0; i < numX - 1; i++) + { + currentZ = z[(numY - 1) * i + 0]; + + ColorComputer::getDirectColor((double) currentZ - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + bufferOffset += elementsSize; + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + } + + /* Last element (same as the above loop's last) */ + currentZ = z[(numX - 2) * (numY - 1) + 0]; + + ColorComputer::getDirectColor((double) currentZ - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + +#else + + getRGBAData((ImageType)imagetype, (DataType)datatype, (GLType)gltype, data, buffer, elementsSize, numY - 1, numX - 1, colormap, colormapSize); + + /*for (int j = 0; j < numY-1; j++) + { + for (int i = 0; i < numX - 1; i++) + { + float facetColor[3]; + + currentZ = z[i * (numY - 1) + (numY - 2 - j)]; + ColorComputer::getDirectColor((double) currentZ - 1.0, colormap, colormapSize, facetColor); + writeFacetColorToBuffer(buffer, bufferOffset, facetColor, elementsSize); + + bufferOffset += 4 * elementsSize; + } + }*/ + +#endif + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); +} + +/* + * To do: merge with NgonGridDataDecomposer::fillIndices as these functions perform a lot of work in + * a redundant way. + */ +int NgonGridMatplotDataDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + double zShift = 0.0; + double* pdZShift = &zShift; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + int numberIndices = 0; + + NgonGridMatplotDataDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* 0 indices if less than 2 points along either dimension */ + if (numX < 2 || numY < 2) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double, (void**) &pdZShift); + + /* + * The per-node value flag is set to 0 as for Matplot objects grid values are specified per-facet. + * However, it not used at all when determining facet validity and hence is only informative. + */ + numberIndices = decomposer->fillTriangleIndices(buffer, bufferLength, logMask, x, y, &zShift, z, 0, numX, numY); + + return numberIndices; +} + +int NgonGridMatplotDataDecomposer::isFacetValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed, int currentEdgeValid, int* nextEdgeValid) +{ + double zij = 0.; + int facetValid = 1; + + /*zij = getZCoordinate(z, numX, numY, i, j, logUsed); + + facetValid = DecompositionUtils::isValid(zij); + + if (logUsed) + { + facetValid &= DecompositionUtils::isLogValid(zij); + }*/ + + /* Transposed relative to Grayplot */ + //facetValid &= DecompositionUtils::isValid(values[getPointIndex(numY-1, numX-1, numY-2-j, i)]); + + /* Edge validity is always 1 since it is not used at all to determine facet validity for Matplot decomposition */ + *nextEdgeValid = 1; + + return facetValid; +} + +int NgonGridMatplotDataDecomposer::isFacetEdgeValid(double* z, double* values, int perNodeValues, int numX, int numY, int i, int j, int logUsed) +{ + /* Always considered valid since not used at all to determine facet validity */ + return 1; +} + +void NgonGridMatplotDataDecomposer::getRGBAData(ImageType imagetype, DataType datatype, GLType gltype, void * data, float * buffer, int elementsSize, const int nbRow, const int nbCol, double * colormap, const int colormapSize) +{ + if (imagetype == MATPLOT_INDEX) + { + switch (datatype) + { + case MATPLOT_Char : + { + fillColorsByIndex((char *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_UChar : + { + fillColorsByIndex((unsigned char *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_Int : + { + fillColorsByIndex((int *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_UInt : + { + fillColorsByIndex((unsigned int *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_Short : + { + fillColorsByIndex((short *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_UShort : + { + fillColorsByIndex((unsigned short *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + case MATPLOT_Double : + { + fillColorsByIndex((double *)data, buffer, elementsSize, nbRow, nbCol, colormap, colormapSize); + break; + } + } + } + else + { + float colors[4]; + + switch (gltype) + { + case MATPLOT_GL_RGBA : + { + unsigned int k = 0; + unsigned int * ui = (unsigned int *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned int c = ui[nbRow - 1 + i * nbRow - j]; + colors[0] = ((c >> 24) & 0xFF) / 255.0f; + colors[1] = ((c >> 16) & 0xFF) / 255.0f; + colors[2] = ((c >> 8) & 0xFF) / 255.0f; + colors[3] = (c & 0xFF) / 255.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, true); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGB_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + writeFacetColorToBuffer(buffer, k, &f[3 * (nbRow - 1 + i * nbRow - j)], elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGB : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned int ind = 3 * (nbRow - 1 + i * nbRow - j); + colors[0] = uc[ind] / 255.0f; + colors[1] = uc[ind + 1] / 255.0f; + colors[2] = uc[ind + 2] / 255.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGBA_BYTE : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned int ind = 4 * (nbRow - 1 + i * nbRow - j); + colors[0] = uc[ind] / 255.0f; + colors[1] = uc[ind + 1] / 255.0f; + colors[2] = uc[ind + 2] / 255.0f; + colors[3] = uc[ind + 3] / 255.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, true); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGBA_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + writeFacetColorToBuffer(buffer, k, &f[4 * (nbRow - 1 + i * nbRow - j)], elementsSize, true); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GRAY : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = uc[nbRow - 1 + i * nbRow - j] / 255.0f; + colors[1] = colors[0]; + colors[2] = colors[0]; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RED : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = uc[nbRow - 1 + i * nbRow - j] / 255.0f; + colors[1] = 0; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GREEN : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = uc[nbRow - 1 + i * nbRow - j] / 255.0f; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_BLUE : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = 0; + colors[2] = uc[nbRow - 1 + i * nbRow - j] / 255.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GRAY_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = f[nbRow - 1 + i * nbRow - j]; + colors[1] = colors[0]; + colors[2] = colors[0]; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RED_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = f[nbRow - 1 + i * nbRow - j]; + colors[1] = 0; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GREEN_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = f[nbRow - 1 + i * nbRow - j]; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_BLUE_FLOAT : + { + unsigned int k = 0; + float * f = (float *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = 0; + colors[2] = f[nbRow - 1 + i * nbRow - j]; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGBA_4444 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned short c = us[nbRow - 1 + i * nbRow - j]; + colors[0] = ((c >> 12) & 0xFF) / 15.0f; + colors[1] = ((c >> 8) & 0xFF) / 15.0f; + colors[2] = ((c >> 4) & 0xFF) / 15.0f; + colors[3] = (c & 0xFF) / 15.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, true); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGBA_5551 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned short c = us[nbRow - 1 + i * nbRow - j]; + colors[0] = ((c >> 11) & 0xFF) / 31.0f; + colors[1] = ((c >> 6) & 0xFF) / 31.0f; + colors[2] = ((c >> 1) & 0xFF) / 31.0f; + colors[3] = (float)(c & 0x1); + writeFacetColorToBuffer(buffer, k, colors, elementsSize, true); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RGB_332 : + { + unsigned int k = 0; + unsigned char * uc = (unsigned char *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + const unsigned char c = uc[nbRow - 1 + i * nbRow - j]; + colors[0] = ((c >> 5) & 0x7) / 7.0f; + colors[1] = ((c >> 2) & 0x7) / 7.0f; + colors[2] = (c & 0x3) / 3.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GRAY_16 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = us[nbRow - 1 + i * nbRow - j] / 65535.0f; + colors[1] = colors[0]; + colors[2] = colors[0]; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_RED_16 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = us[nbRow - 1 + i * nbRow - j] / 65535.0f; + colors[1] = 0; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_GREEN_16 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = us[nbRow - 1 + i * nbRow - j] / 65535.0f; + colors[2] = 0; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + case MATPLOT_GL_BLUE_16 : + { + unsigned int k = 0; + unsigned short * us = (unsigned short *)data; + + for (int j = 0; j < nbRow; j++) + { + for (int i = 0; i < nbCol; i++) + { + colors[0] = 0; + colors[1] = 0; + colors[2] = us[nbRow - 1 + i * nbRow - j] / 65535.0f; + writeFacetColorToBuffer(buffer, k, colors, elementsSize, false); + k += 4 * elementsSize; + } + } + break; + } + } + } +} diff --git a/modules/graphic_objects/src/cpp/NgonPolylineData.cpp b/modules/graphic_objects/src/cpp/NgonPolylineData.cpp new file mode 100755 index 000000000..d28fd2d16 --- /dev/null +++ b/modules/graphic_objects/src/cpp/NgonPolylineData.cpp @@ -0,0 +1,568 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <iostream> + +#include "NgonPolylineData.hxx" +#include "DataProperties.hxx" + +extern "C" { +#include "BOOL.h" + +#include <string.h> + +#include "graphicObjectProperties.h" +} + +NgonPolylineData::NgonPolylineData(void) +{ + xShift = NULL; + yShift = NULL; + zShift = NULL; + + xShiftSet = 0; + yShiftSet = 0; + zShiftSet = 0; + + coordinatesShift = NULL; + + zCoordinatesSet = 0; + + display_function_data = NULL; + display_function_data_size = 0; + +} + +NgonPolylineData::~NgonPolylineData(void) +{ + if (xShiftSet) + { + delete [] xShift; + } + + if (yShiftSet) + { + delete [] yShift; + } + + if (zShiftSet) + { + delete [] zShift; + } + + if (display_function_data) + { + delete[] display_function_data; + } +} + +int NgonPolylineData::getPropertyFromName(int propertyName) +{ + switch (propertyName) + { + case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ : + return NUM_ELEMENTS_ARRAY; + case __GO_DATA_MODEL_X_COORDINATES_SHIFT__ : + return X_COORDINATES_SHIFT; + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT__ : + return Y_COORDINATES_SHIFT; + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ : + return Z_COORDINATES_SHIFT; + case __GO_DATA_MODEL_NUM_ELEMENTS__ : + return NUM_ELEMENTS; + case __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ : + return X_COORDINATES_SHIFT_SET; + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ : + return Y_COORDINATES_SHIFT_SET; + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ : + return Z_COORDINATES_SHIFT_SET; + case __GO_DATA_MODEL_Z_COORDINATES_SET__ : + return Z_COORDINATES_SET; + case __GO_DATA_MODEL_DISPLAY_FUNCTION__ : + return DISPLAY_FUNCTION_DATA; + case __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ : + return DISPLAY_FUNCTION_DATA_SIZE; + default : + return NgonGeneralData::getPropertyFromName(propertyName); + } + +} + + +int NgonPolylineData::setDataProperty(int property, void const* value, int numElements) +{ + switch (property) + { + case NUM_ELEMENTS_ARRAY : + return setNumElementsArray((int const*) value); + case X_COORDINATES_SHIFT : + return setXCoordinatesShift((double const*) value, numElements); + case Y_COORDINATES_SHIFT : + return setYCoordinatesShift((double const*) value, numElements); + case Z_COORDINATES_SHIFT : + return setZCoordinatesShift((double const*) value, numElements); + case X_COORDINATES_SHIFT_SET : + setXCoordinatesShiftSet(*((int const*) value)); + break; + case Y_COORDINATES_SHIFT_SET : + setYCoordinatesShiftSet(*((int const*) value)); + break; + case Z_COORDINATES_SHIFT_SET : + setZCoordinatesShiftSet(*((int const*) value)); + break; + case Z_COORDINATES_SET : + setZCoordinatesSet(*((int const*) value)); + break; + case DISPLAY_FUNCTION_DATA : + setDisplayFunctionData((int const*) value, numElements); + break; + default : + return NgonGeneralData::setDataProperty(property, value, numElements); + } + + return 1; +} + +void NgonPolylineData::getDataProperty(int property, void **_pvData) +{ + switch (property) + { + case X_COORDINATES_SHIFT : + *_pvData = getXCoordinatesShift(); + break; + case Y_COORDINATES_SHIFT : + *_pvData = getYCoordinatesShift(); + break; + case Z_COORDINATES_SHIFT : + *_pvData = getZCoordinatesShift(); + break; + case NUM_ELEMENTS : + ((int *) *_pvData)[0] = getNumElements(); + break; + case X_COORDINATES_SHIFT_SET : + ((int *) *_pvData)[0] = getXCoordinatesShiftSet(); + break; + case Y_COORDINATES_SHIFT_SET : + ((int *) *_pvData)[0] = getYCoordinatesShiftSet(); + break; + case Z_COORDINATES_SHIFT_SET : + ((int *) *_pvData)[0] = getZCoordinatesShiftSet(); + break; + case Z_COORDINATES_SET : + ((int *) *_pvData)[0] = getZCoordinatesSet(); + break; + case DISPLAY_FUNCTION_DATA : + *_pvData = getDisplayFunctionData(); + break; + case DISPLAY_FUNCTION_DATA_SIZE : + ((int *) *_pvData)[0] = getDisplayFunctionDataSize(); + break; + default : + NgonGeneralData::getDataProperty(property, _pvData); + } +} + +int NgonPolylineData::getNumElements(void) +{ + return numVerticesPerGon; +} + +void NgonPolylineData::setZCoordinatesSet(int zCoordinatesSet) +{ + this->zCoordinatesSet = zCoordinatesSet; +} + +int NgonPolylineData::getZCoordinatesSet(void) +{ + return this->zCoordinatesSet; +} + +double* NgonPolylineData::getXCoordinatesShift(void) +{ + return xShift; +} + +int NgonPolylineData::setXCoordinatesShift(double const* data, int numElements) +{ + if (xShiftSet == 0) + { + + try + { + xShift = new double[numVerticesPerGon]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + xShiftSet = 1; + } + + for (int i = 0; i < numVerticesPerGon; i++) + { + xShift[i] = data[i]; + } + + return 1; +} + +double* NgonPolylineData::getYCoordinatesShift() +{ + return yShift; +} + +int NgonPolylineData::setYCoordinatesShift(double const* data, int numElements) +{ + if (yShiftSet == 0) + { + + try + { + yShift = new double[numVerticesPerGon]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + yShiftSet = 1; + } + + for (int i = 0; i < numVerticesPerGon; i++) + { + yShift[i] = data[i]; + } + + return 1; +} + +double* NgonPolylineData::getZCoordinatesShift() +{ + return zShift; +} + +int NgonPolylineData::getXCoordinatesShiftSet(void) +{ + return xShiftSet; +} + +void NgonPolylineData::setXCoordinatesShiftSet(int xShiftSet) +{ + if (xShiftSet == 0 && this->xShiftSet == 1) + { + delete [] xShift; + xShift = NULL; + } + + this->xShiftSet = xShiftSet; +} + +int NgonPolylineData::getYCoordinatesShiftSet(void) +{ + return yShiftSet; +} + +void NgonPolylineData::setYCoordinatesShiftSet(int yShiftSet) +{ + if (yShiftSet == 0 && this->yShiftSet == 1) + { + delete [] yShift; + yShift = NULL; + } + + this->yShiftSet = yShiftSet; +} + +int NgonPolylineData::getZCoordinatesShiftSet(void) +{ + return zShiftSet; +} + +void NgonPolylineData::setZCoordinatesShiftSet(int zShiftSet) +{ + if (zShiftSet == 0 && this->zShiftSet == 1) + { + delete [] zShift; + zShift = NULL; + } + + this->zShiftSet = zShiftSet; +} + +int NgonPolylineData::setZCoordinatesShift(double const* data, int numElements) +{ + if (zShiftSet == 0) + { + + try + { + zShift = new double[numVerticesPerGon]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + zShiftSet = 1; + } + + for (int i = 0; i < numVerticesPerGon; i++) + { + zShift[i] = data[i]; + } + + return 1; +} + +int NgonPolylineData::setNumElementsArray(int const* numElementsArray) +{ + int newNumElements = 0; + int previousNumElements = 0; + int result = 1; + + if (numElementsArray[0] != 1) + { + return 0; + } + + newNumElements = numElementsArray[0] * numElementsArray[1]; + previousNumElements = numGons * numVerticesPerGon; + + if (newNumElements == 0 && previousNumElements > 0) + { + numVerticesPerGon = 0; + + deleteCoordinatesArrays(); + + return 1; + } + + if (numGons * numVerticesPerGon != newNumElements) + { + double* newCoordinates = NULL; + double* xShiftNew = NULL; + double* yShiftNew = NULL; + double* zShiftNew = NULL; + + result = 1; + + try + { + newCoordinates = new double[3 * newNumElements]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + if (xShiftSet) + { + try + { + xShiftNew = new double[newNumElements]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (yShiftSet) + { + try + { + yShiftNew = new double[newNumElements]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (zShiftSet) + { + try + { + zShiftNew = new double[newNumElements]; + } + catch (const std::exception& e) + { + e.what(); + result = 0; + } + } + + if (result) + { + if (numGons * numVerticesPerGon > 0) + { + delete [] coordinates; + } + + /* + * Initialize the new coordinates' z values to 0 in case + * they are not set afterwards. + */ + for (int i = 0; i < newNumElements; i++) + { + newCoordinates[2 * newNumElements + i] = 0.0; + } + + coordinates = newCoordinates; + + if (xShiftSet) + { + copyShiftCoordinatesArray(xShiftNew, xShift, newNumElements); + delete [] xShift; + xShift = xShiftNew; + } + + if (yShiftSet) + { + copyShiftCoordinatesArray(yShiftNew, yShift, newNumElements); + delete [] yShift; + yShift = yShiftNew; + } + + if (zShiftSet) + { + copyShiftCoordinatesArray(zShiftNew, zShift, newNumElements); + delete [] zShift; + zShift = zShiftNew; + } + + numGons = numElementsArray[0]; + numVerticesPerGon = numElementsArray[1]; + } + else + { + /* Delete the temporary arrays and don't set anything */ + if (newCoordinates != NULL) + { + delete [] newCoordinates; + } + + if (xShiftNew != NULL) + { + delete [] xShiftNew; + } + + if (yShiftNew != NULL) + { + delete [] yShiftNew; + } + + if (zShiftNew != NULL) + { + delete [] zShiftNew; + } + + } + + } + + return result; +} + +void NgonPolylineData::copyShiftCoordinatesArray(double * newShift, double const* oldShift, int numElementsNew) +{ + int numElementsCopied = 0; + + if (numElementsNew < numVerticesPerGon) + { + numElementsCopied = numElementsNew; + } + else + { + numElementsCopied = numVerticesPerGon; + } + + for (int i = 0; i < numElementsCopied; i++) + { + newShift[i] = oldShift[i]; + } + + for (int i = numElementsCopied; i < numElementsNew; i++) + { + newShift[i] = 0.0; + } +} + +void NgonPolylineData::deleteCoordinatesArrays(void) +{ + if (coordinates != NULL) + { + delete [] coordinates; + coordinates = NULL; + } + + if (xShiftSet) + { + delete [] xShift; + xShift = NULL; + xShiftSet = 0; + } + + if (yShiftSet) + { + delete [] yShift; + yShift = NULL; + yShiftSet = 0; + } + + if (zShiftSet) + { + delete [] zShift; + zShift = NULL; + zShiftSet = 0; + } +} + +int* NgonPolylineData::getDisplayFunctionData() +{ + return display_function_data; +} + +int NgonPolylineData::getDisplayFunctionDataSize() +{ + return display_function_data_size; +} + +int NgonPolylineData::setDisplayFunctionData(int const* data, int numElements) +{ + if (display_function_data != NULL) + { + delete[] display_function_data; + display_function_data = NULL; + } + + try + { + display_function_data_size = numElements; + display_function_data = new int[numElements]; + } + catch (const std::exception& e) + { + e.what(); + return 0; + } + + memcpy(display_function_data, data, display_function_data_size * sizeof(int)); + return 1; +}
\ No newline at end of file diff --git a/modules/graphic_objects/src/cpp/NormalGenerator.cpp b/modules/graphic_objects/src/cpp/NormalGenerator.cpp new file mode 100755 index 000000000..3c9dbc41b --- /dev/null +++ b/modules/graphic_objects/src/cpp/NormalGenerator.cpp @@ -0,0 +1,190 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Pedro SOUZA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <math.h> +#include "NormalGenerator.hxx" + +#define PLUS3(a, b, c) (c)[0]=(a)[0]+(b)[0];(c)[1]=(a)[1]+(b)[1];(c)[2]=(a)[2]+(b)[2]; +#define MINUS3(a, b, c) (c)[0]=(a)[0]-(b)[0];(c)[1]=(a)[1]-(b)[1];(c)[2]=(a)[2]-(b)[2]; +#define CROSS3(a, b, c) (c)[0]=(a)[1]*(b)[2] - (a)[2]*b[1];(c)[1]=(a)[2]*(b)[0] - (a)[0]*(b)[2];(c)[2]=(a)[0]*(b)[1] - (a)[1]*(b)[0]; +#define COPY3(a, b) (a)[0]=(b)[0];(a)[1]=(b)[1];(a)[2]=(b)[2]; + +inline void normalize3(float* v) +{ + float inv_norm = 1.0f / sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); + v[0] *= inv_norm; + v[1] *= inv_norm; + v[2] *= inv_norm; +} + +bool CalculateGridNormalFlat(float* position, float* buffer, int bufferLength, int elementSize) +{ + if (elementSize < 3) + { + return false; + } + for (int i = 0; i < bufferLength; i += 4 * elementSize) + { + float *p1 = &position[i], + *p2 = &position[i + elementSize], + *p3 = &position[i + 2 * elementSize], + *p4 = &position[i + 3 * elementSize]; + + float v1[3], v2[3], n1[3], n2[3], n1pn2[3]; + //v1 = p2-p1 + MINUS3(p2, p1, v1); + MINUS3(p4, p1, v2); + + //n1 = v1 x v2 + CROSS3(v1, v2, n1); + + MINUS3(p4, p1, v1); + MINUS3(p3, p1, v2); + + CROSS3(v1, v2, n2); + + normalize3(n1); + normalize3(n2); + PLUS3(n1, n2, n1pn2); + + normalize3(n1pn2); + + + COPY3(&buffer[i], n1pn2); + COPY3(&buffer[i + elementSize], n1pn2); + COPY3(&buffer[i + 2 * elementSize], n1pn2); + COPY3(&buffer[i + 3 * elementSize], n1pn2); + } + return true; +} + +bool CalculateGridNormalSmooth(float* position, float* buffer, int bufferLength, int elementSize, int numX, int numY) +{ + if (elementSize < 3) + { + return false; + } + for (int i = 0; i < bufferLength; i += 4 * elementSize) + { + float *p1 = &position[i], + *p2 = &position[i + elementSize], + *p3 = &position[i + 2 * elementSize], + *p4 = &position[i + 3 * elementSize]; + + float v1[3], v2[3], n1[3], n2[3], n1pn2[3]; + //v1 = p2-p1 + MINUS3(p2, p1, v1); + MINUS3(p4, p1, v2); + + //n1 = v1 x v2 + CROSS3(v1, v2, n1); + + MINUS3(p4, p1, v1); + MINUS3(p3, p1, v2); + + CROSS3(v1, v2, n2); + + normalize3(n1); + normalize3(n2); + PLUS3(n1, n2, n1pn2); + + normalize3(n1pn2); + + + COPY3(&buffer[i], n1pn2); + COPY3(&buffer[i + elementSize], n1); + COPY3(&buffer[i + 2 * elementSize], n2); + COPY3(&buffer[i + 3 * elementSize], n1pn2); + } + + // average normals in x axis + for (int i = 0; i < numX - 1; ++i) + { + for (int j = 0; j < numY - 2; ++j) + { + float sum[3]; + float *p2, *p3, *pj0, *pj1; + p2 = getGridNormal(buffer, numX, numY, elementSize, i, j, 2); + p3 = getGridNormal(buffer, numX, numY, elementSize, i, j, 3); + + pj0 = getGridNormal(buffer, numX, numY, elementSize, i, j + 1, 0); + pj1 = getGridNormal(buffer, numX, numY, elementSize, i, j + 1, 1); + + PLUS3(pj0, p2, sum); + COPY3(p2, sum); + COPY3(pj0, sum); + + PLUS3(pj1, p3, sum); + COPY3(p3, sum); + COPY3(pj1, sum); + } + } + + // average normals in y axis + for (int j = 0; j < numY - 1; ++j) + { + for (int i = 0; i < numX - 2; ++i) + { + float sum[3]; + float *p1, *p3, *pi0, *pi2; + p1 = getGridNormal(buffer, numX, numY, elementSize, i, j, 1); + p3 = getGridNormal(buffer, numX, numY, elementSize, i, j, 3); + + pi0 = getGridNormal(buffer, numX, numY, elementSize, i + 1, j, 0); + pi2 = getGridNormal(buffer, numX, numY, elementSize, i + 1, j, 2); + + PLUS3(pi0, p1, sum); + COPY3(p1, sum); + COPY3(pi0, sum); + + PLUS3(pi2, p3, sum); + COPY3(p3, sum); + COPY3(pi2, sum); + } + } + return true; +} + +float * getGridNormal(float *buffer, int numX, int numY, int elementSize, int i, int j, int k) +{ + //int idx = (numX-1)*j*4*elementSize + i*4*elementSize + k*elementSize; + int idx = elementSize * (k + 4 * (j * (numX - 1) + i)); + return &buffer[idx]; +} + +bool CalculatePolygonNormalFlat(float* position, float* buffer, int bufferLength, int elementSize, int polygonVertices) +{ + for (int i = 0; i < bufferLength; i += (elementSize * polygonVertices)) + { + float v1[3], v2[3], n[3], sum[] = {0.0f, 0.0f, 0.0f}; + + for (int j = 0; j < polygonVertices - 2; ++j) + { + float *p1 = &position[i], + *p2 = &position[i + (j + 2) * elementSize], + *p3 = &position[i + (j + 1) * elementSize]; + + MINUS3(p2, p1, v1); + MINUS3(p3, p1, v2); + CROSS3(v1, v2, n); + normalize3(n); + + PLUS3(n, sum, sum); + } + for (int j = 0; j < polygonVertices; ++j) + { + COPY3(&buffer[i + j * elementSize], sum); + } + } + return true; +} + diff --git a/modules/graphic_objects/src/cpp/Plot3DDecomposer.cpp b/modules/graphic_objects/src/cpp/Plot3DDecomposer.cpp new file mode 100755 index 000000000..aa4e8a8cc --- /dev/null +++ b/modules/graphic_objects/src/cpp/Plot3DDecomposer.cpp @@ -0,0 +1,487 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <cstring> + +#include "ColorComputer.hxx" +#include "DecompositionUtils.hxx" +#include "Plot3DDecomposer.hxx" + +extern "C" +{ +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +Plot3DDecomposer* Plot3DDecomposer::decomposer = NULL; + +void Plot3DDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + Plot3DDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + decomposer->fillGridVertices(buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, x, y, z, numX, numY); +} + +double Plot3DDecomposer::getZCoordinate(double* z, int numX, int numY, int i, int j) +{ + double zij = 0.; + + zij = z[numX * j + i]; + + return zij; +} + +double Plot3DDecomposer::getZCoordinate(double* z, int numX, int numY, int i, int j, int logUsed) +{ + double zij = 0.; + + zij = z[numX * j + i]; + + if (logUsed) + { + zij = DecompositionUtils::getLog10Value(zij); + } + + return zij; +} + +void Plot3DDecomposer::getFacetTriangles(double* x, double* y, double* z, int numX, int numY, int i, int j, + int* facetVertexIndices, int* triangleVertexIndices) +{ + double vertices[4][3]; + + /* Gets the facet's vertices: (i,j), (i+1,j), (i+1,j+1), (i,j+1) */ + getFacetCoordinates(x, y, z, numX, numY, i, j, vertices); + + /* Decomposes the facet into two triangles and outputs their indices */ + DecompositionUtils::getDecomposedQuadTriangleIndices(vertices, facetVertexIndices, triangleVertexIndices); +} + +/* + * To do: compute and return color indices instead of directly looking + * up colors from the colormap. + */ +void Plot3DDecomposer::fillColors(int id, float* buffer, int bufferLength, int elementsSize) +{ + int parentFigure = 0; + int* pparentFigure = &parentFigure; + int parent = 0; + int* pparent = &parent; + + double* z = NULL; + double* colormap = NULL; + + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + + Plot3DDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + + if (parentFigure == 0) + { + return; + } + + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + decomposer->fillNormalizedZGridColors(buffer, bufferLength, elementsSize, colormap, colormapSize, z, numX, numY); + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); +} + +int Plot3DDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + int numberIndices = 0; + + Plot3DDecomposer* decomposer = get(); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* 0 indices if 0 points */ + if (numX == 0 || numY == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + /* The per-node value flag is set to 1, as grid values amount to z coordinates and are not relevant anyway. */ + numberIndices = decomposer->fillTriangleIndices(buffer, bufferLength, logMask, x, y, z, z, 1, numX, numY); + + return numberIndices; +} + +int Plot3DDecomposer::getWireIndicesSize(int id) +{ + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + if (numX == 0 || numY == 0) + { + return 0; + } + + return 2 * 2 * (numX - 1) * (numY - 1) + 2 * (numX - 1) + 2 * (numY - 1); +} + +/* + * To be optimized: + * -a lot of work performed redundantly with NgonGridDataDecomposer::fillIndices, ought to be merged + * with it. + */ +int Plot3DDecomposer::fillWireIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* x = NULL; + double* y = NULL; + double* z = NULL; + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + int previousRowValid = 0; + int currentRowValid = 0; + int nextRowValid = 0; + + int previousColumnValid = 0; + int currentColumnValid = 0; + int nextColumnValid = 0; + + int lowerLeftZValid = 0; + int lowerRightZValid = 0; + int upperLeftZValid = 0; + int upperRightZValid = 0; + + int jm1HorizontalEdgeZValid = 0; + int im1VerticalEdgeZValid = 0; + int jHorizontalEdgeZValid = 0; + int iVerticalEdgeZValid = 0; + int jp1HorizontalEdgeZValid = 0; + int ip1VerticalEdgeZValid = 0; + + int ij = 0; + int ip1j = 0; + int ijp1 = 0; + int ip1jp1 = 0; + int ijm1 = 0; + int ip1jm1 = 0; + + int firstVertexIndex = 0; + + int bufferOffset = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* 0 indices if less than 2 points along either dimension */ + if (numX < 2 || numY < 2) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &x); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &y); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &z); + + /* First row */ + previousRowValid = 0; + currentRowValid = DecompositionUtils::isValid(y[0]); + + if (logMask & 0x2) + { + currentRowValid &= DecompositionUtils::isLogValid(y[0]); + } + + /* Set to 0 as it is not relevant for the first row iteration */ + jm1HorizontalEdgeZValid = 0; + + /* x-axis and y-axis indices (respectively) */ + for (int j = 0; j < numY - 1; j++) + { + nextRowValid = DecompositionUtils::isValid(y[j + 1]); + + if (logMask & 0x2) + { + nextRowValid &= DecompositionUtils::isLogValid(y[j + 1]); + } + + if (!currentRowValid) + { + previousRowValid = currentRowValid; + currentRowValid = nextRowValid; + continue; + } + + previousColumnValid = 0; + currentColumnValid = DecompositionUtils::isValid(x[0]); + + if (logMask & 0x1) + { + currentColumnValid &= DecompositionUtils::isLogValid(x[0]); + } + + ij = getPointIndex(numX, numY, 0, j); + ijp1 = getPointIndex(numX, numY, 0, j + 1); + + lowerLeftZValid = DecompositionUtils::isValid(z[ij]); + upperLeftZValid = DecompositionUtils::isValid(z[ijp1]); + + if (logMask & 0x4) + { + lowerLeftZValid &= DecompositionUtils::isLogValid(z[ij]); + upperLeftZValid &= DecompositionUtils::isLogValid(z[ijp1]); + } + + iVerticalEdgeZValid = lowerLeftZValid && upperLeftZValid; + + /* Set to 0 as not relevant for the first column iteration */ + im1VerticalEdgeZValid = 0; + + for (int i = 0; i < numX - 1; i++) + { +#if !PER_VERTEX_VALUES + firstVertexIndex = getFirstVertexIndex(numX, numY, i, j); +#endif + + ip1j = getPointIndex(numX, numY, i + 1, j); + ip1jp1 = getPointIndex(numX, numY, i + 1, j + 1); + + nextColumnValid = DecompositionUtils::isValid(x[i + 1]); + + if (logMask & 0x1) + { + nextColumnValid &= DecompositionUtils::isLogValid(x[i + 1]); + } + + lowerRightZValid = DecompositionUtils::isValid(z[ip1j]); + upperRightZValid = DecompositionUtils::isValid(z[ip1jp1]); + + if (logMask & 0x4) + { + lowerRightZValid &= DecompositionUtils::isLogValid(z[ip1j]); + upperRightZValid &= DecompositionUtils::isLogValid(z[ip1jp1]); + } + + if (j > 0) + { + ijm1 = getPointIndex(numX, numY, i, j - 1); + ip1jm1 = getPointIndex(numX, numY, i + 1, j - 1); + + jm1HorizontalEdgeZValid = DecompositionUtils::isValid(z[ijm1]) && DecompositionUtils::isValid(z[ip1jm1]); + + if (logMask & 0x4) + { + jm1HorizontalEdgeZValid &= (DecompositionUtils::isLogValid(z[ijm1]) && DecompositionUtils::isLogValid(z[ip1jm1])); + } + } + + jHorizontalEdgeZValid = lowerLeftZValid && lowerRightZValid; + + jp1HorizontalEdgeZValid = upperLeftZValid && upperRightZValid; + ip1VerticalEdgeZValid = lowerRightZValid && upperRightZValid; + + /* + * Two segments: between points (i,j) and (i+1,j) + * and points (i,j) and (i,j+1) . + */ + if ((currentColumnValid && nextColumnValid) && jHorizontalEdgeZValid && ((previousRowValid && jm1HorizontalEdgeZValid) || (nextRowValid && jp1HorizontalEdgeZValid))) + { +#if PER_VERTEX_VALUES + buffer[bufferOffset] = ij; + buffer[bufferOffset + 1] = ip1j; +#else + buffer[bufferOffset] = firstVertexIndex; + buffer[bufferOffset + 1] = firstVertexIndex + 1; +#endif + + bufferOffset += 2; + } + + if (currentColumnValid && nextRowValid && iVerticalEdgeZValid && ((previousColumnValid && im1VerticalEdgeZValid) || (nextColumnValid && ip1VerticalEdgeZValid))) + { +#if PER_VERTEX_VALUES + buffer[bufferOffset] = ij; + buffer[bufferOffset + 1] = ijp1; +#else + buffer[bufferOffset] = firstVertexIndex; + buffer[bufferOffset + 1] = firstVertexIndex + 2; +#endif + + bufferOffset += 2; + } + + previousColumnValid = currentColumnValid; + currentColumnValid = nextColumnValid; + lowerLeftZValid = lowerRightZValid; + upperLeftZValid = upperRightZValid; + + im1VerticalEdgeZValid = iVerticalEdgeZValid; + iVerticalEdgeZValid = ip1VerticalEdgeZValid; + + ij = ip1j; + ijp1 = ip1jp1; + } + + /* Rightmost vertical line */ + if (currentColumnValid && nextRowValid && iVerticalEdgeZValid && (previousColumnValid && im1VerticalEdgeZValid)) + { +#if PER_VERTEX_VALUES + buffer[bufferOffset] = ij; + buffer[bufferOffset + 1] = ijp1; +#else + firstVertexIndex = getFirstVertexIndex(numX, numY, numX - 2, j); + + buffer[bufferOffset] = firstVertexIndex + 1; + buffer[bufferOffset + 1] = firstVertexIndex + 3; +#endif + + bufferOffset += 2; + } + + previousRowValid = currentRowValid; + currentRowValid = nextRowValid; + } + + /* Topmost horizontal lines */ + currentRowValid = DecompositionUtils::isValid(y[numY - 1]); + + if (logMask & 0x2) + { + currentRowValid &= DecompositionUtils::isLogValid(y[numY - 1]); + } + + currentColumnValid = DecompositionUtils::isValid(x[0]); + + if (logMask & 0x1) + { + currentColumnValid = DecompositionUtils::isValid(x[0]); + } + + ij = getPointIndex(numX, numY, 0, numY - 1); + + lowerLeftZValid = DecompositionUtils::isValid(z[ij]); + + if (logMask & 0x4) + { + lowerLeftZValid &= DecompositionUtils::isValid(z[ij]); + } + + ij = getPointIndex(numX, numY, 0, numY - 1); + + for (int i = 0; i < numX - 1; i++) + { + nextColumnValid = DecompositionUtils::isValid(x[i + 1]); + + if (logMask & 0x1) + { + nextColumnValid &= DecompositionUtils::isLogValid(x[i + 1]); + } + + ip1j = getPointIndex(numX, numY, i + 1, numY - 1); + + lowerRightZValid = DecompositionUtils::isValid(z[ip1j]); + + if (logMask & 0x4) + { + lowerRightZValid &= DecompositionUtils::isLogValid(z[ip1j]); + } + + ijm1 = getPointIndex(numX, numY, i, numY - 2); + ip1jm1 = getPointIndex(numX, numY, i + 1, numY - 2); + + jm1HorizontalEdgeZValid = DecompositionUtils::isValid(z[ijm1]) && DecompositionUtils::isValid(z[ip1jm1]); + + if (logMask & 0x4) + { + jm1HorizontalEdgeZValid &= (DecompositionUtils::isLogValid(z[ijm1]) && DecompositionUtils::isLogValid(z[ip1jm1])); + } + + jHorizontalEdgeZValid = lowerLeftZValid && lowerRightZValid; + + if (currentRowValid && (currentColumnValid && nextColumnValid) && jHorizontalEdgeZValid && (previousRowValid && jm1HorizontalEdgeZValid)) + { +#if PER_VERTEX_VALUES + buffer[bufferOffset] = ij; + buffer[bufferOffset + 1] = ip1j; +#else + firstVertexIndex = getFirstVertexIndex(numX, numY, i, numY - 2); + + buffer[bufferOffset] = firstVertexIndex + 2; + buffer[bufferOffset + 1] = firstVertexIndex + 3; +#endif + + bufferOffset += 2; + } + + currentColumnValid = nextColumnValid; + lowerLeftZValid = lowerRightZValid; + + ij = ip1j; + } + + return bufferOffset; +} + diff --git a/modules/graphic_objects/src/cpp/PolylineDecomposer.cpp b/modules/graphic_objects/src/cpp/PolylineDecomposer.cpp new file mode 100755 index 000000000..6a99f921f --- /dev/null +++ b/modules/graphic_objects/src/cpp/PolylineDecomposer.cpp @@ -0,0 +1,1735 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Pierre Lando + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <iostream> + +#include "DecompositionUtils.hxx" +#include "PolylineDecomposer.hxx" +#include "Triangulator.hxx" +#include "ColorComputer.hxx" + +extern "C" +{ +#include <math.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +} + +int PolylineDecomposer::getDataSize(int id) +{ + int nPoints = 0; + int *piNPoints = &nPoints; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int closed = 0; + int* piClosed = &closed; + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + /* If 0 points, 0 elements */ + if (nPoints == 0) + { + return 0; + } + + switch (polylineStyle) + { + case 1 : + /* Segments */ + return nPoints; + case 2 : + /* Staircase */ + if (closed) + { + return 2 * nPoints; + } + else + { + return (2 * nPoints) - 1; + } + case 3 : + /* Vertical segments plus segments */ + return 2 * nPoints; + case 4 : + /* Segments with arrow heads */ + { + int nArrowVertices; + /* The numbers of arrow head vertices and indices are exactly the same */ + nArrowVertices = PolylineDecomposer::getArrowTriangleIndicesSize(nPoints, closed); + + return nPoints + nArrowVertices; + } + case 5 : + /* Filled patch */ + return nPoints; + case 6 : + /* Vertical bars plus segments */ + return 5 * nPoints; + case 7 : + /* Horizontal bars plus segments */ + return 5 * nPoints; + default : + /* To be done: remaining styles */ + return 0; + } +} + +void PolylineDecomposer::fillVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, int logMask) +{ + double* t = NULL; + double* xshift = NULL; + double* yshift = NULL; + double* zshift = NULL; + + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + + int nPoints = 0; + int *piNPoints = &nPoints; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &t); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_X_COORDINATES_SHIFT__, jni_double_vector, (void**) &xshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y_COORDINATES_SHIFT__, jni_double_vector, (void**) &yshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double_vector, (void**) &zshift); + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + + switch (polylineStyle) + { + case 1 : + fillSegmentsDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 2 : + fillStairDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 3 : + fillVerticalLinesDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 4 : + fillSegmentsDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 5 : + fillSegmentsDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 6 : + fillVerticalBarsDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + case 7 : + fillHorizontalBarsDecompositionVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask, t, nPoints, xshift, yshift, zshift); + break; + } +} + +void PolylineDecomposer::fillSegmentsDecompositionVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + + int componentIndices[3]; + + // TODO Optimize ? (test if s = 1 and t = 0, coordinateMask = 0 ...) + for (int i = 0; i < nPoints; i++) + { + /* Offset of a polyline vertex */ + int v0 = elementsSize * i; + + componentIndices[0] = i; + componentIndices[1] = i; + componentIndices[2] = i; + + getAndWriteVertexToBuffer(buffer, v0, coordinates, componentIndices, nPoints, elementsSize, + xshift, yshift, zshift, coordinateMask, scale, translation, logMask); + } + +} + +void PolylineDecomposer::getAndWriteVertexToBuffer(float* buffer, int offset, double* coordinates, int* vertexIndices, int nPoints, int elementsSize, + double* xshift, double* yshift, double* zshift, int coordinateMask, double* scale, double* translation, int logMask) +{ + double coordinate = 0.; + + if (coordinateMask & 0x01) + { + coordinate = coordinates[vertexIndices[0]]; + + if (xshift != NULL) + { + coordinate += xshift[vertexIndices[0]]; + } + + if (logMask & 0x01) + { + coordinate = DecompositionUtils::getLog10Value(coordinate); + } + + buffer[offset + 0] = (float)(coordinate * scale[0] + translation[0]); + } + + if (coordinateMask & 0x02) + { + coordinate = coordinates[vertexIndices[1] + nPoints]; + + if (yshift != NULL) + { + coordinate += yshift[vertexIndices[1]]; + } + + if (logMask & 0x02) + { + coordinate = DecompositionUtils::getLog10Value(coordinate); + } + + buffer[offset + 1] = (float)(coordinate * scale[1] + translation[1]); + } + + if (coordinateMask & 0x04) + { + coordinate = coordinates[vertexIndices[2] + 2 * nPoints]; + + if (zshift != NULL) + { + coordinate += zshift[vertexIndices[2]]; + } + + if (logMask & 0x04) + { + coordinate = DecompositionUtils::getLog10Value(coordinate); + } + + buffer[offset + 2] = (float)(coordinate * scale[2] + translation[2]); + } + + if ((elementsSize == 4) && (coordinateMask & 0x08)) + { + buffer[offset + 3] = 1.0; + } + +} + +void PolylineDecomposer::fillStairDecompositionVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + int closed = 0; + int* piClosed = &closed; + + /* Offsets of the left and right vertices (respectively) */ + int v0 = 0; + int v1 = 0; + + int componentIndices[3]; + + if (nPoints == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + for (int i = 0; i < nPoints - 1; i++) + { + v0 = elementsSize * 2 * i; + v1 = elementsSize * (2 * i + 1); + + componentIndices[0] = i; + componentIndices[1] = i; + componentIndices[2] = i; + + getAndWriteVertexToBuffer(buffer, v0, coordinates, componentIndices, nPoints, elementsSize, xshift, yshift, zshift, coordinateMask, scale, translation, logMask); + + componentIndices[0] = i + 1; + componentIndices[1] = i; + componentIndices[2] = i; + + /* To be optimized: the y and z components are fetched and transformed twice */ + getAndWriteVertexToBuffer(buffer, v1, coordinates, componentIndices, nPoints, elementsSize, xshift, yshift, zshift, coordinateMask, scale, translation, logMask); + } + + /* Last point */ + v0 = elementsSize * 2 * (nPoints - 1); + + componentIndices[0] = nPoints - 1; + componentIndices[1] = nPoints - 1; + componentIndices[2] = nPoints - 1; + + getAndWriteVertexToBuffer(buffer, v0, coordinates, componentIndices, nPoints, elementsSize, xshift, yshift, zshift, coordinateMask, scale, translation, logMask); + + /* + * One additional vertex if closed + * Its x-coordinate is equal to the one of the polyline's first point + * whereas its y and z coordinates are equal to those of the last point. + */ + if (closed) + { + v0 = elementsSize * (2 * nPoints - 1); + + componentIndices[0] = 0; + componentIndices[1] = nPoints - 1; + componentIndices[2] = nPoints - 1; + + getAndWriteVertexToBuffer(buffer, v0, coordinates, componentIndices, nPoints, elementsSize, xshift, yshift, zshift, coordinateMask, scale, translation, logMask); + } + +} + +void PolylineDecomposer::fillVerticalLinesDecompositionVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + for (int i = 0; i < nPoints; i++) + { + /* Offsets of the lower and upper vertices (respectively) */ + int v0 = 0; + int v1 = 0; + + /* Coordinates of the lower and upper vertices (respectively) */ + double coord0 = 0.; + double coord1 = 0.; + + v0 = elementsSize * 2 * i; + v1 = elementsSize * (2 * i + 1); + + /* Lower and upper endpoints x coordinates */ + if (coordinateMask & 0x01) + { + coord0 = coordinates[i]; + coord1 = coordinates[i]; + + if (xshift != NULL) + { + coord0 += xshift[i]; + coord1 += xshift[i]; + } + + if (logMask & 0x01) + { + coord0 = DecompositionUtils::getLog10Value(coord0); + coord1 = DecompositionUtils::getLog10Value(coord1); + } + + buffer[v0 + 0] = (float)(coord0 * scale[0] + translation[0]); + buffer[v1 + 0] = (float)(coord1 * scale[0] + translation[0]); + } + + /* Lower and upper endpoints y coordinates */ + if (coordinateMask & 0x02) + { + coord0 = 0.0; + coord1 = coordinates[i + nPoints]; + + if (yshift != NULL) + { + /* + * Only the upper vertex's y coordinate is shifted, + * the lower vertex's one remains unchanged. + */ + coord1 += yshift[i]; + } + + if (logMask & 0x02) + { + /* The lower endpoint's y coordinate is unchanged (it amounts to log10(1), which is 0) */ + coord1 = DecompositionUtils::getLog10Value(coord1); + } + + buffer[v0 + 1] = (float)(coord0 * scale[1] + translation[1]); + buffer[v1 + 1] = (float)(coord1 * scale[1] + translation[1]); + } + + /* Lower and upper endpoints z coordinates */ + if (coordinateMask & 0x04) + { + coord0 = coordinates[2 * nPoints + i]; + coord1 = coordinates[2 * nPoints + i]; + + if (zshift != NULL) + { + coord0 += zshift[i]; + coord1 += zshift[i]; + } + + if (logMask & 0x04) + { + coord0 = DecompositionUtils::getLog10Value(coord0); + coord1 = DecompositionUtils::getLog10Value(coord1); + } + + buffer[v0 + 2] = (float)(coord0 * scale[2] + translation[2]); + buffer[v1 + 2] = (float)(coord1 * scale[2] + translation[2]); + } + + if ((elementsSize == 4) && (coordinateMask & 0x08)) + { + buffer[v0 + 3] = 1.0; + buffer[v1 + 3] = 1.0; + } + + } + +} + +void PolylineDecomposer::writeBarVerticesToBuffer(float* buffer, int* offsets, int componentOffset, double* coordinates, double shift, int shiftUsed, + double scale, double translation, int logUsed) +{ + if (shiftUsed) + { + coordinates[0] += shift; + coordinates[1] += shift; + coordinates[2] += shift; + coordinates[3] += shift; + + coordinates[4] += shift; + } + + if (logUsed) + { + coordinates[0] = DecompositionUtils::getLog10Value(coordinates[0]); + coordinates[1] = DecompositionUtils::getLog10Value(coordinates[1]); + coordinates[2] = DecompositionUtils::getLog10Value(coordinates[2]); + coordinates[3] = DecompositionUtils::getLog10Value(coordinates[3]); + + coordinates[4] = DecompositionUtils::getLog10Value(coordinates[4]); + } + + buffer[offsets[0] + componentOffset] = (float)(coordinates[0] * scale + translation); + buffer[offsets[1] + componentOffset] = (float)(coordinates[1] * scale + translation); + buffer[offsets[2] + componentOffset] = (float)(coordinates[2] * scale + translation); + buffer[offsets[3] + componentOffset] = (float)(coordinates[3] * scale + translation); + + buffer[offsets[4] + componentOffset] = (float)(coordinates[4] * scale + translation); +} + +void PolylineDecomposer::fillVerticalBarsDecompositionVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + double barWidth = 0.0; + double* pdBarWidth = &barWidth; + + int shiftUsed[3]; + int *piShiftUsed = NULL; + + /* + * Offsets of the lower-left, lower-right, upper-right and upper-left bar vertices (respectively) + * and of the polyline vertex proper + */ + int offsets[5]; + + /* + * {x,y or z}-component values of a bar's 4 vertices (same ordering as the offsets) + * and of the polyline vertex proper. + */ + double coords[5]; + + double shift = 0.; + + + getGraphicObjectProperty(id, __GO_BAR_WIDTH__, jni_double, (void**) &pdBarWidth); + + piShiftUsed = &shiftUsed[0]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + piShiftUsed = &shiftUsed[1]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + piShiftUsed = &shiftUsed[2]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + + + for (int i = 0; i < nPoints; i++) + { + offsets[0] = elementsSize * 4 * i; + offsets[1] = elementsSize * (4 * i + 1); + offsets[2] = elementsSize * (4 * i + 2); + offsets[3] = elementsSize * (4 * i + 3); + + offsets[4] = elementsSize * (4 * nPoints + i); + + if (coordinateMask & 0x01) + { + coords[0] = coordinates[i] - 0.5 * barWidth; + coords[1] = coordinates[i] + 0.5 * barWidth; + coords[2] = coordinates[i] + 0.5 * barWidth; + coords[3] = coordinates[i] - 0.5 * barWidth; + + coords[4] = coordinates[i]; + + if (shiftUsed[0]) + { + shift = xshift[i]; + } + + writeBarVerticesToBuffer(buffer, offsets, 0, coords, shift, shiftUsed[0], scale[0], translation[0], logMask & 0x01); + } + + if (coordinateMask & 0x02) + { + coords[0] = 0.0; + coords[1] = 0.0; + coords[2] = coordinates[i + nPoints]; + coords[3] = coordinates[i + nPoints]; + + coords[4] = coordinates[i + nPoints]; + + if (shiftUsed[1]) + { + shift = yshift[i]; + } + + if (logMask & 0x02) + { + /* + * The two lower endpoints' y coordinates must be set to 1 + * since writeBarVerticesToBuffer applies the logarithmic transformation. + */ + coords[0] = 1.0; + coords[1] = 1.0; + } + + writeBarVerticesToBuffer(buffer, offsets, 1, coords, shift, shiftUsed[1], scale[1], translation[1], logMask & 0x02); + } + + if (coordinateMask & 0x04) + { + coords[0] = coordinates[i + 2 * nPoints]; + coords[1] = coordinates[i + 2 * nPoints]; + coords[2] = coordinates[i + 2 * nPoints]; + coords[3] = coordinates[i + 2 * nPoints]; + + coords[4] = coordinates[i + 2 * nPoints]; + + if (shiftUsed[2]) + { + shift = zshift[i]; + } + + writeBarVerticesToBuffer(buffer, offsets, 2, coords, shift, shiftUsed[2], scale[2], translation[2], logMask & 0x04); + } + + if ((elementsSize == 4) && (coordinateMask & 0x08)) + { + buffer[offsets[0] + 3] = 1.0; + buffer[offsets[1] + 3] = 1.0; + buffer[offsets[2] + 3] = 1.0; + buffer[offsets[3] + 3] = 1.0; + + buffer[offsets[4] + 3] = 1.0; + } + + } + +} + +/* + * To do: -refactor with fillVerticalBarsDecompositionVertices as these two functions are very similar, possibly by implementing + a PolylineBarDecomposer class. +*/ +void PolylineDecomposer::fillHorizontalBarsDecompositionVertices(int id, float* buffer, int bufferLength, int elementsSize, int coordinateMask, double* scale, double* translation, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + double barWidth = 0.0; + double* pdBarWidth = &barWidth; + + int shiftUsed[3]; + int *piShiftUsed = NULL; + + /* + * Offsets of the lower-left, lower-right, upper-right and upper-left bar vertices (respectively) + * and of the polyline vertex proper + */ + int offsets[5]; + + /* + * {x,y or z}-component values of a bar's 4 vertices (same ordering as the offsets) + * and of the polyline vertex proper. + */ + double coords[5]; + + double shift = 0.; + + + getGraphicObjectProperty(id, __GO_BAR_WIDTH__, jni_double, (void**) &pdBarWidth); + + piShiftUsed = &shiftUsed[0]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + piShiftUsed = &shiftUsed[1]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + piShiftUsed = &shiftUsed[2]; + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__, jni_double_vector, (void**) &piShiftUsed); + + for (int i = 0; i < nPoints; i++) + { + offsets[0] = elementsSize * 4 * i; + offsets[1] = elementsSize * (4 * i + 1); + offsets[2] = elementsSize * (4 * i + 2); + offsets[3] = elementsSize * (4 * i + 3); + + offsets[4] = elementsSize * (4 * nPoints + i); + + /* The actual x coordinates correspond to the polyline's y coordinates. */ + if (coordinateMask & 0x01) + { + coords[0] = 0.0; + coords[1] = 0.0; + coords[2] = coordinates[i + nPoints]; + coords[3] = coordinates[i + nPoints]; + + coords[4] = coordinates[i]; + + if (shiftUsed[1]) + { + shift = yshift[i]; + } + + writeBarVerticesToBuffer(buffer, offsets, 0, coords, shift, shiftUsed[1], scale[0], translation[0], logMask & 0x01); + } + + /* The actual y coordinates correspond to the polyline's x coordinates. */ + if (coordinateMask & 0x02) + { + coords[0] = coordinates[i] - 0.5 * barWidth; + coords[1] = coordinates[i] + 0.5 * barWidth; + coords[2] = coordinates[i] + 0.5 * barWidth; + coords[3] = coordinates[i] - 0.5 * barWidth; + + coords[4] = coordinates[i + nPoints]; + + if (shiftUsed[0]) + { + shift = xshift[i]; + } + + if (logMask & 0x02) + { + /* + * The two lower endpoints' y coordinates must be set to 1 + * since writeBarVerticesToBuffer applies the logarithmic transformation. + */ + coords[0] = 1.0; + coords[1] = 1.0; + } + + writeBarVerticesToBuffer(buffer, offsets, 1, coords, shift, shiftUsed[0], scale[1], translation[1], logMask & 0x02); + } + + if (coordinateMask & 0x04) + { + coords[0] = coordinates[i + 2 * nPoints]; + coords[1] = coordinates[i + 2 * nPoints]; + coords[2] = coordinates[i + 2 * nPoints]; + coords[3] = coordinates[i + 2 * nPoints]; + + coords[4] = coordinates[i + 2 * nPoints]; + + if (shiftUsed[2]) + { + shift = zshift[i]; + } + + writeBarVerticesToBuffer(buffer, offsets, 2, coords, shift, shiftUsed[2], scale[2], translation[2], logMask & 0x04); + } + + if ((elementsSize == 4) && (coordinateMask & 0x08)) + { + buffer[offsets[0] + 3] = 1.0; + buffer[offsets[1] + 3] = 1.0; + buffer[offsets[2] + 3] = 1.0; + buffer[offsets[3] + 3] = 1.0; + + buffer[offsets[4] + 3] = 1.0; + } + + } + +} + +/* + * To do: + * -implement for the other relevant polyline style values. + * -fix the no colors written problem (related to polyline C build functions, see below). + */ +void PolylineDecomposer::fillColors(int id, float* buffer, int bufferLength, int elementsSize) +{ + int parent = 0; + int* pparent = &parent; + int parentFigure = 0; + int* pparentFigure = &parentFigure; + + int interpColorMode = 0; + int* piInterpColorMode = &interpColorMode; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int nPoints = 0; + int *piNPoints = &nPoints; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + int bufferOffset = 0; + int* interpColorVector = NULL; + + double* colormap = NULL; + + getGraphicObjectProperty(id, __GO_INTERP_COLOR_MODE__, jni_bool, (void**) &piInterpColorMode); + + if (interpColorMode == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + + if (polylineStyle != 1) + { + return; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + + /* + * In some cases, the polyline's parent figure may be unitialized, when this point is reached from the + * filled polygons build C functions (xfpolys, with several polygons and a color vector for each one). + * This check prevents from crashing when getting the colormap. However, it results in incorrectly + * black-filled polygons, as no colors are written. + * As the sequentially built polygons are inserted within a Compound object, the latter object may be + * still unattached to a Figure as its Polyline children are rendered. This occurs about once in 5 to 10, + * hence possibly caused by a race condition. + * To be fixed. + */ + if (parentFigure == 0) + { + return; + } + + /* + * The interpolated color vector is a 3- or 4-element vector. + * However, if nPoints is greater than 4, we choose to output + * 4 colors (this behaviour is kept for compatibility, see fillTriangleIndices). + */ + if (nPoints < 3) + { + return; + } + + getGraphicObjectProperty(id, __GO_INTERP_COLOR_VECTOR__, jni_int_vector, (void**) &interpColorVector); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + if (nPoints > 4) + { + nPoints = 4; + } + + for (int i = 0; i < nPoints; i++) + { + ColorComputer::getDirectColor((double) interpColorVector[i] - 1.0, colormap, colormapSize, &buffer[bufferOffset]); + + if (elementsSize == 4) + { + buffer[bufferOffset + 3] = 1.0; + } + + bufferOffset += elementsSize; + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); + releaseGraphicObjectProperty(__GO_INTERP_COLOR_VECTOR__, interpColorVector, jni_int_vector, 0); +} + +void PolylineDecomposer::fillTextureCoordinates(int id, float* buffer, int bufferLength) +{ + int parent = 0; + int* pparent = &parent; + int parentFigure = 0; + int* pparentFigure = &parentFigure; + + int interpColorMode = 0; + int* piInterpColorMode = &interpColorMode; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int nPoints = 0; + int *piNPoints = &nPoints; + int colormapSize = 0; + int* piColormapSize = &colormapSize; + int bufferOffset = 0; + int* interpColorVector = NULL; + + double* colormap = NULL; + + getGraphicObjectProperty(id, __GO_INTERP_COLOR_MODE__, jni_bool, (void**) &piInterpColorMode); + + if (interpColorMode == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + + if (polylineStyle != 1) + { + return; + } + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + parent = getParentObject(id); + + /* Temporary: to avoid getting a null parent_figure property when the object is built */ + if (parent == 0) + { + return; + } + + getGraphicObjectProperty(id, __GO_PARENT_FIGURE__, jni_int, (void**) &pparentFigure); + + /* + * In some cases, the polyline's parent figure may be unitialized, when this point is reached from the + * filled polygons build C functions (xfpolys, with several polygons and a color vector for each one). + * This check prevents from crashing when getting the colormap. However, it results in incorrectly + * black-filled polygons, as no colors are written. + * As the sequentially built polygons are inserted within a Compound object, the latter object may be + * still unattached to a Figure as its Polyline children are rendered. This occurs about once in 5 to 10, + * hence possibly caused by a race condition. + * To be fixed. + */ + if (parentFigure == 0) + { + return; + } + + /* + * The interpolated color vector is a 3- or 4-element vector. + * However, if nPoints is greater than 4, we choose to output + * 4 colors (this behaviour is kept for compatibility, see fillTriangleIndices). + */ + if (nPoints < 3) + { + return; + } + + getGraphicObjectProperty(id, __GO_INTERP_COLOR_VECTOR__, jni_int_vector, (void**) &interpColorVector); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP__, jni_double_vector, (void**) &colormap); + getGraphicObjectProperty(parentFigure, __GO_COLORMAP_SIZE__, jni_int, (void**) &piColormapSize); + + if (nPoints > 4) + { + nPoints = 4; + } + + for (int i = 0; i < nPoints; i++) + { + double index = (ColorComputer::getDirectIndex((double) interpColorVector[i] - 1.0, colormapSize) + 2.0 + COLOR_TEXTURE_OFFSET) / (double) (colormapSize + 2); + + buffer[bufferOffset] = (float)index; + buffer[bufferOffset + 1] = 0.0; + buffer[bufferOffset + 2] = 0.0; + buffer[bufferOffset + 3] = 1.0; + + bufferOffset += 4; + } + + releaseGraphicObjectProperty(__GO_COLORMAP__, colormap, jni_double_vector, colormapSize); + releaseGraphicObjectProperty(__GO_INTERP_COLOR_VECTOR__, interpColorVector, jni_int_vector, 0); +} + +/* + * To do: see fillIndices + * -take into account polyline_style. + */ +int PolylineDecomposer::getIndicesSize(int id) +{ + int nPoints = 0; + int *piNPoints = &nPoints; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int closed = 0; + int* piClosed = &closed; + + int nIndices = 0; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + /* No facets if 0 points */ + if (nPoints == 0) + { + return 0; + } + + /* Segments */ + if (polylineStyle == 1) + { + if (nPoints < 3) + { + return 0; + } + + /* Maximum number of triangles output by the triangulator */ + nIndices = 3 * (nPoints - 2); + } + /* Arrowed segments */ + else if (polylineStyle == 4) + { + nIndices = PolylineDecomposer::getArrowTriangleIndicesSize(nPoints, closed); + } + /* Filled patch */ + else if (polylineStyle == 5) + { + if (nPoints < 3) + { + return 0; + } + + /* Maximum number of triangles output by the triangulator */ + nIndices = 3 * (nPoints - 2); + } + /* Vertical bars plus segments */ + else if (polylineStyle == 6) + { + nIndices = PolylineDecomposer::getBarsDecompositionTriangleIndicesSize(nPoints); + } + /* Horizontal bars plus segments */ + else if (polylineStyle == 7) + { + nIndices = PolylineDecomposer::getBarsDecompositionTriangleIndicesSize(nPoints); + } + + return nIndices; +} + +int PolylineDecomposer::getArrowTriangleIndicesSize(int nPoints, int closed) +{ + int nIndices = 0; + + if (nPoints < 2) + { + nIndices = 0; + } + else + { + nIndices = 3 * (nPoints - 1); + + if (closed) + { + nIndices += 3; + } + } + + return nIndices; +} + +int PolylineDecomposer::getBarsDecompositionTriangleIndicesSize(int nPoints) +{ + return 2 * 3 * nPoints; +} + +/* + * To do: + * -take into account the polyline style property (note: vertical bars -style 6- are filled + * whatever fill_mode's value), by implementing the relevant functions (see fillTriangleIndices), + * as the curve must be filled if fill_mode set to on, whatever its polyline style value. + */ +int PolylineDecomposer::fillIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* coordinates = NULL; + double* xshift = NULL; + double* yshift = NULL; + double* zshift = NULL; + + int nPoints = 0; + int* piNPoints = &nPoints; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int fillMode = 0; + int* piFillMode = &fillMode; + + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &coordinates); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + getGraphicObjectProperty(id, __GO_DATA_MODEL_X_COORDINATES_SHIFT__, jni_double_vector, (void**) &xshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y_COORDINATES_SHIFT__, jni_double_vector, (void**) &yshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double_vector, (void**) &zshift); + + getGraphicObjectProperty(id, __GO_FILL_MODE__, jni_bool, (void**) &piFillMode); + + /* 0 triangles if 0 points */ + if (nPoints == 0) + { + return 0; + } + + switch (polylineStyle) + { + case 1 : + return fillTriangleIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, fillMode, polylineStyle); + case 4 : + return fillArrowTriangleIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift); + case 5 : + /* Set fill mode to on, since patches are always filled whatever fill mode's value */ + return fillTriangleIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, 1, polylineStyle); + case 6 : + return fillBarsDecompositionTriangleIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift); + case 7 : + return fillBarsDecompositionTriangleIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift); + } + + return 0; +} + +int PolylineDecomposer::fillTriangleIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift, int fillMode, int polylineStyle) +{ + double coords[4][3]; + + int interpColorMode = 0; + int* piInterpColorMode = &interpColorMode; + int triangulate = 0; + + int isValid = 0; + int tmpValid = 0; + int nIndices = 0; + + /* At least 3 points needed */ + if (nPoints < 3) + { + return 0; + } + + if (fillMode == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_INTERP_COLOR_MODE__, jni_bool, (void**) &piInterpColorMode); + + /* + * Do not triangulate if the interpolated color mode is set to 'on' and the polyline style is filled patch (5). + * The quadrilateral facet decomposition function is used instead, if nPoints == 4, + * for compatibility reasons, although triangulation could be used. + */ + if (interpColorMode && polylineStyle != 5) + { + triangulate = 0; + } + else if (nPoints > 3) + { + /* Perform triangulation only if more than 3 points */ + triangulate = 1; + } + + if (triangulate) + { + Triangulator triangulator; + int numTriangles; + int* indices; + + isValid = 1; + + for (int i = 0; i < nPoints; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i, &coords[0][0], &coords[0][1], &coords[0][2]); + + tmpValid = DecompositionUtils::isValid(coords[0][0], coords[0][1], coords[0][2]); + + if (logMask) + { + tmpValid &= DecompositionUtils::isLogValid(coords[0][0], coords[0][1], coords[0][2], logMask); + + if (logMask & 0x01) + { + coords[0][0] = DecompositionUtils::getLog10Value(coords[0][0]); + } + + if (logMask & 0x02) + { + coords[0][1] = DecompositionUtils::getLog10Value(coords[0][1]); + } + + if (logMask & 0x04) + { + coords[0][2] = DecompositionUtils::getLog10Value(coords[0][2]); + } + } + + isValid &= tmpValid; + + if (!isValid) + { + break; + } + + triangulator.addPoint(coords[0][0], coords[0][1], coords[0][2]); + } + + if (!isValid) + { + return 0; + } + + /* Triangulate */ + triangulator.initialize(); + triangulator.triangulate(); + + numTriangles = triangulator.getNumberTriangles(); + indices = triangulator.getIndices(); + + for (int i = 0; i < numTriangles; i++) + { + buffer[3 * i] = indices[3 * i]; + buffer[3 * i + 1] = indices[3 * i + 1]; + buffer[3 * i + 2] = indices[3 * i + 2]; + nIndices += 3; + } + + triangulator.clear(); + + return nIndices; + } + else + { + /* Do not triangulate: either the interpolation color mode is set to on or it is not and there are only 3 points. */ + + /* 3 points: only one triangle output */ + if (nPoints == 3) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 0, &coords[0][0], &coords[0][1], &coords[0][2]); + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 1, &coords[1][0], &coords[1][1], &coords[1][2]); + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 2, &coords[2][0], &coords[2][1], &coords[2][2]); + + tmpValid = DecompositionUtils::isValid(coords[0][0], coords[0][1], coords[0][2]); + tmpValid &= DecompositionUtils::isValid(coords[1][0], coords[1][1], coords[1][2]); + tmpValid &= DecompositionUtils::isValid(coords[2][0], coords[2][1], coords[2][2]); + + isValid = tmpValid; + + if (logMask) + { + tmpValid = DecompositionUtils::isLogValid(coords[0][0], coords[0][1], coords[0][2], logMask); + tmpValid &= DecompositionUtils::isLogValid(coords[1][0], coords[1][1], coords[1][2], logMask); + tmpValid &= DecompositionUtils::isLogValid(coords[2][0], coords[2][1], coords[2][2], logMask); + isValid &= tmpValid; + } + + if (isValid) + { + buffer[0] = 0; + buffer[1] = 1; + buffer[2] = 2; + + nIndices += 3; + } + } + else if (nPoints >= 4) + { + /* + * 4 points: the quadrilateral facet decomposition algorithm is used. + * If the Polyline has more than 4 points, we still output two triangles + * corresponding to the first 4 points. This behaviour is kept for compatibility. + * Possible correction: do not output indices if there are more than 4 points and + * the interpolation color mode is set to on. + */ + int facetVertexIndices[4] = {0, 1, 2, 3}; + + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 0, &coords[0][0], &coords[0][1], &coords[0][2]); + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 1, &coords[1][0], &coords[1][1], &coords[1][2]); + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 2, &coords[2][0], &coords[2][1], &coords[2][2]); + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 3, &coords[3][0], &coords[3][1], &coords[3][2]); + + tmpValid = DecompositionUtils::isValid(coords[0][0], coords[0][1], coords[0][2]); + tmpValid &= DecompositionUtils::isValid(coords[1][0], coords[1][1], coords[1][2]); + tmpValid &= DecompositionUtils::isValid(coords[2][0], coords[2][1], coords[2][2]); + tmpValid &= DecompositionUtils::isValid(coords[3][0], coords[3][1], coords[3][2]); + + isValid = tmpValid; + + if (logMask) + { + tmpValid = DecompositionUtils::isLogValid(coords[0][0], coords[0][1], coords[0][2], logMask); + tmpValid &= DecompositionUtils::isLogValid(coords[1][0], coords[1][1], coords[1][2], logMask); + tmpValid &= DecompositionUtils::isLogValid(coords[2][0], coords[2][1], coords[2][2], logMask); + tmpValid &= DecompositionUtils::isLogValid(coords[3][0], coords[3][1], coords[3][2], logMask); + isValid &= tmpValid; + } + + if (isValid) + { + DecompositionUtils::getDecomposedQuadTriangleIndices(coords, facetVertexIndices, buffer); + nIndices += 6; + } + } + + } + + return nIndices; +} + +int PolylineDecomposer::fillArrowTriangleIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + int closed = 0; + int* piClosed = &closed; + + int currentValid = 0; + int nextValid = 0; + + int firstArrowVertex = 0; + int nArrows = 0; + + int offset = 0; + int numberValidIndices = 0; + + /* At least 2 points needed to form segments */ + if (nPoints < 2) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + /* If closed, an additional segment is present */ + if (closed) + { + nArrows = nPoints; + } + else + { + nArrows = nPoints - 1; + } + + /* + * Arrow head vertices are stored consecutively after all the line vertices. + * Hence the offset to the first arrow vertex. + */ + firstArrowVertex = nPoints; + + for (int i = 0; i < nArrows; i++) + { + /* Indices of the tip, left and right vertices */ + int n = 3 * i; + buffer[n] = firstArrowVertex + n; + buffer[n + 1] = buffer[n] + 1; + buffer[n + 2] = buffer[n] + 2; + } + + return 3 * nArrows; +} + +/* + * Only bars are filled at the present moment, the curve is not. + * See fillTriangleIndices for more information. + */ +int PolylineDecomposer::fillBarsDecompositionTriangleIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift) +{ + double barWidth = 0.0; + double* pdBarWidth = &barWidth; + double coordsi[3]; + + int triangleIndices[6]; + int offset = 0; + int numberValidIndices = 0; + + if (nPoints == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_BAR_WIDTH__, jni_double, (void**) &pdBarWidth); + + /* 0 indices if the bar width is invalid, as it is the same for all bars. */ + if (!DecompositionUtils::isValid(barWidth)) + { + return 0; + } + + /* + * Gets the indices corresponding to a rectangle decomposed into 2 triangles. + * All the bars are decomposed the same way. + */ + DecompositionUtils::getDecomposedRectangleTriangleIndices(triangleIndices); + + /* Bars */ + for (int i = 0; i < nPoints; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i, &coordsi[0], &coordsi[1], &coordsi[2]); + + if (DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2])) + { + if (logMask && !DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask)) + { + continue; + } + + buffer[6 * offset] = 4 * i + triangleIndices[0]; + buffer[6 * offset + 1] = 4 * i + triangleIndices[1]; + buffer[6 * offset + 2] = 4 * i + triangleIndices[2]; + buffer[6 * offset + 3] = 4 * i + triangleIndices[3]; + buffer[6 * offset + 4] = 4 * i + triangleIndices[4]; + buffer[6 * offset + 5] = 4 * i + triangleIndices[5]; + + numberValidIndices += 6; + offset++; + } + + } + + return numberValidIndices; +} + +int PolylineDecomposer::getWireIndicesSize(int id) +{ + int nPoints = 0; + int *piNPoints = &nPoints; + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + + int lineMode = 0; + int* piLineMode = &lineMode; + + int closed = 0; + int* piClosed = &closed; + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + getGraphicObjectProperty(id, __GO_LINE_MODE__, jni_bool, (void**) &piLineMode); + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + /* No segments if 0 points */ + if (nPoints == 0) + { + return 0; + } + + switch (polylineStyle) + { + case 1: + /* Segments */ + return getSegmentsDecompositionSegmentIndicesSize(nPoints, lineMode, closed); + case 2 : + /* Staircase */ + return getStairDecompositionSegmentIndicesSize(nPoints, lineMode, closed); + case 3 : + /* Vertical segments plus segments */ + return getVerticalLinesDecompositionSegmentIndicesSize(nPoints, lineMode); + case 4 : + /* Segments with arrow heads */ + return getSegmentsDecompositionSegmentIndicesSize(nPoints, lineMode, closed); + case 5 : + /* Filled patch */ + return getSegmentsDecompositionSegmentIndicesSize(nPoints, lineMode, closed); + case 6 : + /* Vertical bars plus segments */ + return getBarsDecompositionSegmentIndicesSize(nPoints, lineMode); + case 7 : + /* Horizontal bars plus segments */ + return getBarsDecompositionSegmentIndicesSize(nPoints, lineMode); + } + + return 0; +} + +int PolylineDecomposer::getSegmentsDecompositionSegmentIndicesSize(int nPoints, int lineMode, int closed) +{ + if (nPoints < 2) + { + return 0; + } + + if (lineMode) + { + if (closed) + { + return nPoints + 1; + } + else + { + return nPoints; + } + } + else + { + return 0; + } +} + +int PolylineDecomposer::getStairDecompositionSegmentIndicesSize(int nPoints, int lineMode, int closed) +{ + if (nPoints < 2) + { + return 0; + } + + if (lineMode) + { + if (closed) + { + return 2 * nPoints + 1; + } + else + { + return 2 * nPoints - 1; + } + } + else + { + return 0; + } +} + +int PolylineDecomposer::getVerticalLinesDecompositionSegmentIndicesSize(int nPoints, int lineMode) +{ + if (nPoints == 0) + { + return 0; + } + + if (lineMode) + { + return 2 * (nPoints) + 2 * (nPoints - 1); + } + else + { + return 2 * (nPoints); + } +} + +int PolylineDecomposer::getBarsDecompositionSegmentIndicesSize(int nPoints, int lineMode) +{ + if (nPoints == 0) + { + return 0; + } + + if (lineMode) + { + return 2 * 4 * (nPoints) + 2 * (nPoints - 1); + } + else + { + return 2 * 4 * (nPoints); + } +} + +int PolylineDecomposer::fillWireIndices(int id, int* buffer, int bufferLength, int logMask) +{ + double* coordinates = NULL; + double* xshift = NULL; + double* yshift = NULL; + double* zshift = NULL; + + int polylineStyle = 0; + int* piPolylineStyle = &polylineStyle; + int nPoints = 0; + int* piNPoints = &nPoints; + int closed = 0; + int* piClosed = &closed; + int lineMode = 0; + int* piLineMode = &lineMode; + + getGraphicObjectProperty(id, __GO_POLYLINE_STYLE__, jni_int, (void**) &piPolylineStyle); + + getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**) &coordinates); + getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**) &piNPoints); + getGraphicObjectProperty(id, __GO_DATA_MODEL_X_COORDINATES_SHIFT__, jni_double_vector, (void**) &xshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Y_COORDINATES_SHIFT__, jni_double_vector, (void**) &yshift); + getGraphicObjectProperty(id, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double_vector, (void**) &zshift); + + getGraphicObjectProperty(id, __GO_LINE_MODE__, jni_bool, (void**) &piLineMode); + getGraphicObjectProperty(id, __GO_CLOSED__, jni_bool, (void**) &piClosed); + + switch (polylineStyle) + { + case 1 : + return fillSegmentsDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode, closed); + case 2 : + return fillStairDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode, closed); + case 3 : + return fillVerticalLinesDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode); + case 4 : + return fillSegmentsDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode, closed); + case 5 : + return fillSegmentsDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode, closed); + case 6 : + return fillBarsDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode); + case 7 : + return fillBarsDecompositionSegmentIndices(id, buffer, bufferLength, logMask, coordinates, nPoints, xshift, yshift, zshift, lineMode); + } + + return 0; +} + +int PolylineDecomposer::fillSegmentsDecompositionSegmentIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift, int lineMode, int closed) +{ + /* If less than 2 points, no segments */ + if (nPoints < 2) + { + return 0; + } + + if (lineMode == 0) + { + return 0; + } + + for (int i = 0; i < nPoints; i++) + { + buffer[i] = i; + } + + if (closed) + { + buffer[nPoints] = 0; + } + + return closed ? (nPoints + 1) : nPoints; +} + +int PolylineDecomposer::fillStairDecompositionSegmentIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift, int lineMode, int closed) +{ + int currentValid = 0; + int middleVertexValid = 0; + int nextValid = 0; + + int offset = 0; + int numberValidIndices = 0; + + /* If less than 2 points, no segments */ + if (nPoints < 2) + { + return 0; + } + + if (lineMode == 0) + { + return 0; + } + + for (int i = 0; i < 2 * nPoints - 1; i++) + { + buffer[i] = i; + } + + if (closed) + { + buffer[2 * nPoints - 1] = 2 * nPoints - 1; + buffer[2 * nPoints] = 0; + } + + return closed ? (2 * nPoints + 1) : (2 * nPoints - 1); +} + +int PolylineDecomposer::fillVerticalLinesDecompositionSegmentIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift, int lineMode) +{ + double coordsi[3]; + + int offset = 0; + int numberValidIndices = 0; + + if (nPoints == 0) + { + return 0; + } + + /* Vertical lines */ + for (int i = 0; i < nPoints; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i, &coordsi[0], &coordsi[1], &coordsi[2]); + + if (DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2])) + { + if (logMask && !DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask)) + { + continue; + } + + buffer[2 * offset] = 2 * i; + buffer[2 * offset + 1] = 2 * i + 1; + + numberValidIndices += 2; + offset++; + } + + } + + if (lineMode) + { + int currentValid; + int nextValid; + + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 0, &coordsi[0], &coordsi[1], &coordsi[2]); + + currentValid = DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2]); + + if (logMask) + { + currentValid &= DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask); + } + + for (int i = 0; i < nPoints - 1; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i + 1, &coordsi[0], &coordsi[1], &coordsi[2]); + + nextValid = DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2]); + + if (logMask) + { + nextValid &= DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask); + } + + if (currentValid && nextValid) + { + buffer[2 * offset] = 2 * i + 1; + buffer[2 * offset + 1] = 2 * (i + 1) + 1; + + numberValidIndices += 2; + offset++; + } + + currentValid = nextValid; + } + } + + return numberValidIndices; +} + + +int PolylineDecomposer::fillBarsDecompositionSegmentIndices(int id, int* buffer, int bufferLength, + int logMask, double* coordinates, int nPoints, double* xshift, double* yshift, double* zshift, int lineMode) +{ + double barWidth = 0.0; + double* pdBarWidth = &barWidth; + double coordsi[3]; + + int barWidthValid = 0; + int offset = 0; + int numberValidIndices = 0; + + if (nPoints == 0) + { + return 0; + } + + getGraphicObjectProperty(id, __GO_BAR_WIDTH__, jni_double, (void**) &pdBarWidth); + + barWidthValid = DecompositionUtils::isValid(barWidth); + + /* 0 bar segment indices if the bar width is invalid, as it is the same for all bars. */ + if (barWidthValid) + { + /* Bars */ + for (int i = 0; i < nPoints; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i, &coordsi[0], &coordsi[1], &coordsi[2]); + + if (DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2])) + { + if (logMask && !DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask)) + { + continue; + } + + buffer[8 * offset] = 4 * i; + buffer[8 * offset + 1] = 4 * i + 1; + buffer[8 * offset + 2] = 4 * i + 1; + buffer[8 * offset + 3] = 4 * i + 2; + buffer[8 * offset + 4] = 4 * i + 2; + buffer[8 * offset + 5] = 4 * i + 3; + buffer[8 * offset + 6] = 4 * i + 3; + buffer[8 * offset + 7] = 4 * i; + + numberValidIndices += 8; + offset++; + } + + } + + } + + /* Lines */ + if (lineMode) + { + int loffset = 0; + + int currentValid; + int nextValid; + + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, 0, &coordsi[0], &coordsi[1], &coordsi[2]); + + currentValid = DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2]); + + if (logMask) + { + currentValid &= DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask); + } + + for (int i = 0; i < nPoints - 1; i++) + { + getShiftedPolylinePoint(coordinates, xshift, yshift, zshift, nPoints, i + 1, &coordsi[0], &coordsi[1], &coordsi[2]); + + nextValid = DecompositionUtils::isValid(coordsi[0], coordsi[1], coordsi[2]); + + if (logMask) + { + nextValid &= DecompositionUtils::isLogValid(coordsi[0], coordsi[1], coordsi[2], logMask); + } + + if (currentValid && nextValid) + { + buffer[8 * offset + 2 * loffset] = 4 * nPoints + i; + buffer[8 * offset + 2 * loffset + 1] = 4 * nPoints + i + 1; + + numberValidIndices += 2; + loffset++; + } + + currentValid = nextValid; + } + } + + return numberValidIndices; +} + +void PolylineDecomposer::getShiftedPolylinePoint(double* coordinates, double* xshift, double* yshift, double* zshift, int nPoints, int index, + double* x, double* y, double* z) +{ + *x = coordinates[index]; + + if (xshift != NULL) + { + *x += xshift[index]; + } + + *y = coordinates[index + nPoints]; + + if (yshift != NULL) + { + *y += yshift[index]; + } + + *z = coordinates[index + 2 * nPoints]; + + if (zshift != NULL) + { + *z += zshift[index]; + } +} diff --git a/modules/graphic_objects/src/cpp/ScilabView.cpp b/modules/graphic_objects/src/cpp/ScilabView.cpp new file mode 100755 index 000000000..97a6452f5 --- /dev/null +++ b/modules/graphic_objects/src/cpp/ScilabView.cpp @@ -0,0 +1,716 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <algorithm> +#include <iostream> +#include <map> +#include <list> +#include <cstring> +#include <limits.h> + +#include "ScilabView.hxx" +#include "CallGraphicController.hxx" + +extern "C" +{ +#include "CurrentObject.h" +#include "createGraphicObject.h" +#include "setGraphicObjectProperty.h" +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "getScilabJavaVM.h" +#include "deleteGraphicObject.h" +#include "MALLOC.h" +} + +/** + * C Wrapping functions + * \{ + */ +void ScilabNativeView__createObject(int iUID) +{ + ScilabView::createObject(iUID); +} + +void ScilabNativeView__deleteObject(int iUID) +{ + ScilabView::deleteObject(iUID); +} + +void ScilabNativeView__updateObject(int iUID, int iProperty) +{ + ScilabView::updateObject(iUID, iProperty); +} + +void ScilabNativeView__setCurrentFigure(int iUID) +{ + ScilabView::setCurrentFigure(iUID); +} + +void ScilabNativeView__setCurrentSubWin(int iUID) +{ + ScilabView::setCurrentSubWin(iUID); +} + +void ScilabNativeView__setCurrentObject(int iUID) +{ + ScilabView::setCurrentObject(iUID); +} + +int ScilabNativeView__getValidDefaultFigureId() +{ + return ScilabView::getValidDefaultFigureId(); +} + +int ScilabNativeView__getFigureFromIndex(int figNum) +{ + return ScilabView::getFigureFromIndex(figNum); +} + +/** + * \} + */ + +int ScilabView::getValidDefaultFigureId() +{ + if (m_figureList.empty()) + { + return 0; + } + else + { + int max = INT_MIN; + for (__figureList_iterator it = m_figureList.begin(); it != m_figureList.end(); ++it) + { + if (it->second > max) + { + max = it->second; + } + } + + return max + 1; + } +} + +bool ScilabView::isEmptyFigureList() +{ + return m_figureList.empty(); +} + +int ScilabView::getFigureFromIndex(int figNum) +{ + __figureList_iterator it; + + for (it = m_figureList.begin(); it != m_figureList.end(); ++it) + { + if (it->second == figNum) + { + return it->first; + } + } + return 0; +} + +bool ScilabView::existsFigureId(int id) +{ + __figureList_iterator it; + + for (it = m_figureList.begin(); it != m_figureList.end(); ++it) + { + if (it->second == id) + { + return true; + } + } + return false; +} + +void ScilabView::getFiguresId(int ids[]) +{ + //__figureList_iterator it; + //int i = (int)(m_figureList.size() - 1); + + //for (it = m_figureList.begin(); it != m_figureList.end(); ++it, --i) + //{ + // //std::cerr << "[ScilabView] DEBUG " << it->first << " <-> " << it->second << std::endl; + // ids[i] = it->second; + //} + + __figureList_reverse_iterator it; + int i = (int)(m_figureList.size() - 1); + + for (it = m_figureList.rbegin(); it != m_figureList.rend(); ++it, --i) + { + //std::cerr << "[ScilabView] DEBUG " << it->first << " <-> " << it->second << std::endl; + ids[i] = it->second; + } +} + +int ScilabView::getNbFigure(void) +{ + return (int)m_figureList.size(); +} + +void ScilabView::createObject(int iUID) +{ + //std::cerr << "[ScilabView] ++ createObject UID=" << iUID << std::endl; + int iType = -1; + int *piType = &iType; + + getGraphicObjectProperty(iUID, __GO_TYPE__, jni_int, (void **)&piType); + if (iType != -1 && iType == __GO_FIGURE__) + { + m_figureList[iUID] = -1; + setCurrentFigure(iUID); + } + + // Register object handle. + getObjectHandle(iUID); + + PathItem* item = new PathItem(); + item->uid = iUID; + + m_pathList[iUID] = item; + + m_userdata[iUID]; //create an empty vector<int> + + //get existing information from current object + updateObject(iUID, __GO_PARENT__); + updateObject(iUID, __GO_CHILDREN__); + updateObject(iUID, __GO_TAG__); +} + +void ScilabView::deleteObject(int iUID) +{ + //std::cerr << "[ScilabView] -- deleteObject UID=" << iUID << std::endl; + int iType = -1; + int *piType = &iType; + int iParentUID = 0; + + /* + ** If deleting a figure, remove from figure list. + */ + m_figureList.erase(iUID); + + /* + ** If deleting current figure find another current one, + ** if there is no more figure : NULL + */ + if (m_currentFigure == iUID) // Deleting current figure + { + int iAxesUID = 0; + int* piAxesUID = &iAxesUID; + + if (getNbFigure() != 0) + { + m_currentFigure = m_figureList.begin()->first; + getGraphicObjectProperty(m_currentFigure, __GO_SELECTED_CHILD__, jni_int, (void**)&piAxesUID); + setCurrentSubWin(iAxesUID); + } + else + { + setCurrentFigure(0); + setCurrentSubWin(0); + } + } + + /* + ** If deleting current entity, set parent as new current. + */ + if (m_currentObject == iUID) // Deleting current object + { + iParentUID = getParentObject(iUID); + setCurrentObject(iParentUID); + } + + // Remove the corresponding handle. + __handleList_iterator it = m_handleList.find(iUID); + if (it != m_handleList.end()) + { + m_uidList.erase(it->second); + m_handleList.erase(it); + } + + deleteDataObject(iUID); + + m_pathList.erase(iUID); + m_userdata.erase(iUID); +} + +void ScilabView::updateObject(int iUID, int iProperty) +{ + //std::cerr << "[ScilabView] == updateObject UID=" << iUID << " PROPERTY=" << pstProperty << std::endl; + + /* + ** Take care of update if the value update is ID and object type is a Figure I manage. + */ + switch (iProperty) + { + case __GO_ID__ : + { + if (m_figureList.find(iUID) != m_figureList.end()) + { + int iNewId = 0; + int *piNewId = &iNewId; + + getGraphicObjectProperty(iUID, __GO_ID__, jni_int, (void **)&piNewId); + + m_figureList[iUID] = iNewId; + //std::cerr << "### [ScilabView] updateMap UID=" << iUID << " id=" << iNewId << std::endl; + } + break; + } + case __GO_CHILDREN__ : + { + int childrenCount = 0; + int* pChildrenCount = &childrenCount; + getGraphicObjectProperty(iUID, __GO_CHILDREN_COUNT__, jni_int, (void**)&pChildrenCount); + + __pathList_iterator it = m_pathList.find(iUID); + if (it != m_pathList.end()) + { + //update existing item + + PathItem* item = (*it).second; + //reset children + item->children.clear(); + if (childrenCount != 0) + { + int* children = NULL; + getGraphicObjectProperty(iUID, __GO_CHILDREN__, jni_int_vector, (void**)&children); + item->children.assign(children, children + childrenCount); + } + } + break; + } + case __GO_PARENT__ : + { + int iParent = 0; + int* piParent = &iParent; + getGraphicObjectProperty(iUID, __GO_PARENT__, jni_int, (void**)&piParent); + + __pathList_iterator it = m_pathList.find(iUID); + + if (it != m_pathList.end()) + { + //update existing item + + PathItem* item = (*it).second; + item->parent = iParent; + } + break; + } + case __GO_TAG__ : + { + int iType = 0; + int* piType = &iType; + getGraphicObjectProperty(iUID, __GO_TYPE__, jni_int, (void**)&piType); + + char* tag = NULL; + getGraphicObjectProperty(iUID, __GO_TAG__, jni_string, (void**)&tag); + + if (tag[0] != 0 && iType == __GO_FIGURE__) + { + //not empty string + + //add figure in list of path starter + m_pathFigList[tag] = iUID; + } + + __pathList_iterator it = m_pathList.find(iUID); + + if (it != m_pathList.end()) + { + //update existing item + + PathItem* item = (*it).second; + item->tag = tag; + free(tag); + } + break; + } + default: + break; + } +} + +/* +** Register ScilabView to Controller. +** Must be done after Graphics models are created. +*/ +void ScilabView::registerToController(void) +{ + org_scilab_modules_graphic_objects::CallGraphicController::registerScilabView(getScilabJavaVM()); + m_figureList.get_allocator().allocate(4096); + m_handleList.get_allocator().allocate(4096); + m_uidList.get_allocator().allocate(4096); +} + +/* +** Reove ScilabView from Controller. +*/ +void ScilabView::unregisterToController(void) +{ + org_scilab_modules_graphic_objects::CallGraphicController::unregisterScilabView(getScilabJavaVM()); +} + +/* +** Set Current Figure UID +*/ +void ScilabView::setCurrentFigure(int UID) +{ + m_currentFigure = UID; +} + +/* +** Get Current Figure UID +*/ +int ScilabView::getCurrentFigure() +{ + //std::cerr << "[ScilaView] currentFigure = " << (m_currentFigure == 0 ? "NULL !!" : m_currentFigure) << std::endl; + return m_currentFigure; +} + +/* +** Set Current Object UID +*/ +void ScilabView::setCurrentObject(int UID) +{ + m_currentObject = UID; +} + +/* +** Get Current Figure UID +*/ +int ScilabView::getCurrentObject() +{ + //std::cerr << "[ScilaView] currentObject = " << m_currentObject << std::endl; + return m_currentObject; +} + +/* +** Set Current SubWin UID +*/ +void ScilabView::setCurrentSubWin(int UID) +{ + m_currentSubWin = UID; +} + +/* +** Get Current Figure UID +*/ +int ScilabView::getCurrentSubWin() +{ + //std::cerr << "[ScilaView] currentSubWin = " << m_currentSubWin << std::endl; + return m_currentSubWin; +} + +/* +** Scilab only can store long as handle +*/ +long ScilabView::getObjectHandle(int UID) +{ + /* + * if (UID != NULL) + * { + * std::cerr << "UID = " << UID << std::endl; + * } + * else + * { + * std::cerr << "UID is null :-S" << std::endl; + * } + * __handleList_iterator it2; + * std::cerr << "[DEBUG] +++ handleMap +++" << std::endl; + * for (it2 = m_handleList.begin() ; it2 != m_handleList.end() ; ++it2) + * { + * std::cerr << "UID " << it2->first << " <-> handle " << it2->second << std::endl; + * } + * std::cerr << "[DEBUG] +++ handleMap +++" << std::endl; + */ + __handleList_iterator it = m_handleList.find(UID); + + if (it != m_handleList.end()) + { + return it->second; + } + + // increase maximum value + // register new handle and return it. + m_topHandleValue++; + m_handleList[UID] = m_topHandleValue; + m_uidList[m_topHandleValue] = UID; + + return m_topHandleValue; +} + +int ScilabView::getObjectFromHandle(long handle) +{ + __uidList_iterator it = m_uidList.find(handle); + if (it == m_uidList.end()) + { + return 0; + } + + return it->second; +} + +int ScilabView::getFigureModel(void) +{ + //std::cerr << "[ScilabView] getFigureModel = " << (m_figureModel == 0 ? "!! NULL !!" : m_figureModel) << std::endl; + return m_figureModel; +} + +void ScilabView::setFigureModel(int UID) +{ + m_figureModel = UID; +} + +int ScilabView::getAxesModel(void) +{ + //std::cerr << "[ScilabView] getAxesModel = " << (m_axesModel == 0 ? "!! NULL !!" : m_axesModel) << std::endl; + return m_axesModel; +} + +void ScilabView::setAxesModel(int UID) +{ + m_axesModel = UID; +} + +PathItem* ScilabView::getItem(int uid) +{ + __pathList_iterator it = m_pathList.find(uid); + if (it != m_pathList.end()) + { + return it->second; + } + + return NULL; +} + +PathItem* ScilabView::getItem(std::string _pstTag) +{ + std::list<int> ignored; + return getItem(_pstTag, ignored); +} + +PathItem* ScilabView::getItem(std::string _pstTag, std::list<int>& _ignoredList) +{ + __pathList_iterator it = m_pathList.begin(); + for (; it != m_pathList.end(); it++) + { + PathItem * item = it->second; + if (item->tag == _pstTag) + { + if (std::find(_ignoredList.begin(), _ignoredList.end(), item->uid) == _ignoredList.end()) + { + return item; + } + } + } + return NULL; +} + +PathItem* ScilabView::getFigureItem(std::string _pstTag) +{ + + __pathFigList_iterator it = m_pathFigList.find(_pstTag); + if (it != m_pathFigList.end()) + { + return getItem(it->second); + } + + return NULL; +} + +int ScilabView::search_path(char* _pstPath) +{ + //copy string to protect it against strtok + char* pstPath = strdup(_pstPath); + std::list<int> ignoredList; + PathItem* path = NULL; + char* pstSubPath = strtok(pstPath, "/"); + bool bDeep = false; + while (pstSubPath != NULL) + { + if (pstSubPath[0] == 0) + { + //"" ? + break; + } + + if (pstSubPath[0] != '*') + { + //search in direct children + if (path == NULL) + { + path = ScilabView::getFigureItem(pstSubPath); + if (path == NULL) + { + path = ScilabView::getItem(pstSubPath, ignoredList); + if (path == NULL) + { + break; + } + } + + //if figure is in ignore list, reeturn not found + if (std::find(ignoredList.begin(), ignoredList.end(), path->uid) != ignoredList.end()) + { + return 0; + } + } + else + { + PathItem* newPath = search_children(path, pstSubPath, bDeep, ignoredList); + if (newPath == NULL) + { + //flag handle to ignore and restart parsing + ignoredList.push_back(path->uid); + pstPath = strdup(_pstPath); + pstSubPath = strtok(pstPath, "/"); + path = NULL; + continue; + } + else + { + path = newPath; + } + + bDeep = false; + } + } + else + { + //search in all path children + bDeep = true; + } + + pstSubPath = strtok(NULL, "/"); + } + + if (path == NULL) + { + return 0; + } + + return path->uid; +} + +PathItem* ScilabView::search_children(PathItem* _path, std::string _subPath, bool _bDeep, std::list<int>& _ignoredList) +{ + PathItem::__child_iterator it = _path->children.begin(); + for (; it != _path->children.end() ; it++) + { + PathItem* child = ScilabView::getItem(*it); + if (child->tag == _subPath) + { + bool ignored = false; + //check if this handle is not in ignoredList + if (std::find(_ignoredList.begin(), _ignoredList.end(), child->uid) == _ignoredList.end()) + { + return child; + } + } + else if (_bDeep) + { + PathItem *item = search_children(child, _subPath, _bDeep, _ignoredList); + if (item) + { + return item; + } + } + } + + return NULL; +} + +std::string ScilabView::get_path(int uid) +{ + PathItem* item = getItem(uid); + if (item->tag == "") + { + //impossible to create a useful path from object without tag + return ""; + } + + std::string path = item->tag; + + while (item->parent != 0) + { + item = getItem(item->parent); + if (item->tag == "") + { + if (path[0] == '*') + { + //we have already */ just continue + continue; + } + else + { + //add */ instead of / + path = "*/" + path; + } + } + else + { + path = item->tag + "/" + path; + } + } + + if (path[0] == '*') + { + //path must start by mane + return ""; + } + + return path; +} + +void ScilabView::setUserdata(int _id, int* _data, int _datasize) +{ + m_userdata[_id] = std::vector<int>(_data, _data + _datasize); +} + +int ScilabView::getUserdataSize(int _id) +{ + return (int)m_userdata[_id].size(); +} + +int* ScilabView::getUserdata(int _id) +{ + std::vector<int> &vect = m_userdata[_id]; + int size = (int)vect.size(); + + if (size != 0) + { + return &(vect[0]); + } + + //empty userdata must be == NULL + return NULL; +} + +/* +** Allocate static class variable. +*/ +ScilabView::__figureList ScilabView::m_figureList = *new __figureList(); +ScilabView::__handleList ScilabView::m_handleList = *new __handleList(); +ScilabView::__uidList ScilabView::m_uidList = *new __uidList(); +long ScilabView::m_topHandleValue = 0; +int ScilabView::m_currentFigure; +int ScilabView::m_currentObject; +int ScilabView::m_currentSubWin; +int ScilabView::m_figureModel; +int ScilabView::m_axesModel; +ScilabView::__pathList ScilabView::m_pathList = *new __pathList(); +ScilabView::__pathFigList ScilabView::m_pathFigList = *new __pathFigList(); +ScilabView::__userdata ScilabView::m_userdata = *new __userdata(); diff --git a/modules/graphic_objects/src/cpp/Texture.cpp b/modules/graphic_objects/src/cpp/Texture.cpp new file mode 100755 index 000000000..c88ecff9c --- /dev/null +++ b/modules/graphic_objects/src/cpp/Texture.cpp @@ -0,0 +1,1520 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "Texture.hxx" +#include <cstring> + +float Texture::GrayR[256]; +float Texture::GrayG[256]; +float Texture::GrayB[256]; +unsigned char Texture::RGB8R[256]; +unsigned char Texture::RGB8G[256]; +unsigned char Texture::RGB8B[256]; +unsigned char Texture::R12[256]; +const bool Texture::isGrayTableInit = Texture::initGrayTables(); +const bool Texture::isRGB8TableInit = Texture::initRGB8Tables(); +const bool Texture::isR12TableInit = Texture::initR12Table(); + +#define _DOUBLE_TO_UCHAR_(x) ((x) < 0 ? 0 : ((x) > 1 ? 0xFF : ((unsigned char)((x) * 0xFF)))) + +bool Texture::getImage(void const * data, const int numElements, const DataType datatype, const ImageType imagetype, void ** dest, unsigned int * dataSize, GLType * gltype) +{ + unsigned int size = 0; + bool ret = false; + + switch (imagetype) + { + case MATPLOT_RGB : + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + size = numElements * sizeof(int); + break; + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + size = numElements * sizeof(float) * 3; + break; + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + size = numElements * 3; + break; + case MATPLOT_Int : + case MATPLOT_UInt : + size = numElements * sizeof(int); + break; + case MATPLOT_Short : + case MATPLOT_UShort : + size = numElements * sizeof(short); + break; + case MATPLOT_HM1_Double : + case MATPLOT_Double : + size = numElements * sizeof(int); + break; + } + break; + case MATPLOT_RGBA : + case MATPLOT_ARGB : + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + size = numElements * sizeof(int); + break; + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + size = numElements * sizeof(float) * 4; + break; + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + size = numElements * 4; + break; + case MATPLOT_Int : + case MATPLOT_UInt : + size = numElements * sizeof(int); + break; + case MATPLOT_Short : + case MATPLOT_UShort : + size = numElements * sizeof(short); + break; + case MATPLOT_HM1_Double : + case MATPLOT_Double : + size = numElements * sizeof(int); + break; + } + break; + case MATPLOT_GRAY : + case MATPLOT_RED : + case MATPLOT_GREEN : + case MATPLOT_BLUE : + if (datatype == MATPLOT_Short || datatype == MATPLOT_UShort) + { + size = numElements * sizeof(short); + } + else if (datatype == MATPLOT_HM3_Double || datatype == MATPLOT_HM4_Double || datatype == MATPLOT_Double) + { + size = numElements * sizeof(float); + } + else + { + size = numElements; + } + break; + case MATPLOT_INDEX : + switch (datatype) + { + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + size = numElements; + break; + case MATPLOT_Int : + case MATPLOT_UInt : + size = numElements * sizeof(int); + break; + case MATPLOT_Short : + case MATPLOT_UShort : + size = numElements * sizeof(short); + break; + case MATPLOT_HM1_Double : + case MATPLOT_Double : + size = numElements * sizeof(double); + break; + } + break; + case MATPLOT_RGB_332 : + size = numElements; + break; + case MATPLOT_RGB_444 : + case MATPLOT_RGB_555 : + case MATPLOT_RGBA_4444 : + case MATPLOT_RGBA_5551 : + size = numElements * sizeof(short); + break; + } + + if (size != *dataSize) + { + ret = true; + *dataSize = size; + *dest = new unsigned char[size]; + } + + switch (imagetype) + { + case MATPLOT_RGB : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = R[i]; + ucdata[k + 1] = G[i]; + ucdata[k + 2] = B[i]; + k += 3; + } + *gltype = MATPLOT_GL_RGB; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + float * fdata = (float *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + fdata[k] = (float)R[i]; + fdata[k + 1] = (float)G[i]; + fdata[k + 2] = (float)B[i]; + k += 3; + } + + *gltype = MATPLOT_GL_RGB_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_Char : + case MATPLOT_UChar : + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGB; + break; + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 16) & 0xFF; + ucdata[k + 1] = (ui[i] >> 8) & 0xFF; + ucdata[k + 2] = ui[i] & 0xFF; + k += 3; + } + + *gltype = MATPLOT_GL_RGB; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 24) & 0xFF; + ucdata[k + 1] = (ui[i] >> 16) & 0xFF; + ucdata[k + 2] = (ui[i] >> 8) & 0xFF; + k += 3; + } + + *gltype = MATPLOT_GL_RGB; + break; + } + case MATPLOT_Short : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UShort : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (((unsigned int)d[i]) >> 16) & 0xFF; + ucdata[k + 1] = (((unsigned int)d[i]) >> 8) & 0xFF; + ucdata[k + 2] = ((unsigned int)d[i]) & 0xFF; + k += 3; + } + *gltype = MATPLOT_GL_RGB; + break; + } + } + break; + } + case MATPLOT_RGBA : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = R[i]; + ucdata[k + 1] = G[i]; + ucdata[k + 2] = B[i]; + ucdata[k + 3] = 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + const unsigned char * A = B + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = R[i]; + ucdata[k + 1] = G[i]; + ucdata[k + 2] = B[i]; + ucdata[k + 3] = A[i]; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_HM3_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + float * fdata = (float *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + fdata[k] = (float)R[i]; + fdata[k + 1] = (float)G[i]; + fdata[k + 2] = (float)B[i]; + fdata[k + 3] = 1.0f; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_FLOAT; + break; + } + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + const double * A = B + numElements; + float * fdata = (float *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + fdata[k] = (float)R[i]; + fdata[k + 1] = (float)G[i]; + fdata[k + 2] = (float)B[i]; + fdata[k + 3] = (float)A[i]; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 16) & 0xFF; + ucdata[k + 1] = (ui[i] >> 8) & 0xFF; + ucdata[k + 2] = ui[i] & 0xFF; + ucdata[k + 3] = 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 24) & 0xFF; + ucdata[k + 1] = (ui[i] >> 16) & 0xFF; + ucdata[k + 2] = (ui[i] >> 8) & 0xFF; + ucdata[k + 3] = ui[i] & 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_Short : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UShort : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (((unsigned int)d[i]) >> 24) & 0xFF; + ucdata[k + 1] = (((unsigned int)d[i]) >> 16) & 0xFF; + ucdata[k + 2] = (((unsigned int)d[i]) >> 8) & 0xFF; + ucdata[k + 3] = ((unsigned int)d[i]) & 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + } + } + break; + } + case MATPLOT_ARGB : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = R[i]; + ucdata[k + 1] = G[i]; + ucdata[k + 2] = B[i]; + ucdata[k + 3] = 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * A = (const unsigned char *)data; + const unsigned char * R = A + numElements; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = R[i]; + ucdata[k + 1] = G[i]; + ucdata[k + 2] = B[i]; + ucdata[k + 3] = A[i]; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_HM3_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + float * fdata = (float *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + fdata[k] = (float)R[i]; + fdata[k + 1] = (float)G[i]; + fdata[k + 2] = (float)B[i]; + fdata[k + 3] = 1.0f; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_FLOAT; + break; + } + case MATPLOT_HM4_Double : + { + const double * A = (const double *)data; + const double * R = A + numElements; + const double * G = R + numElements; + const double * B = G + numElements; + float * fdata = (float *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + fdata[k] = (float)R[i]; + fdata[k + 1] = (float)G[i]; + fdata[k + 2] = (float)B[i]; + fdata[k + 3] = (float)A[i]; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + const unsigned char * uc = (const unsigned char *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < size; i += 4) + { + ucdata[i] = uc[i + 1]; + ucdata[i + 1] = uc[i + 2]; + ucdata[i + 2] = uc[i + 3]; + ucdata[i + 3] = uc[i]; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 16) & 0xFF; + ucdata[k + 1] = (ui[i] >> 8) & 0xFF; + ucdata[k + 2] = ui[i] & 0xFF; + ucdata[k + 3] = 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (ui[i] >> 16) & 0xFF; + ucdata[k + 1] = (ui[i] >> 8) & 0xFF; + ucdata[k + 2] = ui[i] & 0xFF; + ucdata[k + 3] = (ui[i] >> 24) & 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_Short : + { + const unsigned short * us = (const unsigned short *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (us[i] >> 12) | (us[i] << 4); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UShort : + { + const unsigned short * us = (const unsigned short *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (us[i] >> 15) | (us[i] << 1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned char * ucdata = (unsigned char *) * dest; + unsigned int k = 0; + + for (int i = 0; i < numElements; i++) + { + ucdata[k] = (((unsigned int)d[i]) >> 16) & 0xFF; + ucdata[k + 1] = (((unsigned int)d[i]) >> 8) & 0xFF; + ucdata[k + 2] = ((unsigned int)d[i]) & 0xFF; + ucdata[k + 3] = (((unsigned int)d[i]) >> 24) & 0xFF; + k += 4; + } + *gltype = MATPLOT_GL_RGBA_BYTE; + } + } + break; + } + case MATPLOT_GRAY : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) (GrayR[R[i]] + GrayG[G[i]] + GrayB[B[i]]); + } + *gltype = MATPLOT_GL_GRAY; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float) (0.299 * R[i] + 0.587 * G[i] + 0.114 * B[i]); + } + *gltype = MATPLOT_GL_GRAY_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_GRAY; + break; + } + case MATPLOT_UShort : + case MATPLOT_Short : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_GRAY_16; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) (GrayR[(ui[i] >> 24) & 0xFF] + GrayG[(ui[i] >> 16) & 0xFF] + GrayB[(ui[i] >> 8) & 0xFF]); + } + *gltype = MATPLOT_GL_GRAY; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) (GrayR[(ui[i] >> 16) & 0xFF] + GrayG[(ui[i] >> 8) & 0xFF] + GrayB[ui[i] & 0xFF]); + } + *gltype = MATPLOT_GL_GRAY; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_GRAY_FLOAT; + break; + } + } + break; + } + case MATPLOT_INDEX : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_BYTE; + break; + } + case MATPLOT_RED : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + memcpy(*dest, data, numElements); + *gltype = MATPLOT_GL_RED; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_RED_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RED; + break; + } + case MATPLOT_Short : + case MATPLOT_UShort : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RED_16; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) ((ui[i] >> 16) & 0xFF); + } + *gltype = MATPLOT_GL_RED; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) ((ui[i] >> 24) & 0xFF); + } + *gltype = MATPLOT_GL_RED; + break; + } + } + break; + } + case MATPLOT_GREEN : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + memcpy(*dest, (unsigned char *)data + numElements, numElements); + *gltype = MATPLOT_GL_GREEN; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * d = (const double *)data + numElements; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_GREEN_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_GREEN; + break; + } + case MATPLOT_Short : + case MATPLOT_UShort : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_GREEN_16; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) ((ui[i] >> 8) & 0xFF); + } + *gltype = MATPLOT_GL_GREEN; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) ((ui[i] >> 16) & 0xFF); + } + *gltype = MATPLOT_GL_GREEN; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_GREEN_FLOAT; + break; + } + } + break; + } + case MATPLOT_BLUE : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + memcpy(*dest, (unsigned char *)data + 2 * numElements, numElements); + *gltype = MATPLOT_GL_BLUE; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * d = (const double *)data + 2 * numElements; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_BLUE_FLOAT; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_BLUE; + break; + } + case MATPLOT_Short : + case MATPLOT_UShort : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_BLUE_16; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) (ui[i] & 0xFF); + } + *gltype = MATPLOT_GL_BLUE; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char) ((ui[i] >> 8) & 0xFF); + } + *gltype = MATPLOT_GL_BLUE; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + float * fdata = (float *) * dest; + + for (int i = 0; i < numElements; i++) + { + fdata[i] = (float)d[i]; + } + *gltype = MATPLOT_GL_BLUE_FLOAT; + break; + } + } + break; + } + case MATPLOT_RGB_332 : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(RGB8R[R[i]] | RGB8G[G[i]] | RGB8B[B[i]]); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + unsigned char * ucdata = (unsigned char *) * dest; + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(RGB8R[_DOUBLE_TO_UCHAR_(R[i])] | RGB8G[_DOUBLE_TO_UCHAR_(G[i])] | RGB8B[_DOUBLE_TO_UCHAR_(B[i])]); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(RGB8R[(ui[i] & 0xFF0000) >> 16] | RGB8G[(ui[i] & 0xFF00) >> 8] | RGB8B[ui[i] & 0xFF]); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(RGB8R[(ui[i] & 0xFF000000) >> 24] | RGB8G[(ui[i] & 0xFF0000) >> 16] | RGB8B[(ui[i] & 0xFF00) >> 8]); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_Short : + { + const unsigned short * us = (const unsigned short *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(((us[i] & 0xE00) >> 4) | ((us[i] & 0xE0) >> 3) | ((us[i] & 0xC) >> 2)); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_UShort : + { + const unsigned short * us = (const unsigned short *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + ucdata[i] = (unsigned char)(((us[i] & 0xE000) >> 8) | ((us[i] & 0xE00) >> 7) | ((us[i] & 0xC0) >> 6)); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned char * ucdata = (unsigned char *) * dest; + + for (int i = 0; i < numElements; i++) + { + const unsigned int ui = (unsigned int)d[i]; + ucdata[i] = (unsigned char)(RGB8R[(ui & 0xFF000000) >> 24] | RGB8G[(ui & 0xFF0000) >> 16] | RGB8B[(ui & 0xFF00) >> 8]); + } + *gltype = MATPLOT_GL_RGB_332; + break; + } + } + break; + } + case MATPLOT_RGB_444 : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[R[i]] << 12) | (R12[G[i]] << 8) | (R12[B[i]] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[_DOUBLE_TO_UCHAR_(R[i])] << 12) | (R12[_DOUBLE_TO_UCHAR_(G[i])] << 8) | (R12[_DOUBLE_TO_UCHAR_(B[i])] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[(ui[i] & 0xFF0000) >> 16] << 12) | (R12[(ui[i] & 0xFF00) >> 8] << 8) | (R12[ui[i] & 0xFF] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[(ui[i] & 0xFF000000) >> 24] << 12) | (R12[(ui[i] & 0xFF0000) >> 16] << 8) | (R12[(ui[i] & 0xFF00) >> 8] << 4) | (R12[ui[i] & 0xFF])); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UShort : + case MATPLOT_Short : + { + const unsigned short * us = (const unsigned short *)data; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (us[i] << 4) | 0xF; + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + const unsigned int ui = (unsigned int)d[i]; + usdata[i] = (unsigned short)((R12[(ui & 0xFF0000) >> 16] << 12) | (R12[(ui & 0xFF00) >> 8] << 8) | (R12[ui & 0xFF] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + } + break; + } + case MATPLOT_RGB_555 : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((R[i] & 0xF8) << 8) | ((G[i] & 0xF8) << 3) | ((B[i] & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM3_Double : + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((_DOUBLE_TO_UCHAR_(R[i]) & 0xF8) << 8) | ((_DOUBLE_TO_UCHAR_(G[i]) & 0xF8) << 3) | ((_DOUBLE_TO_UCHAR_(B[i]) & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((ui[i] & 0xF80000) >> 8) | ((ui[i] & 0xF800) >> 5) | ((ui[i] & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((ui[i] & 0xF8000000) >> 16) | ((ui[i] & 0xF80000) >> 13) | ((ui[i] & 0xF800) >> 10) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_UShort : + case MATPLOT_Short : + { + const unsigned short * ui = (const unsigned short *)data; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (ui[i] << 1) | 0x1; + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + const unsigned int ui = (unsigned int)d[i]; + usdata[i] = (unsigned short)(((ui & 0xF80000) >> 13) | ((ui & 0xF800) >> 5) | ((ui & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + } + break; + } + case MATPLOT_RGBA_4444 : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[R[i]] << 12) | (R12[G[i]] << 8) | (R12[B[i]] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + const unsigned char * A = B + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[R[i]] << 12) | (R12[G[i]] << 8) | (R12[B[i]] << 4) | R12[A[i]]); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM3_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[_DOUBLE_TO_UCHAR_(R[i])] << 12) | (R12[_DOUBLE_TO_UCHAR_(G[i])] << 8) | (R12[_DOUBLE_TO_UCHAR_(B[i])] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + const double * A = B + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[_DOUBLE_TO_UCHAR_(R[i])] << 12) | (R12[_DOUBLE_TO_UCHAR_(G[i])] << 8) | (R12[_DOUBLE_TO_UCHAR_(B[i])] << 4) | R12[_DOUBLE_TO_UCHAR_(A[i])]); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[(ui[i] & 0xFF0000) >> 16] << 12) | (R12[(ui[i] & 0xFF00) >> 8] << 8) | (R12[ui[i] & 0xFF] << 4) | 0xF); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)((R12[(ui[i] & 0xFF000000) >> 24] << 12) | (R12[(ui[i] & 0xFF0000) >> 16] << 8) | (R12[(ui[i] & 0xFF00) >> 8] << 4) | R12[ui[i] & 0xFF]); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_UShort : + case MATPLOT_Short : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + const unsigned int ui = (unsigned int)d[i]; + usdata[i] = (unsigned short)((R12[(ui & 0xFF000000) >> 24] << 12) | (R12[(ui & 0xFF0000) >> 16] << 8) | (R12[(ui & 0xFF) >> 8] << 4) | R12[ui & 0xFF]); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + } + break; + } + case MATPLOT_RGBA_5551 : + { + switch (datatype) + { + case MATPLOT_HM3_Char : + case MATPLOT_HM3_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((R[i] & 0xF8) << 8) | ((G[i] & 0xF8) << 3) | ((B[i] & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM4_Char : + case MATPLOT_HM4_UChar : + { + const unsigned char * R = (const unsigned char *)data; + const unsigned char * G = R + numElements; + const unsigned char * B = G + numElements; + const unsigned char * A = B + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((R[i] & 0xF8) << 8) | ((G[i] & 0xF8) << 3) | ((B[i] & 0xF8) >> 2) | ((A[i] & 0x1))); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM3_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((_DOUBLE_TO_UCHAR_(R[i]) & 0xF8) << 8) | ((_DOUBLE_TO_UCHAR_(G[i]) & 0xF8) << 3) | ((_DOUBLE_TO_UCHAR_(B[i]) & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM4_Double : + { + const double * R = (const double *)data; + const double * G = R + numElements; + const double * B = G + numElements; + const double * A = B + numElements; + unsigned short * usdata = (unsigned short *) * dest; + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((_DOUBLE_TO_UCHAR_(R[i]) & 0xF8) << 8) | ((_DOUBLE_TO_UCHAR_(G[i]) & 0xF8) << 3) | ((_DOUBLE_TO_UCHAR_(B[i]) & 0xF8) >> 2) | (_DOUBLE_TO_UCHAR_(A[i]) & 0x1)); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Char : + case MATPLOT_HM1_UChar : + case MATPLOT_UChar : + case MATPLOT_Char : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_Int : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((ui[i] & 0xF80000) >> 13) | ((ui[i] & 0xF800) >> 5) | ((ui[i] & 0xF8) >> 2) | 0x1); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_UInt : + { + const unsigned int * ui = (const unsigned int *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + usdata[i] = (unsigned short)(((ui[i] & 0xF8000000) >> 21) | ((ui[i] & 0xF80000) >> 13) | ((ui[i] & 0xF800) >> 10) | ((ui[i] & 0xFF) >> 7)); + } + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_UShort : + case MATPLOT_Short : + { + memcpy(*dest, data, size); + *gltype = MATPLOT_GL_RGBA_5551; + break; + } + case MATPLOT_HM1_Double : + case MATPLOT_Double : + { + const double * d = (const double *)data; + unsigned short * usdata = (unsigned short *) * dest; + + for (int i = 0; i < numElements; i++) + { + const unsigned int ui = (unsigned int)d[i]; + usdata[i] = (unsigned short)(((ui & 0xF8000000) >> 21) | ((ui & 0xF80000) >> 13) | ((ui & 0xF800) >> 10) | ((ui & 0xFF) >> 7)); + } + *gltype = MATPLOT_GL_RGBA_4444; + break; + } + } + break; + } + } + + return ret; +} + + +bool Texture::initGrayTables() +{ + for (int c = 0; c < 256; c++) + { + GrayR[c] = 0.299f * (float)c; + GrayG[c] = 0.587f * (float)c; + GrayB[c] = 0.114f * (float)c; + } + + return true; +} + +bool Texture::initRGB8Tables() +{ + for (int c = 0; c < 256; c++) + { + RGB8R[c] = (c / 36) << 5; + RGB8G[c] = (c / 36) << 2; + RGB8B[c] = c / 81; + } + + return true; +} + +bool Texture::initR12Table() +{ + for (int c = 0; c < 256; c++) + { + R12[c] = c / 17; + } + + return true; +} diff --git a/modules/graphic_objects/src/cpp/Triangulator.cpp b/modules/graphic_objects/src/cpp/Triangulator.cpp new file mode 100755 index 000000000..9c8bea879 --- /dev/null +++ b/modules/graphic_objects/src/cpp/Triangulator.cpp @@ -0,0 +1,818 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel Juliachs + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "Triangulator.hxx" + +#include <math.h> + +void Triangulator::determineSmallestAxis(void) +{ + double minval = 0.; + + Vector3d min = inputPoints[0]; + Vector3d max = min; + + for (int i = 1 ; i < numPoints; i++) + { + if (inputPoints[i].x < min.x) + { + min.x = inputPoints[i].x; + } + if (inputPoints[i].y < min.y) + { + min.y = inputPoints[i].y; + } + if (inputPoints[i].z < min.z) + { + min.z = inputPoints[i].z; + } + + if (inputPoints[i].x > max.x) + { + max.x = inputPoints[i].x; + } + if (inputPoints[i].y > max.y) + { + max.y = inputPoints[i].y; + } + if (inputPoints[i].z > max.z) + { + max.z = inputPoints[i].z; + } + } + + max = minus(max, min); + + if (max.x < max.y) + { + minval = max.x; + smallestAxis = 0; + largestAxes[0] = 1; + largestAxes[1] = 2; + } + else + { + minval = max.y; + smallestAxis = 1; + largestAxes[0] = 0; + largestAxes[1] = 2; + } + + if (max.z < minval) + { + smallestAxis = 2; + largestAxes[0] = 0; + largestAxes[1] = 1; + } +} + +void Triangulator::fillPoints(void) +{ + Vector3d point; + + for (int i = 0; i < numPoints; i++) + { + if (smallestAxis == 0) + { + /* Smallest axis: X */ + point.x = inputPoints[i].y; + point.y = inputPoints[i].z; + } + else if (smallestAxis == 1) + { + /* Smallest axis: Y */ + point.x = inputPoints[i].x; + point.y = inputPoints[i].z; + } + else + { + /* Smallest axis: Z (2) */ + point.x = inputPoints[i].x; + point.y = inputPoints[i].y; + } + + point.z = 0.0; + + points.push_back(point); + } +} + +double Triangulator::computeArea(void) +{ + double area = 0.0; + + for (int i = 0; i < numPoints; i++) + { + int ip1 = (i + 1) % numPoints; + + area += ((points[i].x * points[ip1].y) - (points[i].y * points[ip1].x)); + } + + area *= 0.5; + + return area; +} + +void Triangulator::fillVertexIndices(void) +{ + if (flipped) + { + for (int i = numPoints - 1; i >= 0; i--) + { + vertexIndices.push_back(i); + } + } + else + { + for (int i = 0; i < numPoints; i++) + { + vertexIndices.push_back(i); + } + } +} + +void Triangulator::removeColinearVertices(void) +{ + double dp = 0.; + std::list<int>::iterator vi, vim1, vip1; + + std::vector<Vector3d> sievedPoints; + std::list<int> tmpVertexIndices; + + int numColinear = 0; + int index = 0; + + for (vi = vertexIndices.begin(); vi != vertexIndices.end(); vi++) + { + getAdjacentVertices(vi, vim1, vip1); + + dp = computeDotProduct(*vim1, *vi, *vip1); + + if ((!compareVertices(points[*vim1], points[*vi]) && !compareVertices(points[*vi], points[*vip1])) && + fabs(dp) < TOLERANCE) + { + numColinear++; + } + else + { + sievedPoints.push_back(points[*vi]); + actualVertexIndices.push_back(*vi); + } + + index++; + } + + points.clear(); + + if (flipped) + { + /* Reverse the actual vertex indices list */ + std::vector<int> tmpList; + + for (size_t i = 0; i < actualVertexIndices.size(); i++) + { + tmpList.push_back(actualVertexIndices[actualVertexIndices.size() - i - 1]); + } + + actualVertexIndices.clear(); + + for (size_t i = 0; i < tmpList.size(); i++) + { + actualVertexIndices.push_back(tmpList[i]); + } + + tmpList.clear(); + } + + if (flipped) + { + for (size_t i = 0; i < sievedPoints.size(); i++) + { + points.push_back(sievedPoints[sievedPoints.size() - i - 1]); + } + } + else + { + for (size_t i = 0; i < sievedPoints.size(); i++) + { + points.push_back(sievedPoints[i]); + } + } + + /* Must be updated */ + numPoints = (int)points.size(); + + sievedPoints.clear(); + + numColinearVertices = numColinear; +} + +void Triangulator::removeDuplicateVertices(void) +{ + int numDuplicateVertices = 0; + std::vector<int> duplicateFlagArray; + + std::vector<Vector3d> sievedPoints; + std::vector<int> tmpActualVertexIndices; + + sievedPoints.clear(); + tmpActualVertexIndices.clear(); + + duplicateFlagArray.resize(points.size()); + + for (size_t i = 0; i < points.size(); i++) + { + int ic = ((int)i + 1) % (int)points.size(); + int icm1 = (int)i; + + Vector3d vi = points[icm1]; + Vector3d vip1 = points[ic]; + + if (compareVertices(vi, vip1)) + { + numDuplicateVertices++; + duplicateFlagArray[ic] = 1; + } + else + { + duplicateFlagArray[ic] = 0; + } + } + + for (size_t i = 0; i < points.size(); i++) + { + if (duplicateFlagArray[i] == 0) + { + /* Keep as it is not a duplicate */ + sievedPoints.push_back(points[i]); + tmpActualVertexIndices.push_back(actualVertexIndices[i]); + } + } + + actualVertexIndices.clear(); + points.clear(); + + /* Copy the two new lists */ + for (size_t i = 0; i < tmpActualVertexIndices.size(); i++) + { + actualVertexIndices.push_back(tmpActualVertexIndices[i]); + } + + for (size_t i = 0; i < sievedPoints.size(); i++) + { + points.push_back(sievedPoints[i]); + } + + /* Must be updated */ + numPoints = (int)points.size(); + + duplicateFlagArray.clear(); + sievedPoints.clear(); + tmpActualVertexIndices.clear(); +} + +void Triangulator::fillConvexVerticesList(void) +{ + std::list<int>::iterator vi; + + flagList.resize(vertexIndices.size()); + + for (vi = vertexIndices.begin(); vi != vertexIndices.end(); vi++) + { + if (isConvex(vi)) + { + convexList.push_back(*vi); + flagList[*vi] = true; + } + else + { + reflexList.push_back(*vi); + flagList[*vi] = false; + } + } +} + +void Triangulator::fillEarList(void) +{ + std::list<int>::iterator vi; + bool res = false; + + for (vi = vertexIndices.begin(); vi != vertexIndices.end(); vi++) + { + if (flagList[*vi]) + { + res = isAnEar(vi); + + if (res) + { + earList.push_back(*vi); + } + } + } +} + +void Triangulator::getAdjacentVertices(std::list<int>::iterator vi, std::list<int>::iterator& vim1, std::list<int>::iterator& vip1) +{ + if (*vi == vertexIndices.front()) + { + vim1 = vertexIndices.end(); + vim1--; + } + else + { + vim1 = vi; + vim1--; + } + + if (*vi == vertexIndices.back()) + { + vip1 = vertexIndices.begin(); + } + else + { + vip1 = vi; + vip1++; + } +} + +bool Triangulator::isConvex(std::list<int>::iterator vertex) +{ + double dp = 0.0; + std::list<int>::iterator pred, succ; + + getAdjacentVertices(vertex, pred, succ); + + dp = computeDotProduct(*pred, *vertex, *succ); + + if (dp >= 0.0) + { + return true; + } + else + { + return false; + } +} + +bool Triangulator::isAnEar(std::list<int>::iterator vertex) +{ + bool isEar = true; + std::list<int>::iterator pred, succ; + std::list<int>::iterator vi; + + Vector3d v0, v1, v2; + + getAdjacentVertices(vertex, pred, succ); + + v0 = points[*pred]; + v1 = points[*vertex]; + v2 = points[*succ]; + + for (vi = reflexList.begin(); vi != reflexList.end(); vi++) + { + if (*vi == *pred || *vi == *vertex || *vi == *succ) + { + continue; + } + else + { + bool res; + + res = pointInTriangle(v0, v1, v2, points[*vi]); + + if (res) + { + isEar = false; + break; + } + } + + } + + numEarTests++; + + return isEar; +} + +/* To do: streamline */ +void Triangulator::updateVertex(std::list<int>::iterator vertex) +{ + bool res = false; + + if (flagList[*vertex]) + { + /* + * Convex vertex: remove it from the ear list if not an ear any more, + * else add it if not already present. + */ + res = isAnEar(vertex); + + if (!res) + { + earList.remove(*vertex); + numDelEars++; + } + else + { + std::list<int>::iterator foundEar; + + foundEar = find(earList.begin(), earList.end(), *vertex); + + if (foundEar == earList.end()) + { + earList.push_front(*vertex); + numAddEars++; + } + } + } + else + { + /* + * Non-convex vertex: may become convex, so its flag must be updated, as well + * as the reflex vertex list. + * Also determine whether it has become an ear and update the ear list accordingly. + */ + if (isConvex(vertex)) + { + flagList[*vertex] = true; + } + + if (flagList[*vertex]) + { + res = isAnEar(vertex); + + if (res) + { + std::list<int>::iterator foundEar; + + foundEar = find(earList.begin(), earList.end(), *vertex); + + if (foundEar == earList.end()) + { + earList.push_front(*vertex); + numAddEars++; + } + } + + reflexList.remove(*vertex); + } + } +} + +double Triangulator::computeDotProduct(int im1, int i, int ip1) +{ + double dp = 0.; + Vector3d eim1p; + + Vector3d eim1 = minus(points[i], points[im1]); + Vector3d ei = minus(points[ip1], points[i]); + + /* Normalize */ + eim1 = normalize(eim1); + ei = normalize(ei); + + /* Ought to use cross product */ + eim1p = perpendicularVector(eim1); + + dp = dot(eim1p, ei); + + return dp; +} + +bool Triangulator::pointInTriangle(Vector3d A, Vector3d B, Vector3d C, Vector3d P) +{ + double dot00 = 0., dot01 = 0., dot02 = 0., dot11 = 0., dot12 = 0.; + double invDenom = 0.; + double u = 0., v = 0.; + + Vector3d v0, v1, v2; + + /* Compute vectors */ + v0 = minus(C, A); + v1 = minus(B, A); + v2 = minus(P, A); + + /* Compute dot products */ + dot00 = dot(v0, v0); + dot01 = dot(v0, v1); + dot02 = dot(v0, v2); + dot11 = dot(v1, v1); + dot12 = dot(v1, v2); + + /* Compute barycentric coordinates */ + invDenom = 1 / (dot00 * dot11 - dot01 * dot01); + u = (dot11 * dot02 - dot01 * dot12) * invDenom; + v = (dot00 * dot12 - dot01 * dot02) * invDenom; + + /* Check if point is in triangle */ + return (u >= 0) && (v >= 0) && (u + v < 1); +} + +Vector3d Triangulator::minus(Vector3d v0, Vector3d v1) +{ + Vector3d res; + + res.x = v0.x - v1.x; + res.y = v0.y - v1.y; + res.z = v0.z - v1.z; + + return res; +} + +double Triangulator::dot(Vector3d v0, Vector3d v1) +{ + return v0.x * v1.x + v0.y * v1.y + v0.z * v1.z; +} + +Vector3d Triangulator::normalize(Vector3d v) +{ + double n = sqrt(v.x * v.x + v.y * v.y); + + if (n < EPSILON) + { + n = 1.0; + } + + v.x /= n; + v.y /= n; + + return v; +} + +Vector3d Triangulator::perpendicularVector(Vector3d v) +{ + Vector3d perp; + perp.x = -v.y; + perp.y = v.x; + perp.z = 0.0; + + return perp; +} + +bool Triangulator::compareVertices(Vector3d v0, Vector3d v1) +{ + if (areEqual(v0.x, v1.x) && areEqual(v0.y, v1.y)) + { + return true; + } + else + { + return false; + } +} + +bool Triangulator::areEqual(double x0, double x1) +{ + double maxAbs = fabs(x0) > fabs(x1) ? fabs(x0) : fabs(x1); + + if (fabs(x0 - x1) <= EPSILON) + { + return true; + } + else if (fabs(x0 - x1) <= EPSILON * maxAbs) + { + return true; + } + else + { + return false; + } +} + +Triangulator::Triangulator(void) +{ + numPoints = 0; + numInitPoints = 0; + flipped = false; + numAddEars = 0; + numDelEars = 0; + numSteps = 0; + numEarTests = 0; + numColinearVertices = 0; + + xmin = ymin = zmin = std::numeric_limits<double>::max(); + xmax = ymax = zmax = std::numeric_limits<double>::min(); + + inputPoints.clear(); + points.clear(); + vertexIndices.clear(); + actualVertexIndices.clear(); + earList.clear(); + convexList.clear(); + reflexList.clear(); + flagList.clear(); + triangleIndices.clear(); +} + +void Triangulator::initialize(void) +{ + const double xscale = xmax - xmin; + const double yscale = ymax - ymin; + const double zscale = zmax - zmin; + // we scale-translate the point in the cube [0,1]^3 to avoid error with floating point operations + for (std::vector<Vector3d>::iterator i = inputPoints.begin(), e = inputPoints.end(); i != e; ++i) + { + if (xscale) + { + i->x = (i->x - xmin) / xscale; + } + else + { + i->x = 1; + } + if (yscale) + { + i->y = (i->y - ymin) / yscale; + } + else + { + i->y = 1; + } + if (zscale) + { + i->z = (i->z - zmin) / zscale; + } + else + { + i->z = 1; + } + } + + double area = 0.; + + numPoints = (int)inputPoints.size(); + + determineSmallestAxis(); + fillPoints(); + area = computeArea(); + + if (area < 0.0) + { + flipped = true; + } + else + { + flipped = false; + } + + fillVertexIndices(); + + numInitPoints = numPoints; + + /* + * An additional colinear vertices removal pass should be performed + * after the duplicate removal pass, as some adjacent edges may become colinear. + */ + removeColinearVertices(); + removeDuplicateVertices(); + + /* Vertex indices must be re-filled */ + vertexIndices.clear(); + fillVertexIndices(); + + fillConvexVerticesList(); + fillEarList(); +} + +void Triangulator::addPoint(double x, double y, double z) +{ + Vector3d point(x, y, z); + + if (x < xmin) + { + xmin = x; + } + if (x > xmax) + { + xmax = x; + } + + if (y < ymin) + { + ymin = y; + } + if (y > ymax) + { + ymax = y; + } + + if (z < zmin) + { + zmin = z; + } + if (z > zmax) + { + zmax = z; + } + + /*point.x = x; + point.y = y; + point.z = z;*/ + + inputPoints.push_back(point); +} + +void Triangulator::triangulate(void) +{ + int triIndex = 0; + std::list<int>::iterator it; + std::list<int>::iterator vertex, pred, succ; + + numSteps = 0; + + while (vertexIndices.size() >= 3 && earList.size() > 0) + { + int v0 = 0, v1 = 0, v2 = 0; + int v0actual = 0, v1actual = 0, v2actual = 0; + int vertexIndex = 0; + + it = earList.begin(); + + /* If not found, we should break out of the loop. To be checked. */ + vertex = find(vertexIndices.begin(), vertexIndices.end(), *it); + vertexIndex = *vertex; + + getAdjacentVertices(vertex, pred, succ); + + /* Remove */ + vertexIndices.remove(*vertex); + earList.pop_front(); + + numDelEars++; + + + triIndex = *pred; + v0 = triIndex; + v1 = vertexIndex; + triIndex = *succ; + v2 = triIndex; + + v0actual = actualVertexIndices[v0]; + v1actual = actualVertexIndices[v1]; + v2actual = actualVertexIndices[v2]; + + triangleIndices.push_back(v0actual); + triangleIndices.push_back(v1actual); + triangleIndices.push_back(v2actual); + + /* Update the predecessor vertex */ + updateVertex(pred); + + /* Update the successor vertex */ + updateVertex(succ); + + numSteps++; + } +} + +int Triangulator::getNumberTriangles(void) +{ + return (int)(triangleIndices.size() / 3); +} + +int* Triangulator::getIndices(void) +{ + return &triangleIndices[0]; +} + +int Triangulator::getNumberSteps(void) +{ + return numSteps; +} + +int Triangulator::getNumberEarTests(void) +{ + return numEarTests; +} + +void Triangulator::clear(void) +{ + inputPoints.clear(); + points.clear(); + numPoints = 0; + numInitPoints = 0; + + vertexIndices.clear(); + actualVertexIndices.clear(); + earList.clear(); + convexList.clear(); + reflexList.clear(); + flagList.clear(); + triangleIndices.clear(); + + numAddEars = 0; + numDelEars = 0; + numSteps = 0; + numEarTests = 0; + numColinearVertices = 0; +} + diff --git a/modules/graphic_objects/src/cpp/createGraphicObject.cpp b/modules/graphic_objects/src/cpp/createGraphicObject.cpp new file mode 100755 index 000000000..f03007ab6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/createGraphicObject.cpp @@ -0,0 +1,303 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include "createGraphicObject.h" +#include "getScilabJavaVM.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "FigureModel.h" +#include "AxesModel.h" +#include "CurrentSubwin.h" +} + +#include "CallGraphicController.hxx" +#include "CallXmlLoader.hxx" +#include "Builder.hxx" +#include "DataController.hxx" + +using namespace org_scilab_modules_graphic_objects_builder; +using namespace org_scilab_modules_graphic_objects; + +int createGraphicObject(int _iType) +{ + return CallGraphicController::askGraphicObject(getScilabJavaVM(), _iType); +} + +int cloneGraphicObject(int _sId) +{ + return CallGraphicController::cloneGraphicObject(getScilabJavaVM(), _sId); +} + +int createDataObject(int _sId, int _iType) +{ + return DataController::createDataObject(_sId, _iType); +} + +void buildFigureMenuBar(int _sFigureId) +{ + CallGraphicController::buildFigureMenuBar(getScilabJavaVM(), _sFigureId); +} + +int createRect(int iParentsubwinUID, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline) +{ + return Builder::createRect(getScilabJavaVM(), iParentsubwinUID, x, y, height, width, foreground, background, isfilled, isline); +} + +int cloneGraphicContext(int sourceIdentifier, int destIdentifier) +{ + return Builder::cloneGraphicContext(getScilabJavaVM(), sourceIdentifier, destIdentifier); +} + +int cloneFontContext(int sourceIdentifier, int destIdentifier) +{ + return Builder::cloneFontContext(getScilabJavaVM(), sourceIdentifier, destIdentifier); +} + +int createHiddenLabel(int parent) +{ + return Builder::createHiddenLabel(getScilabJavaVM(), parent); +} + +BOOL isAxesRedrawing(int subWin) +{ + return booltoBOOL(Builder::isAxesRedrawing(getScilabJavaVM(), subWin)); +} + +int createLabel(int parent, int type) +{ + return Builder::createLabel(getScilabJavaVM(), parent, type); +} + +int createNewFigureWithAxes() +{ + int iUserDataSize = 0; + int* piUserDataSize = &iUserDataSize; + int id = 0; + int on = 1; + int off = 0; + + id = Builder::createNewFigureWithAxes(getScilabJavaVM()); + + //clone user_data is needed + getGraphicObjectProperty(getFigureModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getFigureModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(id, __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + //clone gda user_data is needed + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(getCurrentSubWin(), __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + setGraphicObjectProperty(id, __GO_MENUBAR_VISIBLE__, (void*)&off, jni_bool, 1); + setGraphicObjectProperty(id, __GO_TOOLBAR_VISIBLE__, (void*)&off, jni_bool, 1); + setGraphicObjectProperty(id, __GO_INFOBAR_VISIBLE__, (void*)&off, jni_bool, 1); + + setGraphicObjectProperty(id, __GO_MENUBAR_VISIBLE__, (void*)&on, jni_bool, 1); + setGraphicObjectProperty(id, __GO_TOOLBAR_VISIBLE__, (void*)&on, jni_bool, 1); + setGraphicObjectProperty(id, __GO_INFOBAR_VISIBLE__, (void*)&on, jni_bool, 1); + + return id; +} + +int createFigure(int iDockable, int iMenubarType, int iToolbarType, int iDefaultAxes, int iVisible) +{ + int id = 0; + int iUserDataSize = 0; + int* piUserDataSize = &iUserDataSize; + + id = Builder::createFigure(getScilabJavaVM(), iDockable != 0, iMenubarType, iToolbarType, iDefaultAxes != 0, iVisible != 0); + + //clone gdf user_data is needed + getGraphicObjectProperty(getFigureModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getFigureModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(id, __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + //clone gda user_data is needed + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(getCurrentSubWin(), __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + return id; +} + +void cloneMenus(int model, int newParent) +{ + Builder::cloneMenus(getScilabJavaVM(), model, newParent); +} + +int cloneAxesModel(int parent) +{ + int id = Builder::cloneAxesModel(getScilabJavaVM(), parent); + int iUserDataSize = 0; + int* piUserDataSize = &iUserDataSize; + + //clone user_data is needed + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(id, __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + return id; +} + +int createSubWin(int parent) +{ + int id = 0; + int iUserDataSize = 0; + int* piUserDataSize = &iUserDataSize; + + id = Builder::createSubWin(getScilabJavaVM(), parent); + + //clone user_data is needed + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA_SIZE__, jni_int, (void**)&piUserDataSize); + if (iUserDataSize != 0) + { + int* pUserData = NULL; + getGraphicObjectProperty(getAxesModel(), __GO_USER_DATA__, jni_int_vector, (void**)&pUserData); + setGraphicObjectProperty(id, __GO_USER_DATA__, pUserData, jni_int_vector, iUserDataSize); + } + + return id; +} + +int createText(int iParentsubwinUID, char** text, int nbRow, int nbCol, double x, double y, BOOL autoSize, double* userSize, int centerPos, int *foreground, int *background, BOOL isboxed, BOOL isline, BOOL isfilled, int align) +{ + return Builder::createText(getScilabJavaVM(), iParentsubwinUID, text, nbRow * nbCol, nbRow, nbCol, x, y, autoSize == TRUE, + userSize, userSize == NULL ? 0 : 2, + centerPos, + foreground != NULL ? *foreground : 0, foreground != NULL, + background != NULL ? *background : 0, background != NULL, + isboxed == TRUE, isline == TRUE, isfilled == TRUE, align); +} + +int createArc(int parent, double x, double y, double h, double w, double start, double end, int* foreground, int* background, BOOL filled, BOOL line) +{ + return Builder::createArc(getScilabJavaVM(), parent, x, y, h, w, start, end, + foreground != NULL ? *foreground : 0, foreground != NULL, + background != NULL ? *background : 0, background != NULL, + filled == TRUE, line == TRUE); +} + +int createAxis(int parent, int dir, int tics, double* vx, int nx, double* vy, int ny, int subint, char* format, int fontSize, int textColor, int ticsColor, BOOL seg) +{ + return Builder::createAxis(getScilabJavaVM(), parent, dir, tics, vx, nx, vy, ny, subint, format, fontSize, textColor, ticsColor, seg == TRUE); +} + +int createCompound(int parent, int* children, int childrenCount) +{ + return Builder::createCompound(getScilabJavaVM(), parent, children, childrenCount); +} + +int createCompoundSeq(int parent, int childrenCount) +{ + return Builder::createCompoundSeq(getScilabJavaVM(), parent, childrenCount); +} + +int createFec(int parent, double* zminmax, int zminmaxsize, int* colminmax, int colminmaxSize, int* colout, int coloutSize, BOOL with_mesh) +{ + return Builder::createFec(getScilabJavaVM(), parent, zminmax, zminmaxsize, colminmax, colminmaxSize, colout, coloutSize, with_mesh == TRUE); +} + +int createGrayplot(int parent, int type, double* pvecx, int pvecxSize, int n1, int n2) +{ + return Builder::createGrayplot(getScilabJavaVM(), parent, type, pvecx, pvecxSize, n1, n2); +} + +int createPolyline(int parent, BOOL closed, int plot, int* foreground, int* background, int backgroundSize, + int* mark_style, int* mark_foreground, int* mark_background, BOOL isline, BOOL isfilled, BOOL ismark, BOOL isinterp) +{ + bool isForeground = foreground != NULL; + bool isMarkStyle = mark_style != NULL; + bool isMarkForeground = mark_foreground != NULL; + bool isMarkBackground = mark_background != NULL; + + return Builder::createPolyline(getScilabJavaVM(), parent, closed == TRUE, plot, + isForeground ? *foreground : 0, isForeground, + background, backgroundSize, + isMarkStyle ? *mark_style : 0, isMarkStyle, + isMarkForeground ? *mark_foreground : 0, isMarkForeground, + isMarkBackground ? *mark_background : 0, isMarkBackground, + isline == TRUE, isfilled == TRUE, ismark == TRUE, isinterp == TRUE); +} + +int createLegend(int parent, char** text, int iTextSize, int* handles, int iHandlesSize) +{ + return Builder::createLegend(getScilabJavaVM(), parent, text, iTextSize, handles, iHandlesSize); +} + +int createSegs(int parent, double* vx, int vxSize, double* vy, int vySize, double* vz, int vzSize, int* style, int styleSize, double arsize) +{ + return Builder::createSegs(getScilabJavaVM(), parent, vx, vxSize, vy, vySize, vz, vzSize, vzSize != 0, style, styleSize, arsize); +} + +int createChamp(int parent, double* vx, int vxSize, double* vy, int vySize, double* vfx, int vfxSize, double* vfy, int vfySize, double arsize, BOOL typeofchamp) +{ + return Builder::createChamp(getScilabJavaVM(), parent, vx, vxSize, vy, vySize, vfx, vfxSize, vfy, vfySize, arsize, typeofchamp == TRUE); +} + +int createSurface(int parent, int typeof3d, int colorFlag, int colorMode) +{ + return Builder::createSurface(getScilabJavaVM(), parent, typeof3d, colorFlag, colorMode); +} + +void initSubWinTo3d(int subwin, char* legend, int* flag, double alpha, double theta, + double* ebox, double* x, int xSize, double* y, int ySize, double* z, int zSize) +{ + Builder::initSubWinTo3d(getScilabJavaVM(), subwin, legend, legend != NULL, flag, 3, alpha, theta, + ebox, 6, x, xSize, y, ySize, z, zSize); +} + +int createLight(int parent, int type, BOOL visible, double* pos, double* dir, double* ambient, double* diffuse, double* specular) +{ + return Builder::createLight(getScilabJavaVM(), parent, type, visible == TRUE, + pos, pos == NULL ? 0 : 3, + dir, dir == NULL ? 0 : 3, + ambient, ambient == NULL ? 0 : 3, + diffuse, diffuse == NULL ? 0 : 3, + specular, specular == NULL ? 0 : 3); +} + +int xmlload(char* xmlfile) +{ + return CallXmlLoader::Load(getScilabJavaVM(), xmlfile); +} + +int xmldomload(char* xmlfile) +{ + return CallXmlLoader::DomLoad(getScilabJavaVM(), xmlfile); +} + +char* xmlsave(int id, char* xmlfile, BOOL isReverse) +{ + return CallXmlLoader::Save(getScilabJavaVM(), id, xmlfile, isReverse == 1); +} diff --git a/modules/graphic_objects/src/cpp/createObjectData.cpp b/modules/graphic_objects/src/cpp/createObjectData.cpp new file mode 100755 index 000000000..c200dd221 --- /dev/null +++ b/modules/graphic_objects/src/cpp/createObjectData.cpp @@ -0,0 +1,99 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <string.h> + +extern "C" +{ +#include "createGraphicObject.h" +#include "deleteGraphicObject.h" +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" + + int createObject3dData(int obj, int newObj, int type); + +} +/* + * Create the data object for the newObj + * and copy the data from obj to newObj. + */ +int createObject3dData(int obj, int newObj, int type) +{ + double *pvecx, *pvecy, *pvecz; + int dataObj = 0; + int numElementsArray[3]; + BOOL result; + int *ptr; + + dataObj = createDataObject(newObj, type); + + if (dataObj == 0) + { + return 0; + } + + + if (type == __GO_PLOT3D__ || type == __GO_GRAYPLOT__) + { + ptr = &numElementsArray[0]; + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_X__, jni_int, (void**)&ptr); + ptr = &numElementsArray[1]; + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**)&ptr); + ptr = &numElementsArray[2]; + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_Z__, jni_int, (void**)&ptr); + + int grid[] = {1, numElementsArray[0], 1, numElementsArray[1]}; + result = setGraphicObjectProperty(newObj, __GO_DATA_MODEL_GRID_SIZE__, grid, jni_int_vector, 4); + } + else if (type == __GO_FAC3D__) + { + int ng = 0, nvg = 0; + int *png = &ng, *pnvg = &nvg; + int numColors; + int *pNumColors = &numColors; + double *Colors; + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &png); + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pnvg); + getGraphicObjectProperty(obj, __GO_DATA_MODEL_NUM_COLORS__, jni_int, (void**)&pNumColors); + getGraphicObjectProperty(obj, __GO_DATA_MODEL_COLORS__, jni_double_vector, (void**)&Colors); + + numElementsArray[0] = numElementsArray[1] = numElementsArray[2] = ng * nvg; + + int elements[] = {ng, nvg, numColors}; + result = setGraphicObjectProperty(newObj, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &elements, jni_int_vector, 3); + setGraphicObjectProperty(newObj, __GO_DATA_MODEL_COLORS__, Colors, jni_double_vector, numColors); + } + else + { + return 0; + } + + + if (result == 0) + { + deleteDataObject(dataObj); + return 0; + } + + getGraphicObjectProperty(obj, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&pvecx); + getGraphicObjectProperty(obj, __GO_DATA_MODEL_Y__, jni_double_vector, (void**)&pvecy); + getGraphicObjectProperty(obj, __GO_DATA_MODEL_Z__, jni_double_vector, (void**)&pvecz); + + setGraphicObjectProperty(newObj, __GO_DATA_MODEL_X__, pvecx, jni_double_vector, numElementsArray[0]); + setGraphicObjectProperty(newObj, __GO_DATA_MODEL_Y__, pvecy, jni_double_vector, numElementsArray[1]); + setGraphicObjectProperty(newObj, __GO_DATA_MODEL_Z__, pvecz, jni_double_vector, numElementsArray[2]); + + return dataObj; +} diff --git a/modules/graphic_objects/src/cpp/dataModel.cpp b/modules/graphic_objects/src/cpp/dataModel.cpp new file mode 100755 index 000000000..55317ad04 --- /dev/null +++ b/modules/graphic_objects/src/cpp/dataModel.cpp @@ -0,0 +1,125 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "DataModel.hxx" + +extern "C" { +#include "BOOL.h" + +#include <string.h> +} + +DataModel *DataModel::m_me = NULL; + +BOOL DataModel::setGraphicObjectProperty(int iUID, int _iName, void const* _dblValue, int numElements) +{ + Data3D* dataObject = NULL; + int property = 0; + int returnValue = 0; + + dataObject = (*m_dataMap)[iUID]; + if (dataObject == NULL) + { + return FALSE; + } + + property = dataObject->getPropertyFromName(_iName); + + if (property == UNKNOWN_DATA_PROPERTY) + { + return FALSE; + } + + returnValue = dataObject->setDataProperty(property, _dblValue, numElements); + + return (BOOL) returnValue; +} + +void DataModel::getGraphicObjectProperty(int iUID, int _iName, void **_pvData) +{ + Data3D* dataObject = NULL; + int property = 0; + + dataObject = (*m_dataMap)[iUID]; + + if (dataObject == NULL) + { + *_pvData = NULL; + return; + } + + property = dataObject->getPropertyFromName(_iName); + if (property == UNKNOWN_DATA_PROPERTY) + { + *_pvData = NULL; + return; + } + + dataObject->getDataProperty(property, _pvData); +} + +int DataModel::createDataObject(int iUID, int _iType) +{ + Data3D* newObject = NULL; + + /* + * To be implemented as the Java graphicObject class' similar function + * (getTypeFromName) in order to avoid strcmp calls. + */ + + switch (_iType) + { + case __GO_GRAYPLOT__ : + newObject = new NgonGridData(); + break; + case __GO_MATPLOT__ : + newObject = new NgonGridMatplotData(); + break; + case __GO_FAC3D__ : + newObject = new NgonGeneralData(); + break; + case __GO_PLOT3D__ : + newObject = new NgonGridData(); + break; + case __GO_POLYLINE__ : + newObject = new NgonPolylineData(); + break; + case __GO_FEC__ : + newObject = new MeshFecData(); + break; + default : + return 0; + } + + (*m_dataMap)[iUID] = newObject; + + return iUID; +} + +void DataModel::deleteDataObject(int iUID) +{ + std::map<int, Data3D*>::iterator it = m_dataMap->find(iUID); + if (it != m_dataMap->end() && it->second != NULL) + { + delete it->second; + m_dataMap->erase(it); + } + + /*Data3D* newObject = (*m_dataMap)[std::string(_pstID)]; + if (newObject != NULL) + { + delete newObject; + } + + m_dataMap->erase(std::string(_pstID));*/ +} + diff --git a/modules/graphic_objects/src/cpp/deleteGraphicObject.cpp b/modules/graphic_objects/src/cpp/deleteGraphicObject.cpp new file mode 100755 index 000000000..6c7f8991f --- /dev/null +++ b/modules/graphic_objects/src/cpp/deleteGraphicObject.cpp @@ -0,0 +1,33 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include "deleteGraphicObject.h" +#include "getScilabJavaVM.h" +} + +#include "CallGraphicController.hxx" +#include "DataController.hxx" + +using namespace org_scilab_modules_graphic_objects; + +void deleteGraphicObject(int iUID) +{ + CallGraphicController::removeRelationShipAndDelete(getScilabJavaVM(), iUID); +} + +void deleteDataObject(int iUID) +{ + DataController::deleteDataObject(iUID); +} + diff --git a/modules/graphic_objects/src/cpp/getConsoleIdentifier.cpp b/modules/graphic_objects/src/cpp/getConsoleIdentifier.cpp new file mode 100755 index 000000000..a7042714e --- /dev/null +++ b/modules/graphic_objects/src/cpp/getConsoleIdentifier.cpp @@ -0,0 +1,26 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include "getScilabJavaVM.h" +#include "getConsoleIdentifier.h" +} + +#include "CallGraphicController.hxx" + +using namespace org_scilab_modules_graphic_objects; + +int getConsoleIdentifier() +{ + return CallGraphicController::getConsoleIdentifier(getScilabJavaVM()); +} diff --git a/modules/graphic_objects/src/cpp/getGraphicObjectProperty.cpp b/modules/graphic_objects/src/cpp/getGraphicObjectProperty.cpp new file mode 100755 index 000000000..da730e600 --- /dev/null +++ b/modules/graphic_objects/src/cpp/getGraphicObjectProperty.cpp @@ -0,0 +1,292 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include <stdlib.h> +#include <string.h> +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "getScilabJavaVM.h" +#include <stdio.h> +} + +#include "CallGraphicController.hxx" +#include "DataController.hxx" +#include "ScilabView.hxx" + +using namespace org_scilab_modules_graphic_objects; + +void getGraphicObjectProperty(int iUID, int _iName, _ReturnType_ _returnType, void **_pvData) +{ + // do not perform anything if the id is undefined + if (iUID == 0) + { + return; + } + + switch (_iName) + { + case __GO_USER_DATA__ : + { + *_pvData = ScilabView::getUserdata(iUID); + break; + } + case __GO_USER_DATA_SIZE__ : + { + ((int *)*_pvData)[0] = ScilabView::getUserdataSize(iUID); + break; + } + + /* All the Data model properties have the DATA_MODEL prefix */ + case __GO_DATA_MODEL__ : + case __GO_DATA_MODEL_COORDINATES__ : + case __GO_DATA_MODEL_X__ : + case __GO_DATA_MODEL_Y__ : + case __GO_DATA_MODEL_Z__ : + case __GO_DATA_MODEL_X_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_NUM_ELEMENTS__ : + case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ : + case __GO_DATA_MODEL_NUM_VERTICES_PER_GON__ : + case __GO_DATA_MODEL_NUM_GONS__ : + case __GO_DATA_MODEL_Z_COORDINATES_SET__ : + case __GO_DATA_MODEL_COLORS__ : + case __GO_DATA_MODEL_NUM_COLORS__ : + case __GO_DATA_MODEL_NUM_VERTICES__ : + case __GO_DATA_MODEL_NUM_INDICES__ : + case __GO_DATA_MODEL_INDICES__ : + case __GO_DATA_MODEL_VALUES__ : + case __GO_DATA_MODEL_FEC_ELEMENTS__ : + case __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ : + case __GO_DATA_MODEL_NUM_X__ : + case __GO_DATA_MODEL_NUM_Y__ : + case __GO_DATA_MODEL_NUM_Z__ : + case __GO_DATA_MODEL_GRID_SIZE__ : + case __GO_DATA_MODEL_X_DIMENSIONS__ : + case __GO_DATA_MODEL_Y_DIMENSIONS__ : + case __GO_DATA_MODEL_MATPLOT_BOUNDS__ : + case __GO_DATA_MODEL_MATPLOT_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_DATA_INFOS__ : + case __GO_DATA_MODEL_MATPLOT_DATA_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_DATA_ORDER__ : + case __GO_DATA_MODEL_MATPLOT_GL_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ : + case __GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__ : + case __GO_DATA_MODEL_DISPLAY_FUNCTION__ : + case __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ : + { + DataController::getGraphicObjectProperty(iUID, _iName, _pvData); + break; + } + default : //property in Java Model + { + try + { + switch (_returnType) + { + case jni_string: + { + *(_pvData) = CallGraphicController::getGraphicObjectPropertyAsString(getScilabJavaVM(), iUID, _iName); + return; + } + case jni_string_vector: + { + *_pvData = CallGraphicController::getGraphicObjectPropertyAsStringVector(getScilabJavaVM(), iUID, _iName); + return; + } + case jni_double: + { + double * ret = CallGraphicController::getGraphicObjectPropertyAsDoubleVector(getScilabJavaVM(), iUID, _iName); + if (ret == NULL) + { + *_pvData = NULL; + } + else + { + ((double *)*_pvData)[0] = *ret; + delete[] ret; + } + + return; + } + case jni_double_vector: + { + *_pvData = CallGraphicController::getGraphicObjectPropertyAsDoubleVector(getScilabJavaVM(), iUID, _iName); + return; + } + case jni_bool: + { + int * ret = CallGraphicController::getGraphicObjectPropertyAsBooleanVector(getScilabJavaVM(), iUID, _iName); + if (ret == NULL) + { + *_pvData = NULL; + } + else + { + ((int *)*_pvData)[0] = *ret; + delete[] ret; + } + + return; + } + case jni_bool_vector: + { + *_pvData = CallGraphicController::getGraphicObjectPropertyAsBooleanVector(getScilabJavaVM(), iUID, _iName); + return; + } + case jni_int: + { + int * ret = CallGraphicController::getGraphicObjectPropertyAsIntegerVector(getScilabJavaVM(), iUID, _iName); + if (ret == NULL) + { + *_pvData = NULL; + } + else + { + ((int *)*_pvData)[0] = *ret; + delete[] ret; + } + + return; + } + case jni_int_vector: + { + *_pvData = CallGraphicController::getGraphicObjectPropertyAsIntegerVector(getScilabJavaVM(), iUID, _iName); + return; + } + default: + *_pvData = NULL; + return; + } + } + catch (std::exception &e) + { + e.what(); + // If we have an exception, return null to scilab to manage error. + *_pvData = NULL; + return; + } + } + } + + return; +} + + +void releaseGraphicObjectProperty(int _iName, void * _pvData, enum _ReturnType_ _returnType, int numElements) +{ + + /* All the Data model properties have the DATA_MODEL prefix */ + if (_iName == __GO_DATA_MODEL__ + || _iName == __GO_DATA_MODEL_COORDINATES__ + || _iName == __GO_DATA_MODEL_X__ + || _iName == __GO_DATA_MODEL_Y__ + || _iName == __GO_DATA_MODEL_Z__ + || _iName == __GO_DATA_MODEL_X_COORDINATES_SHIFT__ + || _iName == __GO_DATA_MODEL_Y_COORDINATES_SHIFT__ + || _iName == __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ + || _iName == __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ + || _iName == __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ + || _iName == __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ + || _iName == __GO_DATA_MODEL_NUM_ELEMENTS__ + || _iName == __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ + || _iName == __GO_DATA_MODEL_NUM_VERTICES_PER_GON__ + || _iName == __GO_DATA_MODEL_NUM_GONS__ + || _iName == __GO_DATA_MODEL_Z_COORDINATES_SET__ + || _iName == __GO_DATA_MODEL_COLORS__ + || _iName == __GO_DATA_MODEL_NUM_COLORS__ + || _iName == __GO_DATA_MODEL_NUM_VERTICES__ + || _iName == __GO_DATA_MODEL_NUM_INDICES__ + || _iName == __GO_DATA_MODEL_INDICES__ + || _iName == __GO_DATA_MODEL_VALUES__ + || _iName == __GO_DATA_MODEL_FEC_ELEMENTS__ + || _iName == __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ + || _iName == __GO_DATA_MODEL_NUM_X__ + || _iName == __GO_DATA_MODEL_NUM_Y__ + || _iName == __GO_DATA_MODEL_NUM_Z__ + || _iName == __GO_DATA_MODEL_GRID_SIZE__ + || _iName == __GO_DATA_MODEL_X_DIMENSIONS__ + || _iName == __GO_DATA_MODEL_Y_DIMENSIONS__ + || _iName == __GO_DATA_MODEL_MATPLOT_BOUNDS__ + || _iName == __GO_DATA_MODEL_MATPLOT_TYPE__ + || _iName == __GO_DATA_MODEL_MATPLOT_DATA_INFOS__ + || _iName == __GO_DATA_MODEL_MATPLOT_DATA_TYPE__ + || _iName == __GO_DATA_MODEL_MATPLOT_DATA_ORDER__ + || _iName == __GO_DATA_MODEL_MATPLOT_GL_TYPE__ + || _iName == __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ + || _iName == __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ + || _iName == __GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__ + ) + { + // passed by reference, do not free them + return; + } + + switch (_returnType) + { + case jni_string: + { + delete[] (char*) _pvData; + return; + } + case jni_string_vector: + { + char** data = (char**) _pvData; + for (int i = 0; i < numElements; ++i) + { + delete[] data[i]; + } + delete[] data; + return; + } + case jni_double: + { + // passed by value + return; + } + case jni_double_vector: + { + delete[] (double*) _pvData; + return; + } + case jni_bool: + { + // passed by value + return; + } + case jni_bool_vector: + { + delete[] (int*) _pvData; + return; + } + case jni_int: + { + // passed by value + return; + } + case jni_int_vector: + { + delete[] (int*) _pvData; + return; + } + default: + return; + } + +} + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-AxesModel.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-AxesModel.lo new file mode 100755 index 000000000..ba71048df --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-AxesModel.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-AxesModel.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-AxesModel.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ColorComputer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ColorComputer.lo new file mode 100755 index 000000000..04d0aa8db --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ColorComputer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-ColorComputer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-ColorComputer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentFigure.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentFigure.lo new file mode 100755 index 000000000..927ab19d1 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentFigure.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-CurrentFigure.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-CurrentFigure.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentObject.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentObject.lo new file mode 100755 index 000000000..8a507deea --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentObject.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-CurrentObject.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-CurrentObject.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentSubwin.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentSubwin.lo new file mode 100755 index 000000000..d054acbf8 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-CurrentSubwin.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-CurrentSubwin.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-CurrentSubwin.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Data3D.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Data3D.lo new file mode 100755 index 000000000..7212564b8 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Data3D.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Data3D.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Data3D.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DataLoader.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DataLoader.lo new file mode 100755 index 000000000..a039fed44 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DataLoader.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-DataLoader.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-DataLoader.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DecompositionUtils.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DecompositionUtils.lo new file mode 100755 index 000000000..80a3d994e --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-DecompositionUtils.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-DecompositionUtils.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-DecompositionUtils.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DColorComputer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DColorComputer.lo new file mode 100755 index 000000000..e9d8c0618 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DColorComputer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Fac3DColorComputer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Fac3DColorComputer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DDecomposer.lo new file mode 100755 index 000000000..2ba85ef6b --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Fac3DDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Fac3DDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Fac3DDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureList.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureList.lo new file mode 100755 index 000000000..1ecdbfe16 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureList.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-FigureList.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-FigureList.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureModel.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureModel.lo new file mode 100755 index 000000000..d3a59f82b --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-FigureModel.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-FigureModel.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-FigureModel.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-HandleManagement.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-HandleManagement.lo new file mode 100755 index 000000000..4cfc2f47f --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-HandleManagement.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-HandleManagement.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-HandleManagement.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MatPlotDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MatPlotDecomposer.lo new file mode 100755 index 000000000..8a5d75b9b --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MatPlotDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-MatPlotDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-MatPlotDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshData.lo new file mode 100755 index 000000000..28c78973d --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-MeshData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-MeshData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecData.lo new file mode 100755 index 000000000..3f8b92684 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-MeshFecData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-MeshFecData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecDataDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecDataDecomposer.lo new file mode 100755 index 000000000..a7c121ec7 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-MeshFecDataDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-MeshFecDataDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-MeshFecDataDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonData.lo new file mode 100755 index 000000000..e4932b580 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGeneralData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGeneralData.lo new file mode 100755 index 000000000..155e68245 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGeneralData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGeneralData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGeneralData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridData.lo new file mode 100755 index 000000000..814f9a033 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGridData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGridData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridDataDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridDataDecomposer.lo new file mode 100755 index 000000000..242e46ef6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridDataDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGridDataDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGridDataDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.lo new file mode 100755 index 000000000..70a870e00 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGridGrayplotDataDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotData.lo new file mode 100755 index 000000000..c97585e55 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGridMatplotData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGridMatplotData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.lo new file mode 100755 index 000000000..0964d1d74 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonGridMatplotDataDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonPolylineData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonPolylineData.lo new file mode 100755 index 000000000..fccdc033b --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NgonPolylineData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NgonPolylineData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NgonPolylineData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NormalGenerator.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NormalGenerator.lo new file mode 100755 index 000000000..00b8996c5 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-NormalGenerator.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-NormalGenerator.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-NormalGenerator.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Plot3DDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Plot3DDecomposer.lo new file mode 100755 index 000000000..09f35bdd2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Plot3DDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Plot3DDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Plot3DDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-PolylineDecomposer.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-PolylineDecomposer.lo new file mode 100755 index 000000000..897395b50 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-PolylineDecomposer.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-PolylineDecomposer.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-PolylineDecomposer.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ScilabView.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ScilabView.lo new file mode 100755 index 000000000..c3c53b3e6 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-ScilabView.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-ScilabView.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-ScilabView.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Texture.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Texture.lo new file mode 100755 index 000000000..64055a65b --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Texture.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Texture.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Texture.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Triangulator.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Triangulator.lo new file mode 100755 index 000000000..7f5de8a88 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-Triangulator.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-Triangulator.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Triangulator.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createGraphicObject.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createGraphicObject.lo new file mode 100755 index 000000000..db6845aae --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createGraphicObject.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-createGraphicObject.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-createGraphicObject.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createObjectData.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createObjectData.lo new file mode 100755 index 000000000..d9457b6f2 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-createObjectData.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-createObjectData.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-createObjectData.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-dataModel.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-dataModel.lo new file mode 100755 index 000000000..03ae3d2c0 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-dataModel.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-dataModel.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-dataModel.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-deleteGraphicObject.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-deleteGraphicObject.lo new file mode 100755 index 000000000..207d7e76f --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-deleteGraphicObject.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-deleteGraphicObject.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-deleteGraphicObject.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getConsoleIdentifier.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getConsoleIdentifier.lo new file mode 100755 index 000000000..8ab1cdfca --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getConsoleIdentifier.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-getConsoleIdentifier.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-getConsoleIdentifier.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getGraphicObjectProperty.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getGraphicObjectProperty.lo new file mode 100755 index 000000000..173342237 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-getGraphicObjectProperty.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-getGraphicObjectProperty.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-getGraphicObjectProperty.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-pickSurface.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-pickSurface.lo new file mode 100755 index 000000000..53ee0c699 --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-pickSurface.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-pickSurface.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-pickSurface.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/libscigraphic_objects_la-setGraphicObjectProperty.lo b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-setGraphicObjectProperty.lo new file mode 100755 index 000000000..5c2e8637e --- /dev/null +++ b/modules/graphic_objects/src/cpp/libscigraphic_objects_la-setGraphicObjectProperty.lo @@ -0,0 +1,12 @@ +# src/cpp/libscigraphic_objects_la-setGraphicObjectProperty.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-setGraphicObjectProperty.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/cpp/pickSurface.cpp b/modules/graphic_objects/src/cpp/pickSurface.cpp new file mode 100755 index 000000000..e1150a820 --- /dev/null +++ b/modules/graphic_objects/src/cpp/pickSurface.cpp @@ -0,0 +1,347 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include <stdio.h> +#include <math.h> +#include <string.h> + +#include "getGraphicObjectProperty.h" +#include "graphicObjectProperties.h" + + double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw); + +} + +#define EPS 1e-8 + +class Vec3 +{ +public: + double x, y, z; + + Vec3(): x(0), y(0), z(0) {} + Vec3(double _x, double _y, double _z): x(_x), y(_y), z(_z) {} + + Vec3 operator - (Vec3 v) + { + return Vec3( x - v.x, y - v.y, z - v.z ); + } + + Vec3 operator + (Vec3 v) + { + return Vec3( x + v.x, y + v.y, z + v.z ); + } + + Vec3 operator * (double s) + { + return Vec3( x * s, y * s, z * s ); + } + + Vec3 operator / (double s) + { + return Vec3( x / s, y / s, z / s ); + } + + double dot(Vec3 v) + { + return x * v.x + y * v.y + z * v.z; + } + + Vec3 cross(Vec3 v) + { + return Vec3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x); + } + + Vec3& normalize() + { + double d = sqrt(this->dot(*this)); + if (d < EPS) + { + x = y = z = 0; + } + else + { + x /= d; + y /= d; + z /= d; + } + return *this; + } + + Vec3 getNormalized() + { + Vec3 n = Vec3(x, y, z); + return n.normalize(); + } + + void print() + { + printf("\nv = %.8f, %.8f, %.8f", x, y, z); + } +}; + +int test_tri(Vec3 V1, Vec3 V2, Vec3 V3, Vec3 Dir, Vec3 P0, Vec3 &ret); +void QuadTestAndSaveZ(double *bounds, Vec3 P0, Vec3 P1, Vec3 P2, Vec3 P3, Vec3 direction, Vec3 point, + double mx, double my, double mz, double mw, double &retZ); + +/* + * Given a ray (point(x, y,z) + direction(dx, dy, dz)) + * check if the ray intersects any triangle from the given surface. + * returns the projected Z from the intersection point (p) (p.x*mx + p.y*my + p.z*mz + mw;) + * or 2.0 if there isn't intersection (projected z vary between -1.0 - 1.0). + */ + +double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw) +{ + double* X = NULL; + double* Y = NULL; + double* Z = NULL; + + int type; + int * pType = &type; + double lastZ = 2.0; + + Vec3 direction = Vec3(dx, dy, dz); + Vec3 point = Vec3(x, y, z); + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &X); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &Y); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &Z); + + + + int axes_uid = 0; + int * paxes_uid = &axes_uid; + int zoom_enabled = 0; + int *ptr = &zoom_enabled; + double *bounds; + getGraphicObjectProperty(uid, __GO_PARENT_AXES__, jni_int, (void**) &paxes_uid); + getGraphicObjectProperty(axes_uid, __GO_ZOOM_ENABLED__, jni_bool, (void**) &ptr); + + if (zoom_enabled) + { + getGraphicObjectProperty(axes_uid, __GO_ZOOM_BOX__, jni_double_vector, (void**) &bounds); + } + else + { + getGraphicObjectProperty(axes_uid, __GO_DATA_BOUNDS__, jni_double_vector, (void**) &bounds); + } + + + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + if (type == __GO_PLOT3D__) + { + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* for each quad in the mesh separate it in 2 triangles + * and use test_tri function to test intersection from + * mouse click ray + * A point (x, y, z) at (n,m) is given by + * (X[n], Y[m], Z[n][m]) where X, Y are vectors and Z a matrix. + */ + for (int i = 0; i < (numX - 1); ++i) + { + for (int j = 0; j < (numY - 1); ++j) + { + Vec3 P0 = Vec3(X[i], Y[j], Z[i + j * numX]); + Vec3 P1 = Vec3(X[i + 1], Y[j], Z[(i + 1) + j * numX]); + Vec3 P2 = Vec3(X[i + 1], Y[j + 1], Z[(i + 1) + (j + 1) * numX]); + Vec3 P3 = Vec3(X[i], Y[j + 1], Z[i + (j + 1) * numX]); + + QuadTestAndSaveZ(bounds, P0, P1, P2, P3, direction, point, mx, my, mz, mw, lastZ); + } + } + } + else if (type == __GO_FAC3D__) + { + int ng = 0, nvg = 0; + int *png = &ng, *pnvg = &nvg; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &png); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pnvg); + + if (nvg != 4) + { + return 2.0; + } + + /* + * Fac3d data model is made by gons + * each gon should be a quad + * ordered in the vector + * X = [ p1, p2, p3, p4, p1, p2, p3, p4, ...] + * Y = [ p1, p2, p3, p4, p1, p2, p3, p4, ...] + * Z = [ p1, p2, p3, p4, p1, p2, p3, p4, ...] + * where a point is given by (x, y, z) + */ + for (int i = 0; i < ng * nvg; i += nvg) + { + Vec3 P0 = Vec3(X[i], Y[i], Z[i]); + Vec3 P1 = Vec3(X[i + 1], Y[i + 1], Z[i + 1]); + Vec3 P2 = Vec3(X[i + 2], Y[i + 2], Z[i + 2]); + Vec3 P3 = Vec3(X[i + 3], Y[i + 3], Z[i + 3]); + + QuadTestAndSaveZ(bounds, P0, P1, P2, P3, direction, point, mx, my, mz, mw, lastZ); + } + } + if (type == __GO_GRAYPLOT__) + { + + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + /* Gray plot is a plane with Z = 0 and bounds = {x[0], x[n-1], y[0], y[m-1]} + * where n = size of vector x and m = size of vector y + */ + + Vec3 P0 = Vec3(X[0], Y[0], 0); + Vec3 P1 = Vec3(X[numX - 1], Y[0], 0); + Vec3 P2 = Vec3(X[numX - 1], Y[numY - 1], 0); + Vec3 P3 = Vec3(X[0], Y[numY - 1], 0); + + QuadTestAndSaveZ(bounds, P0, P1, P2, P3, direction, point, mx, my, mz, mw, lastZ); + } + if (type == __GO_MATPLOT__) + { + double* scale = NULL; + double* translate = NULL; + double zShift = 0.; + double* pdZShift = &zShift; + double mbounds[4]; + int numX = 0; + int* piNumX = &numX; + int numY = 0; + int* piNumY = &numY; + + getGraphicObjectProperty(uid, __GO_MATPLOT_SCALE__, jni_double_vector, (void**) &scale); + getGraphicObjectProperty(uid, __GO_MATPLOT_TRANSLATE__, jni_double_vector, (void**) &translate); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double, (void**) &pdZShift); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &piNumX); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &piNumY); + + mbounds[0] = translate[0]; + mbounds[1] = translate[1]; + mbounds[2] = mbounds[0] + (numX - 1) * scale[0]; + mbounds[3] = mbounds[1] + (numY - 1) * scale[1]; + + Vec3 P0 = Vec3(mbounds[0], mbounds[1], zShift); + Vec3 P1 = Vec3(mbounds[2], mbounds[1], zShift); + Vec3 P2 = Vec3(mbounds[2], mbounds[3], zShift); + Vec3 P3 = Vec3(mbounds[0], mbounds[3], zShift); + + QuadTestAndSaveZ(bounds, P0, P1, P2, P3, direction, point, mx, my, mz, mw, lastZ); + } + return lastZ; + +} + +/* + * Test if the ray intersects the given triangle (V1, V2, V3) + * Fast, minimum storage ray/triangle intersection + * algorithm propose by Tomas Möller and Ben Trumbore. + * Calculate barycentric cordinates (u, v) and test if + * 0 <= u <= 1 && 0 <= v <= 1 && (u + v) <= 1, then the + * intersection point is inside the triangle. + */ +int test_tri(Vec3 V1, Vec3 V2, Vec3 V3, Vec3 Dir, Vec3 P0, Vec3 &ret) +{ + Vec3 Edge1, Edge2, tVec, pVec, qVec; + double det, inv_det, t, u, v; + + Edge1 = V2 - V1; + Edge2 = V3 - V1; + + pVec = Dir.cross(Edge2); + det = Edge1.dot(pVec); + + if (det > -EPS && det < EPS) + { + return 0; + } + + inv_det = 1 / det; + + tVec = P0 - V1; + u = tVec.dot(pVec) * inv_det; + + if (u < 0.0 || u > 1.0) + { + return 0; + } + + qVec = tVec.cross(Edge1); + v = Dir.dot(qVec) * inv_det; + + if (v < 0.0 || (u + v) > 1.0) + { + return 0; + } + + t = Edge2.dot(qVec) * inv_det; + ret = P0 + Dir * t; + + + return 1; +} + +bool isInViewBox(double * bounds, Vec3 point) +{ + return (bounds[0] <= point.x && bounds[1] >= point.x && + bounds[2] <= point.y && bounds[3] >= point.y && + bounds[4] <= point.z && bounds[5] >= point.z); +} + +void QuadTestAndSaveZ(double *bounds, Vec3 P0, Vec3 P1, Vec3 P2, Vec3 P3, Vec3 direction, Vec3 point, + double mx, double my, double mz, double mw, double &retZ) +{ + Vec3 ret; + + /*test first triangle*/ + if (test_tri(P0, P1, P2, direction, point, ret) == 1) + { + /*the intersection point can be outside the view box(invisible)*/ + if (isInViewBox(bounds, ret)) + { + /* ray intersects the triangle, then we project only the Z cordinate + * and store the nearest projected Z. + */ + double curZ = ret.x * mx + ret.y * my + ret.z * mz + mw; + retZ = retZ < curZ ? retZ : curZ; + } + } + /*test second triangle*/ + if (test_tri(P0, P2, P3, direction, point, ret) == 1) + { + if (isInViewBox(bounds, ret)) + { + double curZ = ret.x * mx + ret.y * my + ret.z * mz + mw; + retZ = retZ < curZ ? retZ : curZ; + } + } +} + + + + diff --git a/modules/graphic_objects/src/cpp/setGraphicObjectProperty.cpp b/modules/graphic_objects/src/cpp/setGraphicObjectProperty.cpp new file mode 100755 index 000000000..ea6fdbd1b --- /dev/null +++ b/modules/graphic_objects/src/cpp/setGraphicObjectProperty.cpp @@ -0,0 +1,163 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +extern "C" +{ +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "getScilabJavaVM.h" + +#include <stdio.h> +#include <string.h> +} + +#include "CallGraphicController.hxx" +#include "DataController.hxx" +#include "ScilabView.hxx" + +using namespace org_scilab_modules_graphic_objects; + +void setGraphicObjectRelationship(int _parentId, int _childId) +{ + // do not perform anything if the id is undefined + if (_parentId == 0 || _childId == 0) + { + return; + } + + CallGraphicController::setGraphicObjectRelationship(getScilabJavaVM(), _parentId, _childId); +} + +BOOL setGraphicObjectProperty(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements) +{ + return setGraphicObjectPropertyAndWarn(_iID, _iName, _pvValue, _valueType, numElements, 1); +} + +BOOL setGraphicObjectPropertyAndNoWarn(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements) +{ + return setGraphicObjectPropertyAndWarn(_iID, _iName, _pvValue, _valueType, numElements, 0); +} + +BOOL setGraphicObjectPropertyAndWarn(int _iID, int _iName, void const* _pvValue, _ReturnType_ _valueType, int numElements, int warnJava) +{ + bool result = false; + + double doubleValue = 0.; + int intValue = 0; + BOOL boolValue = FALSE; + + // do not perform anything if the id is undefined + if (_iID == 0) + { + return FALSE; + } + + switch (_iName) + { + case __GO_USER_DATA__ : + { + ScilabView::setUserdata(_iID, (int*) _pvValue, numElements); + return TRUE; + } + case __GO_DATA_MODEL__ : + case __GO_DATA_MODEL_COORDINATES__ : + case __GO_DATA_MODEL_X__ : + case __GO_DATA_MODEL_Y__ : + case __GO_DATA_MODEL_Z__ : + case __GO_DATA_MODEL_X_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ : + case __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ : + case __GO_DATA_MODEL_NUM_ELEMENTS__ : + case __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ : + case __GO_DATA_MODEL_NUM_VERTICES_PER_GON__ : + case __GO_DATA_MODEL_NUM_GONS__ : + case __GO_DATA_MODEL_Z_COORDINATES_SET__ : + case __GO_DATA_MODEL_COLORS__ : + case __GO_DATA_MODEL_NUM_COLORS__ : + case __GO_DATA_MODEL_NUM_VERTICES__ : + case __GO_DATA_MODEL_NUM_INDICES__ : + case __GO_DATA_MODEL_INDICES__ : + case __GO_DATA_MODEL_VALUES__ : + case __GO_DATA_MODEL_FEC_ELEMENTS__ : + case __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ : + case __GO_DATA_MODEL_NUM_X__ : + case __GO_DATA_MODEL_NUM_Y__ : + case __GO_DATA_MODEL_NUM_Z__ : + case __GO_DATA_MODEL_GRID_SIZE__ : + case __GO_DATA_MODEL_X_DIMENSIONS__ : + case __GO_DATA_MODEL_Y_DIMENSIONS__ : + case __GO_DATA_MODEL_MATPLOT_BOUNDS__ : + case __GO_DATA_MODEL_MATPLOT_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_DATA_INFOS__ : + case __GO_DATA_MODEL_MATPLOT_DATA_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_DATA_ORDER__ : + case __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ : + case __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ : + case __GO_DATA_MODEL_DISPLAY_FUNCTION__ : + { + BOOL bFalse = FALSE; + BOOL bTrue = TRUE; + BOOL res; + setGraphicObjectProperty(_iID, __GO_VALID__, &bFalse, jni_bool, 1); + res = DataController::setGraphicObjectProperty(_iID, _iName, _pvValue, numElements); + setGraphicObjectProperty(_iID, __GO_VALID__, &bTrue, jni_bool, 1); + if ((res || _iName == __GO_DATA_MODEL__) && warnJava) + { + ///printf("debug property value=%d\n",_iName); + CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, __GO_DATA_MODEL__, _iID); + } + return res; + } + default : + { + switch (_valueType) + { + case jni_string : + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (char *)_pvValue); + break; + + case jni_string_vector : + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (char**)_pvValue, numElements); + break; + case jni_double : + doubleValue = *(double*)_pvValue; + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (double)doubleValue); + break; + case jni_double_vector : + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (double*)_pvValue, numElements); + break; + case jni_int : + intValue = *(int*)_pvValue; + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (int)intValue); + break; + case jni_int_vector : + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (int*)_pvValue, numElements); + break; + case jni_bool : + boolValue = *(BOOL*)_pvValue; + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, BOOLtobool(boolValue)); + break; + case jni_bool_vector : + result = CallGraphicController::setGraphicObjectProperty(getScilabJavaVM(), _iID, _iName, (bool*)_pvValue, numElements); + break; + default : + /* Do Nothing */ + break; + } + } + } + return booltoBOOL(result); +} + diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallGraphicController.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallGraphicController.java new file mode 100755 index 000000000..4101995fe --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallGraphicController.java @@ -0,0 +1,195 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicView.ScilabView; +import org.scilab.modules.graphic_objects.utils.MenuBarBuilder; + +/** + * This is a static class to access all controller capabilities + * from C/C++ code through JNI + * See SCI/modules/graphic_objects/src/jni/graphic_objects.giws.xml for other details. + **/ +public final class CallGraphicController { + + public static void setGraphicObjectRelationship(int parentId, int childId) { + GraphicController.getController().setGraphicObjectRelationship(parentId, childId); + } + + public static void removeRelationShipAndDelete(int parentId) { + GraphicController.getController().removeRelationShipAndDelete(parentId); + } + + public static int cloneGraphicObject(int id) { + return GraphicController.getController().cloneObject(id); + } + + public static int askGraphicObject(int typeName) { + return GraphicController.getController().askObject(GraphicObject.getTypeFromName(typeName)); + } + + public static void deleteGraphicObject(int id) { + GraphicController.getController().deleteObject(id); + } + + private static boolean setGraphicObjectProperty(int id, int propertyName, Object value) { + return GraphicController.getController().setProperty(id, propertyName, value); + } + + private static Object getGraphicObjectProperty(int id, int propertyName) { + return GraphicController.getController().getProperty(id, propertyName); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, String value) { + return setGraphicObjectProperty(id, propertyName, (Object) value); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, String[] value) { + return setGraphicObjectProperty(id, propertyName, (Object) value); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, double value) { + return setGraphicObjectProperty(id, propertyName, (Object) new Double(value)); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, double[] value) { + Double[] array = new Double[value.length]; + + for (int i = 0; i < value.length; i++) { + array[i] = value[i]; + } + + return setGraphicObjectProperty(id, propertyName, (Object) array); + } + + + public static boolean setGraphicObjectProperty(int id, int propertyName, int value) { + return setGraphicObjectProperty(id, propertyName, (Object) new Integer(value)); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, int[] value) { + Integer[] array = new Integer[value.length]; + + for (int i = 0; i < value.length; i++) { + array[i] = value[i]; + } + + return setGraphicObjectProperty(id, propertyName, (Object) array); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, boolean value) { + return setGraphicObjectProperty(id, propertyName, (Object) new Boolean(value)); + } + + public static boolean setGraphicObjectProperty(int id, int propertyName, boolean[] value) { + Boolean[] array = new Boolean[value.length]; + + for (int i = 0; i < value.length; i++) { + array[i] = value[i]; + } + + return setGraphicObjectProperty(id, propertyName, (Object) array); + } + + public static String getGraphicObjectPropertyAsString(int id, int propertyName) { + return (String) getGraphicObjectProperty(id, propertyName); + } + + public static String[] getGraphicObjectPropertyAsStringVector(int id, int propertyName) { + return (String[]) getGraphicObjectProperty(id, propertyName); + } + + public static double[] getGraphicObjectPropertyAsDoubleVector(int id, int propertyName) { + Object ret = getGraphicObjectProperty(id, propertyName); + double[] result = null; + + if (ret == null) { + return null; + } + + if (ret instanceof Double[]) { + Double[] tmp = (Double[]) ret; + result = new double[tmp.length]; + + for (int i = 0; i < result.length; i++) { + result[i] = tmp[i]; + } + } else if (ret instanceof Double) { + result = new double[] { (Double) ret}; + } + + return result; + } + + public static int[] getGraphicObjectPropertyAsIntegerVector(int id, int propertyName) { + Object ret = getGraphicObjectProperty(id, propertyName); + int[] result = null; + + if (ret == null) { + return null; + } + + if (ret instanceof Integer[]) { + Integer[] tmp = (Integer[]) ret; + result = new int[tmp.length]; + + for (int i = 0; i < result.length; i++) { + result[i] = tmp[i] == null ? 0 : tmp[i]; + } + } else if (ret instanceof Integer) { + result = new int[] { (Integer) ret}; + } + + return result; + } + + public static int[] getGraphicObjectPropertyAsBooleanVector(int id, int propertyName) { + Object ret = getGraphicObjectProperty(id, propertyName); + int[] result = null; + + if (ret == null) { + return null; + } + + if (ret instanceof Boolean[]) { + Boolean[] tmp = (Boolean[]) getGraphicObjectProperty(id, propertyName); + result = new int[tmp.length]; + for (int i = 0; i < result.length; i++) { + result[i] = tmp[i] ? 1 : 0; + } + } else if (ret instanceof Boolean) { + result = new int[] { ((Boolean) ret) ? 1 : 0}; + } + + return result; + } + + public static void registerScilabView() { + GraphicController.getController().register(ScilabView.getScilabView()); + } + + public static void unregisterScilabView() { + GraphicController.getController().unregister(ScilabView.getScilabView()); + } + + public static int getConsoleIdentifier() { + return Console.getConsole().getIdentifier(); + } + + public static void buildFigureMenuBar(int figureId) { + MenuBarBuilder.buildFigureMenuBar(figureId); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallXmlLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallXmlLoader.java new file mode 100755 index 000000000..d53e53ad0 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallXmlLoader.java @@ -0,0 +1,23 @@ +package org.scilab.modules.graphic_objects; + +import org.scilab.modules.graphic_objects.xmlloader.XMLDomLoader; +import org.scilab.modules.graphic_objects.xmlloader.XmlLoader; +import org.scilab.modules.graphic_objects.xmlloader.XmlSaver; +import org.xml.sax.SAXException; + +public class CallXmlLoader { + + public static int Load(String filename) throws SAXException { + XmlLoader loader = new XmlLoader(filename); + return loader.parse(); + } + + public static int DomLoad(String filename) throws SAXException { + XMLDomLoader loader = new XMLDomLoader(filename); + return loader.parse(); + } + + public static String Save(int figure, String filename, boolean reverseChildren) { + return XmlSaver.save(figure, filename, reverseChildren); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoader.java new file mode 100755 index 000000000..85e5c1ad8 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoader.java @@ -0,0 +1,131 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class DataLoader { + public static int getTextureWidth(int id) { + return DataLoaderJNI.getTextureWidth(id); + } + + public static int getTextureHeight(int id) { + return DataLoaderJNI.getTextureHeight(id); + } + + public static int fillTextureData(int id, java.nio.ByteBuffer buffer, int bufferLength) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + return DataLoaderJNI.fillTextureData(id, buffer, bufferLength); + } + } + + public static int fillSubTextureData(int id, java.nio.ByteBuffer buffer, int bufferLength, int x, int y, int width, int height) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + return DataLoaderJNI.fillSubTextureData(id, buffer, bufferLength, x, y, width, height); + } + } + + public static int getDataSize(int id) { + return DataLoaderJNI.getDataSize(id); + } + + public static void fillVertices(int id, java.nio.FloatBuffer buffer, int bufferLength, int elementsSize, int coordinateMask, double[] scale, double[] translation, int logMask) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + DataLoaderJNI.fillVertices(id, buffer, bufferLength, elementsSize, coordinateMask, scale, translation, logMask); + } + } + + public static void fillNormals(int id, java.nio.FloatBuffer position, java.nio.FloatBuffer buffer, int bufferLength, int elementsSize) { + assert position.isDirect() : "Buffer must be allocated direct."; + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + DataLoaderJNI.fillNormals(id, position, buffer, bufferLength, elementsSize); + } + } + + public static void fillColors(int id, java.nio.FloatBuffer buffer, int bufferLength, int elementsSize) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + DataLoaderJNI.fillColors(id, buffer, bufferLength, elementsSize); + } + } + + public static void fillTextureCoordinates(int id, java.nio.FloatBuffer buffer, int bufferLength) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + DataLoaderJNI.fillTextureCoordinates(id, buffer, bufferLength); + } + } + + public static int getIndicesSize(int id) { + return DataLoaderJNI.getIndicesSize(id); + } + + public static int fillIndices(int id, java.nio.IntBuffer buffer, int bufferLength, int logMask) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + return DataLoaderJNI.fillIndices(id, buffer, bufferLength, logMask); + } + } + + public static int getWireIndicesSize(int id) { + return DataLoaderJNI.getWireIndicesSize(id); + } + + public static int fillWireIndices(int id, java.nio.IntBuffer buffer, int bufferLength, int logMask) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + return DataLoaderJNI.fillWireIndices(id, buffer, bufferLength, logMask); + } + } + + public static int getMarkIndicesSize(int id) { + return DataLoaderJNI.getMarkIndicesSize(id); + } + + public static int fillMarkIndices(int id, java.nio.IntBuffer buffer, int bufferLength) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + return DataLoaderJNI.fillMarkIndices(id, buffer, bufferLength); + } + } + + public static java.nio.ByteBuffer getTextureData(int id) { + return DataLoaderJNI.getTextureData(id); + } + + public static int getTextureImageType(int id) { + return DataLoaderJNI.getTextureImageType(id); + } + + public static int getTextureDataType(int id) { + return DataLoaderJNI.getTextureDataType(id); + } + + public static int getTextureGLType(int id) { + return DataLoaderJNI.getTextureGLType(id); + } + + public static void disposeTextureData(int id, java.nio.ByteBuffer buffer) { + assert buffer.isDirect() : "Buffer must be allocated direct."; + { + DataLoaderJNI.disposeTextureData(id, buffer); + } + } + + public static int isTextureRowOrder(int id) { + return DataLoaderJNI.isTextureRowOrder(id); + } + + public static void setABGRExt(int isAvailable) { + DataLoaderJNI.setABGRExt(isAvailable); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoaderJNI.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoaderJNI.java new file mode 100755 index 000000000..2c12aca42 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/DataLoaderJNI.java @@ -0,0 +1,44 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class DataLoaderJNI { + + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } + + public final static native int getTextureWidth(int jarg1); + public final static native int getTextureHeight(int jarg1); + public final static native int fillTextureData(int jarg1, java.nio.ByteBuffer jarg2, int jarg3); + public final static native int fillSubTextureData(int jarg1, java.nio.ByteBuffer jarg2, int jarg3, int jarg4, int jarg5, int jarg6, int jarg7); + public final static native int getDataSize(int jarg1); + public final static native void fillVertices(int jarg1, java.nio.FloatBuffer jarg2, int jarg3, int jarg4, int jarg5, double[] jarg6, double[] jarg7, int jarg8); + public final static native void fillNormals(int jarg1, java.nio.FloatBuffer jarg2, java.nio.FloatBuffer jarg3, int jarg4, int jarg5); + public final static native void fillColors(int jarg1, java.nio.FloatBuffer jarg2, int jarg3, int jarg4); + public final static native void fillTextureCoordinates(int jarg1, java.nio.FloatBuffer jarg2, int jarg3); + public final static native int getIndicesSize(int jarg1); + public final static native int fillIndices(int jarg1, java.nio.IntBuffer jarg2, int jarg3, int jarg4); + public final static native int getWireIndicesSize(int jarg1); + public final static native int fillWireIndices(int jarg1, java.nio.IntBuffer jarg2, int jarg3, int jarg4); + public final static native int getMarkIndicesSize(int jarg1); + public final static native int fillMarkIndices(int jarg1, java.nio.IntBuffer jarg2, int jarg3); + public final static native java.nio.ByteBuffer getTextureData(int jarg1); + public final static native int getTextureImageType(int jarg1); + public final static native int getTextureDataType(int jarg1); + public final static native int getTextureGLType(int jarg1); + public final static native void disposeTextureData(int jarg1, java.nio.ByteBuffer jarg2); + public final static native int isTextureRowOrder(int jarg1); + public final static native void setABGRExt(int jarg1); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/JavaObjectLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/JavaObjectLoader.java new file mode 100755 index 000000000..ce89b65b7 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/JavaObjectLoader.java @@ -0,0 +1,191 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.arc.ArcDecomposer; +import org.scilab.modules.graphic_objects.vectfield.ChampDecomposer; +import org.scilab.modules.graphic_objects.rectangle.RectangleDecomposer; +import org.scilab.modules.graphic_objects.vectfield.SegsDecomposer; + +/** + * Class JavaObjectLoader + * A set of methods used to load the data of purely Java-based objects. + * @author Manuel JULIACHS + */ +public class JavaObjectLoader { + + /** + * Returns the number of data elements for the given object. + * @param the id of the given object. + * @return the number of data elements. + */ + public static int getDataSize(Integer id) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + return ArcDecomposer.getDataSize(); + case GraphicObjectProperties.__GO_CHAMP__ : + return ChampDecomposer.getDataSize(id); + case GraphicObjectProperties.__GO_RECTANGLE__ : + return RectangleDecomposer.getDataSize(); + case GraphicObjectProperties.__GO_SEGS__ : + return SegsDecomposer.getDataSize(id); + default : + return 0; + } + } + + /** + * Fills the given buffer with vertex data from the given object. + * @param the id of the given object. + * @param the buffer to fill. + * @param the number of coordinates taken by one element in the buffer. + * @param the bit mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param the conversion scale factor to apply to data. + * @param the conversion translation value to apply to data. + * @param the bit mask specifying whether logarithmic coordinates are used. + */ + public static void fillVertices(Integer id, FloatBuffer buffer, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + ArcDecomposer.fillVertices(buffer, id, elementsSize, coordinateMask, scale, translation, logMask); + break; + case GraphicObjectProperties.__GO_CHAMP__ : + ChampDecomposer.fillVertices(buffer, id, elementsSize, coordinateMask, scale, translation, logMask); + break; + case GraphicObjectProperties.__GO_RECTANGLE__ : + RectangleDecomposer.fillVertices(buffer, id, elementsSize, coordinateMask, scale, translation, logMask); + break; + case GraphicObjectProperties.__GO_SEGS__ : + SegsDecomposer.fillVertices(buffer, id, elementsSize, coordinateMask, scale, translation, logMask); + break; + } + } + + /** + * Fills the given buffer with color data from the given object. + * Does nothing at the moment (no color-outputting Java objects implemented so far). + * @param the id of the given object. + * @param the buffer to fill. + * @param the number of components taken by one element in the buffer (3 or 4). + */ + public static void fillColors(Integer id, FloatBuffer buffer, int elementsSize) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == GraphicObjectProperties.__GO_CHAMP__) { + ChampDecomposer.fillColors(buffer, id, elementsSize); + } else if (type == GraphicObjectProperties.__GO_SEGS__) { + SegsDecomposer.fillColors(buffer, id, elementsSize); + } + } + + /** + * Returns the number of indices for the given object. + * @param the id of the given object. + * @return the object's number of indices. + */ + public static int getIndicesSize(Integer id) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + return ArcDecomposer.getIndicesSize(); + case GraphicObjectProperties.__GO_CHAMP__ : + return ChampDecomposer.getIndicesSize(id); + case GraphicObjectProperties.__GO_RECTANGLE__ : + return RectangleDecomposer.getIndicesSize(); + case GraphicObjectProperties.__GO_SEGS__ : + return SegsDecomposer.getIndicesSize(id); + default : + return 0; + } + } + + /** + * Fills the given buffer with indices data of the given object. + * @param the id of the given object. + * @param the buffer to fill. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(Integer id, IntBuffer buffer, int logMask) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + return ArcDecomposer.fillIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_CHAMP__ : + return ChampDecomposer.fillIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_RECTANGLE__ : + return RectangleDecomposer.fillIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_SEGS__ : + return SegsDecomposer.fillIndices(buffer, id, logMask); + default : + return 0; + } + } + + /** + * Returns the number of wireframe indices of the given object. + * @param the id of the given object. + * @return the object's number of indices. + */ + public static int getWireIndicesSize(Integer id) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + return ArcDecomposer.getWireIndicesSize(); + case GraphicObjectProperties.__GO_CHAMP__ : + return ChampDecomposer.getWireIndicesSize(id); + case GraphicObjectProperties.__GO_RECTANGLE__ : + return RectangleDecomposer.getWireIndicesSize(); + case GraphicObjectProperties.__GO_SEGS__ : + return SegsDecomposer.getWireIndicesSize(id); + default : + return 0; + } + } + + /** + * Fills the given buffer with wireframe index data of the given object. + * @param the id of the given object. + * @param the buffer to fill. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillWireIndices(Integer id, IntBuffer buffer, int logMask) { + int type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + switch (type) { + case GraphicObjectProperties.__GO_ARC__ : + return ArcDecomposer.fillWireIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_CHAMP__ : + return ChampDecomposer.fillWireIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_RECTANGLE__ : + return RectangleDecomposer.fillWireIndices(buffer, id, logMask); + case GraphicObjectProperties.__GO_SEGS__ : + return SegsDecomposer.fillWireIndices(buffer, id, logMask); + default : + return 0; + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/MainDataLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/MainDataLoader.java new file mode 100755 index 000000000..da7ac9b4e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/MainDataLoader.java @@ -0,0 +1,344 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects; + +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; + +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * Class MainDataLoader + * A utility class used to switch to the appropriate data loading class + * depending on the type of the object whose data is loaded. A class is used + * for purely Java-based objects and another one is used to load the data + * of data model (i.e. C++-based) objects. + * @author Manuel JULIACHS + */ +public class MainDataLoader { + + /** + * The names of Java-based objects. + */ + private static final Set<Integer> JAVA_OBJECTS = new HashSet<Integer>(Arrays.asList( + GraphicObjectProperties.__GO_ARC__, + GraphicObjectProperties.__GO_CHAMP__, + GraphicObjectProperties.__GO_RECTANGLE__, + GraphicObjectProperties.__GO_SEGS__ + )); + + /** + * Returns the data width for the given object. + * @param id of the given object. + * @return the data width. + */ + public static int getTextureWidth(Integer id) { + return DataLoader.getTextureWidth(id); + } + + /** + * Returns the data height for the given object. + * @param id of the given object. + * @return the data height. + */ + public static int getTextureHeight(Integer id) { + return DataLoader.getTextureHeight(id); + } + + /** + * Returns the data for the given object. + * @param id of the given object. + * @return the data. + */ + public static ByteBuffer getTextureData(Integer id) { + return DataLoader.getTextureData(id); + } + + /** + * Returns the data for the given object. + * @param id of the given object. + * @return the data. + */ + public static boolean isTextureRowOrder(Integer id) { + return DataLoader.isTextureRowOrder(id) != 0; + } + + /** + * Returns the data for the given object. + * @param id of the given object. + * @return the data. + */ + public static void disposeTextureData(Integer id, ByteBuffer buffer) { + DataLoader.disposeTextureData(id, buffer); + } + + /** + * Returns the image type of the texture data. + * 0 for RGB, 1 for RGBA, 2 for GRAY. + * @param id of the given object. + * @return the image type. + */ + public static int getTextureImageType(Integer id) { + return DataLoader.getTextureImageType(id); + } + + /** + * Returns the image type of the texture data. + * 0 for RGB, 1 for RGBA, 2 for GRAY. + * @param id of the given object. + * @return the image type. + */ + public static int getTextureDataType(Integer id) { + return DataLoader.getTextureDataType(id); + } + + /** + * Returns the image type of the texture data. + * 0 for RGB, 1 for RGBA, 2 for GRAY. + * @param id of the given object. + * @return the image type. + */ + public static int getTextureGLType(Integer id) { + return DataLoader.getTextureGLType(id); + } + + public static void fillTextureCoordinates(Integer id, FloatBuffer buffer, int bufferLength) { + DataLoader.fillTextureCoordinates(id, buffer, bufferLength); + } + + public static void fillTextureData(Integer id, ByteBuffer buffer, int bufferLength) { + DataLoader.fillTextureData(id, buffer, bufferLength); + } + + public static void fillTextureData(Integer identifier, ByteBuffer buffer, int bufferLength, int x, int y, int width, int height) { + DataLoader.fillSubTextureData(identifier, buffer, bufferLength, x, y, width, height); + } + + /** + * Returns the number of data elements for the given object. + * @param id id of the given object. + * @return the number of data elements. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static int getDataSize(Integer id) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + return JavaObjectLoader.getDataSize(id); + } else { + return DataLoader.getDataSize(id); + } + } + + /** + * Fills the given buffer with vertex data from the given object. + * @param id id of the given object. + * @param buffer buffer to fill. + * @param elementsSize number of coordinates taken by one element in the buffer. + * @param coordinateMask bit mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param scale conversion scale factor to apply to data. + * @param translation conversion translation value to apply to data. + * @param logMask bit mask specifying whether logarithmic coordinates are used. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static void fillVertices(Integer id, FloatBuffer buffer, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + JavaObjectLoader.fillVertices(id, buffer, elementsSize, coordinateMask, scale, translation, logMask); + } else { + DataLoader.fillVertices(id, buffer, buffer.capacity(), elementsSize, coordinateMask, scale, translation, logMask); + } + } + + /** + * Fills the given buffer with normal data from the given object. + * @param id id of the given object. + * @param position buffer with vertex position data. + * @param buffer buffer to fill. + * @param elementsSize number of coordinates taken by one element in the buffer. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static void fillNormals(Integer id, FloatBuffer position, FloatBuffer buffer, int elementsSize) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + DataLoader.fillNormals(id, position, buffer, buffer.capacity(), elementsSize); + } + + /** + * Fills the given buffer with color data from the given object. + * @param id id of the given object. + * @param buffer buffer to fill. + * @param elementsSize number of components taken by one element in the buffer (3 or 4). + * @throws ObjectRemovedException if the object no longer exist. + */ + public static void fillColors(Integer id, FloatBuffer buffer, int elementsSize) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + JavaObjectLoader.fillColors(id, buffer, elementsSize); + } else { + DataLoader.fillColors(id, buffer, buffer.capacity(), elementsSize); + } + } + + /** + * Returns the number of indices for the given object. + * @param id id of the given object. + * @return the object's number of indices. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static int getIndicesSize(Integer id) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + return JavaObjectLoader.getIndicesSize(id); + } else { + return DataLoader.getIndicesSize(id); + } + } + + /** + * Fills the given buffer with indices data of the given object. + * @param id id of the given object. + * @param buffer buffer to fill. + * @param logMask bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static int fillIndices(Integer id, IntBuffer buffer, int logMask) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + return JavaObjectLoader.fillIndices(id, buffer, logMask); + } else { + return DataLoader.fillIndices(id, buffer, buffer.capacity(), logMask); + } + } + + /** + * Returns the number of wire-frame indices of the given object. + * @param id id of the given object. + * @return the object's number of indices. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static int getWireIndicesSize(Integer id) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + return JavaObjectLoader.getWireIndicesSize(id); + } else { + return DataLoader.getWireIndicesSize(id); + } + } + + /** + * Fills the given buffer with wire-frame index data of the given object. + * @param id id of the given object. + * @param buffer buffer to fill. + * @param logMask bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + * @throws ObjectRemovedException if the object no longer exist. + */ + public static int fillWireIndices(Integer id, IntBuffer buffer, int logMask) throws ObjectRemovedException { + Integer type = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__); + + if (type == null) { + throw (new ObjectRemovedException(id)); + } + + if (JAVA_OBJECTS.contains(type)) { + return JavaObjectLoader.fillWireIndices(id, buffer, logMask); + } else { + return DataLoader.fillWireIndices(id, buffer, buffer.capacity(), logMask); + } + } + + /** + * Returns the number of mark indices of the given object. + * To implement. + * @param id id of the given object. + * @return the number of mark indices. + */ + public static int getMarkIndicesSize(String id) { + return 0; + } + + /** + * Fills the given buffer with mark index data of the given object. + * To implement. + * @param id id of the given object. + * @param buffer buffer to fill. + * @return the number of indices actually written. + */ + public static int fillMarkIndices(String id, IntBuffer buffer) { + return 0; + } + + public static int getLogMask(Integer id) { + try { + GraphicObject object = GraphicController.getController().getObjectFromId(id); + Integer parentAxesId = object.getParentAxes(); + Axes axes = (Axes) GraphicController.getController().getObjectFromId(parentAxesId); + int mask = 0; + if (axes.getXAxisLogFlag()) { + mask += 1; + } + if (axes.getYAxisLogFlag()) { + mask += 2; + } + if (axes.getZAxisLogFlag()) { + mask += 4; + } + return mask; + } catch (Exception ignored) { + return 0; + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectData.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectData.java new file mode 100755 index 000000000..fa03ad5d5 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectData.java @@ -0,0 +1,48 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class ObjectData { + public static Object getChampX(int uid) { + return ObjectDataJNI.getChampX(uid); + } + + public static Object getChampY(int uid) { + return ObjectDataJNI.getChampY(uid); + } + + public static Object getArrows(int uid) { + return ObjectDataJNI.getArrows(uid); + } + + public static Object getSegsData(int uid) { + return ObjectDataJNI.getSegsData(uid); + } + + public static Object getFecElements(int uid) { + return ObjectDataJNI.getFecElements(uid); + } + + public static Object getFecData(int uid) { + return ObjectDataJNI.getFecData(uid); + } + + public static Object getArcUpperLeftPoint(int uid) { + return ObjectDataJNI.getArcUpperLeftPoint(uid); + } + + public static Object getArcData(int uid) { + return ObjectDataJNI.getArcData(uid); + } + + public static int getFecNumVerticesByElement(int uid) { + return ObjectDataJNI.getFecNumVerticesByElement(uid); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectDataJNI.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectDataJNI.java new file mode 100755 index 000000000..e4c7e5192 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectDataJNI.java @@ -0,0 +1,31 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class ObjectDataJNI { + + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } + + public final static native Object getChampX(int jarg1); + public final static native Object getChampY(int jarg1); + public final static native Object getArrows(int jarg1); + public final static native Object getSegsData(int jarg1); + public final static native Object getFecElements(int jarg1); + public final static native Object getFecData(int jarg1); + public final static native Object getArcUpperLeftPoint(int jarg1); + public final static native Object getArcData(int jarg1); + public final static native int getFecNumVerticesByElement(int jarg1); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectRemovedException.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectRemovedException.java new file mode 100755 index 000000000..53bfd7603 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ObjectRemovedException.java @@ -0,0 +1,26 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - ScilabEnterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects; + +public class ObjectRemovedException extends Exception { + private static final long serialVersionUID = -5447310699942928356L; + + private Integer objectId; + + public ObjectRemovedException(Integer objectId) { + this.objectId = objectId; + } + + public String getMessage() { + return "ObjectRemoved Exception: Object " + objectId.toString() + "has been deleted from model"; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineData.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineData.java new file mode 100755 index 000000000..00fb05c6e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineData.java @@ -0,0 +1,76 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.10 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class PolylineData { + public static Object getDataX(int uid) { + return PolylineDataJNI.getDataX(uid); + } + + public static Object getDataY(int uid) { + return PolylineDataJNI.getDataY(uid); + } + + public static Object getDataZ(int uid) { + return PolylineDataJNI.getDataZ(uid); + } + + public static Object getShiftX(int uid) { + return PolylineDataJNI.getShiftX(uid); + } + + public static Object getShiftY(int uid) { + return PolylineDataJNI.getShiftY(uid); + } + + public static Object getShiftZ(int uid) { + return PolylineDataJNI.getShiftZ(uid); + } + + public static int isZCoordSet(int uid) { + return PolylineDataJNI.isZCoordSet(uid); + } + + public static int isXShiftSet(int uid) { + return PolylineDataJNI.isXShiftSet(uid); + } + + public static int isYShiftSet(int uid) { + return PolylineDataJNI.isYShiftSet(uid); + } + + public static int isZShiftSet(int uid) { + return PolylineDataJNI.isZShiftSet(uid); + } + + public static int createPolylineData(int uidFrom, int uidTo) { + return PolylineDataJNI.createPolylineData(uidFrom, uidTo); + } + + public static int translatePolyline(int uid, double x, double y, double z, int flagX, int flagY, int flagZ) { + return PolylineDataJNI.translatePolyline(uid, x, y, z, flagX, flagY, flagZ); + } + + public static int translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ) { + return PolylineDataJNI.translatePoint(uid, index, x, y, z, flagX, flagY, flagZ); + } + + public static int setPointValue(int uid, int index, double x, double y, double z) { + return PolylineDataJNI.setPointValue(uid, index, x, y, z); + } + + public static int insertPoint(int uid, int index, double x, double y, double z) { + return PolylineDataJNI.insertPoint(uid, index, x, y, z); + } + + public static int removePoint(int uid, int index) { + return PolylineDataJNI.removePoint(uid, index); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineDataJNI.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineDataJNI.java new file mode 100755 index 000000000..5ce15c314 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/PolylineDataJNI.java @@ -0,0 +1,38 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.10 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class PolylineDataJNI { + + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } + + public final static native Object getDataX(int jarg1); + public final static native Object getDataY(int jarg1); + public final static native Object getDataZ(int jarg1); + public final static native Object getShiftX(int jarg1); + public final static native Object getShiftY(int jarg1); + public final static native Object getShiftZ(int jarg1); + public final static native int isZCoordSet(int jarg1); + public final static native int isXShiftSet(int jarg1); + public final static native int isYShiftSet(int jarg1); + public final static native int isZShiftSet(int jarg1); + public final static native int createPolylineData(int jarg1, int jarg2); + public final static native int translatePolyline(int jarg1, double jarg2, double jarg3, double jarg4, int jarg5, int jarg6, int jarg7); + public final static native int translatePoint(int jarg1, int jarg2, double jarg3, double jarg4, double jarg5, int jarg6, int jarg7, int jarg8); + public final static native int setPointValue(int jarg1, int jarg2, double jarg3, double jarg4, double jarg5); + public final static native int insertPoint(int jarg1, int jarg2, double jarg3, double jarg4, double jarg5); + public final static native int removePoint(int jarg1, int jarg2); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeView.java new file mode 100755 index 000000000..f012956a5 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeView.java @@ -0,0 +1,44 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.11 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class ScilabNativeView { + public static void ScilabNativeView__createObject(int id) { + ScilabNativeViewJNI.ScilabNativeView__createObject(id); + } + + public static void ScilabNativeView__deleteObject(int id) { + ScilabNativeViewJNI.ScilabNativeView__deleteObject(id); + } + + public static void ScilabNativeView__updateObject(int id, int iProperty) { + ScilabNativeViewJNI.ScilabNativeView__updateObject(id, iProperty); + } + + public static void ScilabNativeView__setCurrentFigure(int id) { + ScilabNativeViewJNI.ScilabNativeView__setCurrentFigure(id); + } + + public static void ScilabNativeView__setCurrentSubWin(int id) { + ScilabNativeViewJNI.ScilabNativeView__setCurrentSubWin(id); + } + + public static void ScilabNativeView__setCurrentObject(int id) { + ScilabNativeViewJNI.ScilabNativeView__setCurrentObject(id); + } + + public static int ScilabNativeView__getValidDefaultFigureId() { + return ScilabNativeViewJNI.ScilabNativeView__getValidDefaultFigureId(); + } + + public static int ScilabNativeView__getFigureFromIndex(int figNum) { + return ScilabNativeViewJNI.ScilabNativeView__getFigureFromIndex(figNum); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeViewJNI.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeViewJNI.java new file mode 100755 index 000000000..740f7b2be --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/ScilabNativeViewJNI.java @@ -0,0 +1,30 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.11 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class ScilabNativeViewJNI { + + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } + + public final static native void ScilabNativeView__createObject(int jarg1); + public final static native void ScilabNativeView__deleteObject(int jarg1); + public final static native void ScilabNativeView__updateObject(int jarg1, int jarg2); + public final static native void ScilabNativeView__setCurrentFigure(int jarg1); + public final static native void ScilabNativeView__setCurrentSubWin(int jarg1); + public final static native void ScilabNativeView__setCurrentObject(int jarg1); + public final static native int ScilabNativeView__getValidDefaultFigureId(); + public final static native int ScilabNativeView__getFigureFromIndex(int jarg1); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceData.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceData.java new file mode 100755 index 000000000..84a13e43e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceData.java @@ -0,0 +1,32 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class SurfaceData { + public static Object getSurfDataX(int uid) { + return SurfaceDataJNI.getSurfDataX(uid); + } + + public static Object getSurfDataY(int uid) { + return SurfaceDataJNI.getSurfDataY(uid); + } + + public static Object getSurfDataZ(int uid) { + return SurfaceDataJNI.getSurfDataZ(uid); + } + + public static int createObject3dData(int obj, int newObj, int type) { + return SurfaceDataJNI.createObject3dData(obj, newObj, type); + } + + public static double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw) { + return SurfaceDataJNI.pickSurface(uid, x, y, z, dx, dy, dz, mx, my, mz, mw); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceDataJNI.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceDataJNI.java new file mode 100755 index 000000000..98449a029 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/SurfaceDataJNI.java @@ -0,0 +1,27 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package org.scilab.modules.graphic_objects; + +public class SurfaceDataJNI { + + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } + + public final static native Object getSurfDataX(int jarg1); + public final static native Object getSurfDataY(int jarg1); + public final static native Object getSurfDataZ(int jarg1); + public final static native int createObject3dData(int jarg1, int jarg2, int jarg3); + public final static native double pickSurface(int jarg1, double jarg2, double jarg3, double jarg4, double jarg5, double jarg6, double jarg7, double jarg8, double jarg9, double jarg10, double jarg11); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/Arc.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/Arc.java new file mode 100755 index 000000000..e3e249a77 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/Arc.java @@ -0,0 +1,292 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.arc; + +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Arc class + * @author Manuel JULIACHS + */ +public class Arc extends ClippableContouredObject { + /** Arc properties names */ + public enum ArcProperty { UPPERLEFTPOINT, WIDTH, HEIGHT, STARTANGLE, ENDANGLE, ARCDRAWINGMETHOD }; + + /** Arc drawing method */ + public enum ArcDrawingMethod { NURBS, LINES; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the arc drawing method enum + */ + public static ArcDrawingMethod intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return ArcDrawingMethod.NURBS; + case 1: + return ArcDrawingMethod.LINES; + default: + return null; + } + } + } + + /** Bounding box upper-left point (x,y,z) coordinates */ + private double[] upperLeftPoint; + + /** Bounding box width */ + private double width; + + /** Bounding box height */ + private double height; + + /** Start angle */ + private double startAngle; + + /** End angle */ + private double endAngle; + + /** Specifies which drawing method to use */ + private ArcDrawingMethod arcDrawingMethod; + + /** + * Constructor + */ + public Arc() { + super(); + arcDrawingMethod = ArcDrawingMethod.LINES; + upperLeftPoint = new double[] {0, 0, 0}; + width = 0.0; + height = 0.0; + startAngle = 0.0; + endAngle = 0.0; + } + + public Arc clone() { + Arc copy = (Arc) super.clone(); + copy.upperLeftPoint = new double[] {0, 0, 0}; + return copy; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_UPPER_LEFT_POINT__ : + return ArcProperty.UPPERLEFTPOINT; + case __GO_WIDTH__ : + return ArcProperty.WIDTH; + case __GO_HEIGHT__ : + return ArcProperty.HEIGHT; + case __GO_START_ANGLE__ : + return ArcProperty.STARTANGLE; + case __GO_END_ANGLE__ : + return ArcProperty.ENDANGLE; + case __GO_ARC_DRAWING_METHOD__ : + return ArcProperty.ARCDRAWINGMETHOD; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ArcProperty.UPPERLEFTPOINT) { + return getUpperLeftPoint(); + } else if (property == ArcProperty.WIDTH) { + return getWidth(); + } else if (property == ArcProperty.HEIGHT) { + return getHeight(); + } else if (property == ArcProperty.STARTANGLE) { + return getStartAngle(); + } else if (property == ArcProperty.ENDANGLE) { + return getEndAngle(); + } else if (property == ArcProperty.ARCDRAWINGMETHOD) { + return getArcDrawingMethod(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ArcProperty.UPPERLEFTPOINT) { + setUpperLeftPoint((Double[]) value); + } else if (property == ArcProperty.WIDTH) { + setWidth((Double) value); + } else if (property == ArcProperty.HEIGHT) { + setHeight((Double) value); + } else if (property == ArcProperty.STARTANGLE) { + setStartAngle((Double) value); + } else if (property == ArcProperty.ENDANGLE) { + setEndAngle((Double) value); + } else if (property == ArcProperty.ARCDRAWINGMETHOD) { + setArcDrawingMethod((Integer) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * Set the parent axes + * @param axes the parent axes to set + */ + /* + public void setParent(Axes axes) { + super.setParent(axes); + } + */ + + /** + * @return the arcDrawingMethod + */ + public Integer getArcDrawingMethod() { + return getArcDrawingMethodAsEnum().ordinal(); + } + + /** + * @return the arcDrawingMethod + */ + public ArcDrawingMethod getArcDrawingMethodAsEnum() { + return arcDrawingMethod; + } + + /** + * @param arcDrawingMethod the arcDrawingMethod to set + */ + public UpdateStatus setArcDrawingMethod(Integer arcDrawingMethod) { + setArcDrawingMethodAsEnum(ArcDrawingMethod.intToEnum(arcDrawingMethod)); + return UpdateStatus.Success; + + } + + /** + * @param arcDrawingMethod the arcDrawingMethod to set + */ + public UpdateStatus setArcDrawingMethodAsEnum(ArcDrawingMethod arcDrawingMethod) { + this.arcDrawingMethod = arcDrawingMethod; + return UpdateStatus.Success; + } + + /** + * @return the endAngle + */ + public Double getEndAngle() { + return endAngle; + } + + /** + * @param endAngle the endAngle to set + */ + public UpdateStatus setEndAngle(Double endAngle) { + this.endAngle = endAngle; + return UpdateStatus.Success; + } + + /** + * @return the height + */ + public Double getHeight() { + return height; + } + + /** + * @param height the height to set + */ + public UpdateStatus setHeight(Double height) { + this.height = height; + return UpdateStatus.Success; + } + + /** + * @return the startAngle + */ + public Double getStartAngle() { + return startAngle; + } + + /** + * @param startAngle the startAngle to set + */ + public UpdateStatus setStartAngle(Double startAngle) { + this.startAngle = startAngle; + return UpdateStatus.Success; + } + + /** + * @return the upperLeftPoint + */ + public Double[] getUpperLeftPoint() { + Double[] returnedPoint = new Double[3]; + + returnedPoint[0] = upperLeftPoint[0]; + returnedPoint[1] = upperLeftPoint[1]; + returnedPoint[2] = upperLeftPoint[2]; + + return returnedPoint; + } + + /** + * @param upperLeftPoint the upperLeftPoint to set + */ + public UpdateStatus setUpperLeftPoint(Double[] upperLeftPoint) { + this.upperLeftPoint[0] = upperLeftPoint[0]; + this.upperLeftPoint[1] = upperLeftPoint[1]; + this.upperLeftPoint[2] = upperLeftPoint[2]; + return UpdateStatus.Success; + } + + /** + * @return the width + */ + public Double getWidth() { + return width; + } + + /** + * @param width the width to set + */ + public UpdateStatus setWidth(Double width) { + this.width = width; + return UpdateStatus.Success; + } + + public Integer getType() { + return GraphicObjectProperties.__GO_ARC__; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/ArcDecomposer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/ArcDecomposer.java new file mode 100755 index 000000000..2d748c401 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/ArcDecomposer.java @@ -0,0 +1,282 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.arc; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.utils.Utils; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class ArcDecomposer + * + * A set of static methods decomposing an arc into a set of triangles (when filled) + * and a set of line segments. Decomposition uses a fixed number of sectors, NB_SECTORS+2 + * vertices are output, the first vertex (at index 0) being the arc's center, whereas vertices + * 1 and NB_SECTORS+1 respectively correspond to the arc's first (theta=START_ANGLE) + * and last (theta=START_ANGLE+END_ANGLE) vertices. + * + * To do: implement the Nurbs drawing mode. + * + * @author Manuel JULIACHS + */ +public class ArcDecomposer { + + /** The number of sectors */ + private static final int NB_SECTORS = 64; + + /** + * @return the number of data elements. + */ + public static int getDataSize() { + return (NB_SECTORS + 2); + } + + /** + * @return the number of triangle indices. + */ + public static int getIndicesSize() { + return 3 * NB_SECTORS; + } + + /** + * @return the number of line segment indices. + */ + public static int getWireIndicesSize() { + return 2 * NB_SECTORS; + } + + /** + * Fills the input buffer with vertex data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the number of coordinates taken by one element in the buffer. + * @param the byte mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param the conversion scale factor to apply to data. + * @param the conversion translation value to apply to data. + * @param the bit mask specifying whether logarithmic coordinates are used. + */ + public static void fillVertices(FloatBuffer buffer, Integer id, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) { + + double [] center; + double [] currentPoint; + double semiMajorAxis; + double semiMinorAxis; + + float [] coords; + + int offset = 0; + + coords = new float[3]; + + Double [] leftUpperPoint = (Double []) GraphicController.getController().getProperty(id, __GO_UPPER_LEFT_POINT__); + Double width = (Double) GraphicController.getController().getProperty(id, __GO_WIDTH__); + Double height = (Double) GraphicController.getController().getProperty(id, __GO_HEIGHT__); + + /* Radians */ + Double startAngle = (Double) GraphicController.getController().getProperty(id, __GO_START_ANGLE__); + Double endAngle = (Double) GraphicController.getController().getProperty(id, __GO_END_ANGLE__); + + center = new double[3]; + currentPoint = new double[3]; + + semiMajorAxis = width / 2.0; + semiMinorAxis = height / 2.0; + + center[0] = leftUpperPoint[0] + semiMajorAxis; + center[1] = leftUpperPoint[1] - semiMinorAxis; + center[2] = leftUpperPoint[2]; + + /* First vertex: center */ + if ((coordinateMask & 0x1) != 0) { + currentPoint[0] = center[0]; + + if ((logMask & 0x1) != 0) { + currentPoint[0] = Math.log10(currentPoint[0]); + } + + coords[0] = (float) (currentPoint[0] * scale[0] + translation[0]); + buffer.put(offset, coords[0]); + } + + if ((coordinateMask & 0x2) != 0) { + currentPoint[1] = center[1]; + + if ((logMask & 0x2) != 0) { + currentPoint[1] = Math.log10(currentPoint[1]); + } + + coords[1] = (float) (currentPoint[1] * scale[1] + translation[1]); + buffer.put(offset + 1, coords[1]); + } + + if ((coordinateMask & 0x4) != 0) { + currentPoint[2] = center[2]; + + if ((logMask & 0x4) != 0) { + currentPoint[2] = Math.log10(currentPoint[2]); + } + + coords[2] = (float) (currentPoint[2] * scale[2] + translation[2]); + buffer.put(offset + 2, coords[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8) != 0) { + buffer.put(offset + 3, 1.0f); + } + + offset += elementsSize; + + if (endAngle > 2 * Math.PI) { + endAngle = 2 * Math.PI; + } else if (endAngle < -2 * Math.PI) { + endAngle = -2 * Math.PI; + } + + startAngle = startAngle % (2.0 * Math.PI); + + + /* Arc vertices */ + for (int i = 0; i < NB_SECTORS + 1; i++) { + double theta = startAngle + endAngle * (double) i / (double) NB_SECTORS; + + if ((coordinateMask & 0x1) != 0) { + currentPoint[0] = center[0] + semiMajorAxis * Math.cos(theta); + + if ((logMask & 0x1) != 0) { + currentPoint[0] = Math.log10(currentPoint[0]); + } + + coords[0] = (float) (currentPoint[0] * scale[0] + translation[0]); + buffer.put(offset, coords[0]); + } + + if ((coordinateMask & 0x2) != 0) { + currentPoint[1] = center[1] + semiMinorAxis * Math.sin(theta); + + if ((logMask & 0x2) != 0) { + currentPoint[1] = Math.log10(currentPoint[1]); + } + + coords[1] = (float) (currentPoint[1] * scale[1] + translation[1]); + buffer.put(offset + 1, coords[1]); + } + + if ((coordinateMask & 0x4) != 0) { + currentPoint[2] = center[2]; + + if ((logMask & 0x4) != 0) { + currentPoint[2] = Math.log10(currentPoint[2]); + } + + coords[2] = (float) (currentPoint[2] * scale[2] + translation[2]); + buffer.put(offset + 2, coords[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8) != 0) { + buffer.put(offset + 3, 1.0f); + } + + offset += elementsSize; + } + } + + /** + * Fills the input buffer with triangle index data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + + valid = isValid(id, logMask); + + if (valid) { + for (int i = 0; i < NB_SECTORS; i++) { + buffer.put(0); + buffer.put(i + 1); + buffer.put(i + 2); + } + + return 3 * NB_SECTORS; + } else { + return 0; + } + } + + /** + * Fills the input buffer with segment index data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillWireIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + + valid = isValid(id, logMask); + + if (valid) { + for (int i = 0; i < NB_SECTORS; i++) { + buffer.put(i + 1); + buffer.put(i + 2); + } + + return 2 * NB_SECTORS; + } else { + return 0; + } + } + + /** + * Determines whether an Arc is valid or not, depending on its data values. + * @param the Arc id. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return true if the Arc is valid, false if it is not. + */ + private static boolean isValid(Integer id, int logMask) { + boolean valid = false; + + Double [] leftUpperPoint = (Double []) GraphicController.getController().getProperty(id, __GO_UPPER_LEFT_POINT__); + Double width = (Double) GraphicController.getController().getProperty(id, __GO_WIDTH__); + Double height = (Double) GraphicController.getController().getProperty(id, __GO_HEIGHT__); + Double startAngle = (Double) GraphicController.getController().getProperty(id, __GO_START_ANGLE__); + Double endAngle = (Double) GraphicController.getController().getProperty(id, __GO_END_ANGLE__); + + if (Utils.isValid(leftUpperPoint[0], leftUpperPoint[1], leftUpperPoint[2]) + && Utils.isValid(width) && Utils.isValid(height) + && Utils.isValid(startAngle) && Utils.isValid(endAngle)) { + valid = true; + } + + /* + * Test log validity using the minimum x and y coordinates, + * as width and height can be less than 0 . + */ + if (logMask != 0) { + double [] minPoint = new double[2]; + + minPoint[0] = Math.min(leftUpperPoint[0], leftUpperPoint[0] + width); + minPoint[1] = Math.min(leftUpperPoint[1], leftUpperPoint[1] - height); + + valid = valid && Utils.isLogValid(minPoint[0], minPoint[1], leftUpperPoint[2], logMask); + } + + return valid; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java new file mode 100755 index 000000000..a6f583342 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java @@ -0,0 +1,2797 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * Copyright (C) 2013 - 2015 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARC_DRAWING_METHOD__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_CLEAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_MARGINS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_SCALE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_SUBTICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES_BOUNDS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BACKGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BOX_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_BOX_SET__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_BOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_STATE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CUBE_SCALING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATA_BOUNDS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FILLED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIRST_PLOT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_FRACTIONAL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN_AXIS_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ISOVIEW__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARGINS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_BACKGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_FOREGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE_UNIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_REAL_DATA_BOUNDS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ROTATION_ANGLES_3D__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ROTATION_ANGLES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VIEW__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_AUTO_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_FORMAT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LOCATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LOG_FLAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_NUMBER_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_REVERSE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_ST_FACTORS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_SUBTICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS_LABELS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS_LOCATIONS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_TIGHT_LIMITS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_AUTO_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_FORMAT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LOCATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LOG_FLAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_NUMBER_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_REVERSE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_ST_FACTORS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_SUBTICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS_LABELS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS_LOCATIONS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ZOOM_BOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ZOOM_ENABLED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_AUTO_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_FORMAT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LOCATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LOG_FLAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_NUMBER_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_REVERSE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_ST_FACTORS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_SUBTICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS_LABELS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS_LOCATIONS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__; + +import java.util.ArrayList; + +import org.scilab.modules.graphic_objects.arc.Arc.ArcDrawingMethod; +import org.scilab.modules.graphic_objects.arc.Arc.ArcProperty; +import org.scilab.modules.graphic_objects.axes.AxisProperty.AxisLocation; +import org.scilab.modules.graphic_objects.axes.Box.BoxType; +import org.scilab.modules.graphic_objects.axes.Camera.ViewType; +import org.scilab.modules.graphic_objects.contouredObject.Line; +import org.scilab.modules.graphic_objects.contouredObject.Line.LinePropertyType; +import org.scilab.modules.graphic_objects.contouredObject.Line.LineType; +import org.scilab.modules.graphic_objects.contouredObject.Mark; +import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkPropertyType; +import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkSizeUnitType; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.textObject.FormattedText; + +/** + * Axes class + * @author Manuel JULIACHS + */ +public class Axes extends GraphicObject { + + private static final double BOUNDS_PARAMETER = 5; + + /** Axes properties names */ + private enum AxesProperty { + XAXISVISIBLE, XAXISFORMAT, XAXISSTFACTORS, XAXISREVERSE, XAXISGRIDCOLOR, XAXISGRIDTHICKNESS, XAXISGRIDSTYLE, XAXISLABEL, XAXISLOCATION, XAXISLOGFLAG, + XAXISTICKS, XAXISAUTOTICKS, XAXISNUMBERTICKS, XAXISTICKSLOCATIONS, XAXISTICKSLABELS, XAXISSUBTICKS, + YAXISVISIBLE, YAXISFORMAT, YAXISSTFACTORS, YAXISREVERSE, YAXISGRIDCOLOR, YAXISGRIDTHICKNESS, YAXISGRIDSTYLE, YAXISLABEL, YAXISLOCATION, YAXISLOGFLAG, + YAXISTICKS, YAXISAUTOTICKS, YAXISNUMBERTICKS, YAXISTICKSLOCATIONS, YAXISTICKSLABELS, YAXISSUBTICKS, + ZAXISVISIBLE, ZAXISFORMAT, ZAXISSTFACTORS, ZAXISREVERSE, ZAXISGRIDCOLOR, ZAXISGRIDTHICKNESS, ZAXISGRIDSTYLE, ZAXISLABEL, ZAXISLOCATION, ZAXISLOGFLAG, + ZAXISTICKS, ZAXISAUTOTICKS, ZAXISNUMBERTICKS, ZAXISTICKSLOCATIONS, ZAXISTICKSLABELS, ZAXISSUBTICKS, + AUTOSUBTICKS, + FONT_STYLE, FONT_SIZE, FONT_COLOR, FONT_FRACTIONAL, + GRIDPOSITION, TITLE, AUTOCLEAR, FILLED, BACKGROUND, + MARGINS, AUTO_MARGINS, AXESBOUNDS, + HIDDENCOLOR + }; + + /** Specifies the grid position relative to the graphics entities */ + public static enum GridPosition { BACKGROUND, FOREGROUND; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the grid position enum + */ + public static GridPosition intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return GridPosition.BACKGROUND; + case 1: + return GridPosition.FOREGROUND; + default: + return null; + } + } + }; + + + /** 3-element array (properties of the X, Y and Z axes) */ + private AxisProperty[] axes; + + /** + * Specifies whether subticks are automatically computed or not + * Used as an internal state only + * Note: shared by the three axes to be compatible with the + * former flagNax internal state (autoSubticks is equivalent to !flagNax) + * This should eventually become a per-axis property (as the auto ticks flag). + */ + private boolean autoSubticks; + + /** Grid position */ + private GridPosition gridPosition; + + /** Title label known by its UID. */ + private Integer title; + + /** Specifies whether the Axes subwindow is cleared when a new plot command is performed */ + private boolean autoClear; + + /** Specifies whether the Axes background is filled or not */ + private boolean filled; + + /** Axes background color and child objects default background color */ + private int background; + + /** Camera */ + private Camera camera; + + /** Box: properties related to the data bounds */ + private Box box; + + /** Margins enclosing the drawing area (left, right, top, bottom) */ + private double[] margins; + private boolean auto_margins; + + /** + * Axes bounds relative to their parent figure's + * drawing area (upper-left corner x and y, width, height) + */ + private double[] axesBounds; + + /** Default hidden surfaces color */ + private int hiddenColor; + + /** Default Line properties */ + private Line line; + + /** Default Mark properties */ + private Mark mark; + + /** Default Arc drawing method */ + private ArcDrawingMethod arcDrawingMethod; + + /** Default ClippableProperty */ + private ClippableProperty clipProperty; + + + /** Constructor */ + public Axes() { + super(); + axes = new AxisProperty[3]; + axes[0] = new AxisProperty(); + axes[1] = new AxisProperty(); + axes[2] = new AxisProperty(); + gridPosition = GridPosition.FOREGROUND; + title = 0; + autoClear = false; + filled = false; + camera = new Camera(); + box = new Box(); + margins = new double[4]; + auto_margins = true; + axesBounds = new double[4]; + + line = new Line(); + mark = new Mark(); + arcDrawingMethod = ArcDrawingMethod.LINES; + clipProperty = new ClippableProperty(); + } + + public Axes clone() { + Axes copy = (Axes) super.clone(); + + AxisProperty [] newAxes = new AxisProperty[3]; + + for (int i = 0; i < axes.length; i++) { + newAxes[i] = new AxisProperty(axes[i]); + } + + copy.axes = newAxes; + copy.title = 0; + copy.camera = new Camera(this.camera); + copy.box = new Box(this.box); + + double [] newMargins = new double[4]; + for (int i = 0; i < this.margins.length; i++) { + newMargins[i] = this.margins[i]; + } + + copy.margins = newMargins; + copy.auto_margins = auto_margins; + + double [] newAxesBounds = new double[4]; + for (int i = 0; i < this.axesBounds.length; i++) { + newAxesBounds[i] = this.axesBounds[i]; + } + + copy.axesBounds = newAxesBounds; + copy.line = new Line(this.line); + copy.mark = new Mark(this.mark); + copy.clipProperty = new ClippableProperty(this.clipProperty); + copy.setValid(true); + + return copy; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_X_AXIS_VISIBLE__ : + return AxesProperty.XAXISVISIBLE; + case __GO_X_AXIS_REVERSE__ : + return AxesProperty.XAXISREVERSE; + case __GO_X_AXIS_GRID_COLOR__ : + return AxesProperty.XAXISGRIDCOLOR; + case __GO_X_AXIS_GRID_THICKNESS__ : + return AxesProperty.XAXISGRIDTHICKNESS; + case __GO_X_AXIS_GRID_STYLE__ : + return AxesProperty.XAXISGRIDSTYLE; + case __GO_X_AXIS_LABEL__ : + return AxesProperty.XAXISLABEL; + case __GO_X_AXIS_LOCATION__ : + return AxesProperty.XAXISLOCATION; + case __GO_X_AXIS_LOG_FLAG__ : + return AxesProperty.XAXISLOGFLAG; + case __GO_X_AXIS_TICKS__ : + return AxesProperty.XAXISTICKS; + case __GO_X_AXIS_FORMAT__ : + return AxesProperty.XAXISFORMAT; + case __GO_X_AXIS_ST_FACTORS__ : + return AxesProperty.XAXISSTFACTORS; + case __GO_X_AXIS_AUTO_TICKS__ : + return AxesProperty.XAXISAUTOTICKS; + case __GO_X_AXIS_NUMBER_TICKS__ : + return AxesProperty.XAXISNUMBERTICKS; + case __GO_X_AXIS_TICKS_LOCATIONS__: + return AxesProperty.XAXISTICKSLOCATIONS; + case __GO_X_AXIS_TICKS_LABELS__ : + return AxesProperty.XAXISTICKSLABELS; + case __GO_X_AXIS_SUBTICKS__ : + return AxesProperty.XAXISSUBTICKS; + case __GO_Y_AXIS_VISIBLE__ : + return AxesProperty.YAXISVISIBLE; + case __GO_Y_AXIS_REVERSE__ : + return AxesProperty.YAXISREVERSE; + case __GO_Y_AXIS_GRID_COLOR__ : + return AxesProperty.YAXISGRIDCOLOR; + case __GO_Y_AXIS_GRID_THICKNESS__ : + return AxesProperty.YAXISGRIDTHICKNESS; + case __GO_Y_AXIS_GRID_STYLE__ : + return AxesProperty.YAXISGRIDSTYLE; + case __GO_Y_AXIS_LABEL__ : + return AxesProperty.YAXISLABEL; + case __GO_Y_AXIS_LOCATION__ : + return AxesProperty.YAXISLOCATION; + case __GO_Y_AXIS_LOG_FLAG__ : + return AxesProperty.YAXISLOGFLAG; + case __GO_Y_AXIS_TICKS__ : + return AxesProperty.YAXISTICKS; + case __GO_Y_AXIS_FORMAT__ : + return AxesProperty.YAXISFORMAT; + case __GO_Y_AXIS_ST_FACTORS__ : + return AxesProperty.YAXISSTFACTORS; + case __GO_Y_AXIS_AUTO_TICKS__ : + return AxesProperty.YAXISAUTOTICKS; + case __GO_Y_AXIS_NUMBER_TICKS__ : + return AxesProperty.YAXISNUMBERTICKS; + case __GO_Y_AXIS_TICKS_LOCATIONS__ : + return AxesProperty.YAXISTICKSLOCATIONS; + case __GO_Y_AXIS_TICKS_LABELS__ : + return AxesProperty.YAXISTICKSLABELS; + case __GO_Y_AXIS_SUBTICKS__ : + return AxesProperty.YAXISSUBTICKS; + case __GO_Z_AXIS_VISIBLE__ : + return AxesProperty.ZAXISVISIBLE; + case __GO_Z_AXIS_REVERSE__ : + return AxesProperty.ZAXISREVERSE; + case __GO_Z_AXIS_GRID_COLOR__ : + return AxesProperty.ZAXISGRIDCOLOR; + case __GO_Z_AXIS_GRID_THICKNESS__ : + return AxesProperty.ZAXISGRIDTHICKNESS; + case __GO_Z_AXIS_GRID_STYLE__ : + return AxesProperty.ZAXISGRIDSTYLE; + case __GO_Z_AXIS_LABEL__ : + return AxesProperty.ZAXISLABEL; + case __GO_Z_AXIS_LOCATION__ : + return AxesProperty.ZAXISLOCATION; + case __GO_Z_AXIS_LOG_FLAG__ : + return AxesProperty.ZAXISLOGFLAG; + case __GO_Z_AXIS_TICKS__ : + return AxesProperty.ZAXISTICKS; + case __GO_Z_AXIS_FORMAT__ : + return AxesProperty.ZAXISFORMAT; + case __GO_Z_AXIS_ST_FACTORS__ : + return AxesProperty.ZAXISSTFACTORS; + case __GO_Z_AXIS_AUTO_TICKS__ : + return AxesProperty.ZAXISAUTOTICKS; + case __GO_Z_AXIS_NUMBER_TICKS__ : + return AxesProperty.ZAXISNUMBERTICKS; + case __GO_Z_AXIS_TICKS_LOCATIONS__ : + return AxesProperty.ZAXISTICKSLOCATIONS; + case __GO_Z_AXIS_TICKS_LABELS__ : + return AxesProperty.ZAXISTICKSLABELS; + case __GO_Z_AXIS_SUBTICKS__ : + return AxesProperty.ZAXISSUBTICKS; + case __GO_AUTO_SUBTICKS__ : + return AxesProperty.AUTOSUBTICKS; + case __GO_FONT_STYLE__ : + return AxesProperty.FONT_STYLE; + case __GO_FONT_SIZE__ : + return AxesProperty.FONT_SIZE; + case __GO_FONT_COLOR__ : + return AxesProperty.FONT_COLOR; + case __GO_FONT_FRACTIONAL__ : + return AxesProperty.FONT_FRACTIONAL; + case __GO_GRID_POSITION__ : + return AxesProperty.GRIDPOSITION; + case __GO_TITLE__ : + return AxesProperty.TITLE; + case __GO_AUTO_CLEAR__ : + return AxesProperty.AUTOCLEAR; + case __GO_FILLED__ : + return AxesProperty.FILLED; + case __GO_BACKGROUND__ : + return AxesProperty.BACKGROUND; + case __GO_VIEW__ : + return Camera.CameraProperty.VIEW; + case __GO_ISOVIEW__ : + return Camera.CameraProperty.ISOVIEW; + case __GO_CUBE_SCALING__ : + return Camera.CameraProperty.CUBESCALING; + case __GO_ROTATION_ANGLES__ : + return Camera.CameraProperty.ROTATIONANGLES; + case __GO_ROTATION_ANGLES_3D__ : + return Camera.CameraProperty.ROTATIONANGLES3D; + case __GO_BOX_TYPE__ : + return Box.BoxProperty.BOX; + case __GO_HIDDEN_AXIS_COLOR__ : + return Box.BoxProperty.HIDDENAXISCOLOR; + case __GO_X_TIGHT_LIMITS__ : + return Box.BoxProperty.XTIGHTLIMITS; + case __GO_Y_TIGHT_LIMITS__ : + return Box.BoxProperty.YTIGHTLIMITS; + case __GO_Z_TIGHT_LIMITS__ : + return Box.BoxProperty.ZTIGHTLIMITS; + case __GO_DATA_BOUNDS__ : + return Box.BoxProperty.DATABOUNDS; + case __GO_REAL_DATA_BOUNDS__ : + return Box.BoxProperty.REALDATABOUNDS; + case __GO_ZOOM_ENABLED__ : + return Box.BoxProperty.ZOOMENABLED; + case __GO_ZOOM_BOX__ : + return Box.BoxProperty.ZOOMBOX; + case __GO_AUTO_SCALE__ : + return Box.BoxProperty.AUTOSCALE; + case __GO_FIRST_PLOT__ : + return Box.BoxProperty.FIRSTPLOT; + case __GO_MARGINS__ : + return AxesProperty.MARGINS; + case __GO_AUTO_MARGINS__ : + return AxesProperty.AUTO_MARGINS; + case __GO_AXES_BOUNDS__ : + return AxesProperty.AXESBOUNDS; + case __GO_HIDDEN_COLOR__ : + return AxesProperty.HIDDENCOLOR; + case __GO_LINE_MODE__ : + return LinePropertyType.MODE; + case __GO_LINE_STYLE__ : + return LinePropertyType.LINESTYLE; + case __GO_LINE_THICKNESS__ : + return LinePropertyType.THICKNESS; + case __GO_LINE_COLOR__ : + return LinePropertyType.COLOR; + case __GO_MARK_MODE__ : + return MarkPropertyType.MODE; + case __GO_MARK_STYLE__ : + return MarkPropertyType.STYLE; + case __GO_MARK_SIZE_UNIT__ : + return MarkPropertyType.SIZEUNIT; + case __GO_MARK_SIZE__ : + return MarkPropertyType.SIZE; + case __GO_MARK_FOREGROUND__ : + return MarkPropertyType.FOREGROUND; + case __GO_MARK_BACKGROUND__ : + return MarkPropertyType.BACKGROUND; + case __GO_CLIP_STATE__ : + return ClippablePropertyType.CLIPSTATE; + case __GO_CLIP_BOX__ : + return ClippablePropertyType.CLIPBOX; + case __GO_CLIP_BOX_SET__ : + return ClippablePropertyType.CLIPBOXSET; + case __GO_ARC_DRAWING_METHOD__ : + return ArcProperty.ARCDRAWINGMETHOD; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property instanceof AxesProperty) { + AxesProperty ap = (AxesProperty) property; + switch (ap) { + case XAXISVISIBLE: + return getXAxisVisible(); + case XAXISREVERSE: + return getXAxisReverse(); + case XAXISGRIDCOLOR: + return getXAxisGridColor(); + case XAXISGRIDTHICKNESS: + return getXAxisGridThickness(); + case XAXISGRIDSTYLE: + return getXAxisGridStyle(); + case XAXISLABEL: + return getXAxisLabel(); + case XAXISLOCATION: + return getXAxisLocation(); + case XAXISLOGFLAG: + return getXAxisLogFlag(); + case XAXISTICKS: + return getXAxisTicks(); + case XAXISFORMAT: + return getXAxisFormat(); + case XAXISSTFACTORS: + return getXAxisSTFactors(); + case XAXISAUTOTICKS: + return getXAxisAutoTicks(); + case XAXISNUMBERTICKS: + return getXAxisNumberTicks(); + case XAXISTICKSLOCATIONS: + return getXAxisTicksLocations(); + case XAXISTICKSLABELS: + return getXAxisTicksLabels(); + case XAXISSUBTICKS: + return getXAxisSubticks(); + case YAXISVISIBLE: + return getYAxisVisible(); + case YAXISREVERSE: + return getYAxisReverse(); + case YAXISGRIDCOLOR: + return getYAxisGridColor(); + case YAXISGRIDTHICKNESS: + return getYAxisGridThickness(); + case YAXISGRIDSTYLE: + return getYAxisGridStyle(); + case YAXISLABEL: + return getYAxisLabel(); + case YAXISLOCATION: + return getYAxisLocation(); + case YAXISLOGFLAG: + return getYAxisLogFlag(); + case YAXISTICKS: + return getYAxisTicks(); + case YAXISFORMAT: + return getYAxisFormat(); + case YAXISSTFACTORS: + return getYAxisSTFactors(); + case YAXISAUTOTICKS: + return getYAxisAutoTicks(); + case YAXISNUMBERTICKS: + return getYAxisNumberTicks(); + case YAXISTICKSLOCATIONS: + return getYAxisTicksLocations(); + case YAXISTICKSLABELS: + return getYAxisTicksLabels(); + case YAXISSUBTICKS: + return getYAxisSubticks(); + case ZAXISVISIBLE: + return getZAxisVisible(); + case ZAXISREVERSE: + return getZAxisReverse(); + case ZAXISGRIDCOLOR: + return getZAxisGridColor(); + case ZAXISGRIDTHICKNESS: + return getZAxisGridThickness(); + case ZAXISGRIDSTYLE: + return getZAxisGridStyle(); + case ZAXISLABEL: + return getZAxisLabel(); + case ZAXISLOCATION: + return getZAxisLocation(); + case ZAXISLOGFLAG: + return getZAxisLogFlag(); + case ZAXISTICKS: + return getZAxisTicks(); + case ZAXISFORMAT: + return getZAxisFormat(); + case ZAXISSTFACTORS: + return getZAxisSTFactors(); + case ZAXISAUTOTICKS: + return getZAxisAutoTicks(); + case ZAXISNUMBERTICKS: + return getZAxisNumberTicks(); + case ZAXISTICKSLOCATIONS: + return getZAxisTicksLocations(); + case ZAXISTICKSLABELS: + return getZAxisTicksLabels(); + case ZAXISSUBTICKS: + return getZAxisSubticks(); + case AUTOSUBTICKS: + return getAutoSubticks(); + case FONT_STYLE: + return getFontStyle(); + case FONT_SIZE: + return getFontSize(); + case FONT_COLOR: + return getFontColor(); + case FONT_FRACTIONAL: + return getFontFractional(); + case GRIDPOSITION: + return getGridPosition(); + case TITLE: + return getTitle(); + case AUTOCLEAR: + return getAutoClear(); + case FILLED: + return getFilled(); + case BACKGROUND: + return getBackground(); + case MARGINS: + return getMargins(); + case AUTO_MARGINS: + return getAutoMargins(); + case AXESBOUNDS: + return getAxesBounds(); + case HIDDENCOLOR: + return getHiddenColor(); + } + } else if (property instanceof Camera.CameraProperty) { + Camera.CameraProperty cp = (Camera.CameraProperty) property; + switch (cp) { + case VIEW: + return getView(); + case ISOVIEW: + return getIsoview(); + case CUBESCALING: + return getCubeScaling(); + case ROTATIONANGLES: + return getRotationAngles(); + case ROTATIONANGLES3D: + return getRotationAngles3d(); + } + } else if (property instanceof Box.BoxProperty) { + Box.BoxProperty bp = (Box.BoxProperty) property; + switch (bp) { + case BOX: + return getBoxType(); + case HIDDENAXISCOLOR: + return getHiddenAxisColor(); + case XTIGHTLIMITS: + return getXTightLimits(); + case YTIGHTLIMITS: + return getYTightLimits(); + case ZTIGHTLIMITS: + return getZTightLimits(); + case DATABOUNDS: + return getDataBounds(); + case REALDATABOUNDS: + return getRealDataBounds(); + case ZOOMENABLED: + return getZoomEnabled(); + case ZOOMBOX: + return getZoomBox(); + case AUTOSCALE: + return getAutoScale(); + case FIRSTPLOT: + return getFirstPlot(); + } + } else if (property instanceof LinePropertyType) { + LinePropertyType lp = (LinePropertyType) property; + switch (lp) { + case MODE: + return getLineMode(); + case LINESTYLE: + return getLineStyle(); + case THICKNESS: + return getLineThickness(); + case COLOR: + return getLineColor(); + } + } else if (property instanceof MarkPropertyType) { + MarkPropertyType mp = (MarkPropertyType) property; + switch (mp) { + case MODE: + return getMarkMode(); + case STYLE: + return getMarkStyle(); + case SIZE: + return getMarkSize(); + case SIZEUNIT: + return getMarkSizeUnit(); + case FOREGROUND: + return getMarkForeground(); + case BACKGROUND: + return getMarkBackground(); + } + } else if (property instanceof ClippablePropertyType) { + ClippablePropertyType cp = (ClippablePropertyType) property; + switch (cp) { + case CLIPSTATE: + return getClipState(); + case CLIPBOX: + return getClipBox(); + case CLIPBOXSET: + return getClipBoxSet(); + } + } else if (property == ArcProperty.ARCDRAWINGMETHOD) { + return getArcDrawingMethod(); + } + + return super.getProperty(property); + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof AxesProperty) { + AxesProperty ap = (AxesProperty) property; + switch (ap) { + case XAXISVISIBLE: + return setXAxisVisible((Boolean) value); + case XAXISREVERSE: + return setXAxisReverse((Boolean) value); + case XAXISGRIDCOLOR: + return setXAxisGridColor((Integer) value); + case XAXISGRIDTHICKNESS: + return setXAxisGridThickness((Double) value); + case XAXISGRIDSTYLE: + return setXAxisGridStyle((Integer) value); + case XAXISLABEL: + return setXAxisLabel((Integer) value); + case XAXISLOCATION: + return setXAxisLocation((Integer) value); + case XAXISLOGFLAG: + return setXAxisLogFlag((Boolean) value); + case XAXISTICKS: + return setXAxisTicks((TicksProperty) value); + case XAXISFORMAT: + return setXAxisFormat((String) value); + case XAXISSTFACTORS: + return setXAxisSTFactors((Double[]) value); + case XAXISAUTOTICKS: + return setXAxisAutoTicks((Boolean) value); + case XAXISTICKSLOCATIONS: + return setXAxisTicksLocations((Double[]) value); + case XAXISTICKSLABELS: + return setXAxisTicksLabels((String[]) value); + case XAXISSUBTICKS: + return setXAxisSubticks((Integer) value); + case YAXISVISIBLE: + return setYAxisVisible((Boolean) value); + case YAXISREVERSE: + return setYAxisReverse((Boolean) value); + case YAXISGRIDCOLOR: + return setYAxisGridColor((Integer) value); + case YAXISGRIDTHICKNESS: + return setYAxisGridThickness((Double) value); + case YAXISGRIDSTYLE: + return setYAxisGridStyle((Integer) value); + case YAXISLABEL: + return setYAxisLabel((Integer) value); + case YAXISLOCATION: + return setYAxisLocation((Integer) value); + case YAXISLOGFLAG: + return setYAxisLogFlag((Boolean) value); + case YAXISTICKS: + return setYAxisTicks((TicksProperty) value); + case YAXISFORMAT: + return setYAxisFormat((String) value); + case YAXISSTFACTORS: + return setYAxisSTFactors((Double[]) value); + case YAXISAUTOTICKS: + return setYAxisAutoTicks((Boolean) value); + case YAXISTICKSLOCATIONS: + return setYAxisTicksLocations((Double[]) value); + case YAXISTICKSLABELS: + return setYAxisTicksLabels((String[]) value); + case YAXISSUBTICKS: + return setYAxisSubticks((Integer) value); + case ZAXISVISIBLE: + return setZAxisVisible((Boolean) value); + case ZAXISREVERSE: + return setZAxisReverse((Boolean) value); + case ZAXISGRIDCOLOR: + return setZAxisGridColor((Integer) value); + case ZAXISGRIDTHICKNESS: + return setZAxisGridThickness((Double) value); + case ZAXISGRIDSTYLE: + return setZAxisGridStyle((Integer) value); + case ZAXISLABEL: + return setZAxisLabel((Integer) value); + case ZAXISLOCATION: + return setZAxisLocation((Integer) value); + case ZAXISLOGFLAG: + return setZAxisLogFlag((Boolean) value); + case ZAXISTICKS: + return setZAxisTicks((TicksProperty) value); + case ZAXISFORMAT: + return setZAxisFormat((String) value); + case ZAXISSTFACTORS: + return setZAxisSTFactors((Double[]) value); + case ZAXISAUTOTICKS: + return setZAxisAutoTicks((Boolean) value); + case ZAXISTICKSLOCATIONS: + return setZAxisTicksLocations((Double[]) value); + case ZAXISTICKSLABELS: + return setZAxisTicksLabels((String[]) value); + case ZAXISSUBTICKS: + return setZAxisSubticks((Integer) value); + case AUTOSUBTICKS: + return setAutoSubticks((Boolean) value); + case FONT_STYLE: + return setFontStyle((Integer) value); + case FONT_SIZE: + return setFontSize((Double) value); + case FONT_COLOR: + return setFontColor((Integer) value); + case FONT_FRACTIONAL: + return setFontFractional((Boolean) value); + case GRIDPOSITION: + return setGridPosition((Integer) value); + case TITLE: + return setTitle((Integer) value); + case AUTOCLEAR: + return setAutoClear((Boolean) value); + case FILLED: + return setFilled((Boolean) value); + case BACKGROUND: + return setBackground((Integer) value); + case MARGINS: + return setMargins((Double[]) value); + case AUTO_MARGINS: + return setAutoMargins((Boolean) value); + case AXESBOUNDS: + return setAxesBounds((Double[]) value); + case HIDDENCOLOR: + return setHiddenColor((Integer) value); + } + } else if (property instanceof Camera.CameraProperty) { + Camera.CameraProperty cp = (Camera.CameraProperty) property; + switch (cp) { + case VIEW: + return setView((Integer) value); + case ISOVIEW: + return setIsoview((Boolean) value); + case CUBESCALING: + return setCubeScaling((Boolean) value); + case ROTATIONANGLES: + return setRotationAngles((Double[]) value); + case ROTATIONANGLES3D: + return setRotationAngles3d((Double[]) value); + } + } else if (property instanceof Box.BoxProperty) { + Box.BoxProperty bp = (Box.BoxProperty) property; + switch (bp) { + case BOX: + return setBoxType((Integer) value); + case HIDDENAXISCOLOR: + return setHiddenAxisColor((Integer) value); + case XTIGHTLIMITS: + return setXTightLimits((Boolean) value); + case YTIGHTLIMITS: + return setYTightLimits((Boolean) value); + case ZTIGHTLIMITS: + return setZTightLimits((Boolean) value); + case DATABOUNDS: + return setDataBounds((Double[]) value); + case REALDATABOUNDS: + return setRealDataBounds((Double[]) value); + case ZOOMENABLED: + return setZoomEnabled((Boolean) value); + case ZOOMBOX: + return setZoomBox((Double[]) value); + case AUTOSCALE: + return setAutoScale((Boolean) value); + case FIRSTPLOT: + return setFirstPlot((Boolean) value); + } + } else if (property instanceof LinePropertyType) { + LinePropertyType lp = (LinePropertyType) property; + switch (lp) { + case MODE: + return setLineMode((Boolean) value); + case LINESTYLE: + return setLineStyle((Integer) value); + case THICKNESS: + return setLineThickness((Double) value); + case COLOR: + return setLineColor((Integer) value); + } + } else if (property instanceof MarkPropertyType) { + MarkPropertyType mp = (MarkPropertyType) property; + switch (mp) { + case MODE: + return setMarkMode((Boolean) value); + case STYLE: + return setMarkStyle((Integer) value); + case SIZE: + return setMarkSize((Integer) value); + case SIZEUNIT: + return setMarkSizeUnit((Integer) value); + case FOREGROUND: + return setMarkForeground((Integer) value); + case BACKGROUND: + return setMarkBackground((Integer) value); + } + } else if (property instanceof ClippablePropertyType) { + ClippablePropertyType cp = (ClippablePropertyType) property; + switch (cp) { + case CLIPSTATE: + return setClipState((Integer) value); + case CLIPBOX: + return setClipBox((Double[]) value); + case CLIPBOXSET: + return setClipBoxSet((Boolean) value); + } + } else if (property == ArcProperty.ARCDRAWINGMETHOD) { + return setArcDrawingMethod((Integer) value); + } + + return super.setProperty(property, value); + } + + /** + * @return the autoClear + */ + public Boolean getAutoClear() { + return autoClear; + } + + /** + * @param autoClear the autoClear to set + */ + public UpdateStatus setAutoClear(Boolean autoClear) { + if (autoClear != this.autoClear) { + this.autoClear = autoClear; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the axes + */ + public AxisProperty[] getAxes() { + return axes; + } + + /** + * @param axes the axes to set + */ + public UpdateStatus setAxes(AxisProperty[] axes) { + this.axes = axes; + + return UpdateStatus.Success; + } + + /** + * @return the x axis + */ + public AxisProperty getXAxis() { + return axes[0]; + } + + /** + * @param xAxis the x axis to set + */ + public UpdateStatus setXAxis(AxisProperty xAxis) { + axes[0] = xAxis; + + return UpdateStatus.Success; + } + + /** + * @return the x axis visible + */ + public Boolean getXAxisVisible() { + return axes[0].getVisible(); + } + + /** + * @param visible the x axis visible to set + */ + public UpdateStatus setXAxisVisible(Boolean visible) { + return axes[0].setVisible(visible); + } + + /** + * @return the x axis format + */ + public String getXAxisFormat() { + return axes[0].getFormat(); + } + + /** + * @param format the x axis format to set + */ + public UpdateStatus setXAxisFormat(String format) { + return axes[0].setFormat(format); + } + + /** + * @return the x axis scale-translate factors + */ + public Double[] getXAxisSTFactors() { + return axes[0].getSTFactors(); + } + + /** + * @param factors the x axis scale-translate factors + */ + public UpdateStatus setXAxisSTFactors(Double[] factors) { + return axes[0].setSTFactors(factors); + } + + /** + * @return the x axis reverse + */ + public Boolean getXAxisReverse() { + return axes[0].getReverse(); + } + + /** + * @param reverse the x axis reverse to set + */ + public UpdateStatus setXAxisReverse(Boolean reverse) { + return axes[0].setReverse(reverse); + } + + /** + * @return the x axis grid color + */ + public Integer getXAxisGridColor() { + return axes[0].getGridColor(); + } + + /** + * @param gridColor the x axis grid color to set + */ + public UpdateStatus setXAxisGridColor(Integer gridColor) { + return axes[0].setGridColor(gridColor); + } + + /** + * @return the x axis grid thickness + */ + public Double getXAxisGridThickness() { + Double d = axes[0].getGridThickness(); + return d == -1 ? getLineThickness() : d; + } + + /** + * @param gridThickness the x axis grid thickness to set + */ + public UpdateStatus setXAxisGridThickness(Double gridThickness) { + return axes[0].setGridThickness(gridThickness); + } + + /** + * @return the x axis grid style + */ + public Integer getXAxisGridStyle() { + return axes[0].getGridStyle(); + } + + /** + * @param gridStyle the x axis grid style to set + */ + public UpdateStatus setXAxisGridStyle(Integer gridStyle) { + return axes[0].setGridStyle(gridStyle); + } + + /** + * @return the x axis label UID + */ + public Integer getXAxisLabel() { + return axes[0].getLabel(); + } + + /** + * @param label the x axis label to set + */ + public UpdateStatus setXAxisLabel(Integer label) { + return axes[0].setLabel(label); + } + + /** + * @return the x axis location + */ + public Integer getXAxisLocation() { + return getXAxisLocationAsEnum().ordinal(); + } + + /** + * @return the x axis location + */ + public AxisLocation getXAxisLocationAsEnum() { + return axes[0].getAxisLocation(); + } + + /** + * @param axisLocation the x axis location to set + */ + public UpdateStatus setXAxisLocation(Integer axisLocation) { + return setXAxisLocationAsEnum(AxisLocation.intToEnum(axisLocation)); + } + + /** + * @param axisLocation the x axis location to set + */ + public UpdateStatus setXAxisLocationAsEnum(AxisLocation axisLocation) { + return axes[0].setAxisLocation(axisLocation); + } + + /** + * @return the x axis log flag + */ + public Boolean getXAxisLogFlag() { + return axes[0].getLogFlag(); + } + + /** + * @param logFlag the x axis log flag to set + */ + public UpdateStatus setXAxisLogFlag(Boolean logFlag) { + return axes[0].setLogFlag(logFlag); + } + + /** + * @return the x axis ticks + */ + public TicksProperty getXAxisTicks() { + return axes[0].getTicks(); + } + + /** + * @param ticks the x axis ticks to set + */ + public UpdateStatus setXAxisTicks(TicksProperty ticks) { + return axes[0].setTicks(ticks); + } + + /** + * @return the x axis autoticks + */ + public Boolean getXAxisAutoTicks() { + return axes[0].getAutoTicks(); + } + + /** + * @param autoTicks the x axis autoticks to set + */ + public UpdateStatus setXAxisAutoTicks(Boolean autoTicks) { + return axes[0].setAutoTicks(autoTicks); + } + + /** + * @return the x axis number of ticks + */ + public Integer getXAxisNumberTicks() { + return axes[0].getNumberOfTicks(); + } + + /** + * @return the x axis ticks locations + */ + public Double[] getXAxisTicksLocations() { + return axes[0].getTicksLocations(); + } + + /** + * @param ticksLocations the x axis ticks locations to set + */ + public UpdateStatus setXAxisTicksLocations(Double[] ticksLocations) { + return axes[0].setTicksLocations(ticksLocations); + } + + /** + * @return the x axis ticks labels + */ + public String[] getXAxisTicksLabels() { + return axes[0].getTicksLabelsStrings(); + } + + /** + * @return the x axis ticks labels + */ + public ArrayList<FormattedText> getXAxisTicksLabelsAsArrayList() { + return axes[0].getTicksLabels(); + } + + /** + * @param labels the x axis ticks labels to set + */ + public UpdateStatus setXAxisTicksLabels(String[] labels) { + return axes[0].setTicksLabelsStrings(labels); + } + + /** + * @param labels the x axis ticks labels to set + */ + public UpdateStatus setXAxisTicksLabelsAsArrayList(ArrayList<FormattedText> labels) { + return axes[0].setTicksLabels(labels); + } + + /** + * @return the x axis number of subticks + */ + public Integer getXAxisSubticks() { + return axes[0].getSubticks(); + } + + /** + * @param subticks the x axis number of subticks to set + */ + public UpdateStatus setXAxisSubticks(Integer subticks) { + return axes[0].setSubticks(subticks); + } + + /** + * @return the y axis + */ + public AxisProperty getYAxis() { + return axes[1]; + } + + /** + * @param yAxis the y axis to set + */ + public UpdateStatus setYAxis(AxisProperty yAxis) { + axes[1] = yAxis; + + return UpdateStatus.Success; + } + + /** + * @return the y axis visible + */ + public Boolean getYAxisVisible() { + return axes[1].getVisible(); + } + + /** + * @param visible the y axis visible to set + */ + public UpdateStatus setYAxisVisible(Boolean visible) { + return axes[1].setVisible(visible); + } + + /** + * @return the y axis format + */ + public String getYAxisFormat() { + return axes[1].getFormat(); + } + + /** + * @param format the x axis format to set + */ + public UpdateStatus setYAxisFormat(String format) { + return axes[1].setFormat(format); + } + + /** + * @return the y axis scale-translate factors + */ + public Double[] getYAxisSTFactors() { + return axes[1].getSTFactors(); + } + + /** + * @param factors the y axis scale-translate factors + */ + public UpdateStatus setYAxisSTFactors(Double[] factors) { + return axes[1].setSTFactors(factors); + } + + /** + * @return the y axis reverse + */ + public Boolean getYAxisReverse() { + return axes[1].getReverse(); + } + + /** + * @param reverse the y axis reverse to set + */ + public UpdateStatus setYAxisReverse(Boolean reverse) { + return axes[1].setReverse(reverse); + } + + /** + * @return the y axis grid color + */ + public Integer getYAxisGridColor() { + return axes[1].getGridColor(); + } + + /** + * @param gridColor the y axis grid color to set + */ + public UpdateStatus setYAxisGridColor(Integer gridColor) { + return axes[1].setGridColor(gridColor); + } + + /** + * @return the y axis grid thickness + */ + public Double getYAxisGridThickness() { + Double d = axes[1].getGridThickness(); + return d == -1 ? getLineThickness() : d; + } + + /** + * @param gridThickness the y axis grid thickness to set + */ + public UpdateStatus setYAxisGridThickness(Double gridThickness) { + return axes[1].setGridThickness(gridThickness); + } + + /** + * @return the y axis grid style + */ + public Integer getYAxisGridStyle() { + return axes[1].getGridStyle(); + } + + /** + * @param gridStyle the y axis grid style to set + */ + public UpdateStatus setYAxisGridStyle(Integer gridStyle) { + return axes[1].setGridStyle(gridStyle); + } + + /** + * @return the y axis label UID + */ + public Integer getYAxisLabel() { + return axes[1].getLabel(); + } + + /** + * @param label the y axis label to set + */ + public UpdateStatus setYAxisLabel(Integer label) { + return axes[1].setLabel(label); + } + + /** + * @return the y axis location + */ + public Integer getYAxisLocation() { + return getYAxisLocationAsEnum().ordinal(); + } + + /** + * @return the y axis location + */ + public AxisLocation getYAxisLocationAsEnum() { + return axes[1].getAxisLocation(); + } + + /** + * @param axisLocation the y axis location to set + */ + public UpdateStatus setYAxisLocation(Integer axisLocation) { + return setYAxisLocationAsEnum(AxisLocation.intToEnum(axisLocation)); + } + + /** + * @param axisLocation the y axis location to set + */ + public UpdateStatus setYAxisLocationAsEnum(AxisLocation axisLocation) { + return axes[1].setAxisLocation(axisLocation); + } + + /** + * @return the y axis log flag + */ + public Boolean getYAxisLogFlag() { + return axes[1].getLogFlag(); + } + + /** + * @param logFlag the y axis log flag to set + */ + public UpdateStatus setYAxisLogFlag(Boolean logFlag) { + return axes[1].setLogFlag(logFlag); + } + + /** + * @return the y axis ticks + */ + public TicksProperty getYAxisTicks() { + return axes[1].getTicks(); + } + + /** + * @param ticks the y axis ticks to set + */ + public UpdateStatus setYAxisTicks(TicksProperty ticks) { + return axes[1].setTicks(ticks); + } + + /** + * @return the y axis autoticks + */ + public Boolean getYAxisAutoTicks() { + return axes[1].getAutoTicks(); + } + + /** + * @param autoTicks the y axis autoticks to set + */ + public UpdateStatus setYAxisAutoTicks(Boolean autoTicks) { + return axes[1].setAutoTicks(autoTicks); + } + + /** + * @return the y axis number of ticks + */ + public Integer getYAxisNumberTicks() { + return axes[1].getNumberOfTicks(); + } + + /** + * @return the y axis ticks locations + */ + public Double[] getYAxisTicksLocations() { + return axes[1].getTicksLocations(); + } + + /** + * @param ticksLocations the y axis ticks locations to set + */ + public UpdateStatus setYAxisTicksLocations(Double[] ticksLocations) { + return axes[1].setTicksLocations(ticksLocations); + } + + /** + * @return the y axis ticks labels + */ + public String[] getYAxisTicksLabels() { + return axes[1].getTicksLabelsStrings(); + } + + /** + * @return the y axis ticks labels + */ + public ArrayList<FormattedText> getYAxisTicksLabelsAsArrayList() { + return axes[1].getTicksLabels(); + } + + /** + * @param labels the y axis ticks labels to set + */ + public UpdateStatus setYAxisTicksLabels(String[] labels) { + return axes[1].setTicksLabelsStrings(labels); + } + + /** + * @param labels the y axis ticks labels to set + */ + public UpdateStatus setYAxisTicksLabelsAsArrayList(ArrayList<FormattedText> labels) { + return axes[1].setTicksLabels(labels); + } + + /** + * @return the y axis number of subticks + */ + public Integer getYAxisSubticks() { + return axes[1].getSubticks(); + } + + /** + * @param subticks the y axis number of subticks to set + */ + public UpdateStatus setYAxisSubticks(Integer subticks) { + return axes[1].setSubticks(subticks); + } + + /** + * @return the z axis + */ + public AxisProperty getZAxis() { + return axes[2]; + } + + /** + * @param zAxis the z axis to set + */ + public UpdateStatus setZAxis(AxisProperty zAxis) { + axes[2] = zAxis; + + return UpdateStatus.Success; + } + + /** + * @return the z axis visible + */ + public Boolean getZAxisVisible() { + return axes[2].getVisible(); + } + + /** + * @param visible the z axis visible to set + */ + public UpdateStatus setZAxisVisible(Boolean visible) { + return axes[2].setVisible(visible); + } + + /** + * @return the z axis format + */ + public String getZAxisFormat() { + return axes[2].getFormat(); + } + + /** + * @param format the z axis format to set + */ + public UpdateStatus setZAxisFormat(String format) { + return axes[2].setFormat(format); + } + + /** + * @return the z axis scale-translate factors + */ + public Double[] getZAxisSTFactors() { + return axes[2].getSTFactors(); + } + + /** + * @param factors the z axis scale-translate factors + */ + public UpdateStatus setZAxisSTFactors(Double[] factors) { + return axes[2].setSTFactors(factors); + } + + /** + * @return the z axis reverse + */ + public Boolean getZAxisReverse() { + return axes[2].getReverse(); + } + + /** + * @param reverse the z axis reverse to set + */ + public UpdateStatus setZAxisReverse(Boolean reverse) { + return axes[2].setReverse(reverse); + } + + /** + * @return the z axis grid color + */ + public Integer getZAxisGridColor() { + return axes[2].getGridColor(); + } + + /** + * @param gridColor the z axis grid color to set + */ + public UpdateStatus setZAxisGridColor(Integer gridColor) { + return axes[2].setGridColor(gridColor); + } + + /** + * @return the x axis grid thickness + */ + public Double getZAxisGridThickness() { + Double d = axes[2].getGridThickness(); + return d == -1 ? getLineThickness() : d; + } + + /** + * @param gridThickness the x axis grid thickness to set + */ + public UpdateStatus setZAxisGridThickness(Double gridThickness) { + return axes[2].setGridThickness(gridThickness); + } + + /** + * @return the z axis grid style + */ + public Integer getZAxisGridStyle() { + return axes[2].getGridStyle(); + } + + /** + * @param gridStyle the z axis grid style to set + */ + public UpdateStatus setZAxisGridStyle(Integer gridStyle) { + return axes[2].setGridStyle(gridStyle); + } + + /** + * @return the z axis label UID + */ + public Integer getZAxisLabel() { + return axes[2].getLabel(); + } + + /** + * @param label the z axis label to set + */ + public UpdateStatus setZAxisLabel(Integer label) { + return axes[2].setLabel(label); + } + + /** + * @return the z axis location + */ + public Integer getZAxisLocation() { + return getZAxisLocationAsEnum().ordinal(); + } + + /** + * @return the z axis location + */ + public AxisLocation getZAxisLocationAsEnum() { + return axes[2].getAxisLocation(); + } + + /** + * @param axisLocation the z axis location to set + */ + public UpdateStatus setZAxisLocation(Integer axisLocation) { + return setZAxisLocationAsEnum(AxisLocation.intToEnum(axisLocation)); + } + + /** + * @param axisLocation the z axis location to set + */ + public UpdateStatus setZAxisLocationAsEnum(AxisLocation axisLocation) { + return axes[2].setAxisLocation(axisLocation); + } + + /** + * @return the z axis log flag + */ + public Boolean getZAxisLogFlag() { + return axes[2].getLogFlag(); + } + + /** + * @param logFlag the z axis log flag to set + */ + public UpdateStatus setZAxisLogFlag(Boolean logFlag) { + return axes[2].setLogFlag(logFlag); + } + + /** + * @return the z axis ticks + */ + public TicksProperty getZAxisTicks() { + return axes[2].getTicks(); + } + + /** + * @param ticks the z axis ticks to set + */ + public UpdateStatus setZAxisTicks(TicksProperty ticks) { + return axes[2].setTicks(ticks); + } + + /** + * @return the z axis autoticks + */ + public Boolean getZAxisAutoTicks() { + return axes[2].getAutoTicks(); + } + + /** + * @param autoTicks the z axis autoticks to set + */ + public UpdateStatus setZAxisAutoTicks(Boolean autoTicks) { + return axes[2].setAutoTicks(autoTicks); + } + + /** + * @return the z axis number of ticks + */ + public Integer getZAxisNumberTicks() { + return axes[2].getNumberOfTicks(); + } + + /** + * @return the z axis ticks locations + */ + public Double[] getZAxisTicksLocations() { + return axes[2].getTicksLocations(); + } + + /** + * @param ticksLocations the z axis ticks locations to set + */ + public UpdateStatus setZAxisTicksLocations(Double[] ticksLocations) { + return axes[2].setTicksLocations(ticksLocations); + } + + /** + * @return the z axis ticks labels + */ + public String[] getZAxisTicksLabels() { + return axes[2].getTicksLabelsStrings(); + } + + /** + * @return the z axis ticks labels + */ + public ArrayList<FormattedText> getZAxisTicksLabelsAsArrayList() { + return axes[2].getTicksLabels(); + } + + /** + * @param labels the z axis ticks labels to set + */ + public UpdateStatus setZAxisTicksLabels(String[] labels) { + return axes[2].setTicksLabelsStrings(labels); + } + + /** + * @param labels the z axis ticks labels to set + */ + public UpdateStatus setZAxisTicksLabelsAsArrayList(ArrayList<FormattedText> labels) { + return axes[2].setTicksLabels(labels); + } + + /** + * @return the z axis number of subticks + */ + public Integer getZAxisSubticks() { + return axes[2].getSubticks(); + } + + /** + * @param subticks the z axis number of subticks to set + */ + public UpdateStatus setZAxisSubticks(Integer subticks) { + return axes[2].setSubticks(subticks); + } + + /** + * @return the autosubticks + */ + public Boolean getAutoSubticks() { + return autoSubticks; + } + + /** + * @param autoSubticks the autosubticks to set + */ + public UpdateStatus setAutoSubticks(Boolean autoSubticks) { + if (this.autoSubticks != autoSubticks) { + this.autoSubticks = autoSubticks; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * Gets the ticks labels font style. + * It supposes all ticks labels within a single axis have the same font style value + * and that this value is the same for the 3 axes. + * To be corrected. + * @return the ticks labels font style + */ + public Integer getFontStyle() { + return axes[0].getFontStyle(); + } + + /** + * Sets the ticks labels font style. + * It supposes all ticks labels within a single axis have the same font style value + * and that this value is the same for the 3 axes. + * To be corrected. + * @param fontStyle the ticks labels font style to set + */ + public UpdateStatus setFontStyle(Integer fontStyle) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < axes.length; i++) { + UpdateStatus s = axes[i].setFontStyle(fontStyle); + if (s == UpdateStatus.Success) { + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Gets the ticks labels font size. + * It supposes all ticks labels within a single axis have the same font size value + * and that this value is the same for the 3 axes. + * To be corrected. + * @return the ticks labels font size + */ + public Double getFontSize() { + return axes[0].getFontSize(); + } + + /** + * Sets the ticks labels font size. + * It supposes all ticks labels within a single axis have the same font size value + * and that this value is the same for the 3 axes. + * To be corrected. + * @param fontSize the ticks labels font size to set + */ + public UpdateStatus setFontSize(Double fontSize) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < axes.length; i++) { + UpdateStatus s = axes[i].setFontSize(fontSize); + if (s == UpdateStatus.Success) { + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Gets the ticks labels font color. + * It supposes all ticks labels within a single axis have the same font color value + * and that this value is the same for the 3 axes. + * To be corrected. + * @return the ticks labels font color + */ + public Integer getFontColor() { + return axes[0].getFontColor(); + } + + /** + * Sets the ticks labels font color. + * It supposes all ticks labels within a single axis have the same font color value + * and that this value is the same for the 3 axes. + * To be corrected. + * @param fontColor the ticks labels font color to set + */ + public UpdateStatus setFontColor(Integer fontColor) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < axes.length; i++) { + UpdateStatus s = axes[i].setFontColor(fontColor); + if (s == UpdateStatus.Success) { + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Gets the ticks labels font fractional. + * It supposes all ticks labels within a single axis have the same font fractional value + * and that this value is the same for the 3 axes. + * To be corrected. + * @return the ticks labels font fractional + */ + public Boolean getFontFractional() { + return axes[0].getFontFractional(); + } + + /** + * Sets the ticks labels font fractional. + * It supposes all ticks labels within a single axis have the same font fractional value + * and that this value is the same for the 3 axes. + * To be corrected. + * @param fontFractional the ticks labels font fractional to set + */ + public UpdateStatus setFontFractional(Boolean fontFractional) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < axes.length; i++) { + UpdateStatus s = axes[i].setFontFractional(fontFractional); + if (s == UpdateStatus.Success) { + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * @return the axesBounds + */ + public Double[] getAxesBounds() { + Double[] retAxesBounds = new Double[4]; + + retAxesBounds[0] = axesBounds[0]; + retAxesBounds[1] = axesBounds[1]; + retAxesBounds[2] = axesBounds[2]; + retAxesBounds[3] = axesBounds[3]; + + return retAxesBounds; + } + + /** + * @param axesBounds the axesBounds to set + */ + public UpdateStatus setAxesBounds(Double[] axesBounds) { + if (this.axesBounds[0] != axesBounds[0] || this.axesBounds[1] != axesBounds[1] + || this.axesBounds[2] != axesBounds[2] || this.axesBounds[3] != axesBounds[3]) { + this.axesBounds[0] = axesBounds[0]; + this.axesBounds[1] = axesBounds[1]; + this.axesBounds[2] = axesBounds[2]; + this.axesBounds[3] = axesBounds[3]; + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the hiddenColor + */ + public Integer getHiddenColor() { + return hiddenColor; + } + + /** + * @param hiddenColor the hiddenColor to set + */ + public UpdateStatus setHiddenColor(Integer hiddenColor) { + if (this.hiddenColor != hiddenColor) { + this.hiddenColor = hiddenColor; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * Returns the line property + * @return the line property + */ + public Line getLine() { + return line; + } + + /** + * @return the line mode + */ + public Boolean getLineMode() { + return line.getMode(); + } + + /** + * @param lineMode the line mode to set + */ + public UpdateStatus setLineMode(Boolean lineMode) { + return line.setMode(lineMode); + } + + /** + * @return the line style + */ + public Integer getLineStyle() { + return line.getLineStyle().asScilabIndex(); + } + + /** + * @param lineStyle the line style to set + */ + public UpdateStatus setLineStyle(Integer lineStyle) { + return line.setLineStyle(LineType.fromScilabIndex(lineStyle)); + } + + /** + * @return the line thickness + */ + public Double getLineThickness() { + return line.getThickness(); + } + + /** + * @param lineThickness the line thickness to set + */ + public UpdateStatus setLineThickness(Double lineThickness) { + return line.setThickness(lineThickness); + } + + /** + * @return the line color + */ + public Integer getLineColor() { + return line.getColor(); + } + + /** + * @param lineColor the lineColor to set + */ + public UpdateStatus setLineColor(Integer lineColor) { + return line.setColor(lineColor); + } + + /** + * @return the mark mode + */ + public Boolean getMarkMode() { + return mark.getMode(); + } + + /** + * @param markMode the mark mode to set + */ + public UpdateStatus setMarkMode(Boolean markMode) { + return mark.setMode(markMode); + } + + /** + * @return the mark style + */ + public Integer getMarkStyle() { + return mark.getStyle(); + } + + /** + * @param markStyle the mark style to set + */ + public UpdateStatus setMarkStyle(Integer markStyle) { + return mark.setStyle(markStyle); + } + + /** + * @return the mark size + */ + public Integer getMarkSize() { + return mark.getSize(); + } + + /** + * @param markSize the mark size to set + */ + public UpdateStatus setMarkSize(Integer markSize) { + return mark.setSize(markSize); + } + + /** + * @return the mark size unit + */ + public Integer getMarkSizeUnit() { + return mark.getMarkSizeUnit().ordinal(); + } + + /** + * @param markSizeUnit the mark size unit to set + */ + public UpdateStatus setMarkSizeUnit(Integer markSizeUnit) { + return mark.setMarkSizeUnit(MarkSizeUnitType.intToEnum(markSizeUnit)); + } + + /** + * @return the mark foreground + */ + public Integer getMarkForeground() { + return mark.getForeground(); + } + + /** + * @param markForeground the mark foreground to set + */ + public UpdateStatus setMarkForeground(Integer markForeground) { + return mark.setForeground(markForeground); + } + + /** + * @return the mark background + */ + public Integer getMarkBackground() { + return mark.getBackground(); + } + + /** + * @param markBackground the mark background to set + */ + public UpdateStatus setMarkBackground(Integer markBackground) { + return mark.setBackground(markBackground); + } + + /** + * @return the clip state + */ + public Integer getClipState() { + return clipProperty.getClipState().ordinal(); + } + + /** + * @param clipState the clip state to set + */ + public UpdateStatus setClipState(Integer clipState) { + return clipProperty.setClipState(ClipStateType.intToEnum(clipState)); + } + + /** + * @return the clip box + */ + public Double[] getClipBox() { + return clipProperty.getClipBox(); + } + + /** + * @param clipBox the clip box to set + */ + public UpdateStatus setClipBox(Double[] clipBox) { + return clipProperty.setClipBox(clipBox); + } + + /** + * @return the clip box set + */ + public Boolean getClipBoxSet() { + return clipProperty.getClipBoxSet(); + } + + /** + * @param clipBoxSet the clip box set to set + */ + public UpdateStatus setClipBoxSet(Boolean clipBoxSet) { + return clipProperty.setClipBoxSet(clipBoxSet); + } + + /** + * @return the arcDrawingMethod + */ + public Integer getArcDrawingMethod() { + return arcDrawingMethod.ordinal(); + } + + /** + * @param arcDrawingMethod the arcDrawingMethod to set + */ + public UpdateStatus setArcDrawingMethod(Integer arcDrawingMethod) { + ArcDrawingMethod mode = ArcDrawingMethod.intToEnum(arcDrawingMethod); + if (this.arcDrawingMethod != mode) { + this.arcDrawingMethod = mode; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the box + */ + public Box getBox() { + return box; + } + + /** + * @param box the box to set + */ + public UpdateStatus setBox(Box box) { + this.box = box; + + return UpdateStatus.Success; + } + + /** + * @return the box type + */ + public Integer getBoxType() { + return getBoxTypeAsEnum().ordinal(); + } + + /** + * @return the box type + */ + public BoxType getBoxTypeAsEnum() { + return box.getBox(); + } + + /** + * @param box the BoxType to set + */ + public UpdateStatus setBoxType(Integer box) { + return setBoxTypeAsEnum(BoxType.intToEnum(box)); + } + + /** + * @param box the BoxType to set + */ + public UpdateStatus setBoxTypeAsEnum(BoxType box) { + return this.box.setBox(box); + } + + /** + * @return the hidden axis color + */ + public Integer getHiddenAxisColor() { + return box.getHiddenAxisColor(); + } + + /** + * @param color the hidden axis color to set + */ + public UpdateStatus setHiddenAxisColor(Integer color) { + return box.setHiddenAxisColor(color); + } + + /** + * @return the X axis tight limits + */ + public Boolean getXTightLimits() { + return box.getXTightLimits(); + } + + /** + * @return the Y axis tight limits + */ + public Boolean getYTightLimits() { + return box.getYTightLimits(); + } + + /** + * @return the Z axis tight limits + */ + public Boolean getZTightLimits() { + return box.getZTightLimits(); + } + + /** + * @param tightLimits the tightLimits to set for X axis + */ + public UpdateStatus setXTightLimits(Boolean tightLimits) { + return box.setXTightLimits(tightLimits); + } + + /** + * @param tightLimits the tightLimits to set for Y axis + */ + public UpdateStatus setYTightLimits(Boolean tightLimits) { + return box.setYTightLimits(tightLimits); + } + + /** + * @param tightLimits the tightLimits to set for Z axis + */ + public UpdateStatus setZTightLimits(Boolean tightLimits) { + return box.setZTightLimits(tightLimits); + } + + /** + * @return the data bounds + */ + public Double[] getDataBounds() { + return box.getDataBounds(); + } + + /** + * @param dataBounds the data bounds to set + */ + public UpdateStatus setDataBounds(Double[] dataBounds) { + return box.setDataBounds(dataBounds); + } + + /** + * @return the real data bounds + */ + public Double[] getRealDataBounds() { + return box.getRealDataBounds(); + } + + /** + * @param realDataBounds the real data bounds to set + */ + public UpdateStatus setRealDataBounds(Double[] realDataBounds) { + return box.setRealDataBounds(realDataBounds); + } + + /** + * Get the scale and translate factors corresponding to the displayed bounds + * @return the factors as a multidimensional array 2x3 + */ + public double[][] getScaleTranslateFactors() { + // For an axe scale and translate factors are + // such that scale*min+translate=-1 and scale*max+translate=+1 + // With these factors, double data will be in interval [-1;1] + + Double[] bounds = getMaximalDisplayedBounds(); + double[][] f = new double[2][]; + + // scale factors + f[0] = new double[] {2 / (bounds[1] - bounds[0]), + 2 / (bounds[3] - bounds[2]), + 2 / (bounds[5] - bounds[4]) + }; + + // translate factors + f[1] = new double[] { -(bounds[1] + bounds[0]) / (bounds[1] - bounds[0]), -(bounds[3] + bounds[2]) / (bounds[3] - bounds[2]), -(bounds[5] + bounds[4]) / (bounds[5] - bounds[4])}; + + return f; + } + + public Double[] getCorrectedBounds() { + if (getZoomEnabled()) { + Double[] b = getCorrectZoomBox(); + double[][] factors = getScaleTranslateFactors(); + + b[0] = b[0] * factors[0][0] + factors[1][0]; + b[1] = b[1] * factors[0][0] + factors[1][0]; + b[2] = b[2] * factors[0][1] + factors[1][1]; + b[3] = b[3] * factors[0][1] + factors[1][1]; + b[4] = b[4] * factors[0][2] + factors[1][2]; + b[5] = b[5] * factors[0][2] + factors[1][2]; + + return b; + } else { + return new Double[] { -1., 1., -1., 1., -1., 1.}; + } + } + + /** + * Current displayed bounds getter. + * @return the current visible bounds of this axes. + */ + public Double[] getDisplayedBounds() { + if (getZoomEnabled()) { + return getCorrectZoomBox(); + } else { + return getMaximalDisplayedBounds(); + } + } + + /** + * Maximal possible displayed bounds getter. + * @return the maximal possible displayed bounds. + */ + public Double[] getMaximalDisplayedBounds() { + Double[] bounds = getDataBounds(); + boolean eq = bounds[0].doubleValue() == bounds[1].doubleValue(); + if (getXAxisLogFlag()) { + if (eq) { + bounds[0] = Math.log10(bounds[0]) - 1; + bounds[1] = bounds[0] + 2; + } else { + bounds[0] = Math.log10(bounds[0]); + bounds[1] = Math.log10(bounds[1]); + } + } else if (eq) { + // Avoid to have same bounds. + double inc = getIncrement(bounds[0]); + bounds[0] -= inc; + bounds[1] += inc; + } + + if (getXAxisLocationAsEnum() == AxisProperty.AxisLocation.ORIGIN) { + if (0 < bounds[0]) { + bounds[0] = 0.; + } else if (bounds[1] < 0) { + bounds[1] = 0.; + } + } + + eq = bounds[2].doubleValue() == bounds[3].doubleValue(); + if (getYAxisLogFlag()) { + if (eq) { + bounds[2] = Math.log10(bounds[2]) - 1; + bounds[3] = bounds[2] + 2; + } else { + bounds[2] = Math.log10(bounds[2]); + bounds[3] = Math.log10(bounds[3]); + } + } else if (eq) { + double inc = getIncrement(bounds[2]); + bounds[2] -= inc; + bounds[3] += inc; + } + + if (getYAxisLocationAsEnum() == AxisProperty.AxisLocation.ORIGIN) { + if (0 < bounds[2]) { + bounds[2] = 0.; + } else if (bounds[3] < 0) { + bounds[3] = 0.; + } + } + + eq = bounds[4].doubleValue() == bounds[5].doubleValue(); + if (getZAxisLogFlag()) { + if (eq) { + bounds[4] = Math.log10(bounds[4]) - 1; + bounds[5] = bounds[4] + 2; + } else { + bounds[4] = Math.log10(bounds[4]); + bounds[5] = Math.log10(bounds[5]); + } + } else if (eq) { + double inc = getIncrement(bounds[4]); + bounds[4] -= inc; + bounds[5] += inc; + } + + if (false && getZAxisLocationAsEnum() == AxisProperty.AxisLocation.ORIGIN) { + // We ignore this flag axis location since it cannot be set by the user (bug 13494) + if (0 < bounds[4]) { + bounds[4] = 0.; + } else if (bounds[5] < 0) { + bounds[5] = 0.; + } + } + + if (!getXTightLimits()) { + round(bounds, 0); + } + if (!getYTightLimits()) { + round(bounds, 2); + } + if (!getZTightLimits()) { + round(bounds, 4); + } + + return bounds; + } + + private final double getIncrement(final double x) { + final int exponent = (int) (((Double.doubleToLongBits(x) & 0x7FF0000000000000L) >> 52) - 1023); + + return Math.pow(2, Math.max(0, exponent - 52)); + } + + /** + * Round the bounds in the bounds array at the given index. + * bounds[i] and bounds[i + 1 ] are rounded to be in the value written + * k * b * 10^n + * where b is in {1, 2, 5} + * and b * 10 ^n the maximal value less than (bounds[i + 1] - bounds[i]) / BOUNDS_PARAMETER. + * @param bounds the bounds array. + * @param i the start index. + */ + private void round(Double[] bounds, int i) { + double delta = (bounds[i + 1] - bounds[i]) / BOUNDS_PARAMETER; + double powerOfTen = Math.pow(10, Math.floor(Math.log10(delta))); + double base = delta / powerOfTen; + + if (base < 2) { + base = 1; + } else if (base < 5) { + base = 2; + } else { + base = 5; + } + + double step = base * powerOfTen; + bounds[i] = step * Math.floor(bounds[i] / step); + bounds[i + 1] = step * Math.ceil(bounds[i + 1] / step); + } + + /** + * @return the zoomEnabled + */ + public Boolean getZoomEnabled() { + return box.getZoomEnabled(); + } + + /** + * @param zoomEnabled the zoomEnabled to set + */ + public UpdateStatus setZoomEnabled(Boolean zoomEnabled) { + return box.setZoomEnabled(zoomEnabled); + } + + /** + * @return the zoom box + */ + public Double[] getZoomBox() { + return box.getZoomBox(); + } + + public Double[] getCorrectZoomBox() { + Double[] b = getZoomBox(); + if (getXAxisLogFlag()) { + b[0] = Math.log10(b[0]); + b[1] = Math.log10(b[1]); + } + + if (getYAxisLogFlag()) { + b[2] = Math.log10(b[2]); + b[3] = Math.log10(b[3]); + } + + if (getZAxisLogFlag()) { + b[4] = Math.log10(b[4]); + b[5] = Math.log10(b[5]); + } + + return b; + } + + /** + * @param zoomBox the zoom box to set + */ + public UpdateStatus setZoomBox(Double[] zoomBox) { + return box.setZoomBox(zoomBox); + } + + /** + * @return the autoscale + */ + public Boolean getAutoScale() { + return box.getAutoScale(); + } + + /** + * @param autoScale the autoscale to set + */ + public UpdateStatus setAutoScale(Boolean autoScale) { + return box.setAutoScale(autoScale); + } + + /** + * @return the firstplot + */ + public Boolean getFirstPlot() { + return box.getFirstPlot(); + } + + /** + * @param firstPlot the firstplot to set + */ + public UpdateStatus setFirstPlot(Boolean firstPlot) { + return box.setFirstPlot(firstPlot); + } + + /** + * @return the camera + */ + public Camera getCamera() { + return camera; + } + + /** + * @param camera the camera to set + */ + public UpdateStatus setCamera(Camera camera) { + if (this.camera.equals(camera)) { + this.camera = camera; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the view type + */ + public Integer getView() { + return getViewAsEnum().ordinal(); + } + + /** + * @return the view type + */ + public ViewType getViewAsEnum() { + return camera.getView(); + } + + /** + * @param view the view type to set + */ + public UpdateStatus setView(Integer view) { + return setViewAsEnum(ViewType.intToEnum(view)); + } + + /** + * @param view the view type to set + */ + public UpdateStatus setViewAsEnum(ViewType view) { + return camera.setView(view); + } + + /** + * @return the isoview + */ + public Boolean getIsoview() { + return camera.getIsoview(); + } + + /** + * @param isoview the isoview to set + */ + public UpdateStatus setIsoview(Boolean isoview) { + return camera.setIsoview(isoview); + } + + /** + * @return the cubescaling + */ + public Boolean getCubeScaling() { + return camera.getCubeScaling(); + } + + /** + * @param cubeScaling the cubescaling to set + */ + public UpdateStatus setCubeScaling(Boolean cubeScaling) { + return camera.setCubeScaling(cubeScaling); + } + + /** + * @return the rotation angles + */ + public Double[] getRotationAngles() { + return camera.getRotationAngles(); + } + + /** + * @param rotationAngles the rotation angles to set + * @return the update status. + */ + public UpdateStatus setRotationAngles(Double[] rotationAngles) { + if (camera.setRotationAngles(rotationAngles)) { + try { + GraphicController controller = GraphicController.getController(); + Figure figure = (Figure) controller.getObjectFromId(getParentFigure()); + if (figure.getRotationAsEnum().equals(Figure.RotationType.MULTIPLE)) { + for (Integer child : figure.getChildren()) { + if (child != null) { + if (GraphicObjectProperties.__GO_AXES__ == ((Integer) controller.getProperty(child, GraphicObjectProperties.__GO_TYPE__))) { + controller.setProperty( + child, + GraphicObjectProperties.__GO_ROTATION_ANGLES__, + rotationAngles); + } + } + } + } + } catch (ClassCastException ignored) { + } + return UpdateStatus.Success; + } else { + return UpdateStatus.NoChange; + } + } + + /** + * @return the 3d rotation angles + */ + public Double[] getRotationAngles3d() { + return camera.getRotationAngles3d(); + } + + /** + * @param rotationAngles3d the 3d rotation angles to set + */ + public UpdateStatus setRotationAngles3d(Double[] rotationAngles3d) { + return camera.setRotationAngles3d(rotationAngles3d); + } + + /** + * @return the filled + */ + public Boolean getFilled() { + return filled; + } + + /** + * @param filled the filled to set + */ + public UpdateStatus setFilled(Boolean filled) { + if (this.filled != filled) { + this.filled = filled; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the background + */ + public Integer getBackground() { + return background; + } + + /** + * @param background the background to set + */ + public UpdateStatus setBackground(Integer background) { + if (this.background != background) { + this.background = background; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the gridPosition + */ + public Integer getGridPosition() { + return getGridPositionAsEnum().ordinal(); + } + + /** + * @return the gridPosition + */ + public GridPosition getGridPositionAsEnum() { + return gridPosition; + } + + /** + * @param gridPosition the gridPosition to set + */ + public UpdateStatus setGridPosition(Integer gridPosition) { + return setGridPositionAsEnum(GridPosition.intToEnum(gridPosition)); + } + + /** + * @param gridPosition the gridPosition to set + */ + public UpdateStatus setGridPositionAsEnum(GridPosition gridPosition) { + if (this.gridPosition != gridPosition) { + this.gridPosition = gridPosition; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the margins + */ + public Double[] getMargins() { + Double[] retMargins = new Double[4]; + + retMargins[0] = margins[0]; + retMargins[1] = margins[1]; + retMargins[2] = margins[2]; + retMargins[3] = margins[3]; + + return retMargins; + } + + /** + * @param margins the margins to set + */ + public UpdateStatus setMargins(Double[] margins) { + if (this.margins[0] != margins[0] || this.margins[1] != margins[1] || this.margins[2] != margins[2] || this.margins[3] != margins[3]) { + this.margins[0] = margins[0]; + this.margins[1] = margins[1]; + this.margins[2] = margins[2]; + this.margins[3] = margins[3]; + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the margins + */ + public Boolean getAutoMargins() { + return new Boolean(auto_margins); + } + + /** + * @param margins the margins to set + */ + public UpdateStatus setAutoMargins(Boolean auto_margins) { + if (this.auto_margins != auto_margins) { + this.auto_margins = auto_margins; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the title UID + */ + public Integer getTitle() { + return title; + } + + /** + * @param title the title to set + */ + public UpdateStatus setTitle(Integer title) { + if (this.title != title) { + this.title = title; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + public Integer getType() { + return GraphicObjectProperties.__GO_AXES__; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxesContainer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxesContainer.java new file mode 100755 index 000000000..9e9cf9a3b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxesContainer.java @@ -0,0 +1,30 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2014 - Scilab enterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import org.scilab.modules.graphic_objects.figure.ColorMap; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +public interface AxesContainer { + + public Integer getIdentifier(); + public void accept(Visitor visitor); + public Integer getAntialiasing(); + public Integer[] getAxesSize(); + public Integer[] getChildren(); + + public Integer getBackground(); + public ColorMap getColorMap(); + public Integer getParentFigure(); + public Boolean getVisible(); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxisProperty.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxisProperty.java new file mode 100755 index 000000000..184c56d11 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/AxisProperty.java @@ -0,0 +1,566 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import org.scilab.modules.graphic_objects.contouredObject.Line; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.textObject.FormattedText; + +import java.util.ArrayList; + + +/** + * Axis property class + * @author Manuel JULIACHS + */ +public class AxisProperty { + /** + * AxisProperty properties names + */ + public enum AxisPropertyProperty { VISIBLE, REVERSE, GRIDCOLOR, GRIDTHICKNESS, GRIDSTYLE, LABEL, AXISLOCATION, + LOGFLAG, UNKNOWNPROPERTY + } + + /** + * Axis location type + * BOTTOM, TOP, MIDDLE, ORIGIN are allowed for an x-axis, + * LEFT, RIGHT, MIDDLE or ORIGIN are allowed for a y-axis + */ + public static enum AxisLocation { BOTTOM, TOP, MIDDLE, ORIGIN, LEFT, RIGHT; + + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the axis location enum + */ + public static AxisLocation intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return AxisLocation.BOTTOM; + case 1: + return AxisLocation.TOP; + case 2: + return AxisLocation.MIDDLE; + case 3: + return AxisLocation.ORIGIN; + case 4: + return AxisLocation.LEFT; + case 5: + return AxisLocation.RIGHT; + default: + return null; + } + } + } + + /** Specifies whether the axis is visible or not */ + private boolean visible; + + /** Specifies whether the axis is reversed or not */ + private boolean reverse; + + /** Grid color */ + private int gridColor; + + /** Grid thickness */ + private double gridThickness; + + /** Grid style */ + private Line.LineType gridStyle; + + /** Axis label UID */ + private Integer label; + + /** Axis location */ + private AxisLocation axisLocation; + + /** Specifies whether logarithmic coordinates are used or not */ + private boolean logFlag; + + /** Ticks property */ + private TicksProperty ticks; + + /** Constructor */ + public AxisProperty() { + visible = false; + reverse = false; + gridColor = 0; + gridThickness = -1; + gridStyle = Line.LineType.DASH_DOT; + + /* Sets the label to the null object */ + label = 0; + + axisLocation = AxisLocation.ORIGIN; + ticks = new TicksProperty(); + logFlag = false; + } + + /** + * Copy constructor + * @param axisProperty the AxisProperty to copy + */ + public AxisProperty(AxisProperty axisProperty) { + visible = axisProperty.visible; + reverse = axisProperty.reverse; + gridColor = axisProperty.gridColor; + gridThickness = axisProperty.gridThickness; + gridStyle = axisProperty.gridStyle; + + label = 0; + + axisLocation = axisProperty.axisLocation; + ticks = new TicksProperty(axisProperty.ticks); + logFlag = axisProperty.logFlag; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(String propertyName) { + if (propertyName.equals("Visible")) { + return AxisPropertyProperty.VISIBLE; + } else if (propertyName.equals("Reverse")) { + return AxisPropertyProperty.REVERSE; + } else if (propertyName.equals("GridColor")) { + return AxisPropertyProperty.GRIDCOLOR; + } else if (propertyName.equals("GridThickness")) { + return AxisPropertyProperty.GRIDTHICKNESS; + } else if (propertyName.equals("GridStyle")) { + return AxisPropertyProperty.GRIDSTYLE; + } else if (propertyName.equals("Label")) { + return AxisPropertyProperty.LABEL; + } else if (propertyName.equals("AxisLocation")) { + return AxisPropertyProperty.AXISLOCATION; + } else if (propertyName.equals("LogFlag")) { + return AxisPropertyProperty.LOGFLAG; + } else { + return AxisPropertyProperty.UNKNOWNPROPERTY; + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == AxisPropertyProperty.VISIBLE) { + return getVisible(); + } else if (property == AxisPropertyProperty.REVERSE) { + return getReverse(); + } else if (property == AxisPropertyProperty.GRIDCOLOR) { + return getGridColor(); + } else if (property == AxisPropertyProperty.GRIDTHICKNESS) { + return getGridThickness(); + } else if (property == AxisPropertyProperty.GRIDSTYLE) { + return getGridStyle(); + } else if (property == AxisPropertyProperty.LABEL) { + return getLabel(); + } else if (property == AxisPropertyProperty.AXISLOCATION) { + return getAxisLocation(); + } else if (property == AxisPropertyProperty.LOGFLAG) { + return getLogFlag(); + } else { + return null; + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public boolean setProperty(Object property, Object value) { + if (property == AxisPropertyProperty.VISIBLE) { + setVisible((Boolean) value); + } else if (property == AxisPropertyProperty.REVERSE) { + setReverse((Boolean) value); + } else if (property == AxisPropertyProperty.GRIDCOLOR) { + setGridColor((Integer) value); + } else if (property == AxisPropertyProperty.GRIDTHICKNESS) { + setGridThickness((Double) value); + } else if (property == AxisPropertyProperty.GRIDSTYLE) { + setGridStyle((Integer) value); + } else if (property == AxisPropertyProperty.LABEL) { + setLabel((Integer) value); + } else if (property == AxisPropertyProperty.AXISLOCATION) { + setAxisLocation((AxisLocation) value); + } else if (property == AxisPropertyProperty.LOGFLAG) { + setLogFlag((Boolean) value); + } + + return true; + } + + /** + * @return the axisLocation + */ + public AxisLocation getAxisLocationAsEnum() { + return axisLocation; + } + + /** + * @return the axisLocation + */ + public AxisLocation getAxisLocation() { + return axisLocation; + } + + /** + * @param axisLocation the axisLocation to set + */ + public UpdateStatus setAxisLocation(AxisLocation axisLocation) { + if (this.axisLocation != axisLocation) { + this.axisLocation = axisLocation; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the gridColor + */ + public Integer getGridColor() { + return gridColor; + } + + /** + * @param gridColor the gridColor to set + */ + public UpdateStatus setGridColor(Integer gridColor) { + if (this.gridColor != gridColor) { + this.gridColor = gridColor; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the gridThickness + */ + public Double getGridThickness() { + return gridThickness; + } + + /** + * @param gridThickness the gridThickness to set + */ + public UpdateStatus setGridThickness(Double gridThickness) { + if (this.gridThickness != gridThickness) { + this.gridThickness = gridThickness; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the gridStyle + */ + public Integer getGridStyle() { + return gridStyle.asScilabIndex(); + } + + /** + * @param gridStyle the gridStyle to set + */ + public UpdateStatus setGridStyle(Integer gridStyle) { + Line.LineType type = Line.LineType.fromScilabIndex(gridStyle); + if (this.gridStyle != type) { + this.gridStyle = type; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the label + */ + public Integer getLabel() { + return label; + } + + /** + * @param label the label to set + */ + public UpdateStatus setLabel(Integer label) { + if (this.label != label) { + this.label = label == null ? 0 : label; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the logFlag + */ + public Boolean getLogFlag() { + return logFlag; + } + + /** + * @param logFlag the logFlag to set + */ + public UpdateStatus setLogFlag(Boolean logFlag) { + if (this.logFlag != logFlag) { + this.logFlag = logFlag; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the reverse + */ + public Boolean getReverse() { + return reverse; + } + + /** + * @param reverse the reverse to set + */ + public UpdateStatus setReverse(Boolean reverse) { + if (this.reverse != reverse) { + this.reverse = reverse; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the ticks + */ + public TicksProperty getTicks() { + return ticks; + } + + /** + * @param ticks the ticks to set + */ + public UpdateStatus setTicks(TicksProperty ticks) { + if (!this.ticks.equals(ticks)) { + this.ticks = ticks; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the visible + */ + public Boolean getVisible() { + return visible; + } + + /** + * @param visible the visible to set + */ + public UpdateStatus setVisible(Boolean visible) { + if (this.visible != visible) { + this.visible = visible; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the autoticks + */ + public Boolean getAutoTicks() { + return ticks.getAuto(); + } + + /** + * @param autoticks the autoticks to set + */ + public UpdateStatus setAutoTicks(Boolean autoticks) { + return ticks.setAuto(autoticks); + } + + /** + * @return the number of ticks + */ + public Integer getNumberOfTicks() { + return ticks.getNumber(); + } + + /** + * @return the ticks locations + */ + public Double[] getTicksLocations() { + return ticks.getLocations(); + } + + /** + * @param ticksLocations the ticks locations to set + */ + public UpdateStatus setTicksLocations(Double[] ticksLocations) { + return ticks.setLocations(ticksLocations); + } + + /** + * @return the ticks labels + */ + public ArrayList<FormattedText> getTicksLabels() { + return ticks.getLabels(); + } + + /** + * @param labels the labels to set + */ + public UpdateStatus setTicksLabels(ArrayList<FormattedText> labels) { + return ticks.setLabels(labels); + } + + /** + * @return the ticks labels + */ + public String[] getTicksLabelsStrings() { + return ticks.getLabelsStrings(); + } + + /** + * @param labels the labels strings to set + */ + public UpdateStatus setTicksLabelsStrings(String[] labels) { + return ticks.setLabelsStrings(labels); + } + + /** + * @return the number of subticks + */ + public Integer getSubticks() { + return ticks.getSubticks(); + } + + /** + * @param subticks the number of subticks to set + */ + public UpdateStatus setSubticks(Integer subticks) { + return ticks.setSubticks(subticks); + } + + /** + * Supposes all ticks labels have the same font style. + * To be corrected. + * @return the ticks labels font style + */ + public Integer getFontStyle() { + return ticks.getFontStyle(); + } + + /** + * Supposes all ticks labels have the same font style. + * To be corrected. + * @param fontStyle the ticks labels font style to set + */ + public UpdateStatus setFontStyle(Integer fontStyle) { + return ticks.setFontStyle(fontStyle); + } + + /** + * Supposes all ticks labels have the same font size. + * To be corrected. + * @return the ticks labels font size + */ + public Double getFontSize() { + return ticks.getFontSize(); + } + + /** + * Supposes all ticks labels have the same font size. + * To be corrected. + * @param fontSize the ticks labels font size to set + */ + public UpdateStatus setFontSize(Double fontSize) { + return ticks.setFontSize(fontSize); + } + + /** + * @return the ticks labels format + */ + public String getFormat() { + return ticks.getFormat(); + } + + /** + * @param format the ticks labels format set + */ + public UpdateStatus setFormat(String format) { + return ticks.setFormat(format); + } + + /** + * @return the ticks labels scale-translate factors + */ + public Double[] getSTFactors() { + return ticks.getSTFactors(); + } + + /** + * @param factors the ticks labels scale-translate factors + */ + public UpdateStatus setSTFactors(Double[] factors) { + return ticks.setSTFactors(factors); + } + + /** + * Supposes all ticks labels have the same font color. + * To be corrected. + * @return the ticks labels font color + */ + public Integer getFontColor() { + return ticks.getFontColor(); + } + + /** + * Supposes all ticks labels have the same font color. + * To be corrected. + * @param fontColor the ticks labels font color to set + */ + public UpdateStatus setFontColor(Integer fontColor) { + return ticks.setFontColor(fontColor); + } + + /** + * Supposes all ticks labels have the same font fractional. + * To be corrected. + * @return the ticks labels font fractional + */ + public Boolean getFontFractional() { + return ticks.getFontFractional(); + } + + /** + * Supposes all ticks labels have the same font fractional. + * To be corrected. + * @param fontFractional the ticks labels font fractional to set + */ + public UpdateStatus setFontFractional(Boolean fontFractional) { + return ticks.setFontFractional(fontFractional); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Box.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Box.java new file mode 100755 index 000000000..9cbf389e1 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Box.java @@ -0,0 +1,370 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Box class + * @author Manuel JULIACHS + */ +public class Box { + /** Box properties names */ + public enum BoxProperty { BOX, HIDDENAXISCOLOR, XTIGHTLIMITS, YTIGHTLIMITS, ZTIGHTLIMITS, DATABOUNDS, REALDATABOUNDS, ZOOMENABLED, ZOOMBOX, AUTOSCALE, FIRSTPLOT }; + + /** Box type */ + public static enum BoxType { OFF, ON, HIDDEN_AXES, BACK_HALF; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the box type enum + */ + public static BoxType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return BoxType.OFF; + case 1: + return BoxType.ON; + case 2: + return BoxType.HIDDEN_AXES; + case 3: + return BoxType.BACK_HALF; + default: + return null; + } + } + } + + /** Box type */ + private BoxType box; + + /** Hidden axis color */ + private int hiddenAxisColor; + + /** Specifies whether tight limits are enforced or not */ + private boolean[] tightLimits; + + /** Data bounding box (6-element array) */ + private double[] dataBounds; + + /** Data bounding box, as modified by automatic ticks computation (6-element array) */ + private double[] realDataBounds; + + /** Speficies whether zooming is enabled or not */ + private boolean zoomEnabled; + + /** Magnified 3D sub-region (6-element array) */ + private double[] zoomBox; + + /** Indicates whether data bounds are updated when a new plot command is executed */ + private boolean autoScale; + + /** + * Indicates whether no high-level drawing function has yet been called (true) or + * has been called at least once (false) + */ + private boolean firstPlot; + + /** Constructor */ + public Box() { + box = BoxType.OFF; + hiddenAxisColor = 0; + tightLimits = new boolean[] {false, false, false}; + dataBounds = new double[] {0, 1, 0, 1, -1, 1}; + realDataBounds = new double[6]; + zoomEnabled = false; + zoomBox = new double[6]; + autoScale = false; + firstPlot = true; + } + + /** + * Copy constructor + * @param box the Box to copy + */ + public Box(Box box) { + this.box = box.box; + hiddenAxisColor = box.hiddenAxisColor; + + tightLimits = new boolean[3]; + for (int i = 0; i < tightLimits.length; i++) { + tightLimits[i] = box.tightLimits[i]; + } + + dataBounds = new double[6]; + + for (int i = 0; i < dataBounds.length; i++) { + dataBounds[i] = box.dataBounds[i]; + } + + realDataBounds = new double[6]; + + for (int i = 0; i < realDataBounds.length; i++) { + realDataBounds[i] = box.realDataBounds[i]; + } + + zoomEnabled = box.zoomEnabled; + + zoomBox = new double[6]; + + for (int i = 0; i < zoomBox.length; i++) { + zoomBox[i] = box.zoomBox[i]; + } + + autoScale = box.autoScale; + firstPlot = box.firstPlot; + } + + /** + * @return the autoScale + */ + public Boolean getAutoScale() { + return autoScale; + } + + /** + * @param autoScale the autoScale to set + */ + public UpdateStatus setAutoScale(Boolean autoScale) { + if (this.autoScale != autoScale) { + this.autoScale = autoScale; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the box + */ + public BoxType getBox() { + return box; + } + + /** + * @param box the box to set + */ + public UpdateStatus setBox(BoxType box) { + if (this.box != box) { + this.box = box; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * Return the data bounds. + * The array contain : {xMin, xMax, yMin, yMax, zMin, zMax} + * @return the dataBounds + */ + public Double[] getDataBounds() { + Double[] retDataBounds = new Double[6]; + + for (int i = 0; i < retDataBounds.length; i++) { + retDataBounds[i] = dataBounds[i]; + } + + return retDataBounds; + } + + /** + * @param dataBounds the dataBounds to set + */ + public UpdateStatus setDataBounds(Double[] dataBounds) { + UpdateStatus status = UpdateStatus.NoChange; + final int len = Math.min(this.dataBounds.length, dataBounds.length); + for (int i = 0; i < len; i++) { + if (this.dataBounds[i] != dataBounds[i]) { + this.dataBounds[i] = dataBounds[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * @return the hiddenAxisColor + */ + public Integer getHiddenAxisColor() { + return hiddenAxisColor; + } + + /** + * @param hiddenAxisColor the hiddenAxisColor to set + */ + public UpdateStatus setHiddenAxisColor(Integer hiddenAxisColor) { + if (this.hiddenAxisColor != hiddenAxisColor) { + this.hiddenAxisColor = hiddenAxisColor; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the realDataBounds + */ + public Double[] getRealDataBounds() { + Double[] retRealDataBounds = new Double[6]; + + for (int i = 0; i < retRealDataBounds.length; i++) { + retRealDataBounds[i] = realDataBounds[i]; + } + + return retRealDataBounds; + } + + /** + * @param realDataBounds the realDataBounds to set + */ + public UpdateStatus setRealDataBounds(Double[] realDataBounds) { + UpdateStatus status = UpdateStatus.NoChange; + final int len = Math.min(this.realDataBounds.length, realDataBounds.length); + for (int i = 0; i < len; i++) { + if (this.realDataBounds[i] != realDataBounds[i]) { + this.realDataBounds[i] = realDataBounds[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * @return the tightLimits for X axis + */ + public Boolean getXTightLimits() { + return tightLimits[0]; + } + + /** + * @return the tightLimits for Y axis + */ + public Boolean getYTightLimits() { + return tightLimits[1]; + } + + /** + * @return the tightLimits for X axis + */ + public Boolean getZTightLimits() { + return tightLimits[2]; + } + + /** + * @param tightLimits the tightLimits to set for X axis + */ + public UpdateStatus setXTightLimits(Boolean tightLimits) { + if (this.tightLimits[0] != tightLimits) { + this.tightLimits[0] = tightLimits; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @param tightLimits the tightLimits to set for Y axis + */ + public UpdateStatus setYTightLimits(Boolean tightLimits) { + if (this.tightLimits[1] != tightLimits) { + this.tightLimits[1] = tightLimits; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @param tightLimits the tightLimits to set for Z axis + */ + public UpdateStatus setZTightLimits(Boolean tightLimits) { + if (this.tightLimits[2] != tightLimits) { + this.tightLimits[2] = tightLimits; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the zoomEnabled + */ + public Boolean getZoomEnabled() { + return zoomEnabled; + } + + /** + * @param zoomEnabled the zoomEnabled to set + */ + public UpdateStatus setZoomEnabled(Boolean zoomEnabled) { + if (this.zoomEnabled != zoomEnabled) { + this.zoomEnabled = zoomEnabled; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the zoomBox + */ + public Double[] getZoomBox() { + Double[] retZoomBox = new Double[6]; + + for (int i = 0; i < retZoomBox.length; i++) { + retZoomBox[i] = zoomBox[i]; + } + + return retZoomBox; + } + + /** + * @param zoomBox the zoomBox to set + */ + public UpdateStatus setZoomBox(Double[] zoomBox) { + UpdateStatus status = UpdateStatus.NoChange; + final int len = Math.min(this.zoomBox.length, zoomBox.length); + for (int i = 0; i < len; i++) { + if (this.zoomBox[i] != zoomBox[i]) { + this.zoomBox[i] = zoomBox[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * @return the firstPlot + */ + public Boolean getFirstPlot() { + return firstPlot; + } + + /** + * @param firstPlot the firstPlot to set + */ + public UpdateStatus setFirstPlot(Boolean firstPlot) { + if (this.firstPlot != firstPlot) { + this.firstPlot = firstPlot; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Camera.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Camera.java new file mode 100755 index 000000000..163beaec1 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Camera.java @@ -0,0 +1,229 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Camera class + * @author Manuel JULIACHS + */ +public class Camera { + /** Default rotation angles */ + public static final double[] DEFAULT_ROTATION_ANGLES = {0.0, 270.0}; + + /** Camera properties names */ + public enum CameraProperty { VIEW, ISOVIEW, CUBESCALING, ROTATIONANGLES, ROTATIONANGLES3D }; + + /** View type */ + public enum ViewType { VIEW_2D, VIEW_3D; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the view type type enum + */ + public static ViewType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return ViewType.VIEW_2D; + case 1: + return ViewType.VIEW_3D; + default: + return null; + } + } + } + + /** Specifies whether the projection must be performed for a 2D or a 3D scene */ + private ViewType view; + + /** Specifies whether an isoview transformation must be applied or not */ + private boolean isoview; + + /** Specifies whether a unit cube transformation must be performed */ + private boolean cubeScaling; + + /** 2-element array (alpha and theta rotation angles) */ + private double[] rotationAngles; + + /** + * Last know values of the rotation angles when View was equal to VIEW_3D + * 2-element array (alpha and theta) + */ + private double[] rotationAngles3d; + + /** Constructor */ + public Camera() { + view = ViewType.VIEW_2D; + isoview = false; + cubeScaling = false; + rotationAngles = new double[2]; + rotationAngles3d = new double[2]; + } + + /** + * Copy constructor + * @param camera the Camera to copy + */ + public Camera(Camera camera) { + view = camera.view; + isoview = camera.isoview; + cubeScaling = camera.cubeScaling; + + rotationAngles = new double[2]; + + rotationAngles[0] = camera.rotationAngles[0]; + rotationAngles[1] = camera.rotationAngles[1]; + + rotationAngles3d = new double[2]; + + rotationAngles3d[0] = camera.rotationAngles3d[0]; + rotationAngles3d[1] = camera.rotationAngles3d[1]; + } + + @Override + public boolean equals(Object o) { + if (o instanceof Camera) { + Camera c = (Camera) o; + return view == c.view && isoview == c.isoview && cubeScaling == c.cubeScaling && rotationAngles[0] == c.rotationAngles[0] && rotationAngles[1] == c.rotationAngles[1] && rotationAngles3d[0] == c.rotationAngles3d[0] && rotationAngles3d[1] == c.rotationAngles3d[1]; + } + + return false; + } + + /** + * @return the cubeScaling + */ + public Boolean getCubeScaling() { + return cubeScaling; + } + + /** + * @param cubeScaling the cubeScaling to set + */ + public UpdateStatus setCubeScaling(Boolean cubeScaling) { + if (this.cubeScaling != cubeScaling) { + this.cubeScaling = cubeScaling; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the isoview + */ + public Boolean getIsoview() { + return isoview; + } + + /** + * @param isoview the isoview to set + */ + public UpdateStatus setIsoview(Boolean isoview) { + if (this.isoview != isoview) { + this.isoview = isoview; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the rotationAngles in degree + */ + public Double[] getRotationAngles() { + Double [] retRotationAngles = new Double[2]; + + retRotationAngles[0] = rotationAngles[0]; + retRotationAngles[1] = rotationAngles[1]; + + return retRotationAngles; + } + + /** + * @param rotationAngles the rotationAngles to set + * @return true if the rotation angles have changed. + */ + public boolean setRotationAngles(Double[] rotationAngles) { + if ((this.rotationAngles[0] != rotationAngles[0]) || (this.rotationAngles[1] != rotationAngles[1])) { + if (rotationAngles[0] == DEFAULT_ROTATION_ANGLES[0] && rotationAngles[1] == DEFAULT_ROTATION_ANGLES[1]) { + view = ViewType.VIEW_2D; + } else if (view == ViewType.VIEW_2D) { + view = ViewType.VIEW_3D; + } + + this.rotationAngles[0] = rotationAngles[0]; + this.rotationAngles[1] = rotationAngles[1]; + return true; + } else { + return false; + } + } + + /** + * @return the 3d rotationAngles + */ + public Double[] getRotationAngles3d() { + Double [] retRotationAngles3d = new Double[2]; + + retRotationAngles3d[0] = rotationAngles3d[0]; + retRotationAngles3d[1] = rotationAngles3d[1]; + + return retRotationAngles3d; + } + + /** + * @param rotationAngles3d the 3d rotationAngles to set + */ + public UpdateStatus setRotationAngles3d(Double[] rotationAngles3d) { + if (this.rotationAngles3d[0] != rotationAngles3d[0] || this.rotationAngles3d[1] != rotationAngles3d[1]) { + this.rotationAngles3d[0] = rotationAngles3d[0]; + this.rotationAngles3d[1] = rotationAngles3d[1]; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the view + */ + public ViewType getView() { + return view; + } + + /** + * @param view the view to set + */ + public UpdateStatus setView(ViewType view) { + if (this.view != view) { + if (view == ViewType.VIEW_2D) { + rotationAngles3d[0] = rotationAngles[0]; + rotationAngles3d[1] = rotationAngles[1]; + + rotationAngles[0] = DEFAULT_ROTATION_ANGLES[0]; + rotationAngles[1] = DEFAULT_ROTATION_ANGLES[1]; + } else if (view == ViewType.VIEW_3D && this.view == ViewType.VIEW_2D) { + rotationAngles[0] = rotationAngles3d[0]; + rotationAngles[1] = rotationAngles3d[1]; + } + this.view = view; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/TicksProperty.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/TicksProperty.java new file mode 100755 index 000000000..326c23493 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/TicksProperty.java @@ -0,0 +1,742 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axes; + +import java.util.ArrayList; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.textObject.Font; +import org.scilab.modules.graphic_objects.textObject.FormattedText; + +/** + * TicksProperty class + * @author Manuel JULIACHS + */ +public class TicksProperty { + /** TicksProperty properties names */ + public enum TicksPropertyProperty { AUTO, LOCATIONS, LABELS, + FONT_SIZE, FONT_STYLE, FONT_COLOR, SUBTICKS + }; + + /** Default number of ticks */ + private static final int DEFAULT_NUMBER_OF_TICKS = 11; + + /** Specifies whether ticks are automatically computed or not */ + private boolean auto; + + /** Number of subticks between two main ticks */ + private int subticks; + + /** Default font */ + private Font defaultFont; + + private String format = ""; + private Double[] st_factors = new Double[] {1., 0.}; + + /** TicksArrays class */ + private class TicksArrays { + /** Ticks locations */ + private double[] locations; + + /** Ticks labels */ + private ArrayList <FormattedText> labels; + + /** Number of ticks */ + private int number; + + /** + * Constructor + */ + public TicksArrays(int number) { + locations = new double[number]; + labels = new ArrayList<FormattedText>(number); + + for (int i = 0; i < number; i++) { + labels.add(i, new FormattedText()); + } + + this.number = number; + } + + @Override + public boolean equals(Object o) { + if (o instanceof TicksArrays) { + TicksArrays ta = (TicksArrays) o; + if (ta.number == number) { + for (int i = 0; i < number; i++) { + if (ta.locations[i] != locations[i] || !ta.labels.get(i).equals(labels.get(i))) { + return false; + } + } + + return true; + } + } + + return false; + } + + /** + * @return the number of ticks + */ + public Integer getNumber() { + return number; + } + + /** + * @return the labels + */ + public ArrayList<FormattedText> getLabels() { + return labels; + } + + /** + * @param labels the labels to set + */ + public UpdateStatus setLabels(ArrayList<FormattedText> labels) { + UpdateStatus status = this.labels.equals(labels) ? UpdateStatus.NoChange : UpdateStatus.Success; + if (status == UpdateStatus.Success) { + if (!this.labels.isEmpty()) { + this.labels.clear(); + } + + for (int i = 0; i < labels.size(); i++) { + this.labels.add(i, new FormattedText(labels.get(i))); + } + } + + return status; + } + + /** + * @return the labels strings + */ + public String[] getLabelsStrings() { + String[] labelsStrings; + + labelsStrings = new String[number]; + + for (int i = 0; i < number; i++) { + labelsStrings[i] = new String(labels.get(i).getText()).replaceAll("\u00A0", " "); + } + + return labelsStrings; + } + + /** + * Sets the ticks labels strings + * Requires the corresponding ticks locations to have previously been set. + * @param labels the labels to set + */ + public UpdateStatus setLabelsStrings(String[] labels) { + if (labels.length != number) { + return UpdateStatus.NoChange; + } + + if (this.labels == null || this.labels.size() != labels.length) { + this.labels = new ArrayList<FormattedText>(0); + + Font font = new Font(defaultFont); + for (int i = 0; i < labels.length; i++) { + FormattedText newText = new FormattedText(labels[i], font); + this.labels.add(newText); + } + + return UpdateStatus.Success; + } + + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < number; i++) { + FormattedText ft = this.labels.get(i); + if (!ft.getText().equals(labels[i])) { + this.labels.get(i).setText(labels[i]); + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * @return the locations + */ + public Double[] getLocations() { + Double[] retLocations; + + retLocations = new Double[number]; + + for (int i = 0; i < number; i++) { + retLocations[i] = locations[i]; + } + + return retLocations; + } + + /** + * Sets the ticks locations + * Also sets the current number of ticks to the size of the locations array + * if the latter is resized. + * @param locations the locations to set + */ + public UpdateStatus setLocations(Double[] locations) { + UpdateStatus status = UpdateStatus.Success; + if (this.locations == null || number != locations.length) { + this.locations = new double[locations.length]; + number = locations.length; + } else { + status = UpdateStatus.NoChange; + } + + for (int i = 0; i < locations.length; i++) { + if (status == UpdateStatus.NoChange) { + if (this.locations[i] != locations[i]) { + status = UpdateStatus.Success; + this.locations[i] = locations[i]; + } + } else { + this.locations[i] = locations[i]; + } + } + + return status; + } + + /** + * Supposes all ticks labels have the same font style. + * To be corrected. + * @return the ticks labels font style + */ + public Integer getFontStyle() { + if (!labels.isEmpty()) { + return labels.get(0).getFont().getStyle(); + } + return 0; + } + + /** + * Supposes all ticks labels have the same font style. + * To be corrected. + * @param fontStyle the ticks labels font style to set + */ + public UpdateStatus setFontStyle(Integer fontStyle) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < labels.size(); i++) { + Font f = labels.get(i).getFont(); + if (f.getStyle() != fontStyle) { + f.setStyle(fontStyle); + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Supposes all ticks labels have the same font size. + * To be corrected. + * @return the ticks labels font size + */ + public Double getFontSize() { + if (!labels.isEmpty()) { + return labels.get(0).getFont().getSize(); + } + return 0.0; + } + + /** + * Supposes all ticks labels have the same font size. + * To be corrected. + * @param fontSize the ticks labels font size to set + */ + public UpdateStatus setFontSize(Double fontSize) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < labels.size(); i++) { + Font f = labels.get(i).getFont(); + if (f.getSize() != fontSize) { + f.setSize(fontSize); + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Supposes all ticks labels have the same font color. + * To be corrected. + * @return the ticks labels font color + */ + public Integer getFontColor() { + if (!labels.isEmpty()) { + return labels.get(0).getFont().getColor(); + } + return 0; + } + + /** + * Supposes all ticks labels have the same font color. + * To be corrected. + * @param fontColor the ticks labels font color to set + */ + public UpdateStatus setFontColor(Integer fontColor) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < labels.size(); i++) { + Font f = labels.get(i).getFont(); + if (!f.getColor().equals(fontColor)) { + f.setColor(fontColor); + status = UpdateStatus.Success; + } + } + + return status; + } + + /** + * Supposes all ticks labels have the same font fractional. + * To be corrected. + * @return the ticks labels font fractional + */ + public Boolean getFontFractional() { + if (!labels.isEmpty()) { + return labels.get(0).getFont().getFractional(); + } + return false; + } + + /** + * Supposes all ticks labels have the same font fractional. + * To be corrected. + * @param fontFractional the ticks labels font fractional to set + */ + public UpdateStatus setFontFractional(Boolean fontFractional) { + UpdateStatus status = UpdateStatus.NoChange; + for (int i = 0; i < labels.size(); i++) { + Font f = labels.get(i).getFont(); + if (f.getFractional() != fontFractional) { + f.setFractional(fontFractional); + status = UpdateStatus.Success; + } + } + + return status; + } + } + + /** Automatic ticks */ + TicksArrays automaticTicks; + + /** User ticks */ + TicksArrays userTicks; + + /** Constructor */ + public TicksProperty() { + auto = false; + + subticks = 0; + + defaultFont = new Font(); + + automaticTicks = new TicksArrays(DEFAULT_NUMBER_OF_TICKS); + userTicks = new TicksArrays(0); + } + + /** + * Copy constructor + * @param ticksProperty the TicksProperty to copy + */ + public TicksProperty(TicksProperty ticksProperty) { + auto = ticksProperty.auto; + + subticks = ticksProperty.subticks; + format = ticksProperty.format; + st_factors = ticksProperty.st_factors; + + defaultFont = new Font(ticksProperty.defaultFont); + + automaticTicks = new TicksArrays(0); + userTicks = new TicksArrays(0); + + automaticTicks.setLocations(ticksProperty.automaticTicks.getLocations()); + userTicks.setLocations(ticksProperty.userTicks.getLocations()); + + automaticTicks.setLabels(ticksProperty.automaticTicks.getLabels()); + userTicks.setLabels(ticksProperty.userTicks.getLabels()); + } + + @Override + public boolean equals(Object o) { + if (o instanceof TicksProperty) { + TicksProperty tp = (TicksProperty) o; + if (tp.auto == auto && tp.subticks == subticks && tp.defaultFont.equals(defaultFont)) { + if (auto) { + return automaticTicks.equals(tp.automaticTicks); + } else { + return userTicks.equals(tp.userTicks); + } + } + } + + return false; + } + + /** + * @return the format + */ + public String getFormat() { + return format; + } + + /** + * @param format the format to set + */ + public UpdateStatus setFormat(String format) { + if (!this.format.equals(format)) { + this.format = format; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the format + */ + public Double[] getSTFactors() { + return st_factors; + } + + /** + * @param format the format to set + */ + public UpdateStatus setSTFactors(Double[] factors) { + if (!this.st_factors[0].equals(factors[0]) || !this.st_factors[1].equals(factors[1])) { + this.st_factors = factors; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the auto + */ + public Boolean getAuto() { + return auto; + } + + /** + * @param auto the auto to set + */ + public UpdateStatus setAuto(Boolean auto) { + if (this.auto != auto) { + this.auto = auto; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the labels + */ + public ArrayList<FormattedText> getLabels() { + if (auto) { + return automaticTicks.getLabels(); + } else { + return userTicks.getLabels(); + } + } + + /** + * @param labels the labels to set + */ + public UpdateStatus setLabels(ArrayList<FormattedText> labels) { + if (auto) { + return automaticTicks.setLabels(labels); + } else { + return userTicks.setLabels(labels); + } + } + + /** + * @return the labels strings + */ + public String[] getLabelsStrings() { + if (auto) { + return automaticTicks.getLabelsStrings(); + } else { + return userTicks.getLabelsStrings(); + } + } + + /** + * Sets the ticks labels strings + * Requires the corresponding ticks locations to have previously been set. + * @param labels the labels to set + */ + public UpdateStatus setLabelsStrings(String[] labels) { + if (auto) { + return automaticTicks.setLabelsStrings(labels); + } else { + return userTicks.setLabelsStrings(labels); + } + } + + /** + * @return the number of ticks + */ + public Integer getNumber() { + if (auto) { + return automaticTicks.getNumber(); + } else { + return userTicks.getNumber(); + } + } + + /** + * @return the locations + */ + public Double[] getLocations() { + if (auto) { + return automaticTicks.getLocations(); + } else { + return userTicks.getLocations(); + } + } + + /** + * Sets the ticks locations + * Also sets the current number of ticks to the size of the locations array + * if the latter is resized. + * @param locations the locations to set + */ + public UpdateStatus setLocations(Double[] locations) { + if (auto) { + return automaticTicks.setLocations(locations); + } else { + return userTicks.setLocations(locations); + } + } + + /** + * @return the subticks + */ + public Integer getSubticks() { + return subticks; + } + + /** + * @param subticks the subticks to set + */ + public UpdateStatus setSubticks(Integer subticks) { + if (this.subticks != subticks) { + this.subticks = subticks; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * Supposes that all automatic and user ticks labels have the same font style. + * To be corrected (commented out block) when the associated C get function is completed. + * @return the ticks labels font style + */ + public Integer getFontStyle() { + return automaticTicks.getFontStyle(); + + /* + if (auto) { + return automaticTicks.getFontStyle(); + } else { + return userTicks.getFontStyle(); + } + */ + } + + /** + * Supposes that all automatic and user ticks labels have the same font style. + * To be corrected (commented out block) when the associated C set function is completed. + * @param fontStyle the ticks labels font style to set + */ + public UpdateStatus setFontStyle(Integer fontStyle) { + UpdateStatus status = UpdateStatus.NoChange; + if (fontStyle != defaultFont.getStyle()) { + defaultFont.setStyle(fontStyle); + status = UpdateStatus.Success; + } + + UpdateStatus s1 = automaticTicks.setFontStyle(fontStyle); + UpdateStatus s2 = userTicks.setFontStyle(fontStyle); + + if (status == UpdateStatus.Success || s1 == UpdateStatus.Success || s2 == UpdateStatus.Success) { + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + + /* + if (auto) { + automaticTicks.setFontStyle(fontStyle); + } else { + userTicks.setFontStyle(fontStyle); + } + */ + } + + /** + * Supposes that all automatic and user ticks labels have the same font size. + * To be corrected (commented out block) when the associated C get function is completed. + * @return the ticks labels font size + */ + public Double getFontSize() { + return automaticTicks.getFontSize(); + + /* + if (auto) { + return automaticTicks.getFontSize(); + } else { + return userTicks.getFontSize(); + } + */ + } + + /** + * Supposes that all automatic and user ticks labels have the same font size. + * To be corrected (commented out block) when the associated C set function is completed. + * @param fontSize the ticks labels font size to set + */ + public UpdateStatus setFontSize(Double fontSize) { + UpdateStatus status = UpdateStatus.NoChange; + if (fontSize != defaultFont.getSize()) { + defaultFont.setSize(fontSize); + status = UpdateStatus.Success; + } + + UpdateStatus s1 = automaticTicks.setFontSize(fontSize); + UpdateStatus s2 = userTicks.setFontSize(fontSize); + + if (status == UpdateStatus.Success || s1 == UpdateStatus.Success || s2 == UpdateStatus.Success) { + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + + /* + if (auto) { + automaticTicks.setFontSize(fontSize); + } else { + userTicks.setFontSize(fontSize); + } + */ + } + + /** + * Supposes that all automatic and user ticks labels have the same font color. + * To be corrected (commented out block) when the associated C get function is completed. + * @return the ticks labels font color + */ + public Integer getFontColor() { + return automaticTicks.getFontColor(); + + /* + if (auto) { + return automaticTicks.getFontColor(); + } else { + return userTicks.getFontColor(); + } + */ + } + + /** + * Supposes that all automatic and user ticks labels have the same font color. + * To be corrected (commented out block) when the associated C set function is completed. + * @param fontColor the ticks labels font color to set + */ + public UpdateStatus setFontColor(Integer fontColor) { + UpdateStatus status = UpdateStatus.NoChange; + if (fontColor != defaultFont.getColor()) { + defaultFont.setColor(fontColor); + status = UpdateStatus.Success; + } + + UpdateStatus s1 = automaticTicks.setFontColor(fontColor); + UpdateStatus s2 = userTicks.setFontColor(fontColor); + + if (status == UpdateStatus.Success || s1 == UpdateStatus.Success || s2 == UpdateStatus.Success) { + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + + /* + if (auto) { + automaticTicks.setFontColor(fontColor); + } else { + userTicks.setFontColor(fontColor); + } + */ + } + + /** + * Supposes all automatic and user ticks labels have the same font fractional. + * To be corrected (commented out block) when the associated C get function is completed. + * @return the ticks labels font fractional + */ + public Boolean getFontFractional() { + return automaticTicks.getFontFractional(); + + /* + if (auto) { + return automaticTicks.getFontFractional(); + } else { + return userTicks.getFontFractional(); + } + */ + } + + /** + * Supposes all automatic and user ticks labels have the same font fractional. + * To be corrected (commented out block) when the associated C set function is completed. + * @param fontFractional the ticks labels font fractional to set + */ + public UpdateStatus setFontFractional(Boolean fontFractional) { + UpdateStatus status = UpdateStatus.NoChange; + if (fontFractional != defaultFont.getFractional()) { + defaultFont.setFractional(fontFractional); + status = UpdateStatus.Success; + } + + UpdateStatus s1 = automaticTicks.setFontFractional(fontFractional); + UpdateStatus s2 = userTicks.setFontFractional(fontFractional); + + if (status == UpdateStatus.Success || s1 == UpdateStatus.Success || s2 == UpdateStatus.Success) { + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + + /* + if (auto) { + automaticTicks.setFontFractional(fontFractional); + } else { + userTicks.setFontFractional(fontFractional); + } + */ + } + + public Font getDefaultFont() { + return defaultFont; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axis/Axis.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axis/Axis.java new file mode 100755 index 000000000..affe79a71 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axis/Axis.java @@ -0,0 +1,553 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.axis; + +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.textObject.Font; + +import java.util.ArrayList; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_FRACTIONAL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FORMATN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_NUMBER_TICKS_LABELS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SUBTICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TICKS_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TICKS_DIRECTION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TICKS_LABELS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TICKS_SEGMENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TICKS_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_NUMBER_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_TICKS_COORDS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_NUMBER_TICKS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_TICKS_COORDS__; + +/** + * Axis class + * @author Manuel JULIACHS + */ +public class Axis extends ClippableContouredObject { + /** Axis properties */ + private enum AxisProperty { TICKSDIRECTION, XNUMBERTICKS, YNUMBERTICKS, XTICKSCOORDS, YTICKSCOORDS, TICKSCOLOR, TICKSSEGMENT, TICKSSTYLE, + SUBTICKS, NUMBERTICKSLABELS, TICKSLABELS, FORMATN, FONT + }; + + /** Default number of ticks */ + private static final int DEFAULT_NUMBER_OF_TICKS = 10; + + /** Ticks direction */ + public enum TicksDirection {TOP, BOTTOM, LEFT, RIGHT} + + /** Ticks direction */ + private TicksDirection ticksDirection; + + /** Ticks x-coordinate position vector */ + private double[] xTicksCoords; + + /** Ticks y-coordinate position vector */ + private double[] yTicksCoords; + + /** Ticks color */ + private int ticksColor; + + /** Specifies whether the axis segment is drawn */ + private boolean ticksSegment; + + /** Specifies the ticks style (either 0, 1, or 2) */ + private int ticksStyle; + + /** Number of subticks */ + private int subticks; + + /** Ticks labels list */ + private ArrayList <String> ticksLabels; + + /** Label format */ + private String formatn; + + /** Font */ + private Font font; + + /** Constructor */ + public Axis() { + super(); + ticksDirection = TicksDirection.TOP; + xTicksCoords = new double[DEFAULT_NUMBER_OF_TICKS]; + yTicksCoords = new double[1]; + ticksColor = 0; + ticksSegment = false; + ticksLabels = new ArrayList<String>(DEFAULT_NUMBER_OF_TICKS); + formatn = new String(""); + font = new Font(); + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_TICKS_DIRECTION__ : + return AxisProperty.TICKSDIRECTION; + case __GO_X_NUMBER_TICKS__ : + return AxisProperty.XNUMBERTICKS; + case __GO_Y_NUMBER_TICKS__ : + return AxisProperty.YNUMBERTICKS; + case __GO_X_TICKS_COORDS__ : + return AxisProperty.XTICKSCOORDS; + case __GO_Y_TICKS_COORDS__ : + return AxisProperty.YTICKSCOORDS; + case __GO_TICKS_COLOR__ : + return AxisProperty.TICKSCOLOR; + case __GO_TICKS_SEGMENT__ : + return AxisProperty.TICKSSEGMENT; + case __GO_TICKS_STYLE__ : + return AxisProperty.TICKSSTYLE; + case __GO_SUBTICKS__ : + return AxisProperty.SUBTICKS; + case __GO_NUMBER_TICKS_LABELS__ : + return AxisProperty.NUMBERTICKSLABELS; + case __GO_TICKS_LABELS__ : + return AxisProperty.TICKSLABELS; + case __GO_FORMATN__ : + return AxisProperty.FORMATN; + case __GO_FONT__ : + return AxisProperty.FONT; + case __GO_FONT_STYLE__ : + return Font.FontProperty.STYLE; + case __GO_FONT_SIZE__ : + return Font.FontProperty.SIZE; + case __GO_FONT_COLOR__ : + return Font.FontProperty.COLOR; + case __GO_FONT_FRACTIONAL__ : + return Font.FontProperty.FRACTIONAL; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == AxisProperty.TICKSDIRECTION) { + return getTicksDirection(); + } else if (property == AxisProperty.XNUMBERTICKS) { + return getXNumberTicks(); + } else if (property == AxisProperty.YNUMBERTICKS) { + return getYNumberTicks(); + } else if (property == AxisProperty.XTICKSCOORDS) { + return getXTicksCoords(); + } else if (property == AxisProperty.YTICKSCOORDS) { + return getYTicksCoords(); + } else if (property == AxisProperty.TICKSCOLOR) { + return getTicksColor(); + } else if (property == AxisProperty.TICKSSEGMENT) { + return getTicksSegment(); + } else if (property == AxisProperty.TICKSSTYLE) { + return getTicksStyle(); + } else if (property == AxisProperty.SUBTICKS) { + return getSubticks(); + } else if (property == AxisProperty.NUMBERTICKSLABELS) { + return getNumberTicksLabels(); + } else if (property == AxisProperty.TICKSLABELS) { + return getTicksLabels(); + } else if (property == AxisProperty.FORMATN) { + return getFormatn(); + } else if (property == AxisProperty.FONT) { + return getFont(); + } else if (property == Font.FontProperty.STYLE) { + return getStyle(); + } else if (property == Font.FontProperty.SIZE) { + return getSize(); + } else if (property == Font.FontProperty.COLOR) { + return getColor(); + } else if (property == Font.FontProperty.FRACTIONAL) { + return getFractional(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == AxisProperty.TICKSDIRECTION) { + setTicksDirection((Integer) value); + } else if (property == AxisProperty.XTICKSCOORDS) { + setXTicksCoords((Double[]) value); + } else if (property == AxisProperty.YTICKSCOORDS) { + setYTicksCoords((Double[]) value); + } else if (property == AxisProperty.TICKSCOLOR) { + setTicksColor((Integer) value); + } else if (property == AxisProperty.TICKSSEGMENT) { + setTicksSegment((Boolean) value); + } else if (property == AxisProperty.TICKSSTYLE) { + setTicksStyle((Integer) value); + } else if (property == AxisProperty.SUBTICKS) { + setSubticks((Integer) value); + } else if (property == AxisProperty.TICKSLABELS) { + setTicksLabels((String[]) value); + } else if (property == AxisProperty.FORMATN) { + setFormatn((String) value); + } else if (property == AxisProperty.FONT) { + setFont((Font) value); + } else if (property == Font.FontProperty.STYLE) { + setStyle((Integer) value); + } else if (property == Font.FontProperty.SIZE) { + setSize((Double) value); + } else if (property == Font.FontProperty.COLOR) { + setColor((Integer) value); + } else if (property == Font.FontProperty.FRACTIONAL) { + setFractional((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the font + */ + public Font getFont() { + return font; + } + + /** + * @param font the font to set + */ + public UpdateStatus setFont(Font font) { + this.font = font; + return UpdateStatus.Success; + } + + /** + * @return the font style + */ + public Integer getStyle() { + return font.getStyle(); + } + + /** + * @param style the font style to set + */ + public UpdateStatus setStyle(Integer style) { + font.setStyle(style); + return UpdateStatus.Success; + } + + /** + * @return the font size + */ + public Double getSize() { + return font.getSize(); + } + + /** + * @param size the font size to set + */ + public UpdateStatus setSize(Double size) { + font.setSize(size); + return UpdateStatus.Success; + } + + /** + * @return the font color + */ + public Integer getColor() { + return font.getColor(); + } + + /** + * @param color the font color to set + */ + public UpdateStatus setColor(Integer color) { + font.setColor(color); + return UpdateStatus.Success; + } + + /** + * @return the font fractional + */ + public Boolean getFractional() { + return font.getFractional(); + } + + /** + * @param fractional the font fractional to set + */ + public UpdateStatus setFractional(Boolean fractional) { + font.setFractional(fractional); + return UpdateStatus.Success; + } + + /** + * @return the formatn + */ + public String getFormatn() { + return formatn; + } + + /** + * @param formatn the formatn to set + */ + public UpdateStatus setFormatn(String formatn) { + this.formatn = formatn; + return UpdateStatus.Success; + } + + /** + * @return the ticksColor + */ + public Integer getTicksColor() { + return ticksColor; + } + + /** + * @param ticksColor the ticksColor to set + */ + public UpdateStatus setTicksColor(Integer ticksColor) { + this.ticksColor = ticksColor; + return UpdateStatus.Success; + } + + /** + * @return the ticksDirection + */ + public Integer getTicksDirection() { + return getTicksDirectionAsEnum().ordinal(); + } + + /** + * @return the ticksDirection + */ + public TicksDirection getTicksDirectionAsEnum() { + return ticksDirection; + } + + /** + * @param ticksDirection the ticksDirection to set + */ + public UpdateStatus setTicksDirection(Integer ticksDirection) { + setTicksDirectionAsEnum(TicksDirection.values()[ticksDirection]); + return UpdateStatus.Success; + } + + /** + * @param ticksDirection the ticksDirection to set + */ + public UpdateStatus setTicksDirectionAsEnum(TicksDirection ticksDirection) { + this.ticksDirection = ticksDirection; + return UpdateStatus.Success; + } + + /** + * @return the number of ticks labels + */ + public Integer getNumberTicksLabels() { + return ticksLabels.size(); + } + + /** + * @return the ticksLabels + */ + public String[] getTicksLabels() { + String[] labels = new String[ticksLabels.size()]; + + for (int i = 0; i < ticksLabels.size(); i++) { + labels[i] = new String(ticksLabels.get(i)); + } + + return labels; + } + + /** + * @return the ticksLabels + */ + public ArrayList<String> getTicksLabelsAsArrayList() { + return ticksLabels; + } + + /** + * @param ticksLabels the ticksLabels to set + */ + public UpdateStatus setTicksLabels(String[] ticksLabels) { + if (!this.ticksLabels.isEmpty()) { + this.ticksLabels.clear(); + } + + for (int i = 0; i < ticksLabels.length; i++) { + this.ticksLabels.add(new String(ticksLabels[i])); + } + return UpdateStatus.Success; + } + + /** + * @param ticksLabels the ticksLabels to set + */ + public UpdateStatus setTicksLabelsAsArrayList(ArrayList<String> ticksLabels) { + if (!this.ticksLabels.isEmpty()) { + this.ticksLabels.clear(); + } + + for (int i = 0; i < ticksLabels.size(); i++) { + this.ticksLabels.add(new String(ticksLabels.get(i))); + } + return UpdateStatus.Success; + } + + /** + * @return the ticksSegment + */ + public Boolean getTicksSegment() { + return ticksSegment; + } + + /** + * @param ticksSegment the ticksSegment to set + */ + public UpdateStatus setTicksSegment(Boolean ticksSegment) { + this.ticksSegment = ticksSegment; + return UpdateStatus.Success; + } + + /** + * @return the ticksStyle + */ + public Integer getTicksStyle() { + return ticksStyle; + } + + /** + * @param ticksStyle the ticksStyle to set + */ + public UpdateStatus setTicksStyle(Integer ticksStyle) { + this.ticksStyle = ticksStyle; + return UpdateStatus.Success; + } + + /** + * @return the subticks + */ + public Integer getSubticks() { + return subticks; + } + + /** + * @param subticks the subticks to set + */ + public UpdateStatus setSubticks(Integer subticks) { + this.subticks = subticks; + return UpdateStatus.Success; + } + + /** + * @return the number of X ticks + */ + public Integer getXNumberTicks() { + return xTicksCoords.length; + } + + /** + * @return the number of X ticks + */ + public Integer getYNumberTicks() { + return yTicksCoords.length; + } + + /** + * @return the xTicksCoords + */ + public Double[] getXTicksCoords() { + Double[] retXTicksCoords = new Double[xTicksCoords.length]; + + for (int i = 0; i < xTicksCoords.length; i++) { + retXTicksCoords[i] = xTicksCoords[i]; + } + + return retXTicksCoords; + } + + /** + * Sets the x ticks coordinates + * Resizes the array if required + * TODO : we should use format_n to fill ticks label. + * @param ticksCoords the xTicksCoords to set + */ + public UpdateStatus setXTicksCoords(Double[] ticksCoords) { + if (ticksCoords.length != xTicksCoords.length) { + xTicksCoords = new double[ticksCoords.length]; + } + + for (int i = 0; i < xTicksCoords.length; i++) { + xTicksCoords[i] = ticksCoords[i]; + } + return UpdateStatus.Success; + } + + /** + * @return the yTicksCoords + */ + public Double[] getYTicksCoords() { + Double[] retYTicksCoords = new Double[yTicksCoords.length]; + + for (int i = 0; i < yTicksCoords.length; i++) { + retYTicksCoords[i] = yTicksCoords[i]; + } + + return retYTicksCoords; + } + + /** + * Sets the y ticks coordinates + * Resizes the array if required + * TODO : we should use format_n to fill ticks label. + * @param ticksCoords the yTicksCoords to set + */ + public UpdateStatus setYTicksCoords(Double[] ticksCoords) { + if (ticksCoords.length != yTicksCoords.length) { + yTicksCoords = new double[ticksCoords.length]; + } + + for (int i = 0; i < yTicksCoords.length; i++) { + yTicksCoords[i] = ticksCoords[i]; + } + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_AXIS__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/builder/Builder.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/builder/Builder.java new file mode 100755 index 000000000..d2f556154 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/builder/Builder.java @@ -0,0 +1,1156 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET + * Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.builder; + +import java.util.ArrayList; +import java.util.StringTokenizer; + +import org.scilab.modules.graphic_objects.ScilabNativeView; +import org.scilab.modules.graphic_objects.arc.Arc; +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.axis.Axis; +import org.scilab.modules.graphic_objects.fec.Fec; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.figure.Figure.BarType; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.imageplot.Imageplot; +import org.scilab.modules.graphic_objects.label.Label; +import org.scilab.modules.graphic_objects.legend.Legend; +import org.scilab.modules.graphic_objects.lighting.Light; +import org.scilab.modules.graphic_objects.lighting.Light.LightType; +import org.scilab.modules.graphic_objects.polyline.Polyline; +import org.scilab.modules.graphic_objects.rectangle.Rectangle; +import org.scilab.modules.graphic_objects.surface.Surface; +import org.scilab.modules.graphic_objects.textObject.Font; +import org.scilab.modules.graphic_objects.textObject.Text; +import org.scilab.modules.graphic_objects.vectfield.Champ; +import org.scilab.modules.graphic_objects.vectfield.Segs; + +public final class Builder { + public final static int createRect(int parentSubwin, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(parentSubwin); + + if (height < 0 || width < 0) { + return 0; + } + + Integer iRect = controller.askObject(Type.RECTANGLE, false); + + /* + * Sets the rectangle's parent in order to initialize the former's + * Contoured properties with the latter's values (cloneGraphicContext + * call below) + */ + + Rectangle rect = (Rectangle) controller.getObjectFromId(iRect); + rect.setUpperLeftPoint(new Double[] { x, y, 0.0 }); + rect.setHeight(height); + rect.setWidth(width); + + rect.setVisible(axes.getVisible()); + + /* Clip state and region */ + /* To be checked for consistency */ + + rect.setClipBox(axes.getClipBox()); + rect.setClipBoxSet(axes.getClipBoxSet()); + rect.setClipState(axes.getClipState()); + rect.setMarkMode(axes.getMarkMode()); + + /* + * Initializes the contour properties (background, foreground, etc) to + * the default values (those of the parent Axes). + */ + cloneGraphicContext(parentSubwin, iRect); + + /* Contour settings */ + rect.setLineMode(isline == 1); + rect.setFillMode(isfilled == 1); + + if (foreground != -1) { + rect.setLineColor(foreground); + } + + if (background != -1) { + rect.setBackground(background); + } + + controller.objectCreated(iRect); + + /* + * Sets the Axes as the rectangle's parent and adds the rectangle to its + * parent's list of children. + */ + //setGraphicObjectRelationship(pparentsubwinUID, pobjUID); + + return iRect; + } + + public static int cloneGraphicContext(int sourceIdentifier, int destIdentifier) { + GraphicController controller = GraphicController.getController(); + Boolean lineMode = false; + Integer foreground = 0; + Integer lineStyle = 0; + Integer background = 0; + Integer markForeground = 0; + Integer markBackground = 0; + Integer markStyle = 0; + Integer markSize = 0; + Integer markSizeUnit = 0; + Double lineThickness = 0.; + + /* + * All these properties are passed by value thus do not care to release + * them and do not call releaseGraphicObjectProperty on purpose. + */ + + lineMode = (Boolean) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_LINE_MODE__); + foreground = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_LINE_COLOR__); + lineThickness = (Double) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_LINE_THICKNESS__); + lineStyle = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_LINE_STYLE__); + + background = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_BACKGROUND__); + + markForeground = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_MARK_FOREGROUND__); + + markBackground = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_MARK_BACKGROUND__); + + markStyle = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_MARK_STYLE__); + + markSize = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_MARK_SIZE__); + + markSizeUnit = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_MARK_SIZE_UNIT__); + + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_LINE_MODE__, lineMode); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_LINE_COLOR__, foreground); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_LINE_THICKNESS__, lineThickness); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_LINE_STYLE__, lineStyle); + + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_BACKGROUND__, background); + + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_MARK_FOREGROUND__, markForeground); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_MARK_BACKGROUND__, markBackground); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_MARK_STYLE__, markStyle); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_MARK_SIZE__, markSize); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_MARK_SIZE_UNIT__, markSizeUnit); + + return 0; + } + + public static int cloneFontContext(int sourceIdentifier, int destIdentifier) { + GraphicController controller = GraphicController.getController(); + + Integer fontColor = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_FONT_COLOR__); + Integer fontStyle = (Integer) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_FONT_STYLE__); + Double fontSize = (Double) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_FONT_SIZE__); + Boolean fontFractional = (Boolean) controller.getProperty(sourceIdentifier, GraphicObjectProperties.__GO_FONT_FRACTIONAL__); + + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_FONT_COLOR__, fontColor); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_FONT_STYLE__, fontStyle); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_FONT_SIZE__, fontSize); + controller.setProperty(destIdentifier, GraphicObjectProperties.__GO_FONT_FRACTIONAL__, fontFractional); + + return 0; + } + + public static int createHiddenLabel(int parent) { + + GraphicController controller = GraphicController.getController(); + + Integer iLabel = controller.askObject(Type.LABEL, false); + Label label = (Label) controller.getObjectFromId(iLabel); + + //Hide Label as they are non explicit children + label.setHidden(true); + label.setAutoPosition(true); + label.setAutoRotation(true); + + cloneGraphicContext(parent, iLabel); + cloneFontContext(parent, iLabel); + controller.objectCreated(iLabel); + + // Sets the label's parent + controller.setGraphicObjectRelationship(parent, iLabel); + + return iLabel; + } + + public static void initSubWinBounds(int subWin) { + GraphicController controller = GraphicController.getController(); + + controller.setProperty(subWin, GraphicObjectProperties.__GO_X_AXIS_LOG_FLAG__, false); + controller.setProperty(subWin, GraphicObjectProperties.__GO_Y_AXIS_LOG_FLAG__, false); + controller.setProperty(subWin, GraphicObjectProperties.__GO_Z_AXIS_LOG_FLAG__, false); + } + + public static void reinitSubWin(int subWin) { + GraphicController controller = GraphicController.getController(); + Integer label = 0; + + for (Integer childId : (Integer[]) controller.getProperty(subWin, GraphicObjectProperties.__GO_CHILDREN__)) { + GraphicModel.getModel().deleteObject(childId); + } + + label = createHiddenLabel(subWin); + controller.setProperty(subWin, GraphicObjectProperties.__GO_TITLE__, label); + + label = createHiddenLabel(subWin); + controller.setProperty(subWin, GraphicObjectProperties.__GO_X_AXIS_LABEL__, label); + + label = createHiddenLabel(subWin); + controller.setProperty(subWin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__, label); + + label = createHiddenLabel(subWin); + controller.setProperty(subWin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__, label); + + controller.setProperty(subWin, GraphicObjectProperties.__GO_X_AXIS_LOCATION__, 0); + controller.setProperty(subWin, GraphicObjectProperties.__GO_Y_AXIS_LOCATION__, 4); + controller.setProperty(subWin, GraphicObjectProperties.__GO_VISIBLE__, true); + controller.setProperty(subWin, GraphicObjectProperties.__GO_FIRST_PLOT__, true); + + Integer axesModel = GraphicModel.getAxesModel().getIdentifier(); + Axes axes = (Axes) controller.getObjectFromId(axesModel); + + controller.setProperty(subWin, GraphicObjectProperties.__GO_VIEW__, axes.getView()); + controller.setProperty(subWin, GraphicObjectProperties.__GO_ROTATION_ANGLES__, axes.getRotationAngles()); + controller.setProperty(subWin, GraphicObjectProperties.__GO_ROTATION_ANGLES_3D__, axes.getRotationAngles3d()); + } + + public static boolean isAxesRedrawing(int subWin) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(subWin); + + if (axes.getAutoClear()) { + reinitSubWin(subWin); + return true; + } + return false; + } + + public static int createLabel(int parent, int type) { + GraphicController controller = GraphicController.getController(); + Double[] position = new Double[3]; + position[0] = 1.0; + position[1] = 1.0; + position[2] = 1.0; + + //check parent type + Integer parentType = (Integer) controller.getProperty(parent, GraphicObjectProperties.__GO_TYPE__); + if (parentType != GraphicObjectProperties.__GO_AXES__) { + return 1; + } + + //get axes model + Integer axesModel = GraphicModel.getAxesModel().getIdentifier(); + + //get type label from axes model + Integer labelSource = (Integer) controller.getProperty(axesModel, type); + + //clone label + Integer newLabel = controller.cloneObject(labelSource); + controller.setProperty(newLabel, GraphicObjectProperties.__GO_POSITION__, position); + // Auto position must be reset as setting the position has set it to false + Boolean autoPosition = (Boolean) controller.getProperty(labelSource, GraphicObjectProperties.__GO_AUTO_POSITION__); + controller.setProperty(newLabel, GraphicObjectProperties.__GO_AUTO_POSITION__, autoPosition); + + // Set relation between newLabel and parent + controller.setProperty(parent, type, newLabel); + controller.setGraphicObjectRelationship(parent, newLabel); + return 0; + } + + public final static int createFigureFromModel() { + GraphicController controller = GraphicController.getController(); + return controller.cloneObject(GraphicModel.getFigureModel().getIdentifier()); + } + + public final static int cloneAxesModel(int parent) { + GraphicController controller = GraphicController.getController(); + + Integer newAxes = controller.cloneObject(GraphicModel.getAxesModel().getIdentifier()); + createLabel(newAxes, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + createLabel(newAxes, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + createLabel(newAxes, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + createLabel(newAxes, GraphicObjectProperties.__GO_TITLE__); + + controller.setGraphicObjectRelationship(parent, newAxes); + controller.setProperty(parent, GraphicObjectProperties.__GO_SELECTED_CHILD__, newAxes); + + ScilabNativeView.ScilabNativeView__setCurrentSubWin(newAxes); + ScilabNativeView.ScilabNativeView__setCurrentObject(newAxes); + return newAxes; + } + + public final static void cloneMenus(int iModel, int iParent) { + GraphicController controller = GraphicController.getController(); + GraphicObject model = controller.getObjectFromId(iModel); + + Integer[] children = model.getChildren(); + + for (int i = children.length - 1; i >= 0; i--) { + GraphicObject child = controller.getObjectFromId(children[i]); + if (child.getType() == GraphicObjectProperties.__GO_UIMENU__) { + Integer newMenu = controller.cloneObject(children[i]); + controller.setGraphicObjectRelationship(iParent, newMenu); + + cloneMenus(children[i], newMenu); + } + } + } + + public final static int createFigure(boolean dockable, int menubarType, int toolbarType, boolean defaultAxes, boolean visible) { + GraphicController controller = GraphicController.getController(); + Integer figModel = GraphicModel.getFigureModel().getIdentifier(); + Integer figId = controller.cloneObject(figModel, false); + Figure figure = (Figure) controller.getObjectFromId(figId); + figure.setDockable(dockable); + figure.setMenubar(menubarType); + figure.setToolbar(toolbarType); + figure.setVisible(visible); + figure.setDefaultAxes(defaultAxes); + + controller.objectCreated(figId); + + ScilabNativeView.ScilabNativeView__setCurrentFigure(figId); + + if (menubarType == BarType.FIGURE.ordinal()) { + cloneMenus(figModel, figId); + } + + if (defaultAxes) { + //clone default axes + cloneAxesModel(figId); + } + + return figId; + } + + public final static int createNewFigureWithAxes() { + GraphicController controller = GraphicController.getController(); + Integer figModel = GraphicModel.getFigureModel().getIdentifier(); + + //clone default figure + Integer newFigure = createFigureFromModel(); + + //Clone the default menus + cloneMenus(figModel, newFigure); + + //set ID to 0 + controller.setProperty(newFigure, GraphicObjectProperties.__GO_ID__, 0); + + //clone default axes + cloneAxesModel(newFigure); + ScilabNativeView.ScilabNativeView__setCurrentFigure(newFigure); + + //Force axes size after window creation + Integer[] axesSize = (Integer[]) controller.getProperty(figModel, GraphicObjectProperties.__GO_AXES_SIZE__); + controller.setProperty(newFigure, GraphicObjectProperties.__GO_AXES_SIZE__, axesSize); + + controller.setProperty(newFigure, GraphicObjectProperties.__GO_VALID__, true); + + return newFigure; + } + + public final static int createSubWin(int parentFigure) { + //GraphicController controller = GraphicController.getController(); + //GraphicObject parent = controller.getObjectFromId(parentFigure); + //if (parent.getType() != GraphicObjectProperties.__GO_FIGURE__) { + // return 0; + //} + + return cloneAxesModel(parentFigure); + } + + public final static int createText(int iParentsubwinUID, String[] str, int nbRow, int nbCol, double x, double y, boolean autoSize, double[] userSize, int centerPos, int foreground, + boolean isForeground, int background, boolean isBackground, boolean isBoxed, boolean isLine, boolean isFilled, int align) { + + GraphicController controller = GraphicController.getController(); + int iText = controller.askObject(Type.TEXT, false); + + Axes axes = (Axes) controller.getObjectFromId(iParentsubwinUID); + Text text = (Text) controller.getObjectFromId(iText); + + //clip + text.setClipBox(axes.getClipBox()); + text.setClipBoxSet(axes.getClipBoxSet()); + text.setClipState(axes.getClipState()); + + //text + Integer[] dimensions = new Integer[2]; + dimensions[0] = nbRow; + dimensions[1] = nbCol; + text.setTextArrayDimensions(dimensions); + text.setTextStrings(str); + + //position + Double[] position = new Double[3]; + position[0] = x; + position[1] = y; + position[2] = 0.0; + text.setPosition(position); + + //test box + Double[] setUserSize = new Double[2]; + text.setTextBoxMode(centerPos); + text.setAutoDimensioning(autoSize); + + if (autoSize == false || centerPos != 0) { + setUserSize[0] = userSize[0]; + setUserSize[1] = userSize[1]; + } else { + setUserSize[0] = 0.0; + setUserSize[1] = 0.0; + } + text.setTextBox(setUserSize); + + int alignment = align - 1; + if (alignment < 0 || alignment > 2) { + alignment = 0; + } + + text.setAlignment(alignment); + + cloneGraphicContext(iParentsubwinUID, iText); + cloneFontContext(iParentsubwinUID, iText); + + text.setBox(isBoxed); + text.setLineMode(isLine); + text.setFillMode(isFilled); + + if (isForeground) { + text.setLineColor(foreground); + } + + if (isBackground) { + text.setBackground(background); + } + + text.setVisible(axes.getVisible()); + controller.objectCreated(iText); + return iText; + } + + public final static int createArc(int parent, double x, double y, double h, double w, double startAngle, double endAngle, int foreground, boolean isForeground, int background, + boolean isBackground, boolean filled, boolean line) { + + GraphicController controller = GraphicController.getController(); + int iArc = controller.askObject(Type.ARC, false); + + Axes axes = (Axes) controller.getObjectFromId(parent); + Arc arc = (Arc) controller.getObjectFromId(iArc); + + //set visible false during construction + arc.setVisible(false); + + Double[] upperLeftPoint = new Double[3]; + upperLeftPoint[0] = x; + upperLeftPoint[1] = y; + upperLeftPoint[2] = 0.0; + + arc.setUpperLeftPoint(upperLeftPoint); + arc.setHeight(h); + arc.setWidth(w); + arc.setStartAngle(startAngle); + arc.setEndAngle(endAngle); + arc.setArcDrawingMethod(axes.getArcDrawingMethod()); + + //clip + arc.setClipBox(axes.getClipBox()); + arc.setClipBoxSet(axes.getClipBoxSet()); + arc.setClipState(axes.getClipState()); + + cloneGraphicContext(parent, iArc); + + arc.setLineMode(line); + arc.setFillMode(filled); + + if (isForeground) { + arc.setLineColor(foreground); + } + + if (isBackground) { + arc.setBackground(background); + } + + arc.setVisible(axes.getVisible()); + controller.objectCreated(iArc); + controller.setGraphicObjectRelationship(parent, iArc); + return iArc; + } + + public final static int createAxis(int parent, int dir, int tics, double[] vx, double[] vy, int subint, String format, int fontSize, int textColor, int ticsColor, boolean seg) { + + GraphicController controller = GraphicController.getController(); + int iAxis = controller.askObject(Type.AXIS, false); + + Axes axes = (Axes) controller.getObjectFromId(parent); + Axis axis = (Axis) controller.getObjectFromId(iAxis); + + //clip box + axis.setClipBox(axes.getClipBox()); + axis.setClipBoxSet(false); + + axis.setTicksDirection(dir); + axis.setTicksStyle(tics); + + axis.setXTicksCoords(toDouble(vx)); + axis.setYTicksCoords(toDouble(vy)); + + if (format != null && format.equals("") == false) { + axis.setFormatn(format); + } + + axis.setSubticks(subint); + axis.setTicksSegment(seg); + cloneGraphicContext(parent, iAxis); + cloneFontContext(parent, iAxis); + + Font font = axis.getFont(); + if (fontSize == -1) { + font.setSize(axes.getFontSize()); + } else { + font.setSize(new Double(fontSize)); + } + if (textColor == -1) { + font.setColor(axes.getFontColor()); + } else { + font.setColor(textColor); + } + font.setStyle(axes.getFontStyle()); + + axis.setTicksColor(ticsColor); + + controller.objectCreated(iAxis); + controller.setGraphicObjectRelationship(parent, iAxis); + return iAxis; + } + + public static int createCompound(int parent, int[] children) { + GraphicController controller = GraphicController.getController(); + int iCompound = controller.askObject(Type.COMPOUND); + + GraphicObject obj = controller.getObjectFromId(parent); + for (int i = 0; i < children.length; i++) { + controller.setGraphicObjectRelationship(iCompound, children[i]); + } + + controller.setGraphicObjectRelationship(parent, iCompound); + controller.setProperty(iCompound, GraphicObjectProperties.__GO_VISIBLE__, obj.getVisible()); + return iCompound; + } + + public static int createCompoundSeq(int parent, int childrenCount) { + GraphicController controller = GraphicController.getController(); + int iCompound = controller.askObject(Type.COMPOUND); + GraphicObject axes = controller.getObjectFromId(parent); + + Integer[] children = axes.getChildren(); + + /* + * Remove the last "number" created objects (located at the children + * list's head) and add them to the compound in the same order + */ + for (int i = 0; i < childrenCount; i++) { + /* + * Set the parent-child relationship between the Compound and each + * aggregated object. Children are added to the Compound from the + * least recent to the most recent, to preserve their former + * ordering. + */ + controller.setGraphicObjectRelationship(iCompound, children[childrenCount - i - 1]); + } + + controller.setGraphicObjectRelationship(parent, iCompound); + + /* + * visibility is obtained from the parent Figure, whereas it is + * retrieved from the parent Axes in ConstructCompound. To be made + * consistent. + */ + Figure fig = (Figure) controller.getObjectFromId(axes.getParentFigure()); + controller.setProperty(iCompound, GraphicObjectProperties.__GO_VISIBLE__, fig.getVisible()); + return iCompound; + } + + public static int createFec(int parent, double[] zminmax, int[] colminmax, int[] colout, boolean with_mesh) { + + GraphicController controller = GraphicController.getController(); + int iFec = controller.askObject(Type.FEC, false); + Axes axes = (Axes) controller.getObjectFromId(parent); + Fec fec = (Fec) controller.getObjectFromId(iFec); + + fec.setZBounds(toDouble(zminmax)); + fec.setColorRange(toInteger(colminmax)); + fec.setOutsideColor(toInteger(colout)); + + fec.setVisible(axes.getVisible()); + + //clip box + fec.setClipBox(axes.getClipBox()); + fec.setClipBoxSet(axes.getClipBoxSet()); + fec.setClipState(axes.getClipState()); + + cloneGraphicContext(parent, iFec); + + fec.setLineMode(with_mesh); + + controller.objectCreated(iFec); + return iFec; + } + + public static int createGrayplot(int parent, int type, double[] pvecx, int n1, int n2) { + + int[] objectTypes = new int[] { GraphicObjectProperties.__GO_GRAYPLOT__, GraphicObjectProperties.__GO_MATPLOT__, GraphicObjectProperties.__GO_MATPLOT__ }; + + GraphicController controller = GraphicController.getController(); + int iPlot = controller.askObject(GraphicObject.getTypeFromName(objectTypes[type]), false); + Axes axes = (Axes) controller.getObjectFromId(parent); + Imageplot plot = (Imageplot) controller.getObjectFromId(iPlot); + + if (type == 2) { //Matplot1 + Double[] data = new Double[pvecx.length]; + for (int i = 0; i < pvecx.length; i++) { + data[i] = pvecx[i]; + } + plot.setTranslate(data); + + Double[] scale = new Double[2]; + scale[0] = (pvecx[2] - pvecx[0]) / (n2 - 1.0); + scale[1] = (pvecx[3] - pvecx[1]) / (n1 - 1.0); + plot.setScale(scale); + } + + plot.setVisible(axes.getVisible()); + + //clip box + plot.setClipBox(axes.getClipBox()); + plot.setClipBoxSet(axes.getClipBoxSet()); + plot.setClipState(axes.getClipState()); + + cloneGraphicContext(parent, iPlot); + controller.objectCreated(iPlot); + return iPlot; + } + + public static int createPolyline(int parent, boolean closed, int plot, int foreground, boolean isForeground, int[] background, int mark_style, boolean isMarkStyle, int mark_foreground, + boolean isMarkForeground, int mark_background, boolean isMarkBackground, boolean isline, boolean isfilled, boolean ismark, boolean isinterp) { + + GraphicController controller = GraphicController.getController(); + int iPoly = controller.askObject(Type.POLYLINE, false); + Axes axes = (Axes) controller.getObjectFromId(parent); + Polyline poly = (Polyline) controller.getObjectFromId(iPoly); + + poly.setVisible(false); + + //clip box + poly.setClipBox(axes.getClipBox()); + poly.setClipBoxSet(axes.getClipBoxSet()); + poly.setClipState(axes.getClipState()); + + poly.setClosed(closed); + poly.setPolylineStyle(plot); + + cloneGraphicContext(parent, iPoly); + + poly.setMarkMode(ismark); + poly.setLineMode(isline); + poly.setFillMode(isfilled); + poly.setInterpColorMode(isinterp); + + if (isForeground) { + poly.setLineColor(foreground); + } + + if (background.length != 0) { + if (isinterp) { + /* 3 or 4 values to store */ + Integer[] color = new Integer[background.length]; + for (int i = 0; i < background.length; i++) { + color[i] = background[i]; + } + + poly.setInterpColorVector(color); + } else { + poly.setBackground(background[0]); + } + } + + if (isMarkStyle) { + poly.setMarkStyle(mark_style); + } + + if (isMarkForeground) { + poly.setMarkForeground(mark_foreground); + } + + if (isMarkBackground) { + poly.setMarkBackground(mark_background); + } + + poly.setVisible(true); + controller.objectCreated(iPoly); + return iPoly; + } + + public static int createLegend(int parent, String[] text, int[] handles) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(parent); + + if (axes.getHasLegendChild()) { + controller.removeRelationShipAndDelete(axes.getLegendChild()); + } + + int iLeg = controller.askObject(Type.LEGEND, false); + Legend leg = (Legend) controller.getObjectFromId(iLeg); + + leg.setParent(parent); + leg.setVisible(axes.getVisible()); + + int count = handles.length; + Integer[] textDims = new Integer[2]; + textDims[0] = count; + textDims[1] = 1; + + leg.setTextArrayDimensions(textDims); + leg.setTextStrings(text); + + /* + * Links are ordered from most recent to least recent, as their + * referred-to Polylines in the latter's parent Compound object. + */ + + ArrayList<Integer> links = new ArrayList<Integer>(); + for (int i = count - 1; i >= 0; i--) { + links.add(count - i - 1, handles[i]); + } + + leg.setLinks(links); + + leg.setClipBoxSet(false); + leg.setClipState(0); //OFF + leg.setClipBox(axes.getClipBox()); + + cloneGraphicContext(parent, iLeg); + cloneFontContext(parent, iLeg); + + leg.setFillMode(true); + + controller.objectCreated(iLeg); + leg.setParent(0); + controller.setGraphicObjectRelationship(parent, iLeg); + return iLeg; + } + + public static int createSegs(int parent, double[] vx, double[] vy, double[] vz, boolean isVZ, int[] style, double arsize) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(parent); + int iSegs = controller.askObject(Type.SEGS, false); + Segs segs = (Segs) controller.getObjectFromId(iSegs); + + segs.setVisible(axes.getVisible()); + + //clip box + segs.setClipBox(axes.getClipBox()); + segs.setClipBoxSet(axes.getClipBoxSet()); + segs.setClipState(axes.getClipState()); + + /* Segs: Nbr1/2 arrows, Nbr1 is the number of endpoints */ + int numberArrows = vx.length / 2; + + segs.setNumberArrows(numberArrows); + segs.setArrowSize(arsize); + + Double[] arrowCoords = new Double[3 * numberArrows]; + for (int i = 0; i < numberArrows; i++) { + arrowCoords[3 * i] = vx[2 * i]; + arrowCoords[3 * i + 1] = vy[2 * i]; + if (isVZ) { + arrowCoords[3 * i + 2] = vz[2 * i]; + } else { + arrowCoords[3 * i + 2] = 0.0; + } + } + + segs.setBase(arrowCoords); + + for (int i = 0; i < numberArrows; i++) { + arrowCoords[3 * i] = vx[2 * i + 1]; + arrowCoords[3 * i + 1] = vy[2 * i + 1]; + if (isVZ) { + arrowCoords[3 * i + 2] = vz[2 * i + 1]; + } else { + arrowCoords[3 * i + 2] = 0.0; + } + } + + segs.setDirection(arrowCoords); + segs.setColors(toInteger(style)); + + cloneGraphicContext(parent, iSegs); + controller.objectCreated(iSegs); + controller.setGraphicObjectRelationship(parent, iSegs); + return iSegs; + } + + public static int createChamp(int parent, double[] vx, double[] vy, double[] vfx, double[] vfy, double arsize, boolean typeofchamp) { + + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(parent); + + int iChamp = controller.askObject(Type.CHAMP, false); + Champ champ = (Champ) controller.getObjectFromId(iChamp); + + champ.setVisible(axes.getVisible()); + + //clip box + champ.setClipBox(axes.getClipBox()); + champ.setClipBoxSet(axes.getClipBoxSet()); + champ.setClipState(axes.getClipState()); + + int numberArrows = vx.length * vy.length; + champ.setNumberArrows(numberArrows); + + Integer[] dimensions = new Integer[] { vx.length, vy.length }; + champ.setDimensions(dimensions); + + champ.setArrowSize(arsize); + + Double[] arrowCoords = new Double[3 * numberArrows]; + + //convert vx Double + Double[] temp = new Double[vx.length]; + for (int i = 0; i < vx.length; i++) { + temp[i] = vx[i]; + } + champ.setBaseX(temp); + + //convert vy Double + temp = new Double[vy.length]; + for (int i = 0; i < vy.length; i++) { + temp[i] = vy[i]; + } + champ.setBaseY(temp); + + for (int i = 0; i < numberArrows; i++) { + arrowCoords[3 * i] = vfx[i]; + arrowCoords[3 * i + 1] = vfy[i]; + arrowCoords[3 * i + 2] = 0.0; + } + + champ.setDirection(arrowCoords); + champ.setColored(typeofchamp); + + cloneGraphicContext(parent, iChamp); + + controller.objectCreated(iChamp); + controller.setGraphicObjectRelationship(parent, iChamp); + + return iChamp; + } + + public static int createSurface(int parent, int typeof3d, int colorFlag, int colorMode) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes) controller.getObjectFromId(parent); + + int iSurf = controller.askObject(GraphicObject.getTypeFromName(typeof3d), false); + Surface surf = (Surface) controller.getObjectFromId(iSurf); + + surf.setVisible(axes.getVisible()); + + //clip box + surf.setClipBox(axes.getClipBox()); + surf.setClipBoxSet(axes.getClipBoxSet()); + surf.setClipState(axes.getClipState()); + + surf.setColorFlag(colorFlag); + surf.setColorMode(colorMode); + + surf.setHiddenColor(axes.getHiddenColor()); + + surf.setSurfaceMode(true); + cloneGraphicContext(parent, iSurf); + controller.objectCreated(iSurf); + controller.setGraphicObjectRelationship(parent, iSurf); + + return iSurf; + } + + public static void initSubWinTo3d(int iSubwin, String legend, boolean isLegend, int[] flag, double alpha, double theta, double[] ebox, double[] x, double[] y, double[] z) { + GraphicController controller = GraphicController.getController(); + + // Force 3d view + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_VIEW__, 1); + + if (isLegend) { + StringTokenizer strTok = new StringTokenizer(legend, "@"); + int iToken = strTok.countTokens(); + if (iToken > 0) { + //X + String str[] = new String[] { strTok.nextToken() }; + Integer label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + Integer[] dims = new Integer[] { 1, 1 }; + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_ARRAY_DIMENSIONS__, dims); + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_STRINGS__, str); + } + + if (iToken > 1) { + //Y + String str[] = new String[] { strTok.nextToken() }; + Integer label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + Integer[] dims = new Integer[] { 1, 1 }; + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_ARRAY_DIMENSIONS__, dims); + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_STRINGS__, str); + } + + if (iToken > 2) { + //Z + String str[] = new String[] { strTok.nextToken() }; + Integer label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + Integer[] dims = new Integer[] { 1, 1 }; + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_ARRAY_DIMENSIONS__, dims); + controller.setProperty(label, GraphicObjectProperties.__GO_TEXT_STRINGS__, str); + } + } + + // Force psubwin->logflags to linear + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LOG_FLAG__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LOG_FLAG__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LOG_FLAG__, false); + + Boolean firstPlot = (Boolean) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_FIRST_PLOT__); + + if (firstPlot && (flag[2] == 0 || flag[2] == 1)) { + /* Nothing to do */ + } else { + if (flag[2] == 0 || flag[2] == 1) { + if (firstPlot) { + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__, false); + + // 0: OFF + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_BOX_TYPE__, 0); + + Integer label = 0; + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + } + } else if (flag[2] == 2) { + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__, false); + + //2: HIDDEN_AXES + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_BOX_TYPE__, 2); + + Integer label = 0; + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, false); + + } else if (flag[2] == 3) { + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__, false); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__, false); + + //1: ON + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_BOX_TYPE__, 1); + + Integer label = 0; + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + + } else if (flag[2] == 4) { + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_VISIBLE__, true); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__, true); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__, true); + + //1: ON + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_BOX_TYPE__, 1); + + Integer label = 0; + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + label = (Integer) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + controller.setProperty(label, GraphicObjectProperties.__GO_VISIBLE__, true); + } + } + + Double[] rotationAngles = new Double[] { alpha, theta }; + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_ROTATION_ANGLES__, rotationAngles); + + Double[] dataBounds = (Double[]) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_DATA_BOUNDS__); + Boolean autoScale = (Boolean) controller.getProperty(iSubwin, GraphicObjectProperties.__GO_AUTO_SCALE__); + + Double rect[] = new Double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + if (autoScale) { + // compute and merge new specified bounds with data bounds + switch (flag[1]) { + case 0: + break; + case 1: + case 3: + case 5: + case 7: + rect[0] = ebox[0]; // xmin + rect[1] = ebox[1]; // xmax + rect[2] = ebox[2]; // ymin + rect[3] = ebox[3]; // ymax + rect[4] = ebox[4]; // zmin + rect[5] = ebox[5]; // zmax + break; + case 2: + case 4: + case 6: + case 8: + double[] res = getDrect(x, rect[0], rect[1], dataBounds[0], dataBounds[1]); + rect[0] = res[0]; + rect[1] = res[1]; + + res = getDrect(y, rect[2], rect[3], dataBounds[2], dataBounds[3]); + rect[2] = res[0]; + rect[3] = res[1]; + + res = getDrect(z, rect[4], rect[5], dataBounds[4], dataBounds[5]); + rect[4] = res[0]; + rect[5] = res[1]; + break; + } + + if (firstPlot == false) { + rect[0] = Math.min(dataBounds[0], rect[0]); // xmin + rect[1] = Math.max(dataBounds[1], rect[1]); // xmax + rect[2] = Math.min(dataBounds[2], rect[2]); // ymin + rect[3] = Math.max(dataBounds[3], rect[3]); // ymax + rect[4] = Math.min(dataBounds[4], rect[4]); // zmin + rect[5] = Math.max(dataBounds[5], rect[5]); // zmax + } + + if (flag[1] != 0) { + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_DATA_BOUNDS__, rect); + } + } + + if (flag[1] != 0) { + boolean isoview = (flag[1] == 3 || flag[1] == 4 || flag[1] == 5 || flag[1] == 6); + controller.setProperty(iSubwin, GraphicObjectProperties.__GO_ISOVIEW__, isoview); + } + } + + private static double[] getDrect(double[] x, double min, double max, double defaultMin, double defaultMax) { + double refMax = Double.NEGATIVE_INFINITY; + double refMin = Double.POSITIVE_INFINITY; + boolean isInfinite = true; + + for (int i = 0; i < x.length; i++) { + Double tmp = x[i]; + if (tmp.isInfinite() == false && tmp.isNaN() == false) { + refMin = Math.min(refMin, tmp); + refMax = Math.max(refMax, tmp); + isInfinite = false; + } + } + + if (isInfinite) { + refMin = defaultMin; + refMax = defaultMax; + } + + return new double[] { refMin, refMax }; + } + + private static boolean isValidType(int type) { + return type >= 0 && type <= 1; + } + + private static boolean isValidColor(double[] color) { + return (color[0] >= 0.0 && color[0] <= 1.0) && (color[1] >= 0.0 && color[1] <= 1.0) && (color[2] >= 0.0 && color[2] <= 1.0); + } + + public static int createLight(int parent, int type, boolean visible, double[] pos, double[] dir, double[] ambient, double[] diffuse, double[] specular) { + GraphicController controller = GraphicController.getController(); + + int iLight = controller.askObject(Type.LIGHT, false); + Light light = (Light) controller.getObjectFromId(iLight); + + light.setVisible(visible); + if (isValidType(type)) { + light.setLightType(LightType.intToEnum(type)); + } + + if (pos.length == 3) { + light.setPosition(toDouble(pos)); + } + + if (dir.length == 3) { + light.setDirection(toDouble(dir)); + } + if (ambient.length == 3) { + if (isValidColor(ambient)) { + light.setAmbientColor(toDouble(ambient)); + } + } + if (diffuse.length == 3) { + if (isValidColor(diffuse)) { + light.setDiffuseColor(toDouble(diffuse)); + } + } + if (specular.length == 3) { + if (isValidColor(specular)) { + light.setSpecularColor(toDouble(specular)); + } + } + + controller.objectCreated(iLight); + // Set light's parent + controller.setGraphicObjectRelationship(parent, iLight); + return iLight; + } + + private static Double[] toDouble(double[] var) { + Double[] ret = new Double[var.length]; + for (int i = 0; i < var.length; i++) { + ret[i] = var[i]; + } + + return ret; + } + + private static Integer[] toInteger(int[] var) { + Integer[] ret = new Integer[var.length]; + for (int i = 0; i < var.length; i++) { + ret[i] = var[i]; + } + + return ret; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/compound/Compound.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/compound/Compound.java new file mode 100755 index 000000000..3a12df4fe --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/compound/Compound.java @@ -0,0 +1,42 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.compound; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * Compound object class + * @author Manuel JULIACHS + */ +public class Compound extends GraphicObject { + + /** Constructor */ + public Compound() { + super(); + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_COMPOUND__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/console/Console.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/console/Console.java new file mode 100755 index 000000000..501b7add6 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/console/Console.java @@ -0,0 +1,227 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.console; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CONSOLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SHOWHIDDENHANDLES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SHOWHIDDENPROPERTIES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TOOLBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_USEDEPRECATEDLF__; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * @author Vincent COUVERT + */ +public final class Console extends GraphicObject { + + /** + * Scilab mode enum + * Java Console created only in STD mode + */ + public enum ScilabMode { STD, NW }; + + private static Console me; + + private boolean showHiddenHandles; + + private boolean showHiddenProperties; + + private ScilabMode scilabMode; + + private boolean useDeprecatedLF = false; + + private boolean toolbarVisible = false; + + /** Console properties names */ + private enum ConsoleProperty { + SHOWHIDDENHANDLES, + SHOWHIDDENPROPERTIES, + USEDEPRECATEDLF, + TOOLBARVISIBLE + }; + + /** + * Constructor + */ + private Console() { + super(); + } + + /** + * Returns the console object + * @return the console object + */ + public static Console getConsole() { + if (me == null) { + me = new Console(); + } + + return me; + + } + + /** + * Get this object type + * @return "Console" + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_CONSOLE__; + } + + /** + * Set the scilabMode property + * @param scilabMode the new value to set + */ + public UpdateStatus setScilabMode(ScilabMode scilabMode) { + this.scilabMode = scilabMode; + return UpdateStatus.Success; + } + + /** + * Get the javaEnabled proeprty + * @return javaEnabled + */ + public ScilabMode getScilabMode() { + return this.scilabMode; + } + + /** + * Set the showHiddenHandles property + * @param showHiddenHandles the new value to set + */ + public UpdateStatus setShowHiddenHandles(boolean showHiddenHandles) { + this.showHiddenHandles = showHiddenHandles; + return UpdateStatus.Success; + } + + /** + * Get the showHiddenHandles property + * @return showHiddenHandles + */ + public boolean getShowHiddenHandles() { + return this.showHiddenHandles; + } + + /** + * Set the showHiddenProperties property + * @param showHiddenProperties the new value to set + */ + public UpdateStatus setShowHiddenProperties(boolean showHiddenProperties) { + this.showHiddenProperties = showHiddenProperties; + return UpdateStatus.Success; + } + + /** + * Get the showHiddenProperties property + * @return showHiddenProperties + */ + public boolean getShowHiddenProperties() { + return this.showHiddenProperties; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + if (propertyName == __GO_SHOWHIDDENHANDLES__) { + return ConsoleProperty.SHOWHIDDENHANDLES; + } else if (propertyName == __GO_SHOWHIDDENPROPERTIES__) { + return ConsoleProperty.SHOWHIDDENPROPERTIES; + } else if (propertyName == __GO_USEDEPRECATEDLF__) { + return ConsoleProperty.USEDEPRECATEDLF; + } else if (propertyName == __GO_TOOLBAR_VISIBLE__) { + return ConsoleProperty.TOOLBARVISIBLE; + } else { + return super.getPropertyFromName(propertyName); + } + } + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ConsoleProperty.SHOWHIDDENHANDLES) { + return getShowHiddenHandles(); + } else if (property == ConsoleProperty.SHOWHIDDENPROPERTIES) { + return getShowHiddenProperties(); + } else if (property == ConsoleProperty.USEDEPRECATEDLF) { + return getUseDeprecatedLF(); + } else if (property == ConsoleProperty.TOOLBARVISIBLE) { + return getToolbarVisible(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ConsoleProperty.SHOWHIDDENHANDLES) { + setShowHiddenHandles((Boolean) value); + } else if (property == ConsoleProperty.SHOWHIDDENPROPERTIES) { + setShowHiddenProperties((Boolean) value); + } else if (property == ConsoleProperty.USEDEPRECATEDLF) { + setUseDeprecatedLF((Boolean) value); + } else if (property == ConsoleProperty.TOOLBARVISIBLE) { + setToolbarVisible((Boolean) value); + } else { + return super.setProperty(property, value); + } + return UpdateStatus.Success; + } + + public boolean getUseDeprecatedLF() { + return useDeprecatedLF; + } + + public UpdateStatus setUseDeprecatedLF(boolean useDeprecatedLF) { + if (this.useDeprecatedLF == useDeprecatedLF) { + return UpdateStatus.NoChange; + } + this.useDeprecatedLF = useDeprecatedLF; + return UpdateStatus.Success; + } + + public Boolean getToolbarVisible() { + return toolbarVisible; + } + + public UpdateStatus setToolbarVisible(Boolean status) { + if (status.equals(toolbarVisible)) { + return UpdateStatus.NoChange; + } + + toolbarVisible = status; + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ClippableContouredObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ClippableContouredObject.java new file mode 100755 index 000000000..38e54470c --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ClippableContouredObject.java @@ -0,0 +1,178 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.contouredObject; + +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + + +/** + * ClippableContouredObject + * @author Manuel JULIACHS + */ +public abstract class ClippableContouredObject extends ContouredObject { + /** ClippableContouredObject properties names */ + public enum ClippableContouredObjectPropertyType { CLIPPROPERTY }; + + /** Clipping state */ + private ClippableProperty clipProperty; + + /** Constructor */ + public ClippableContouredObject() { + super(); + clipProperty = new ClippableProperty(); + } + + public ClippableContouredObject clone() { + ClippableContouredObject copy = (ClippableContouredObject) super.clone(); + return copy; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_CLIP_PROPERTY__ : + return ClippableContouredObjectPropertyType.CLIPPROPERTY; + case __GO_CLIP_STATE__ : + return ClippablePropertyType.CLIPSTATE; + case __GO_CLIP_BOX__ : + return ClippablePropertyType.CLIPBOX; + case __GO_CLIP_BOX_SET__ : + return ClippablePropertyType.CLIPBOXSET; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ClippableContouredObjectPropertyType.CLIPPROPERTY) { + return getClipProperty(); + } else if (property == ClippablePropertyType.CLIPSTATE) { + return getClipState(); + } else if (property == ClippablePropertyType.CLIPBOX) { + return getClipBox(); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + return getClipBoxSet(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ClippableContouredObjectPropertyType.CLIPPROPERTY) { + setClipProperty((ClippableProperty) value); + } else if (property == ClippablePropertyType.CLIPSTATE) { + setClipState((Integer) value); + } else if (property == ClippablePropertyType.CLIPBOX) { + setClipBox((Double[]) value); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + setClipBoxSet((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + /** + * @return the clipProperty + */ + public ClippableProperty getClipProperty() { + return clipProperty; + } + + /** + * @param clipProperty the clipProperty to set + */ + public UpdateStatus setClipProperty(ClippableProperty clipProperty) { + this.clipProperty = clipProperty; + return UpdateStatus.Success; + } + + /** + * @return the clipBox + */ + public Double[] getClipBox() { + return clipProperty.getClipBox(); + } + + /** + * @param clipBox the clipBox to set + */ + public UpdateStatus setClipBox(Double[] clipBox) { + clipProperty.setClipBox(clipBox); + return UpdateStatus.Success; + } + + /** + * @return the clipState + */ + public Integer getClipState() { + return getClipStateAsEnum().ordinal(); + } + + /** + * @return the clipState + */ + public ClipStateType getClipStateAsEnum() { + return clipProperty.getClipState(); + } + + /** + * @param clipState the clipState to set + */ + public UpdateStatus setClipState(Integer clipState) { + setClipStateAsEnum(ClipStateType.intToEnum(clipState)); + return UpdateStatus.Success; + } + + /** + * @param clipState the clipState to set + */ + public UpdateStatus setClipStateAsEnum(ClipStateType clipState) { + clipProperty.setClipState(clipState); + return UpdateStatus.Success; + } + + /** + * @return the clipBoxSet + */ + public Boolean getClipBoxSet() { + return clipProperty.getClipBoxSet(); + } + + /** + * @param clipBoxSet the clipBoxSet to set + */ + public UpdateStatus setClipBoxSet(Boolean clipBoxSet) { + clipProperty.setClipBoxSet(clipBoxSet); + return UpdateStatus.Success; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ContouredObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ContouredObject.java new file mode 100755 index 000000000..a249d5d61 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/ContouredObject.java @@ -0,0 +1,535 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.contouredObject; + +import org.scilab.modules.graphic_objects.contouredObject.Line.LinePropertyType; +import org.scilab.modules.graphic_objects.contouredObject.Line.LineType; +import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkPropertyType; +import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkSizeUnitType; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Contoured object class + * @author Manuel JULIACHS + */ +public abstract class ContouredObject extends GraphicObject { + /** ContouredObject properties */ + public enum ContouredObjectPropertyType { LINE, FILLMODE, BACKGROUND, MARK, MARK_OFFSET, MARK_STRIDE, SELECTED }; + + /** Line property */ + private Line line; + + /** Specifies whether the object is filled or not */ + private boolean fillMode; + + /** Background (fill) color */ + private int background; + + /** Mark property */ + private Mark mark; + + private int offset; + private int stride; + + private boolean selected; + private final Integer selectedColor = new Integer(-3); + + /** Default constructor */ + public ContouredObject() { + line = new Line(); + fillMode = false; + background = 0; + mark = new Mark(); + offset = 0; + stride = 1; + selected = false; + } + + public ContouredObject clone() { + ContouredObject copy = (ContouredObject) super.clone(); + + copy.line = new Line(line); + copy.mark = new Mark(mark); + + return copy; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_LINE__ : + return ContouredObjectPropertyType.LINE; + case __GO_LINE_MODE__ : + return LinePropertyType.MODE; + case __GO_LINE_STYLE__ : + return LinePropertyType.LINESTYLE; + case __GO_LINE_THICKNESS__ : + return LinePropertyType.THICKNESS; + case __GO_LINE_COLOR__ : + return LinePropertyType.COLOR; + case __GO_FILL_MODE__ : + return ContouredObjectPropertyType.FILLMODE; + case __GO_BACKGROUND__ : + return ContouredObjectPropertyType.BACKGROUND; + case __GO_MARK__ : + return ContouredObjectPropertyType.MARK; + case __GO_MARK_MODE__ : + return MarkPropertyType.MODE; + case __GO_MARK_STYLE__ : + return MarkPropertyType.STYLE; + case __GO_MARK_SIZE_UNIT__ : + return MarkPropertyType.SIZEUNIT; + case __GO_MARK_SIZE__ : + return MarkPropertyType.SIZE; + case __GO_MARK_FOREGROUND__ : + return MarkPropertyType.FOREGROUND; + case __GO_MARK_BACKGROUND__ : + return MarkPropertyType.BACKGROUND; + case __GO_MARK_OFFSET__ : + return ContouredObjectPropertyType.MARK_OFFSET; + case __GO_MARK_STRIDE__ : + return ContouredObjectPropertyType.MARK_STRIDE; + case __GO_SELECTED__ : + return ContouredObjectPropertyType.SELECTED; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ContouredObjectPropertyType.LINE) { + return getLine(); + } else if (property == LinePropertyType.MODE) { + return getLineMode(); + } else if (property == LinePropertyType.LINESTYLE) { + return getLineStyle(); + } else if (property == LinePropertyType.THICKNESS) { + return getLineThickness(); + } else if (property == LinePropertyType.COLOR) { + return getLineColor(); + } else if (property == ContouredObjectPropertyType.FILLMODE) { + return getFillMode(); + } else if (property == ContouredObjectPropertyType.BACKGROUND) { + return getBackground(); + } else if (property == ContouredObjectPropertyType.MARK) { + return getMark(); + } else if (property == MarkPropertyType.MODE) { + return getMarkMode(); + } else if (property == MarkPropertyType.STYLE) { + return getMarkStyle(); + } else if (property == MarkPropertyType.SIZEUNIT) { + return getMarkSizeUnit(); + } else if (property == MarkPropertyType.SIZE) { + return getMarkSize(); + } else if (property == MarkPropertyType.FOREGROUND) { + return getMarkForeground(); + } else if (property == MarkPropertyType.BACKGROUND) { + return getMarkBackground(); + } else if (property == ContouredObjectPropertyType.MARK_OFFSET) { + return getMarkOffset(); + } else if (property == ContouredObjectPropertyType.MARK_STRIDE) { + return getMarkStride(); + } else if (property == ContouredObjectPropertyType.SELECTED) { + return getSelected(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ContouredObjectPropertyType.LINE) { + setLine((Line) value); + } else if (property == LinePropertyType.MODE) { + return setLineMode((Boolean) value); + } else if (property == LinePropertyType.LINESTYLE) { + setLineStyle((Integer) value); + } else if (property == LinePropertyType.THICKNESS) { + setLineThickness((Double) value); + } else if (property == LinePropertyType.COLOR) { + return setLineColor((Integer) value); + } else if (property == ContouredObjectPropertyType.FILLMODE) { + return setFillMode((Boolean) value); + } else if (property == ContouredObjectPropertyType.BACKGROUND) { + setBackground((Integer) value); + } else if (property == ContouredObjectPropertyType.MARK) { + setMark((Mark) value); + } else if (property == MarkPropertyType.MODE) { + return setMarkMode((Boolean) value); + } else if (property == MarkPropertyType.STYLE) { + return setMarkStyle((Integer) value); + } else if (property == MarkPropertyType.SIZEUNIT) { + setMarkSizeUnit((Integer) value); + } else if (property == MarkPropertyType.SIZE) { + return setMarkSize((Integer) value); + } else if (property == MarkPropertyType.FOREGROUND) { + this.setMarkForeground((Integer) value); + } else if (property == MarkPropertyType.BACKGROUND) { + this.setMarkBackground((Integer) value); + } else if (property == ContouredObjectPropertyType.MARK_OFFSET) { + this.setMarkOffset((Integer) value); + } else if (property == ContouredObjectPropertyType.MARK_STRIDE) { + this.setMarkStride((Integer) value); + } else if (property == ContouredObjectPropertyType.SELECTED) { + this.setSelected((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the color to use for selection + */ + public Integer getSelectedColor() { + return selectedColor; + } + + /** + * @return true if selected + */ + public Boolean getSelected() { + return selected; + } + + /** + * @param selected true if selected + */ + public UpdateStatus setSelected(Boolean selected) { + if (this.selected != selected) { + this.selected = selected; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the offset + */ + public Integer getMarkOffset() { + return offset; + } + + /** + * @param offset the offset to set + */ + public UpdateStatus setMarkOffset(Integer offset) { + if (this.offset != offset) { + this.offset = offset < 0 ? 0 : offset; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the stride + */ + public Integer getMarkStride() { + return stride; + } + + /** + * @param stride the stride to set + */ + public UpdateStatus setMarkStride(Integer stride) { + if (this.stride != stride) { + this.stride = stride < 1 ? 1 : stride; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the background + */ + public Integer getBackground() { + return background; + } + + /** + * @param background the background to set + */ + public UpdateStatus setBackground(Integer background) { + this.background = background; + return UpdateStatus.Success; + } + + /** + * @return the fillMode + */ + public Boolean getFillMode() { + return fillMode; + } + + /** + * @param fillMode the fillMode to set + */ + public UpdateStatus setFillMode(Boolean fillMode) { + if (this.fillMode == fillMode) { + return UpdateStatus.NoChange; + } + this.fillMode = fillMode; + return UpdateStatus.Success; + } + + /** + * @return the line + */ + public Line getLine() { + return line; + } + + /** + * @param line the line to set + */ + public UpdateStatus setLine(Line line) { + this.line = line; + return UpdateStatus.Success; + } + + /** + * Get the line color + * @return the color + */ + public Integer getLineColor() { + return line.getColor(); + } + + /** + * Set the line color + * @param color the color to set + */ + public UpdateStatus setLineColor(Integer color) { + return line.setColor(color); + } + + /** + * Get the line style + * @return the lineStyle + */ + public Integer getLineStyle() { + return getLineStyleAsEnum().asScilabIndex(); + } + + /** + * Get the line style + * @return the lineStyle + */ + public LineType getLineStyleAsEnum() { + return line.getLineStyle(); + } + + /** + * Set the line style + * @param lineStyle the lineStyle to set + */ + public UpdateStatus setLineStyle(Integer lineStyle) { + setLineStyleAsEnum(LineType.fromScilabIndex(lineStyle)); + return UpdateStatus.Success; + } + + /** + * Set the line style + * @param lineStyle the lineStyle to set + */ + public UpdateStatus setLineStyleAsEnum(LineType lineStyle) { + line.setLineStyle(lineStyle); + return UpdateStatus.Success; + } + + /** + * Return the line mode + * @return the mode + */ + public Boolean getLineMode() { + return line.getMode(); + } + + /** + * Set the line mode + * @param mode the mode to set + */ + public UpdateStatus setLineMode(Boolean mode) { + return line.setMode(mode); + } + + /** + * Get the line thickness + * @return the thickness + */ + public Double getLineThickness() { + return line.getThickness(); + } + + /** + * Set the line thickness + * @param thickness the thickness to set + */ + public UpdateStatus setLineThickness(Double thickness) { + line.setThickness(thickness); + return UpdateStatus.Success; + } + + /** + * @return the mark + */ + public Mark getMark() { + return mark; + } + + /** + * @param mark the mark to set + */ + public UpdateStatus setMark(Mark mark) { + this.mark = mark; + return UpdateStatus.Success; + } + + /** + * Get the mark background + * @return the background + */ + public Integer getMarkBackground() { + return mark.getBackground(); + } + + /** + * Set the mark background + * @param background the background to set + */ + public UpdateStatus setMarkBackground(Integer background) { + mark.setBackground(background); + return UpdateStatus.Success; + } + + /** + * Get the mark foreground + * @return the foreground + */ + public Integer getMarkForeground() { + return mark.getForeground(); + } + + /** + * Set the mark foreground + * @param foreground the foreground to set + */ + public UpdateStatus setMarkForeground(Integer foreground) { + mark.setForeground(foreground); + return UpdateStatus.Success; + } + + /** + * Get the mark size unit + * @return the markSizeUnit + */ + public Integer getMarkSizeUnit() { + return getMarkSizeUnitAsEnum().ordinal(); + } + + /** + * Get the mark size unit + * @return the markSizeUnit + */ + public MarkSizeUnitType getMarkSizeUnitAsEnum() { + return mark.getMarkSizeUnit(); + } + + /** + * Set the mark size unit + * @param markSizeUnit the markSizeUnit to set + */ + public UpdateStatus setMarkSizeUnit(Integer markSizeUnit) { + setMarkSizeUnitAsEnum(MarkSizeUnitType.intToEnum(markSizeUnit)); + return UpdateStatus.Success; + } + + /** + * Set the mark size unit + * @param markSizeUnit the markSizeUnit to set + */ + public UpdateStatus setMarkSizeUnitAsEnum(MarkSizeUnitType markSizeUnit) { + mark.setMarkSizeUnit(markSizeUnit); + return UpdateStatus.Success; + } + + /** + * Get the mark size + * @return the size + */ + public Integer getMarkSize() { + return mark.getSize(); + } + + /** + * Set the mark size + * @param size the size to set + */ + public UpdateStatus setMarkSize(Integer size) { + return mark.setSize(size); + } + + /** + * Get the mark mode + * @return the mode + */ + public Boolean getMarkMode() { + return mark.getMode(); + } + + /** + * Set the mark mode + * @param mode the mode to set + */ + public UpdateStatus setMarkMode(Boolean mode) { + return mark.setMode(mode); + } + + /** + * Get the mark style + * @return the style + */ + public Integer getMarkStyle() { + return mark.getStyle(); + } + + /** + * Set the mark style + * @param style the style to set + */ + public UpdateStatus setMarkStyle(Integer style) { + return mark.setStyle(style); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Line.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Line.java new file mode 100755 index 000000000..d172f91c6 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Line.java @@ -0,0 +1,204 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.contouredObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Line class + * @author Manuel JULIACHS + */ +public class Line { + /** Line properties */ + public enum LinePropertyType { MODE, LINESTYLE, THICKNESS, COLOR }; + + /** Line style */ + public enum LineType { SOLID, DASH, DASH_DOT, LONG_DASH_DOT, BIG_DASH_DOT, BIG_DASH_LONG_DASH, DOT, DOUBLE_DOT, LONG_BLANK_DOT, BIG_BLANK_DOT; + + /** + * Converts a scilab line style index to the corresponding line type. + * @param sciIndex the scilab index. + * @return the line type as enum. + */ + public static LineType fromScilabIndex(Integer sciIndex) { + switch (sciIndex) { + case 1: + return SOLID; + case 2: + return DASH; + case 3: + return DASH_DOT; + case 4: + return LONG_DASH_DOT; + case 5: + return BIG_DASH_DOT; + case 6: + return BIG_DASH_LONG_DASH; + case 7: + return DOT; + case 8: + return DOUBLE_DOT; + case 9: + return LONG_BLANK_DOT; + case 10: + return BIG_BLANK_DOT; + default: + return SOLID; + } + } + + /** + * Converts the line type to the corresponding scilab line style index. + * @return the scilab line style index corresponding to this line type. + */ + public int asScilabIndex() { + return ordinal() + 1; + } + + /** + * Converts the line type to a 16-bit pattern. + * @return the 16-bit pattern corresponding to the line type. + */ + public short asPattern() { + switch (this) { + case DASH: + return (short) 0x07FF; // 5 blanks, 11 solids + case DASH_DOT: + return (short) 0x0F0F; // 4 blanks, 4 solids, 4 blanks, 4 solids + case LONG_DASH_DOT: + return (short) 0x1FC2; // 3 blanks, 3 solids, 3 blanks, 7 solids + case BIG_DASH_DOT: + return (short) 0x3FC9; // 2 blanks, 8 solids, 2 blanks, 1 solid, 2 blanks, 1 solid + case BIG_DASH_LONG_DASH: + return (short) 0x3FC6; // 3 blanks, 8 solids, 3 blanks, 2 solids + case DOT: + return (short) 0x5555; // (1 blank, 1 solid) x 8 + case DOUBLE_DOT: + return (short) 0x3333; // (2 blanks, 2 solids) x 4 + case LONG_BLANK_DOT: + return (short) 0x1111; // (3 blanks, 1 solids) x 4 + case BIG_BLANK_DOT: + return (short) 0x0101; // (7 blanks, 1 solids) x 2 + default: + case SOLID: + return (short) 0xFFFF; // 16 solids, unused equivalent to no stipple + } + } + } + + /** Specifies whether the line is drawn or not */ + private boolean mode; + + /** Line style */ + private LineType lineStyle; + + /** Line thickness */ + private double thickness; + + /** Line color */ + private int color; + + /** Constructor */ + public Line() { + mode = false; + lineStyle = LineType.SOLID; + thickness = 1.0; + color = -1; + } + + /** + * Copy constructor + * @param line the Line to copy + */ + public Line(Line line) { + mode = line.mode; + lineStyle = line.lineStyle; + thickness = line.thickness; + color = line.color; + } + + /** + * @return the color + */ + public Integer getColor() { + return color; + } + + /** + * @param color the color to set + */ + public UpdateStatus setColor(Integer color) { + if (this.color == color) { + return UpdateStatus.NoChange; + } + this.color = color; + return UpdateStatus.Success; + } + + /** + * @return the lineStyle + */ + public LineType getLineStyle() { + return lineStyle; + } + + /** + * @param lineStyle the lineStyle to set + */ + public UpdateStatus setLineStyle(LineType lineStyle) { + if (this.lineStyle != lineStyle) { + this.lineStyle = lineStyle; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the mode + */ + public Boolean getMode() { + return mode; + } + + /** + * @param mode the mode to set + */ + public UpdateStatus setMode(Boolean mode) { + if (this.mode == mode) { + return UpdateStatus.NoChange; + } + this.mode = mode; + return UpdateStatus.Success; + } + + /** + * @return the thickness + */ + public Double getThickness() { + return thickness; + } + + /** + * @param thickness the thickness to set + */ + public UpdateStatus setThickness(Double thickness) { + if (this.thickness != thickness) { + this.thickness = thickness; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Mark.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Mark.java new file mode 100755 index 000000000..3aa1e69f4 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Mark.java @@ -0,0 +1,198 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.contouredObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Mark class + * @author Manuel JULIACHS + */ +public class Mark { + /** Mark properties */ + public enum MarkPropertyType { MODE, STYLE, SIZEUNIT, SIZE, FOREGROUND, BACKGROUND }; + + /** Mark size unit type */ + public enum MarkSizeUnitType { POINT, TABULATED; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the mark size unit type enum + */ + public static MarkSizeUnitType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return MarkSizeUnitType.POINT; + case 1: + return MarkSizeUnitType.TABULATED; + default: + return null; + } + } + } + + + /** Specifies whether marks must be drawn or not */ + private boolean mode; + + /** Mark style */ + private int style; + + /** Mark size unit */ + private MarkSizeUnitType markSizeUnit; + + /** Mark size */ + private int size; + + /** Foreground color */ + private int foreground; + + /** Background color */ + private int background; + + /** Constructor */ + public Mark() { + super(); + mode = false; + style = 0; + markSizeUnit = MarkSizeUnitType.POINT; + foreground = 0; + background = 0; + } + + /** + * Copy constructor + * @param mark the Mark to copy + */ + public Mark(Mark mark) { + mode = mark.mode; + style = mark.style; + size = mark.size; + markSizeUnit = mark.markSizeUnit; + foreground = mark.foreground; + background = mark.background; + } + + /** + * @return the background + */ + public Integer getBackground() { + return background; + } + + /** + * @param background the background to set + */ + public UpdateStatus setBackground(Integer background) { + if (this.background != background) { + this.background = background; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the foreground + */ + public Integer getForeground() { + return foreground; + } + + /** + * @param foreground the foreground to set + */ + public UpdateStatus setForeground(Integer foreground) { + if (this.foreground != foreground) { + this.foreground = foreground; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the markSizeUnit + */ + public MarkSizeUnitType getMarkSizeUnit() { + return markSizeUnit; + } + + /** + * @param markSizeUnit the markSizeUnit to set + */ + public UpdateStatus setMarkSizeUnit(MarkSizeUnitType markSizeUnit) { + if (this.markSizeUnit != markSizeUnit) { + this.markSizeUnit = markSizeUnit; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the size + */ + public Integer getSize() { + return size; + } + + /** + * @param size the size to set + */ + public UpdateStatus setSize(Integer size) { + if (this.size == size) { + return UpdateStatus.NoChange; + } + this.size = size; + return UpdateStatus.Success; + } + + /** + * @return the mode + */ + public Boolean getMode() { + return mode; + } + + /** + * @param mode the mode to set + */ + public UpdateStatus setMode(Boolean mode) { + if (this.mode == mode) { + return UpdateStatus.NoChange; + } + this.mode = mode; + return UpdateStatus.Success; + } + + /** + * @return the style + */ + public Integer getStyle() { + return style; + } + + /** + * @param style the style to set + */ + public UpdateStatus setStyle(Integer style) { + if (this.style == style) { + return UpdateStatus.NoChange; + } + this.style = style; + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/datatip/Datatip.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/datatip/Datatip.java new file mode 100755 index 000000000..600172939 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/datatip/Datatip.java @@ -0,0 +1,440 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.datatip; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_3COMPONENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_AUTOORIENTATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_BOX_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_DATA__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_DISPLAY_FNC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_INTERP_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_LABEL_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_ORIENTATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_INDEXES__; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; + +import org.scilab.forge.scirenderer.ruler.graduations.UserDefinedFormat; + +import org.scilab.modules.action_binding.InterpreterManagement; +import org.scilab.modules.graphic_objects.PolylineData; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.textObject.Text; +import org.scilab.modules.localization.Messages; + +public class Datatip extends Text { + + /** false = datatip text box is hidden*/ + Boolean tipBoxMode; + /** false = datatip label is hidden*/ + Boolean tipLabelMode; + /** false = display only (X, Y), true = display (X, Y, Z)*/ + Boolean use3component; + /** false = no interpolation between point segments*/ + Boolean interpMode; + /** Displayed number format*/ + DecimalFormat tipTextFormat; + /** Display function*/ + String displayFnc; + /** For automatic update the datatip orientation*/ + Boolean autoOrientation; + /* index of data in parent object ( polyline, plot3d, fac3d*/ + /* size = 1 for polyline and 2 for others*/ + Integer dataIndex; + Double ratio; + + + enum DatatipObjectProperty { TIP_DATA, TIP_BOX_MODE, TIP_LABEL_MODE, TIP_ORIENTATION, TIP_AUTOORIENTATION, TIP_3COMPONENT, TIP_INTERP_MODE, TIP_DISPLAY_FNC, TIP_INDEXES}; + enum TipOrientation { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, LEFT, RIGHT, TOP, BOTTOM; + + /** + * Transform a integer to a TipOrientation enum. + */ + public static TipOrientation intToEnum(Integer i) { + switch (i) { + case 0: + return TipOrientation.TOP_LEFT; + case 1: + return TipOrientation.TOP_RIGHT; + case 2: + return TipOrientation.BOTTOM_LEFT; + case 3: + return TipOrientation.BOTTOM_RIGHT; + case 4: + return TipOrientation.LEFT; + case 5: + return TipOrientation.RIGHT; + case 6: + return TipOrientation.TOP; + case 7: + return TipOrientation.BOTTOM; + default: + return TipOrientation.TOP_RIGHT; + } + } + + }; + + TipOrientation currentOrientation; + + /** + * Initializes the datatip, setup format, orientation and mark. + */ + public Datatip() { + super(); + use3component = false; + autoOrientation = true; + setOrientationAsEnum(TipOrientation.TOP_RIGHT); + DecimalFormat fb = new DecimalFormat("#.####E00"); + DecimalFormatSymbols decimalFormatSymbols = fb.getDecimalFormatSymbols(); + decimalFormatSymbols.setDecimalSeparator('.'); + decimalFormatSymbols.setExponentSeparator("e"); + decimalFormatSymbols.setGroupingSeparator('\u00A0'); + fb.setDecimalFormatSymbols(decimalFormatSymbols); + tipTextFormat = new UserDefinedFormat(fb, "%g", 1, 0); + + tipBoxMode = true; + tipLabelMode = true; + interpMode = true; + displayFnc = ""; + ratio = 0.; + dataIndex = Integer.MIN_VALUE; + setVisible(true); + setBox(true); + setLineMode(true); + setFillMode(true); + setBackground(-2); + setClipState(1); + + setMarkMode(true); + setMarkSize(8); + setMarkBackground(-1); + setMarkForeground(-1); + setMarkStyle(11); + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Convert the property name to the DatatipObjectProperty enum. + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_DATATIP_DATA__: + return DatatipObjectProperty.TIP_DATA; + case __GO_DATATIP_BOX_MODE__: + return DatatipObjectProperty.TIP_BOX_MODE; + case __GO_DATATIP_LABEL_MODE__: + return DatatipObjectProperty.TIP_LABEL_MODE; + case __GO_DATATIP_ORIENTATION__: + return DatatipObjectProperty.TIP_ORIENTATION; + case __GO_DATATIP_3COMPONENT__: + return DatatipObjectProperty.TIP_3COMPONENT; + case __GO_DATATIP_AUTOORIENTATION__: + return DatatipObjectProperty.TIP_AUTOORIENTATION; + case __GO_DATATIP_INTERP_MODE__: + return DatatipObjectProperty.TIP_INTERP_MODE; + case __GO_DATATIP_DISPLAY_FNC__: + return DatatipObjectProperty.TIP_DISPLAY_FNC; + case __GO_DATATIP_INDEXES__ : + return DatatipObjectProperty.TIP_INDEXES; + default: + return super.getPropertyFromName(propertyName); + } + } + + /** + * @return the datatip property + */ + public Object getProperty(Object property) { + if (property instanceof DatatipObjectProperty) { + switch ((DatatipObjectProperty) property) { + case TIP_DATA: + return getTipData(); + case TIP_BOX_MODE: + return getTipBoxMode(); + case TIP_LABEL_MODE: + return getTipLabelMode(); + case TIP_ORIENTATION: + return getOrientation(); + case TIP_3COMPONENT: + return isUsing3Component(); + case TIP_AUTOORIENTATION: + return isAutoOrientationEnabled(); + case TIP_INTERP_MODE: + return getInterpMode(); + case TIP_DISPLAY_FNC: + return getDisplayFunction(); + case TIP_INDEXES: + return getIndexes(); + } + } + + return super.getProperty(property); + } + + /** + * Set the datatip property + * @param property the property + * @param value the new property value. + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof DatatipObjectProperty) { + switch ((DatatipObjectProperty) property) { + case TIP_BOX_MODE: + return setTipBoxMode((Boolean) value); + case TIP_LABEL_MODE: + return setTipLabelMode((Boolean) value); + case TIP_ORIENTATION: + return setOrientation((Integer) value); + case TIP_3COMPONENT: + return setUse3Component((Boolean) value); + case TIP_AUTOORIENTATION: + return setAutoOrientation((Boolean) value); + case TIP_INTERP_MODE: + return setInterpMode((Boolean) value); + case TIP_DISPLAY_FNC: + return setDisplayFunction((String) value); + case TIP_INDEXES: + return setIndexes((Double[]) value); + } + } + + return super.setProperty(property, value); + } + + /** + * Get the current tip data + * @return the tip data + */ + public Double[] getTipData() { + final double[] dataX = (double[]) PolylineData.getDataX(getParent()); + final double[] dataY = (double[]) PolylineData.getDataY(getParent()); + + if (use3component) { + final double[] dataZ = (double[]) PolylineData.getDataZ(getParent()); + + if (dataX.length < dataIndex + 2 || dataY.length < dataIndex + 2 || dataZ.length < dataIndex + 2) { + if (dataX.length >= 1 && dataY.length >= 1 && dataZ.length >= 1) { + return new Double[] {dataX[dataX.length - 1], dataY[dataY.length - 1], dataZ[dataZ.length - 1]}; + } else { + return new Double[] {0., 0., 0.}; + } + } + + //get pt0 and pt1 from polyline data + final double[] pt0 = new double[] {dataX[dataIndex], dataY[dataIndex], dataZ[dataIndex]}; + final double[] pt1 = new double[] {dataX[dataIndex + 1], dataY[dataIndex + 1], dataZ[dataIndex + 1]}; + + final double x = pt0[0] + (pt1[0] - pt0[0]) * ratio; + final double y = pt0[1] + (pt1[1] - pt0[1]) * ratio; + final double z = pt0[2] + (pt1[2] - pt0[2]) * ratio; + + return new Double[] {x, y, z}; + } else { + if (dataX.length < dataIndex + 2 || dataY.length < dataIndex + 2) { + if (dataX.length >= 1 && dataY.length >= 1) { + return new Double[] {dataX[dataX.length - 1], dataY[dataY.length - 1], 0.}; + } else { + return new Double[] {0., 0., 0.}; + } + } + + //get pt0 and pt1 from polyline data + final double[] pt0 = new double[] {dataX[dataIndex], dataY[dataIndex]}; + final double[] pt1 = new double[] {dataX[dataIndex + 1], dataY[dataIndex + 1]}; + + final double x = pt0[0] + (pt1[0] - pt0[0]) * ratio; + final double y = pt0[1] + (pt1[1] - pt0[1]) * ratio; + + return new Double[] {x, y, 0.}; + } + } + + /** + * Get the current textbox orientation as an integer + * @return current orientation. + */ + public Integer getOrientation() { + return getOrientationAsEnum().ordinal(); + } + + /** + * Get the current oriantation as a enum + * @return the current orientation + */ + public TipOrientation getOrientationAsEnum() { + return currentOrientation; + } + + /** + * Set the current orientation (updating the text position) + * @param orientation the new orientation (integer). + */ + public UpdateStatus setOrientation(Integer orientation) { + currentOrientation = TipOrientation.intToEnum(orientation); + return UpdateStatus.Success; + } + + /** + * Set the current orientation (updating the text position) + * @param orientation the new orientation (TipOrientation enum). + */ + public UpdateStatus setOrientationAsEnum(TipOrientation orientation) { + currentOrientation = orientation; + return UpdateStatus.Success; + } + + /** + * @return true if the datatip is displaying the Z component, false otherwise. + */ + public Boolean isUsing3Component() { + return use3component; + } + + /** + * If true set the Z component to be displayed. + * @param useZ True to enable display the Z component, false to disable. + */ + public UpdateStatus setUse3Component(Boolean useZ) { + use3component = useZ; + updateText(); + return UpdateStatus.Success; + } + + + public Boolean isAutoOrientationEnabled() { + return autoOrientation; + } + + public UpdateStatus setAutoOrientation(Boolean status) { + autoOrientation = status; + return UpdateStatus.Success; + } + + /** + * Update the text from the datatip base on current tipData value. + */ + public void updateText() { + //if display function is empty look in parent + //if parent is empty too use default print + + String fnc = getDisplayFunction(); + if (fnc == null || fnc.equals("")) { + //look in parent + fnc = (String) GraphicController.getController().getProperty(getParent(), GraphicObjectProperties.__GO_DATATIP_DISPLAY_FNC__); + if (fnc == null || fnc.equals("")) { + String[] textArray = new String[] {"X:", "Y:", "Z:"}; + Double[] tipData = getTipData(); + textArray[0] += tipTextFormat.format(tipData[0]); + textArray[1] += tipTextFormat.format(tipData[1]); + textArray[2] += tipTextFormat.format(tipData[2]); + + Integer[] dim = new Integer[2]; + dim[0] = use3component ? 3 : 2; + dim[1] = 1; + setTextArrayDimensions(dim); + setTextStrings(textArray); + return; + } + } + + String errMsg = Messages.gettext("Wrong value for '%s' property: A valid function name expected.\n"); + errMsg = errMsg.replace("'", "''"); + errMsg = errMsg.replace("\n", "\\n"); + String updateCommand = "try;" + + "GDZa786XBSq7899SHKp=getcallbackobject(" + getIdentifier() + ");" + + "set(GDZa786XBSq7899SHKp,\"text\"," + fnc + "(GDZa786XBSq7899SHKp));" + + "clear(\"GDZa786XBSq7899SHKp\");" + + "catch;" + + "set(GDZa786XBSq7899SHKp,\"display_function\",\"\");" + + "set(GDZa786XBSq7899SHKp.parent,\"display_function\",\"\");" + + "clear(\"GDZa786XBSq7899SHKp\");" + + "error(msprintf(\"" + errMsg + "\", \"display_function\"));" + + "end;"; + InterpreterManagement.requestScilabExec(updateCommand); + } + + public Boolean getTipBoxMode() { + return tipBoxMode; + } + + public Boolean getTipLabelMode() { + return tipLabelMode; + } + + public Boolean getInterpMode() { + return interpMode; + } + + public String getDisplayFunction() { + return displayFnc; + } + + public UpdateStatus setTipBoxMode(Boolean mode) { + tipBoxMode = mode; + setBox(tipBoxMode); + return UpdateStatus.Success; + } + + public UpdateStatus setTipLabelMode(Boolean mode) { + tipLabelMode = mode; + return UpdateStatus.Success; + } + + public UpdateStatus setInterpMode(Boolean mode) { + interpMode = mode; + return UpdateStatus.Success; + } + + public UpdateStatus setDisplayFunction(String fnc) { + displayFnc = fnc; + updateText(); + return UpdateStatus.Success; + } + + @Override + public Double[] getPosition() { + return getTipData(); + } + + public UpdateStatus setIndexes(Double[] value) { + if (value[0].intValue() != dataIndex || !value[1].equals(ratio)) { + dataIndex = value[0].intValue(); + ratio = new Double(value[1]); + updateText(); + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + public Integer getIndexes() { + return dataIndex; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_DATATIP__; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/event/EventHandler.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/event/EventHandler.java new file mode 100755 index 000000000..021246c4c --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/event/EventHandler.java @@ -0,0 +1,64 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.event; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +public class EventHandler { + /** Event handler string */ + private String eventHandler = ""; + + /** Specifies whether the event handler is enabled or not */ + private Boolean eventHandlerEnabled = false; + + /** + * Default constructor + */ + public EventHandler() { + eventHandler = ""; + eventHandlerEnabled = false; + } + + /** + * Copy constructor + * @param eventHandler the EventHandler to copy + */ + public EventHandler(EventHandler eventHandler) { + this.eventHandler = eventHandler.eventHandler; + this.eventHandlerEnabled = eventHandler.eventHandlerEnabled; + } + + public Boolean getEventHandlerEnabled() { + return eventHandlerEnabled; + } + + public UpdateStatus setEventHandlerEnabled(Boolean eventHandlerEnabled) { + if (eventHandlerEnabled == this.eventHandlerEnabled) { + return UpdateStatus.NoChange; + } + this.eventHandlerEnabled = eventHandlerEnabled; + return UpdateStatus.Success; + } + + public String getEventHandlerString() { + return eventHandler; + } + + public UpdateStatus setEventHandlerString(String eventHandler) { + if (this.eventHandler.compareTo(eventHandler) == 0) { + return UpdateStatus.NoChange; + } + this.eventHandler = eventHandler; + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/fec/Fec.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/fec/Fec.java new file mode 100755 index 000000000..6f1f954a3 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/fec/Fec.java @@ -0,0 +1,178 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.fec; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Fec class + * @author Manuel JULIACHS + */ +public class Fec extends ClippableContouredObject { + // TBD: Data + // + triangles -> Data Model + // TBD properties relative to the data model + /** Fec properties names */ + private enum FecProperty { ZBOUNDS, OUTSIDECOLOR, COLORRANGE }; + + /** Z Bounds: 2-element array */ + private double[] zBounds; + + /** 2-element array */ + private int[] outsideColor; + + /** 2-element array */ + private int[] colorRange; + + /** Constructor */ + public Fec() { + super(); + zBounds = new double[2]; + outsideColor = new int[2]; + colorRange = new int[2]; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_Z_BOUNDS__ : + return FecProperty.ZBOUNDS; + case __GO_OUTSIDE_COLOR__ : + return FecProperty.OUTSIDECOLOR; + case __GO_COLOR_RANGE__ : + return FecProperty.COLORRANGE; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == FecProperty.ZBOUNDS) { + return getZBounds(); + } else if (property == FecProperty.OUTSIDECOLOR) { + return getOutsideColor(); + } else if (property == FecProperty.COLORRANGE) { + return getColorRange(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == FecProperty.ZBOUNDS) { + setZBounds((Double[]) value); + } else if (property == FecProperty.OUTSIDECOLOR) { + setOutsideColor((Integer[]) value); + } else if (property == FecProperty.COLORRANGE) { + setColorRange((Integer[]) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the colorRange + */ + public Integer[] getColorRange() { + Integer[] retColorRange = new Integer[2]; + retColorRange[0] = colorRange[0]; + retColorRange[1] = colorRange[1]; + + return retColorRange; + } + + /** + * @param colorRange the colorRange to set + */ + public UpdateStatus setColorRange(Integer[] colorRange) { + this.colorRange[0] = colorRange[0]; + this.colorRange[1] = colorRange[1]; + return UpdateStatus.Success; + } + + /** + * @return the outsideColor + */ + public Integer[] getOutsideColor() { + Integer[] retOutsideColor = new Integer[2]; + retOutsideColor[0] = outsideColor[0]; + retOutsideColor[1] = outsideColor[1]; + + return retOutsideColor; + } + + /** + * @param outsideColor the outsideColor to set + */ + public UpdateStatus setOutsideColor(Integer[] outsideColor) { + this.outsideColor[0] = outsideColor[0]; + this.outsideColor[1] = outsideColor[1]; + return UpdateStatus.Success; + } + + /** + * @return the zBounds + */ + public Double[] getZBounds() { + Double[] retZBounds = new Double[2]; + retZBounds[0] = zBounds[0]; + retZBounds[1] = zBounds[1]; + + return retZBounds; + } + + /** + * @param bounds the zBounds to set + */ + public UpdateStatus setZBounds(Double[] zBounds) { + this.zBounds[0] = zBounds[0]; + this.zBounds[1] = zBounds[1]; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_FEC__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/ColorMap.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/ColorMap.java new file mode 100755 index 000000000..cc46e9996 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/ColorMap.java @@ -0,0 +1,127 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Pierre Lando + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.figure; + +import java.util.Arrays; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * @author Pierre Lando + */ +public class ColorMap { + /** + * Number of channels for one color. + */ + private static final int CHANNELS_NUMBER = 3; + + private static final float[] BLACK_COLOR = new float[] {0, 0, 0}; + private static final float[] WHITE_COLOR = new float[] {1, 1, 1}; + private static final float[] LIGHT_GRAY_COLOR = new float[] {0.7f, 0.7f, 0.7f}; + + /** + * The data of this ColorMap. + */ + Double[] data = new Double[0]; + + /** + * Default constructor + */ + public ColorMap() { + + } + + /** + * Copy constructor + * @param colorMap the ColorMap to copy + */ + public ColorMap(ColorMap colorMap) { + setData(colorMap.data); + } + + /** + * Return a copy of the data of this color map. + * @return a copy of the data of this color map. + */ + public Double[] getData() { + return data.clone(); + } + + /** + * Return the number of color in this ColorMap + * @return the number of color in this ColorMap + */ + public int getSize() { + return data.length / CHANNELS_NUMBER; + } + + /** + * Return the color corresponding to the given Scilab index. + * + * The first color in scilab ColorMap has index 1. + * If index is 0, it will be considered as 1. + * If index is -1 the color is black. + * If index is -2 the color is white. + * If index is last scilab index + 1, it will be considered as -1. + * If index is last scilab index + 2, it will be considered as -2. + * Other values should not be possible. + * By the way we consider the nearest value. + * + * @param index the given Scilab index. + * @return the color corresponding to the given Scilab index. + */ + public float[] getScilabColor(int index) { + + int lastScilabIndex = getSize(); + + if (index == 0) { + index = -1; + } + + if (index > lastScilabIndex) { + index = lastScilabIndex - index; + } + if (index == -3) { + return LIGHT_GRAY_COLOR; + } else if (index == -1 || index < -2) { + return BLACK_COLOR; + } else if (index == -2) { + return WHITE_COLOR; + } else { + index = index - 1; + return new float[] { + Math.min(1.f, data[index].floatValue()), + Math.min(1.f, data[index + getSize()].floatValue()), + Math.min(1.f, data[index + getSize() * 2].floatValue()) + }; + } + } + + /** + * Set the data of this ColorMap + * This function is package to avoid bad use (update model without using the controller). + * @param data the new data. + */ + UpdateStatus setData(Double[] data) { + // Do not update colormap if it's the same + if (Arrays.equals(data, this.data)) { + return UpdateStatus.NoChange; + } + int length = data.length; + length -= length % CHANNELS_NUMBER; + + this.data = new Double[length]; + System.arraycopy(data, 0, this.data, 0, length); + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/Figure.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/Figure.java new file mode 100755 index 000000000..4e334fb2b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/Figure.java @@ -0,0 +1,1432 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.figure; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ANTIALIASING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTORESIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BACKGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BORDER_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLOSEREQUESTFCN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_COLORMAP_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_COLORMAP__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DEFAULT_AXES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DOCKABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_EVENTHANDLER_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_EVENTHANDLER_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_GRID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_IMMEDIATE_DRAWING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INFOBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INFO_MESSAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT_SET__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MENUBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MENUBAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PIXEL_DRAWING_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_RESIZEFCN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_RESIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ROTATION_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TOOLBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TOOLBAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VIEWPORT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ICON__; + +import java.util.Arrays; + +import org.scilab.modules.graphic_objects.axes.AxesContainer; +import org.scilab.modules.graphic_objects.event.EventHandler; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.utils.LayoutType; + +/** + * Figure class + * @author Manuel JULIACHS + */ +public class Figure extends GraphicObject implements AxesContainer { + /** Figure properties names */ + private enum FigureProperty { + INFOMESSAGE, COLORMAP, COLORMAPSIZE, BACKGROUND, ROTATIONTYPE, RESIZEFCN, CLOSEREQUESTFCN, RESIZE, TOOLBAR, TOOLBAR_VISIBLE, MENUBAR, MENUBAR_VISIBLE, INFOBAR_VISIBLE, DOCKABLE, LAYOUT, LAYOUT_SET, GRIDOPT_GRID, GRIDOPT_PADDING, BORDEROPT_PADDING, DEFAULT_AXES, ICON + }; + + /** + * Specifies whether rotation applies to a single subwindow or to all the + * figure's subwindows + */ + public enum RotationType { + UNARY, MULTIPLE; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the rotation type enum + */ + public static RotationType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return RotationType.UNARY; + case 1: + return RotationType.MULTIPLE; + default: + return null; + } + } + + public static RotationType stringToEnum(String value) { + if (value.equals("multiple")) { + return MULTIPLE; + } + + return UNARY; + } + + public static String enumToString(RotationType value) { + switch (value) { + case MULTIPLE: + return "multiple"; + case UNARY: + default: + return "unary"; + } + } + } + + public enum BarType { + NONE, FIGURE; + public static BarType intToEnum(Integer intValue) { + switch (intValue) { + default: + case 0: + return BarType.NONE; + case 1: + return BarType.FIGURE; + } + } + + public static BarType stringToEnum(String value) { + if (value.equals("figure")) { + return FIGURE; + } + + return NONE; + } + + public static String enumToString(BarType value) { + switch (value) { + case FIGURE: + return "figure"; + case NONE: + default: + return "none"; + } + } + } + + /** Pixel drawing logical operations */ + private enum PixelDrawingMode { + CLEAR, AND, ANDREVERSE, COPY, ANDINVERTED, NOOP, XOR, OR, NOR, EQUIV, INVERT, ORREVERSE, COPYINVERTED, ORINVERTED, NAND, SET; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the pixel drawing mode enum + */ + public static PixelDrawingMode intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return PixelDrawingMode.CLEAR; + case 1: + return PixelDrawingMode.AND; + case 2: + return PixelDrawingMode.ANDREVERSE; + case 3: + return PixelDrawingMode.COPY; + case 4: + return PixelDrawingMode.ANDINVERTED; + case 5: + return PixelDrawingMode.NOOP; + case 6: + return PixelDrawingMode.XOR; + case 7: + return PixelDrawingMode.OR; + case 8: + return PixelDrawingMode.NOR; + case 9: + return PixelDrawingMode.EQUIV; + case 10: + return PixelDrawingMode.INVERT; + case 11: + return PixelDrawingMode.ORREVERSE; + case 12: + return PixelDrawingMode.COPYINVERTED; + case 13: + return PixelDrawingMode.ORINVERTED; + case 14: + return PixelDrawingMode.NAND; + case 15: + return PixelDrawingMode.SET; + default: + return null; + } + } + }; + + /** FigureDimensions properties names */ + public enum FigureDimensionsProperty { + POSITION, SIZE + }; + + /** + * FigureDimensions class + */ + private class FigureDimensions { + /** Position (x,y) of the upper-left corner in the top-level window */ + private Integer[] position; + + /** Dimensions (w, h) of the figure window */ + private Integer[] size; + + /** + * Default constructor + */ + public FigureDimensions() { + position = new Integer[] { 0, 0 }; + size = new Integer[] { 0, 0 }; + } + + /** + * Copy constructor + * @param figureDimensions the FigureDimensions to copy + */ + public FigureDimensions(FigureDimensions figureDimensions) { + this.position = new Integer[2]; + this.position[0] = figureDimensions.position[0]; + this.position[1] = figureDimensions.position[1]; + + this.size = new Integer[2]; + this.size[0] = figureDimensions.size[0]; + this.size[1] = figureDimensions.size[1]; + } + } + + /** CanvasProperty properties names */ + public enum CanvasProperty { + AUTORESIZE, VIEWPORT, AXESSIZE + }; + + /** + * Canvas class + */ + private class Canvas { + /** Specifies whether automatic resizing is used */ + private boolean autoResize; + + /** Viewport position (x,y) */ + private Integer[] viewport; + + /** Rendering canvas (w,h) dimensions */ + private Integer[] axesSize; + + /** + * Default constructor + */ + public Canvas() { + autoResize = false; + viewport = new Integer[2]; + axesSize = new Integer[2]; + } + + /** + * Copy constructor + * @param canvas the Canvas to copy + */ + public Canvas(Canvas canvas) { + this.autoResize = canvas.autoResize; + + this.viewport = new Integer[2]; + + this.viewport[0] = canvas.viewport[0]; + this.viewport[1] = canvas.viewport[1]; + + this.axesSize = new Integer[2]; + + this.axesSize[0] = canvas.axesSize[0]; + this.axesSize[1] = canvas.axesSize[1]; + } + } + + /** FigureName properties names */ + public enum FigureNameProperty { + NAME, ID + }; + + /** + * FigureName class + */ + public class FigureName implements Cloneable { + /** Name */ + private String name; + + /** Identifier */ + private int id; + + public FigureName clone() throws CloneNotSupportedException { + FigureName copy; + + // return (FigureName) super.clone(); + + copy = (FigureName) super.clone(); + + copy.name = new String(this.name); + copy.id = this.id; + + return copy; + } + + /** + * Default constructor + */ + public FigureName() { + name = ""; + id = 0; + } + + /** + * Copy constructor + * @param figureName the FigureName to copy + */ + public FigureName(FigureName figureName) { + name = new String(figureName.name); + id = figureName.id; + } + + } + + /** RenderingMode properties names */ + public enum RenderingModeProperty { + PIXELDRAWINGMODE, ANTIALIASING, IMMEDIATEDRAWING + }; + + /** + * RenderingMode class + */ + private class RenderingMode { + + /** Specifies the pixel drawing mode used */ + private PixelDrawingMode pixelDrawingMode; + + /** Antialising level (0 == off) */ + private int antialiasing; + + /** Specifies whether immediate drawing is used or not */ + private boolean immediateDrawing; + + /** + * Default constructor + */ + public RenderingMode() { + pixelDrawingMode = PixelDrawingMode.COPY; + antialiasing = 0; + immediateDrawing = true; + } + + /** + * Copy constructor + * @param renderingMode the RenderingMode to copy + */ + public RenderingMode(RenderingMode renderingMode) { + pixelDrawingMode = renderingMode.pixelDrawingMode; + antialiasing = renderingMode.antialiasing; + immediateDrawing = renderingMode.immediateDrawing; + } + + } + + /** EventHandler properties names */ + public enum EventHandlerProperty { + EVENTHANDLER, EVENTHANDLERENABLE + }; + + /** Figure dimensions */ + private FigureDimensions dimensions; + + /** Canvas property */ + private Canvas canvas; + + /** Figure name */ + private FigureName figureName; + + /** Info message */ + private String infoMessage; + + /** + * Default ColorMap: (3 x N) matrix, where N is the number of colors and 3 + * the number of color channels + */ + private ColorMap colorMap; + + /** Rendering mode */ + private RenderingMode renderingMode; + + /** Background color */ + private int background; + + /** Event handler */ + private EventHandler eventHandler; + + /** ResizeFcn */ + private String resizeFcn; + + /** CloseRequestFcn */ + private String closeRequestFcn; + + /** Rotation type */ + private RotationType rotation; + + /** resize */ + private Boolean resize; + + /** toolbar */ + private BarType toolbar; + private Boolean toolbarVisible; + + /** menubar */ + private BarType menubar; + private Boolean menubarVisible; + + /** infobar */ + private Boolean infobarVisible; + + /** dockable */ + private Boolean dockable; + + /** layout */ + private LayoutType layout; + + /** layout options */ + private Integer[] gridOptGrid = new Integer[] { 0, 0 }; + private Integer[] gridOptPadding = new Integer[] { 0, 0 }; + private Integer[] borderOptPadding = new Integer[] { 0, 0 }; + + /** default axes management */ + private Boolean defaultAxes; + + private String icon = ""; + + /** Constructor */ + public Figure() { + super(); + dimensions = new FigureDimensions(); + canvas = new Canvas(); + figureName = new FigureName(); + infoMessage = ""; + colorMap = new ColorMap(); + + renderingMode = new RenderingMode(); + background = 0; + eventHandler = new EventHandler(); + resizeFcn = ""; + closeRequestFcn = ""; + rotation = RotationType.UNARY; + resize = true; + toolbarVisible = true; + toolbar = BarType.FIGURE; + menubarVisible = true; + menubar = BarType.FIGURE; + infobarVisible = true; + dockable = true; + layout = LayoutType.NONE; + defaultAxes = true; + } + + @Override + public Figure clone() { + Figure copy = null; + copy = (Figure) super.clone(); + + copy.dimensions = new FigureDimensions(this.dimensions); + copy.canvas = new Canvas(this.canvas); + copy.figureName = new FigureName(this.figureName); + copy.colorMap = new ColorMap(this.colorMap); + copy.renderingMode = new RenderingMode(this.renderingMode); + copy.eventHandler = new EventHandler(this.eventHandler); + + copy.gridOptGrid = new Integer[] { 0, 0 }; + copy.gridOptPadding = new Integer[] { 0, 0 }; + copy.borderOptPadding = new Integer[] { 0, 0 }; + copy.setValid(true); + + return copy; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_POSITION__: + return FigureDimensionsProperty.POSITION; + case __GO_SIZE__: + return FigureDimensionsProperty.SIZE; + case __GO_AUTORESIZE__: + return CanvasProperty.AUTORESIZE; + case __GO_VIEWPORT__: + return CanvasProperty.VIEWPORT; + case __GO_AXES_SIZE__: + return CanvasProperty.AXESSIZE; + case __GO_NAME__: + return FigureNameProperty.NAME; + case __GO_ID__: + return FigureNameProperty.ID; + case __GO_INFO_MESSAGE__: + return FigureProperty.INFOMESSAGE; + case __GO_COLORMAP__: + return FigureProperty.COLORMAP; + case __GO_COLORMAP_SIZE__: + return FigureProperty.COLORMAPSIZE; + case __GO_PIXEL_DRAWING_MODE__: + return RenderingModeProperty.PIXELDRAWINGMODE; + case __GO_ANTIALIASING__: + return RenderingModeProperty.ANTIALIASING; + case __GO_IMMEDIATE_DRAWING__: + return RenderingModeProperty.IMMEDIATEDRAWING; + case __GO_BACKGROUND__: + return FigureProperty.BACKGROUND; + case __GO_EVENTHANDLER_NAME__: + return EventHandlerProperty.EVENTHANDLER; + case __GO_EVENTHANDLER_ENABLE__: + return EventHandlerProperty.EVENTHANDLERENABLE; + case __GO_ROTATION_TYPE__: + return FigureProperty.ROTATIONTYPE; + case __GO_RESIZEFCN__: + return FigureProperty.RESIZEFCN; + case __GO_CLOSEREQUESTFCN__: + return FigureProperty.CLOSEREQUESTFCN; + case __GO_RESIZE__: + return FigureProperty.RESIZE; + case __GO_TOOLBAR__: + return FigureProperty.TOOLBAR; + case __GO_TOOLBAR_VISIBLE__: + return FigureProperty.TOOLBAR_VISIBLE; + case __GO_MENUBAR__: + return FigureProperty.MENUBAR; + case __GO_MENUBAR_VISIBLE__: + return FigureProperty.MENUBAR_VISIBLE; + case __GO_INFOBAR_VISIBLE__: + return FigureProperty.INFOBAR_VISIBLE; + case __GO_DOCKABLE__: + return FigureProperty.DOCKABLE; + case __GO_LAYOUT__: + return FigureProperty.LAYOUT; + case __GO_LAYOUT_SET__: + return FigureProperty.LAYOUT_SET; + case __GO_GRID_OPT_GRID__: + return FigureProperty.GRIDOPT_GRID; + case __GO_GRID_OPT_PADDING__: + return FigureProperty.GRIDOPT_PADDING; + case __GO_BORDER_OPT_PADDING__: + return FigureProperty.BORDEROPT_PADDING; + case __GO_DEFAULT_AXES__: + return FigureProperty.DEFAULT_AXES; + case __GO_UI_ICON__: + return FigureProperty.ICON; + default: + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == FigureDimensionsProperty.POSITION) { + return getPosition(); + } else if (property == FigureDimensionsProperty.SIZE) { + return getSize(); + } else if (property == CanvasProperty.AUTORESIZE) { + return getAutoResize(); + } else if (property == CanvasProperty.VIEWPORT) { + return getViewport(); + } else if (property == CanvasProperty.AXESSIZE) { + return getAxesSize(); + } else if (property == FigureNameProperty.NAME) { + return getName(); + } else if (property == FigureNameProperty.ID) { + return getId(); + } else if (property == FigureProperty.INFOMESSAGE) { + return getInfoMessage(); + } else if (property == FigureProperty.COLORMAP) { + return getColorMap().getData(); + } else if (property == FigureProperty.COLORMAPSIZE) { + return getColorMap().getSize(); + } else if (property == RenderingModeProperty.PIXELDRAWINGMODE) { + return getPixelDrawingMode(); + } else if (property == RenderingModeProperty.ANTIALIASING) { + return getAntialiasing(); + } else if (property == RenderingModeProperty.IMMEDIATEDRAWING) { + return getImmediateDrawing(); + } else if (property == FigureProperty.BACKGROUND) { + return getBackground(); + } else if (property == EventHandlerProperty.EVENTHANDLER) { + return getEventHandlerString(); + } else if (property == EventHandlerProperty.EVENTHANDLERENABLE) { + return getEventHandlerEnable(); + } else if (property == FigureProperty.ROTATIONTYPE) { + return getRotation(); + } else if (property == FigureProperty.RESIZEFCN) { + return getResizeFcn(); + } else if (property == FigureProperty.CLOSEREQUESTFCN) { + return getCloseRequestFcn(); + } else if (property == FigureProperty.RESIZE) { + return getResize(); + } else if (property == FigureProperty.TOOLBAR) { + return getToolbar(); + } else if (property == FigureProperty.TOOLBAR_VISIBLE) { + return getToolbarVisible(); + } else if (property == FigureProperty.MENUBAR) { + return getMenubar(); + } else if (property == FigureProperty.MENUBAR_VISIBLE) { + return getMenubarVisible(); + } else if (property == FigureProperty.INFOBAR_VISIBLE) { + return getInfobarVisible(); + } else if (property == FigureProperty.DOCKABLE) { + return getDockable(); + } else if (property == FigureProperty.LAYOUT) { + return getLayout(); + } else if (property == FigureProperty.LAYOUT_SET) { + return isLayoutSettable(); + } else if (property == FigureProperty.GRIDOPT_GRID) { + return getGridOptGrid(); + } else if (property == FigureProperty.GRIDOPT_PADDING) { + return getGridOptPadding(); + } else if (property == FigureProperty.BORDEROPT_PADDING) { + return getBorderOptPadding(); + } else if (property == FigureProperty.DEFAULT_AXES) { + return hasDefaultAxes(); + } else if (property == FigureProperty.ICON) { + return getIcon(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof FigureProperty) { + switch ((FigureProperty) property) { + case BACKGROUND: + return setBackground((Integer) value); + case CLOSEREQUESTFCN: + return setCloseRequestFcn((String) value); + case COLORMAP: + return getColorMap().setData((Double[]) value); + case COLORMAPSIZE: + return UpdateStatus.NoChange; + case INFOMESSAGE: + return setInfoMessage((String) value); + case RESIZEFCN: + return setResizeFcn((String) value); + case ROTATIONTYPE: + return setRotation((Integer) value); + case RESIZE: + return setResize((Boolean) value); + case TOOLBAR: + return setToolbar((Integer) value); + case TOOLBAR_VISIBLE: + return setToolbarVisible((Boolean) value); + case MENUBAR: + return setMenubar((Integer) value); + case MENUBAR_VISIBLE: + return setMenubarVisible((Boolean) value); + case INFOBAR_VISIBLE: + return setInfobarVisible((Boolean) value); + case DOCKABLE: + return setDockable((Boolean) value); + case LAYOUT: + return setLayout((Integer) value); + case GRIDOPT_GRID: + return setGridOptGrid((Integer[]) value); + case GRIDOPT_PADDING: + return setGridOptPadding((Integer[]) value); + case BORDEROPT_PADDING: + return setBorderOptPadding((Integer[]) value); + case DEFAULT_AXES: + return setDefaultAxes((Boolean) value); + case ICON: + return setIcon((String) value); + default: + break; + } + } else if (property instanceof CanvasProperty) { + switch ((CanvasProperty) property) { + case AUTORESIZE: + return setAutoResize((Boolean) value); + case AXESSIZE: + return setAxesSize((Integer[]) value); + case VIEWPORT: + return setViewport((Integer[]) value); + } + } else if (property instanceof FigureDimensionsProperty) { + switch ((FigureDimensionsProperty) property) { + case POSITION: + return setPosition((Integer[]) value); + case SIZE: + return setSize((Integer[]) value); + } + } else if (property instanceof FigureNameProperty) { + switch ((FigureNameProperty) property) { + case ID: + return setId((Integer) value); + case NAME: + return setName((String) value); + } + } else if (property instanceof RenderingModeProperty) { + switch ((RenderingModeProperty) property) { + case ANTIALIASING: + return setAntialiasing((Integer) value); + case IMMEDIATEDRAWING: + return setImmediateDrawing((Boolean) value); + case PIXELDRAWINGMODE: + return setPixelDrawingMode((Integer) value); + } + } else if (property instanceof EventHandlerProperty) { + switch ((EventHandlerProperty) property) { + case EVENTHANDLER: + return setEventHandlerString((String) value); + case EVENTHANDLERENABLE: + return setEventHandlerEnable((Boolean) value); + } + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the background + */ + public Integer getBackground() { + return background; + } + + /** + * @param background the background to set + */ + public UpdateStatus setBackground(Integer background) { + if (this.background == background) { + return UpdateStatus.NoChange; + } + this.background = background; + return UpdateStatus.Success; + } + + /** + * @return the canvas + */ + public Canvas getCanvas() { + return canvas; + } + + /** + * @param canvas the canvas to set + */ + public UpdateStatus setCanvas(Canvas canvas) { + this.canvas = canvas; + return UpdateStatus.Success; + } + + /** + * @return the autoresize + */ + public Boolean getAutoResize() { + return canvas.autoResize; + } + + /** + * @param autoResize the autoresize to set + */ + public UpdateStatus setAutoResize(Boolean autoResize) { + if (canvas.autoResize == autoResize) { + return UpdateStatus.NoChange; + } + canvas.autoResize = autoResize; + return UpdateStatus.Success; + } + + /** + * @return the viewport + */ + public Integer[] getViewport() { + Integer[] retViewport = new Integer[2]; + + retViewport[0] = canvas.viewport[0]; + retViewport[1] = canvas.viewport[1]; + + return retViewport; + } + + /** + * @param viewport the viewport to set + */ + public UpdateStatus setViewport(Integer[] viewport) { + if (Arrays.equals(canvas.viewport, viewport)) { + return UpdateStatus.NoChange; + } + canvas.viewport[0] = viewport[0]; + canvas.viewport[1] = viewport[1]; + return UpdateStatus.Success; + } + + /** + * @return the axes size + */ + public Integer[] getAxesSize() { + Integer[] retAxesSize = new Integer[2]; + + retAxesSize[0] = canvas.axesSize[0]; + retAxesSize[1] = canvas.axesSize[1]; + + return retAxesSize; + } + + /** + * @param axesSize the axes size to set + */ + public UpdateStatus setAxesSize(Integer[] axesSize) { + if (Arrays.equals(canvas.axesSize, axesSize)) { + //must return Success to broadcast information + return UpdateStatus.Success; + } + canvas.axesSize[0] = axesSize[0]; + canvas.axesSize[1] = axesSize[1]; + return UpdateStatus.Success; + } + + /** + * @return the colorMap + */ + public ColorMap getColorMap() { + return colorMap; + } + + /** + * @return the dimensions + */ + public FigureDimensions getDimensions() { + return dimensions; + } + + /** + * @param dimensions the dimensions to set + */ + public UpdateStatus setDimensions(FigureDimensions dimensions) { + if (this.dimensions == dimensions) { + return UpdateStatus.NoChange; + } + this.dimensions = dimensions; + return UpdateStatus.Success; + } + + /** + * @return the figure position + */ + public Integer[] getPosition() { + Integer[] retPosition = new Integer[2]; + + retPosition[0] = dimensions.position[0]; + retPosition[1] = dimensions.position[1]; + + return retPosition; + } + + /** + * @param position the position to set + */ + public UpdateStatus setPosition(Integer[] position) { + if (Arrays.equals(dimensions.position, position)) { + return UpdateStatus.NoChange; + } + + dimensions.position[0] = position[0]; + dimensions.position[1] = position[1]; + return UpdateStatus.Success; + } + + /** + * @return the figure size + */ + public Integer[] getSize() { + Integer[] retSize = new Integer[2]; + + retSize[0] = dimensions.size[0]; + retSize[1] = dimensions.size[1]; + + return retSize; + } + + /** + * @param size the size to set + */ + public UpdateStatus setSize(Integer[] size) { + if (Arrays.equals(dimensions.size, size)) { + return UpdateStatus.NoChange; + } + + dimensions.size[0] = size[0]; + dimensions.size[1] = size[1]; + return UpdateStatus.Success; + } + + /** + * @return the eventHandler + */ + public EventHandler getEventHandler() { + return eventHandler; + } + + /** + * @param eventHandler the eventHandler to set + */ + public UpdateStatus setEventHandler(EventHandler eventHandler) { + if (this.eventHandler.equals(eventHandler)) { + return UpdateStatus.NoChange; + } + this.eventHandler = eventHandler; + return UpdateStatus.Success; + } + + /** + * @return the eventHandler string + */ + public String getEventHandlerString() { + return eventHandler.getEventHandlerString(); + } + + /** + * @param eventHandlerString the eventHandler string to set + */ + public UpdateStatus setEventHandlerString(String eventHandlerString) { + if (eventHandler.getEventHandlerString().equals(eventHandlerString)) { + return UpdateStatus.NoChange; + } + eventHandler.setEventHandlerString(eventHandlerString); + return UpdateStatus.Success; + } + + /** + * @return the eventHandlerEnabled + */ + public Boolean getEventHandlerEnable() { + return eventHandler.getEventHandlerEnabled(); + } + + /** + * @param eventHandlerEnabled the eventHandlerEnabled to set + */ + public UpdateStatus setEventHandlerEnable(Boolean eventHandlerEnabled) { + if (eventHandler.getEventHandlerEnabled() == eventHandlerEnabled) { + return UpdateStatus.NoChange; + } + eventHandler.setEventHandlerEnabled(eventHandlerEnabled); + return UpdateStatus.Success; + } + + /** + * @return the infoMessage + */ + public String getInfoMessage() { + return infoMessage; + } + + /** + * @param infoMessage the infoMessage to set + */ + public UpdateStatus setInfoMessage(String infoMessage) { + if (this.infoMessage != null && this.infoMessage.equals(infoMessage)) { + return UpdateStatus.NoChange; + } + this.infoMessage = infoMessage; + return UpdateStatus.Success; + } + + /** + * @return the name + */ + public FigureName getFigureName() { + return figureName; + } + + /** + * @param figureName the figure name to set + */ + public UpdateStatus setFigureName(FigureName figureName) { + if (this.figureName.equals(figureName)) { + return UpdateStatus.NoChange; + } + this.figureName = figureName; + return UpdateStatus.Success; + } + + /** + * @return the figure name + */ + public String getName() { + return figureName.name; + } + + /** + * @param name the name to set + */ + public UpdateStatus setName(String name) { + if (figureName.name.equals(name)) { + return UpdateStatus.NoChange; + } + figureName.name = name; + return UpdateStatus.Success; + } + + /** + * @return the id + */ + public Integer getId() { + return figureName.id; + } + + /** + * @param id the id to set + */ + public UpdateStatus setId(Integer id) { + //must return Success to update Views + figureName.id = id; + return UpdateStatus.Success; + } + + /** + * @return the renderingMode + */ + public RenderingMode getRenderingMode() { + return renderingMode; + } + + /** + * @param renderingMode the renderingMode to set + */ + public UpdateStatus setRenderingMode(RenderingMode renderingMode) { + if (this.renderingMode.equals(renderingMode)) { + return UpdateStatus.NoChange; + } + this.renderingMode = renderingMode; + return UpdateStatus.Success; + } + + /** + * @return the pixel drawing mode enum + */ + public PixelDrawingMode getPixelDrawingModeAsEnum() { + return renderingMode.pixelDrawingMode; + } + + /** + * @return the pixel drawing mode + */ + public Integer getPixelDrawingMode() { + return getPixelDrawingModeAsEnum().ordinal(); + } + + /** + * @param pixelDrawingMode the pixel drawing mode to set + */ + public UpdateStatus setPixelDrawingMode(PixelDrawingMode pixelDrawingMode) { + if (renderingMode.pixelDrawingMode.equals(pixelDrawingMode)) { + return UpdateStatus.NoChange; + } + renderingMode.pixelDrawingMode = pixelDrawingMode; + return UpdateStatus.Success; + } + + /** + * @param pixelDrawingMode the pixel drawing mode to set + */ + public UpdateStatus setPixelDrawingMode(Integer pixelDrawingMode) { + PixelDrawingMode mode = PixelDrawingMode.intToEnum(pixelDrawingMode); + if (renderingMode.pixelDrawingMode == mode) { + return UpdateStatus.NoChange; + } + + renderingMode.pixelDrawingMode = mode; + return UpdateStatus.Success; + } + + /** + * @return the antialiasing + */ + public Integer getAntialiasing() { + return renderingMode.antialiasing; + } + + /** + * @param antialiasing the antialiasing to set + */ + public UpdateStatus setAntialiasing(Integer antialiasing) { + if (renderingMode.antialiasing == antialiasing) { + return UpdateStatus.NoChange; + } + renderingMode.antialiasing = antialiasing; + return UpdateStatus.Success; + } + + /** + * @return the immediateDrawing + */ + public Boolean getImmediateDrawing() { + return renderingMode.immediateDrawing; + } + + /** + * @param immediateDrawing the immediateDrawing to set + */ + public UpdateStatus setImmediateDrawing(Boolean immediateDrawing) { + if (renderingMode.immediateDrawing == immediateDrawing) { + return UpdateStatus.NoChange; + } + + renderingMode.immediateDrawing = immediateDrawing; + return UpdateStatus.Success; + } + + /** + * @return the rotation + */ + public RotationType getRotationAsEnum() { + return rotation; + } + + /** + * @return the rotation + */ + public Integer getRotation() { + return getRotationAsEnum().ordinal(); + } + + /** + * @param rotation the rotation to set + */ + public UpdateStatus setRotation(RotationType rotation) { + if (this.rotation.equals(rotation)) { + return UpdateStatus.NoChange; + } + this.rotation = rotation; + return UpdateStatus.Success; + } + + /** + * @param rotation the rotation to set + */ + public UpdateStatus setRotation(Integer rotation) { + RotationType rotationType = RotationType.intToEnum(rotation); + if (rotationType == null || this.rotation == rotationType) { + return UpdateStatus.NoChange; + } + + this.rotation = rotationType; + return UpdateStatus.Success; + } + + /** + * @return the resize function + */ + public String getResizeFcn() { + return resizeFcn; + } + + /** + * @param resizeFcn the resize function to set + */ + public UpdateStatus setResizeFcn(String resizeFcn) { + if (this.resizeFcn.equals(resizeFcn)) { + return UpdateStatus.NoChange; + } + this.resizeFcn = resizeFcn; + return UpdateStatus.Success; + } + + /** + * @return the close request function + */ + public String getCloseRequestFcn() { + return closeRequestFcn; + } + + /** + * @param closeRequestFcn the close request function to set + */ + public UpdateStatus setCloseRequestFcn(String closeRequestFcn) { + if (this.closeRequestFcn.equals(closeRequestFcn)) { + return UpdateStatus.NoChange; + } + this.closeRequestFcn = closeRequestFcn; + return UpdateStatus.Success; + } + + public Boolean getResize() { + return resize; + } + + public UpdateStatus setResize(Boolean status) { + if (status.equals(resize)) { + return UpdateStatus.NoChange; + } + + resize = status; + return UpdateStatus.Success; + } + + public Boolean getToolbarVisible() { + return toolbarVisible; + } + + public UpdateStatus setToolbarVisible(Boolean status) { + if (status.equals(toolbarVisible)) { + return UpdateStatus.NoChange; + } + + toolbarVisible = status; + return UpdateStatus.Success; + } + + public Integer getToolbar() { + return toolbar.ordinal(); + } + + public BarType getToolbarAsEnum() { + return toolbar; + } + + public UpdateStatus setToolbar(Integer toolbar) { + return setToolbar(BarType.intToEnum(toolbar)); + } + + public UpdateStatus setToolbar(BarType toolbar) { + if (toolbar == this.toolbar) { + return UpdateStatus.NoChange; + } + + this.toolbar = toolbar; + return UpdateStatus.Success; + } + + public Boolean getMenubarVisible() { + return menubarVisible; + } + + public UpdateStatus setMenubarVisible(Boolean status) { + if (status.equals(menubarVisible)) { + return UpdateStatus.NoChange; + } + + menubarVisible = status; + return UpdateStatus.Success; + } + + public Integer getMenubar() { + return menubar.ordinal(); + } + + public BarType getMenubarAsEnum() { + return menubar; + } + + public UpdateStatus setMenubar(Integer menubar) { + return setMenubar(BarType.intToEnum(menubar)); + } + + public UpdateStatus setMenubar(BarType menubar) { + if (menubar == this.menubar) { + return UpdateStatus.NoChange; + } + + this.menubar = menubar; + return UpdateStatus.Success; + } + + public Boolean getInfobarVisible() { + return infobarVisible; + } + + public UpdateStatus setInfobarVisible(Boolean status) { + if (status.equals(infobarVisible)) { + return UpdateStatus.NoChange; + } + + infobarVisible = status; + return UpdateStatus.Success; + } + + public Boolean getDockable() { + return dockable; + } + + public UpdateStatus setDockable(Boolean status) { + if (status.equals(dockable)) { + return UpdateStatus.NoChange; + } + + dockable = status; + return UpdateStatus.Success; + } + + public Integer getLayout() { + return layout.ordinal(); + } + + public LayoutType getLayoutAsEnum() { + return layout; + } + + public boolean isLayoutSettable() { + return (this.layout == LayoutType.NONE); + } + + public UpdateStatus setLayout(Integer value) { + return setLayout(LayoutType.intToEnum(value)); + } + + public UpdateStatus setLayout(LayoutType layout) { + //avoid to set layout twice + if (this.layout == LayoutType.NONE) { + if (layout == LayoutType.NONE) { + return UpdateStatus.NoChange; + } + + this.layout = layout; + return UpdateStatus.Success; + } + + return UpdateStatus.Fail; + } + + public Integer[] getBorderOptPadding() { + return borderOptPadding; + } + + public UpdateStatus setBorderOptPadding(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (borderOptPadding.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0; i < value.length; i++) { + if (borderOptPadding[i] != value[i]) { + borderOptPadding[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridOptPadding() { + return gridOptPadding; + } + + public UpdateStatus setGridOptPadding(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridOptPadding.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0; i < value.length; i++) { + if (gridOptPadding[i] != value[i]) { + gridOptPadding[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridOptGrid() { + return gridOptGrid; + } + + public UpdateStatus setGridOptGrid(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridOptGrid.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0; i < value.length; i++) { + if (gridOptGrid[i] != value[i]) { + gridOptGrid[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Boolean hasDefaultAxes() { + return defaultAxes; + } + + public UpdateStatus setDefaultAxes(Boolean status) { + if (status.equals(defaultAxes)) { + return UpdateStatus.NoChange; + } + + defaultAxes = status; + return UpdateStatus.Success; + } + + public String getIcon() { + return icon; + } + + public UpdateStatus setIcon(String icon) { + if (this.icon.equals(icon)) { + return UpdateStatus.NoChange; + } + + this.icon = icon; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_FIGURE__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicController/GraphicController.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicController/GraphicController.java new file mode 100755 index 000000000..d94a88b2d --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicController/GraphicController.java @@ -0,0 +1,417 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicController; + +import java.awt.GraphicsEnvironment; +import java.util.Collections; +import java.util.ConcurrentModificationException; +import java.util.HashSet; +import java.util.Set; +import java.util.Vector; + +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.graphicView.FlattenTreeView; +import org.scilab.modules.graphic_objects.graphicView.GedTreeView; +import org.scilab.modules.graphic_objects.graphicView.GraphicView; +import org.scilab.modules.graphic_objects.graphicView.GuiLogView; +import org.scilab.modules.graphic_objects.graphicView.LogView; + +/** + * GraphicController class + * @author Bruno JOFRET + */ +public class GraphicController { + + private static boolean MVCViewEnable = false; + private static boolean debugEnable = false; + private static boolean infoEnable = false; + private static Integer lastId = 0; + + private static void INFO(String message) { + if (infoEnable == true) { + System.err.println("[CONTROLLER - INFO] : " + message); + } + } + + private static void DEBUG(String message) { + if (debugEnable == true) { + System.err.println("[CONTROLLER - DEBUG] : " + message); + } + } + + /** + * Set of all views attached to this controller. + */ + private volatile static Set<GraphicView> allViews = Collections.synchronizedSet(new HashSet<GraphicView>()); + + /** + * Graphic controller singleton. + */ + private static GraphicController me = null; + + /** + * Default constructor + */ + private GraphicController() { + if (!GraphicsEnvironment.isHeadless() && MVCViewEnable) { + register(GuiLogView.createGuiLogView()); + register(GedTreeView.create()); + } + } + + /** + * Returns the controller + * @return the controller + */ + public static GraphicController getController() { + if (me == null) { + me = new GraphicController(); + } + + return me; + } + + /** + * Register a view that will receive notification + * of any model changes. + * @param view The view to register. + */ + public void register(GraphicView view) { + INFO("Register view : " + view.toString()); + allViews.add(view); + } + + /** + * Unregister a view. + * @param view The view to unregister. + */ + public void unregister(GraphicView view) { + INFO("Unregister view : " + view.toString()); + allViews.remove(view); + } + + /** + * Creates a UID + * @return the created UID + */ + public Integer createUID() { + return ++lastId; + } + + /** + * Returns the object associated to an id + * @param id the object id + * @return the object + */ + public GraphicObject getObjectFromId(Integer id) { + return GraphicModel.getModel().getObjectFromId(id); + } + + /** + * Fast property set method + * @param id the object id + * @param prop the property name + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public boolean setProperty(Integer id, int prop, Object value) { + try { + switch (GraphicModel.getModel().setProperty(id, prop, value)) { + case Success : // BroadCast Message + return true + objectUpdate(id, prop); + return true; + case NoChange : // Do not broadcast message + return true; + case Fail : + return false; + } + return false; + } catch (Exception e) { + DEBUG("====== Exception caught ======"); + DEBUG("setProperty : " + id + " " + prop); + e.printStackTrace(); + DEBUG("====== Exception caught ======"); + return false; + } + } + + /** + * Fast property get method + * @param id the object id + * @param prop the property name + * @return the property value + */ + public Object getProperty(Integer id, int prop) { + try { + return GraphicModel.getModel().getProperty(id, prop); + } catch (Exception e) { + DEBUG("====== Exception caught ======"); + DEBUG("getProperty : [" + id + "] " + prop); + e.printStackTrace(); + DEBUG("====== Exception caught ======"); + return null; + } + } + + /** + * Returns a null property + * @param id the object id + * @param prop the property name + * @return the null property + */ + public Object getNullProperty(Integer id, String prop) { + return GraphicModel.getModel().getNullProperty(id, prop); + } + + /** + * Asks the model to create a new object + * @param type the object type + * @return the created object's id + */ + public Integer askObject(Type type, boolean broadcastMessage) { + + try { + Integer id = createUID(); + GraphicModel.getModel().createObject(id, type); + if (broadcastMessage) { + objectCreated(id); + } + + return id; + } catch (Exception e) { + DEBUG("====== Exception caught ======"); + DEBUG(" askObject type = " + type.name()); + e.printStackTrace(); + DEBUG("====== Exception caught ======"); + return 0; + } + + } + + public Integer cloneObject(Integer id, boolean broadcastMessage) { + try { + Integer newId = createUID(); + GraphicModel.getModel().cloneObject(id, newId); + if (broadcastMessage) { + objectCreated(newId); + } + + return newId; + } catch (Exception e) { + DEBUG("====== Exception caught ======"); + DEBUG("cloneObject id = " + id); + e.printStackTrace(); + DEBUG("====== Exception caught ======"); + return 0; + } + } + + /** + * Ask the model to clone an object + * @param id : the ID of the object to clone. + * @return the id of the clone. + */ + public Integer cloneObject(Integer id) { + return cloneObject(id, true); + } + + public Integer askObject(Type type) { + return askObject(type, true); + } + + /** + * Deletes an object + * @param id the deleted object's id + */ + public void deleteObject(Integer id) { + try { + objectDeleted(id); + GraphicModel.getModel().deleteObject(id); + } catch (Exception e) { + DEBUG("====== Exception caught ======"); + DEBUG("deleteObject id = " + id); + e.printStackTrace(); + DEBUG("====== Exception caught ======"); + } + } + + /** + * Notifies the existing views that an object has been created + * @param id the created object's id + */ + public void objectCreated(final Integer id) { + //INFO("### Create object : "+id); + //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__)); + Vector<Runnable> broadCastVector = new Vector<Runnable>(); + + try { + for (final GraphicView view : allViews) { + broadCastVector.add(new Runnable() { + public void run() { + view.createObject(id); + } + }); + } + for (final Runnable runMe : broadCastVector) { + runMe.run(); + } + } catch (ConcurrentModificationException e) { + e.printStackTrace(); + } + } + + /** + * Notified the existing views that an object has been updated + * @param id the updated object's id + * @param prop the property that has been updated + */ + public void objectUpdate(final Integer id, final int prop) { + //INFO("### Update object : "+id); + //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__)); + //INFO("### prop is : " + prop); + + Vector<Runnable> broadCastVector = new Vector<Runnable>(); + try { + for (final GraphicView view : allViews) { + broadCastVector.add(new Runnable() { + public void run() { + view.updateObject(id, prop); + } + }); + } + for (final Runnable runMe : broadCastVector) { + runMe.run(); + } + } catch (ConcurrentModificationException e) { + e.printStackTrace(); + } + } + + /** + * Notified the existing views that an object has been deleted + * @param id the deleted object's id + */ + public void objectDeleted(final Integer id) { + //INFO("### Delete object : "+id); + //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__)); + Vector<Runnable> broadCastVector = new Vector<Runnable>(); + + try { + for (final GraphicView view : allViews) { + broadCastVector.add(new Runnable() { + public void run() { + view.deleteObject(id); + } + }); + } + for (final Runnable runMe : broadCastVector) { + runMe.run(); + } + } catch (ConcurrentModificationException e) { + e.printStackTrace(); + } + } + + /** + * Set relationship between two object and remove old relationship. + * @param parentId id of the parent object. + * @param childId id of the child object. + */ + public void setGraphicObjectRelationship(Integer parentId, Integer childId) { + /* + * All the parent and children get/set calls must be performed first, + * and only then the corresponding object updates. + */ + Object oldParent = getProperty(childId, GraphicObjectProperties.__GO_PARENT__); + + if (oldParent != null && oldParent instanceof Integer) { + Integer oldParentId = (Integer) oldParent; + + if (oldParentId == parentId) { + return; + } + + if (oldParentId != 0) { + getObjectFromId(oldParentId).removeChild(childId); + } + } + + /* Insertion occurs at the head of the children list. */ + if (parentId != null && parentId != 0) { + GraphicObject go = getObjectFromId(parentId); + if (go != null) { + go.addChild(childId); + } + } + + setProperty(childId, GraphicObjectProperties.__GO_PARENT__, parentId); + + /* Object updates can now be performed. */ + if (oldParent != null && oldParent instanceof Integer && ((Integer)oldParent) != 0) { + objectUpdate((Integer)oldParent, GraphicObjectProperties.__GO_CHILDREN__); + } + + if (parentId != null && parentId != 0) { + objectUpdate(parentId, GraphicObjectProperties.__GO_CHILDREN__); + } + + // Useless (already done in setProperty(childId, GraphicObjectProperties.__GO_PARENT__, parentId);) + //objectUpdate(childId, GraphicObjectProperties.__GO_PARENT__); + } + + /** + * Remove relationship between given object and is parent. + * Then delete it. + * TODO : Manage children of deleted object. + * @param id deleted object identifier. + */ + public void removeRelationShipAndDelete(Integer id) { + final GraphicObject killMe = getObjectFromId(id); + // assert that the object has not been deleted yet + if (killMe == null) { + return; + } + + Integer parentUID = killMe.getParent(); + + + /* Remove object from Parent's Children list */ + if (parentUID != null && parentUID != 0) { + getObjectFromId(parentUID).removeChild(id); + //setProperty(id, GraphicObjectProperties.__GO_PARENT__, ""); + + objectUpdate(parentUID, GraphicObjectProperties.__GO_CHILDREN__); + objectUpdate(parentUID, GraphicObjectProperties.__GO_DATATIPS__); + //objectUpdate(id, GraphicObjectProperties.__GO_PARENT__); + } + + killMe.setValid(false); + recursiveDeleteChildren(killMe); + + deleteObject(id); + } + + private void recursiveDeleteChildren(GraphicObject killMe) { + Integer children[] = killMe.getChildren(); + + for (int i = 0 ; i < children.length ; ++i) { + GraphicObject killMeThisChild = getObjectFromId(children[i]); + killMeThisChild.setValid(false); + recursiveDeleteChildren(killMeThisChild); + deleteObject(children[i]); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicModel/GraphicModel.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicModel/GraphicModel.java new file mode 100755 index 000000000..02086f89e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicModel/GraphicModel.java @@ -0,0 +1,356 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicModel; + +import java.util.HashMap; +import java.util.Map; + +import org.scilab.modules.graphic_objects.arc.Arc; +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.axis.Axis; +import org.scilab.modules.graphic_objects.compound.Compound; +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.datatip.Datatip; +import org.scilab.modules.graphic_objects.fec.Fec; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.imageplot.Grayplot; +import org.scilab.modules.graphic_objects.imageplot.Matplot; +import org.scilab.modules.graphic_objects.label.Label; +import org.scilab.modules.graphic_objects.legend.Legend; +import org.scilab.modules.graphic_objects.lighting.Light; +import org.scilab.modules.graphic_objects.polyline.Polyline; +import org.scilab.modules.graphic_objects.rectangle.Rectangle; +import org.scilab.modules.graphic_objects.surface.Fac3d; +import org.scilab.modules.graphic_objects.surface.Plot3d; +import org.scilab.modules.graphic_objects.textObject.Text; +import org.scilab.modules.graphic_objects.uibar.progressionbar.Progressionbar; +import org.scilab.modules.graphic_objects.uibar.waitbar.Waitbar; +import org.scilab.modules.graphic_objects.uicontextmenu.Uicontextmenu; +import org.scilab.modules.graphic_objects.uicontrol.checkbox.CheckBox; +import org.scilab.modules.graphic_objects.uicontrol.edit.Edit; +import org.scilab.modules.graphic_objects.uicontrol.edit.Spinner; +import org.scilab.modules.graphic_objects.uicontrol.frame.Frame; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder; +import org.scilab.modules.graphic_objects.uicontrol.layer.Layer; +import org.scilab.modules.graphic_objects.uicontrol.listbox.ListBox; +import org.scilab.modules.graphic_objects.uicontrol.popupmenu.PopupMenu; +import org.scilab.modules.graphic_objects.uicontrol.pushbutton.PushButton; +import org.scilab.modules.graphic_objects.uicontrol.radiobutton.RadioButton; +import org.scilab.modules.graphic_objects.uicontrol.slider.Slider; +import org.scilab.modules.graphic_objects.uicontrol.tab.Tab; +import org.scilab.modules.graphic_objects.uicontrol.table.Table; +import org.scilab.modules.graphic_objects.uicontrol.uiimage.UiImage; +import org.scilab.modules.graphic_objects.uicontrol.uitext.UiText; +import org.scilab.modules.graphic_objects.uimenu.Uimenu; +import org.scilab.modules.graphic_objects.vectfield.Champ; +import org.scilab.modules.graphic_objects.vectfield.Segs; + +/** + * GraphicModel class + * @author Bruno JOFRET + */ +public final class GraphicModel { + + private static GraphicModel me; + private static GraphicObject figureModel; + private static GraphicObject axesModel; + + private Map<Integer, GraphicObject> allObjects = new HashMap<Integer, GraphicObject>(); + + /** + * Default constructor + */ + private GraphicModel() { } + + /** + * Returns the model + * @return the model + */ + public static GraphicModel getModel() { + if (me == null) { + me = new GraphicModel(); + } + + return me; + } + + public static Figure getFigureModel() { + return (Figure) figureModel; + } + + public static Axes getAxesModel() { + return (Axes) axesModel; + } + + /** + * @param id the id of the object to get + * @return the object + */ + public GraphicObject getObjectFromId(Integer id) { + return allObjects.get(id); + } + + /** + * Returns a null property + * @param id the id of the object + * @param property the property name + * @return the property + */ + public Object getNullProperty(Integer id, String property) { + GraphicObject object = allObjects.get(id); + return object.getNullProperty(property); + } + + /** + * Fast property get + * @param id object id + * @param property property name + * @return property value + */ + public Object getProperty(Integer id, int property) { + GraphicObject object = allObjects.get(id); + + if (object != null) { + Object propertyType = object.getPropertyFromName(property); + return object.getProperty(propertyType); + } + return null; + } + + /** + * Fast property set + * @param id object id + * @param property name + * @param value property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Integer id, int property, Object value) { + GraphicObject object = allObjects.get(id); + if (object != null) { + synchronized (object) { + Object propertyType = object.getPropertyFromName(property); + return object.setProperty(propertyType, value); + } + } + return UpdateStatus.Fail; + } + + /** + * Creates an object + * @param id object id + * @param type object type + * @return the created object's id + */ + public Integer createObject(Integer id, GraphicObject.Type type) { + GraphicObject object = createTypedObject(type); + + if (object != null) { + allObjects.put(id, object); + object.setIdentifier(id); + + return id; + } else { + return 0; + } + } + + /** + * Clone object + * @param id : id of the object to clone + * @param newId : id of the clone + * @return newId + */ + public Integer cloneObject(Integer id, Integer newId) { + GraphicObject object = allObjects.get(id); + GraphicObject objectClone = object.clone(); + objectClone.setIdentifier(newId); + + allObjects.put(newId, objectClone); + + return newId; + } + + /** + * Creates a typed object + * @param type the object type + * @return the created typed object + */ + private GraphicObject createTypedObject(Type type) { + GraphicObject createdObject = null; + switch (type) { + case ARC: + createdObject = new Arc(); + break; + case AXES: + createdObject = new Axes(); + break; + case AXESMODEL: + createdObject = new Axes(); + createdObject.setValid(false); + axesModel = createdObject; + break; + case AXIS: + createdObject = new Axis(); + break; + case CHAMP: + createdObject = new Champ(); + break; + case COMPOUND: + createdObject = new Compound(); + break; + case FAC3D: + createdObject = new Fac3d(); + break; + case FEC: + createdObject = new Fec(); + break; + case FIGURE: + createdObject = new Figure(); + break; + case FIGUREMODEL: + createdObject = new Figure(); + createdObject.setValid(false); + figureModel = createdObject; + break; + case GRAYPLOT: + createdObject = new Grayplot(); + break; + case LABEL: + createdObject = new Label(); + break; + case LEGEND: + createdObject = new Legend(); + break; + case MATPLOT: + createdObject = new Matplot(); + break; + case PLOT3D: + createdObject = new Plot3d(); + break; + case POLYLINE: + createdObject = new Polyline(); + break; + case RECTANGLE: + createdObject = new Rectangle(); + break; + case SEGS: + createdObject = new Segs(); + break; + case TEXT: + createdObject = new Text(); + break; + /* UICONTROLS */ + case CHECKBOX: + createdObject = new CheckBox(); + break; + case EDIT: + createdObject = new Edit(); + break; + case SPINNER: + createdObject = new Spinner(); + break; + case FRAME: + createdObject = new Frame(); + break; + case IMAGE: + createdObject = new UiImage(); + break; + case LISTBOX: + createdObject = new ListBox(); + break; + case POPUPMENU: + createdObject = new PopupMenu(); + break; + case PUSHBUTTON: + createdObject = new PushButton(); + break; + case RADIOBUTTON: + createdObject = new RadioButton(); + break; + case SLIDER: + createdObject = new Slider(); + break; + case TABLE: + createdObject = new Table(); + break; + case UITEXT: + createdObject = new UiText(); + break; + /* UIMENU */ + case UIMENU: + createdObject = new Uimenu(); + break; + case UIMENUMODEL: + createdObject = new Uimenu(); + createdObject.setValid(false); + break; + /* UICONTEXTMENU */ + case UICONTEXTMENU: + createdObject = new Uicontextmenu(); + break; + /* Create Scilab console object */ + case CONSOLE: + createdObject = Console.getConsole(); + ((Console) createdObject).setScilabMode(Console.ScilabMode.NW); + break; + case JAVACONSOLE: + createdObject = Console.getConsole(); + ((Console) createdObject).setScilabMode(Console.ScilabMode.STD); + break; + /* Uibar */ + case PROGRESSIONBAR: + createdObject = new Progressionbar(); + break; + case WAITBAR: + createdObject = new Waitbar(); + break; + case LIGHT: + createdObject = new Light(); + break; + case DATATIP: + createdObject = new Datatip(); + break; + case TAB: + createdObject = new Tab(); + break; + case LAYER: + createdObject = new Layer(); + break; + case BORDER: + createdObject = new FrameBorder(); + break; + case FRAME_SCROLLABLE: + createdObject = new Frame(); + ((Frame)createdObject).setScrollable(true); + break; + default: + createdObject = null; + } + return createdObject; + } + + /** + * Deletes an object + * @param id object id + */ + public void deleteObject(Integer id) { + GraphicObject object = allObjects.get(id); + synchronized (object) { + allObjects.remove(id); + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/CallBack.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/CallBack.java new file mode 100755 index 000000000..0c2e0825a --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/CallBack.java @@ -0,0 +1,117 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Abstract class to manage all callbacks. + * + * @author Bruno JOFRET + */ +public class CallBack { + + /** + * Unmanaged command type constant + */ + public static final int UNTYPED = -1; + /** + * Scilab instruction command type constant + */ + public static final int SCILAB_INSTRUCTION = 0; + public static final int SCILAB_NOT_INTERRUPTIBLE_INSTRUCTION = 10; + /** + * C or Fortran function type constant + */ + public static final int C_FORTRAN = 1; + /** + * Scilab function type constant + */ + public static final int SCILAB_FUNCTION = 2; + public static final int SCILAB_NOT_INTERRUPTIBLE_FUNCTION = 12; + /** + * Scilab function type constant (not trapped by scilab event listeners) + */ + public static final int SCILAB_OUT_OF_XCLICK_AND_XGETMOUSE = -2; + /** + * Java function type constant + */ + public static final int JAVA = 3; + /** + * Java function type constant (not trapped by scilab event listeners) + */ + public static final int JAVA_OUT_OF_XCLICK_AND_XGETMOUSE = -3; + + /** + * Scilab instruction without GCBO setting (old addmenu compatibility) + */ + public static final int SCILAB_INSTRUCTION_WITHOUT_GCBO = 4; + + /** + * The Command to Store and remember. + */ + private String command; + + /** + * The command type + */ + private int commandType; + + /** + * Constructor to be seen by specifics CallBack. + * @param command the command associated to the ccallback + */ + public CallBack(String command) { + this(command, UNTYPED); + } + + /** + * Constructor to be seen by specifics CallBack. + * @param command the command associated to the ccallback + * @param commandType the command type + */ + public CallBack(String command, int commandType) { + this.command = command; + this.commandType = commandType; + } + + /** + * @param command sets the command + */ + public UpdateStatus setCommand(String command) { + this.command = command; + return UpdateStatus.Success; + } + + /** + * @return the command if it's a Scilab instruction. + */ + public String getCommand() { + return command; + } + + /** + * @param commandType sets the command + */ + public UpdateStatus setCommandType(int commandType) { + this.commandType = commandType; + return UpdateStatus.Success; + } + + /** + * @return the command type + */ + public int getCommandType() { + return commandType; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/ClippableProperty.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/ClippableProperty.java new file mode 100755 index 000000000..b32fc218e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/ClippableProperty.java @@ -0,0 +1,161 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * ClippableProperty class + * @author Manuel JULIACHS + */ +public class ClippableProperty { + /** ClippableProperty properties */ + public enum ClippablePropertyType { CLIPSTATE, CLIPBOX, CLIPBOXSET }; + + /** Indicates how clipping is performed */ + public static enum ClipStateType { OFF, CLIPGRF, ON; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the clip state type enum + */ + public static ClipStateType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return ClipStateType.OFF; + case 1: + return ClipStateType.CLIPGRF; + case 2: + return ClipStateType.ON; + default: + return null; + } + } + + } + + /** Clipping state */ + private ClipStateType clipState; + + /** Clip box (4- or 6-element array) */ + private double[] clipBox; + + /** Specifies whether the clip box has been set at least once */ + private boolean clipBoxSet; + + /** Constructor */ + public ClippableProperty() { + clipState = ClipStateType.OFF; + clipBox = new double[4]; + clipBoxSet = false; + } + + /** + * Copy constructor + * @param clippableProperty the ClippableProperty to copy + */ + public ClippableProperty(ClippableProperty clippableProperty) { + clipState = clippableProperty.clipState; + + clipBox = new double[4]; + + for (int i = 0; i < clipBox.length; i++) { + clipBox[i] = clippableProperty.clipBox[i]; + } + + clipBoxSet = clippableProperty.clipBoxSet; + } + + /** + * @return the clipBox + */ + public Double[] getClipBox() { + Double[] retClipBox = new Double[clipBox.length]; + + for (int i = 0; i < clipBox.length; i++) { + retClipBox[i] = clipBox[i]; + } + + return retClipBox; + } + + /** + * @param clipBox the clipBox to set + */ + public UpdateStatus setClipBox(Double[] clipBox) { + UpdateStatus status = UpdateStatus.NoChange; + if (clipBoxSet == false) { + clipBoxSet = true; + status = UpdateStatus.Success; + } + + if (status == UpdateStatus.Success) { + for (int i = 0; i < clipBox.length; i++) { + this.clipBox[i] = clipBox[i]; + } + } else { + for (int i = 0; i < clipBox.length; i++) { + if (this.clipBox[i] != clipBox[i]) { + this.clipBox[i] = clipBox[i]; + status = UpdateStatus.Success; + } + } + } + + return status; + } + + /** + * @return the clipState + */ + public ClipStateType getClipState() { + return clipState; + } + + /** + * @param clipState the clipState to set + */ + public UpdateStatus setClipState(ClipStateType clipState) { + if (clipState == ClipStateType.ON && clipBoxSet == false) { + clipState = ClipStateType.CLIPGRF; + } + + if (this.clipState != clipState) { + this.clipState = clipState; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the clipBoxSet + */ + public Boolean getClipBoxSet() { + return clipBoxSet; + } + + /** + * @param clipBoxSet the clipBoxSet to set + */ + public UpdateStatus setClipBoxSet(Boolean clipBoxSet) { + if (this.clipBoxSet != clipBoxSet) { + this.clipBoxSet = clipBoxSet; + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicClippableObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicClippableObject.java new file mode 100755 index 000000000..61c69f5c9 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicClippableObject.java @@ -0,0 +1,167 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicObject; + +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * GraphicClippableObject class + * @author Manuel JULIACHS + */ +public abstract class GraphicClippableObject extends GraphicObject { + /** GraphicClippableObject properties names */ + private enum GraphicClippableObjectProperty { CLIPPROPERTY }; + + /** Stores the actual clipping state */ + private ClippableProperty clipProperty; + + /** Default constructor */ + public GraphicClippableObject() { + super(); + clipProperty = new ClippableProperty(); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_CLIP_PROPERTY__ : + return GraphicClippableObjectProperty.CLIPPROPERTY; + case __GO_CLIP_STATE__ : + return ClippablePropertyType.CLIPSTATE; + case __GO_CLIP_BOX__ : + return ClippablePropertyType.CLIPBOX; + case __GO_CLIP_BOX_SET__ : + return ClippablePropertyType.CLIPBOXSET; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == GraphicClippableObjectProperty.CLIPPROPERTY) { + return getClipProperty(); + } else if (property == ClippablePropertyType.CLIPSTATE) { + return getClipState(); + } else if (property == ClippablePropertyType.CLIPBOX) { + return getClipBox(); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + return getClipBoxSet(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == GraphicClippableObjectProperty.CLIPPROPERTY) { + setClipProperty((ClippableProperty) value); + } else if (property == ClippablePropertyType.CLIPSTATE) { + setClipState((Integer) value); + } else if (property == ClippablePropertyType.CLIPBOX) { + setClipBox((Double[]) value); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + setClipBoxSet((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the clipProperty + */ + public ClippableProperty getClipProperty() { + return clipProperty; + } + + /** + * @param clipProperty the clipProperty to set + */ + public void setClipProperty(ClippableProperty clipProperty) { + this.clipProperty = clipProperty; + } + + /** + * @return the clipBox + */ + public Double[] getClipBox() { + return clipProperty.getClipBox(); + } + + /** + * @param clipBox the clipBox to set + */ + public void setClipBox(Double[] clipBox) { + clipProperty.setClipBox(clipBox); + } + + /** + * @return the clipState + */ + public Integer getClipState() { + return getClipStateAsEnum().ordinal(); + } + + /** + * @return the clipState + */ + public ClipStateType getClipStateAsEnum() { + return clipProperty.getClipState(); + } + + /** + * @param clipState the clipState to set + */ + public void setClipState(Integer clipState) { + setClipStateAsEnum(ClipStateType.intToEnum(clipState)); + } + + /** + * @param clipState the clipState to set + */ + public void setClipStateAsEnum(ClipStateType clipState) { + clipProperty.setClipState(clipState); + } + + /** + * @return the clipBoxSet + */ + public Boolean getClipBoxSet() { + return clipProperty.getClipBoxSet(); + } + + /** + * @param clipBoxSet the clipBoxSet to set + */ + public void setClipBoxSet(Boolean clipBoxSet) { + clipProperty.setClipBoxSet(clipBoxSet); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java new file mode 100755 index 000000000..ba25b84d5 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java @@ -0,0 +1,793 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicObject; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXESMODEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXIS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACKTYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACK__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHAMP__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN_COUNT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_COMPOUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATA_MODEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FAC3D__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FEC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGUREMODEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGURE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRAYPLOT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HAS_LEGEND_CHILD__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LEGEND_CHILD__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LEGEND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MATPLOT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PARENT_AXES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PARENT_FIGURE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PARENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PLOT3D__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POLYLINE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PROGRESSIONBAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_RECTANGLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_REFERENCED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SEGS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SELECTED_CHILD__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TEXT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTEXTMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_SCROLLABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LAYER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VALID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_WAITBAR__; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.legend.Legend; +import org.scilab.modules.graphic_objects.uicontrol.frame.Frame; + +/** + * GraphicObject class + * @author Manuel JULIACHS + * @author Vincent COUVERT + */ +public abstract class GraphicObject implements Cloneable { + + public enum UpdateStatus { + Success, // Property updated with new values + NoChange, // Property leave unchanged + Fail // Update Fail + }; + + /** User data array default size */ + public static final int USER_DATA_DEFAULT_SIZE = 0; + + /** Graphic objects types */ + public enum Type { ARC, AXES, AXESMODEL, AXIS, CHAMP, COMPOUND, FAC3D, FEC, FIGURE, FIGUREMODEL, GRAYPLOT, + LABEL, LEGEND, MATPLOT, PLOT3D, POLYLINE, RECTANGLE, SEGS, TEXT, CHECKBOX, EDIT, SPINNER, FRAME, + IMAGE, LISTBOX, POPUPMENU, PUSHBUTTON, RADIOBUTTON, CONSOLE, JAVACONSOLE, SLIDER, TABLE, UITEXT, UIMENU, UIMENUMODEL, + PROGRESSIONBAR, WAITBAR, UICONTEXTMENU, DATATIP, LIGHT, TABGROUP, TAB, LAYER, BORDER, FRAME_SCROLLABLE, UNKNOWNOBJECT + }; + + /** GraphicObject properties */ + public enum GraphicObjectPropertyType { PARENT, CHILDREN, CHILDREN_COUNT, HIDDEN, VISIBLE, TYPE, REFERENCED, VALID, DATA, + PARENT_FIGURE, PARENT_AXES, HASLEGENDCHILD, LEGENDCHILD, SELECTEDCHILD, TAG, CALLBACK, CALLBACKTYPE, UNKNOWNPROPERTY + }; + + /** Identifier */ + private Integer identifier; + + /** Parent object is known by its UID */ + private Integer parent; + + /** Child objects list. Known by their UID */ + private List <Integer> children; + + /** Specifies whether the object is visible or not */ + private boolean visible; + + /** Specifies if the "handle" is referenced in scilab */ + private boolean referenced; + + /** Specifies if the "handle" is valid, i.e included in a rendered object */ + private boolean valid; + + /** Specifies if the "handle" is hidden, i.e not listed as children in Scilab view */ + private boolean hidden; + + /** Tag */ + private String tag; + + /** Callback */ + private CallBack callback; + + /** + * Identifier of the selected child + * This was previously implemented as a list, but is used in practice + * to store only the identifier of the currently selected child. + * To do: use a list if required + */ + private Integer selectedChild; + + /** Constructor */ + public GraphicObject() { + identifier = 0; + parent = 0; + children = new LinkedList<Integer>(); + visible = true; + valid = true; + referenced = false; + selectedChild = 0; + tag = ""; + callback = new CallBack(""); + } + + /** + * Clone + * @return clone + * @see java.lang.Object#clone() + */ + public GraphicObject clone() { + GraphicObject copy = null; + + try { + copy = (GraphicObject) super.clone(); + } catch (CloneNotSupportedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + /* + * Creating an empty list is done to avoid + * still referencing the original object's own list, + * which occurs when the Figure model is cloned. + */ + copy.setChildren(new LinkedList<Integer>()); + + /* + * Avoids keeping the Figure model as a parent + * when the Axes model is cloned. + */ + copy.setParent(0); + + /* + * Sets no object as the selected child. + */ + copy.setSelectedChild(0); + + return copy; + } + + abstract public void accept(Visitor visitor) throws ObjectRemovedException; + + /** + * Returns the enum associated to a type name + * @param typeName the property name + * @return the type enum + */ + public static Type getTypeFromName(int typeName) { + switch (typeName) { + case __GO_ARC__ : + return Type.ARC; + case __GO_AXES__ : + return Type.AXES; + case __GO_AXESMODEL__ : + return Type.AXESMODEL; + case __GO_AXIS__ : + return Type.AXIS; + case __GO_CHAMP__ : + return Type.CHAMP; + case __GO_COMPOUND__ : + return Type.COMPOUND; + case __GO_FAC3D__ : + return Type.FAC3D; + case __GO_FEC__ : + return Type.FEC; + case __GO_FIGURE__ : + return Type.FIGURE; + case __GO_FIGUREMODEL__ : + return Type.FIGUREMODEL; + case __GO_GRAYPLOT__ : + return Type.GRAYPLOT; + case __GO_LABEL__ : + return Type.LABEL; + case __GO_LEGEND__ : + return Type.LEGEND; + case __GO_MATPLOT__ : + return Type.MATPLOT; + case __GO_PLOT3D__ : + return Type.PLOT3D; + case __GO_POLYLINE__ : + return Type.POLYLINE; + case __GO_RECTANGLE__ : + return Type.RECTANGLE; + case __GO_SEGS__ : + return Type.SEGS; + case __GO_TEXT__ : + return Type.TEXT; + case __GO_UI_CHECKBOX__ : + return Type.CHECKBOX; + case __GO_UI_EDIT__ : + return Type.EDIT; + case __GO_UI_SPINNER__ : + return Type.SPINNER; + case __GO_UI_FRAME__ : + return Type.FRAME; + case __GO_UI_IMAGE__ : + return Type.IMAGE; + case __GO_UI_LISTBOX__ : + return Type.LISTBOX; + case __GO_UI_POPUPMENU__ : + return Type.POPUPMENU; + case __GO_UI_PUSHBUTTON__ : + return Type.PUSHBUTTON; + case __GO_UI_RADIOBUTTON__ : + return Type.RADIOBUTTON; + case __GO_UI_SLIDER__ : + return Type.SLIDER; + case __GO_UI_TABLE__ : + return Type.TABLE; + case __GO_UI_TEXT__ : + return Type.UITEXT; + case __GO_UIMENU__ : + return Type.UIMENU; + case __GO_UICONTEXTMENU__ : + return Type.UICONTEXTMENU; + case __GO_PROGRESSIONBAR__ : + return Type.PROGRESSIONBAR; + case __GO_WAITBAR__ : + return Type.WAITBAR; + case __GO_DATATIP__: + return Type.DATATIP; + case __GO_LIGHT__ : + return Type.LIGHT; + case __GO_UI_TAB__ : + return Type.TAB; + case __GO_UI_LAYER__ : + return Type.LAYER; + case __GO_UI_FRAME_BORDER__ : + return Type.BORDER; + case __GO_UI_FRAME_SCROLLABLE__ : + return Type.FRAME_SCROLLABLE; + default : + return Type.UNKNOWNOBJECT; + } + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_PARENT__ : + return GraphicObjectPropertyType.PARENT; + case __GO_CHILDREN__ : + return GraphicObjectPropertyType.CHILDREN; + case __GO_CHILDREN_COUNT__ : + return GraphicObjectPropertyType.CHILDREN_COUNT; + case __GO_HIDDEN__ : + return GraphicObjectPropertyType.HIDDEN; + case __GO_VISIBLE__ : + return GraphicObjectPropertyType.VISIBLE; + case __GO_REFERENCED__ : + return GraphicObjectPropertyType.REFERENCED; + case __GO_VALID__ : + return GraphicObjectPropertyType.VALID; + case __GO_PARENT_FIGURE__ : + return GraphicObjectPropertyType.PARENT_FIGURE; + case __GO_PARENT_AXES__ : + return GraphicObjectPropertyType.PARENT_AXES; + case __GO_HAS_LEGEND_CHILD__ : + return GraphicObjectPropertyType.HASLEGENDCHILD; + case __GO_LEGEND_CHILD__ : + return GraphicObjectPropertyType.LEGENDCHILD; + case __GO_SELECTED_CHILD__ : + return GraphicObjectPropertyType.SELECTEDCHILD; + case __GO_TYPE__ : + return GraphicObjectPropertyType.TYPE; + case __GO_DATA_MODEL__ : + return GraphicObjectPropertyType.DATA; + case __GO_TAG__ : + return GraphicObjectPropertyType.TAG; + case __GO_CALLBACK__ : + return GraphicObjectPropertyType.CALLBACK; + case __GO_CALLBACKTYPE__ : + return GraphicObjectPropertyType.CALLBACKTYPE; + default: + //System.err.println("[ERROR] Unknown Property : "+propertyName+" !!!!!!!!!!"); + return GraphicObjectPropertyType.UNKNOWNPROPERTY; + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (!(property instanceof GraphicObjectPropertyType)) { + return null; + } + + GraphicObjectPropertyType p = (GraphicObjectPropertyType) property; + switch (p) { + case PARENT: + return getParent(); + case CHILDREN: + return getChildren(); + case CHILDREN_COUNT: + return children.size(); + case VALID: + return isValid(); + case HIDDEN: + return isHidden(); + case VISIBLE: + return getVisible(); + case PARENT_FIGURE: + return getParentFigure(); + case PARENT_AXES: + return getParentAxes(); + case HASLEGENDCHILD: + return getHasLegendChild(); + case LEGENDCHILD: + return getLegendChild(); + case SELECTEDCHILD: + return getSelectedChild(); + case TYPE: + return getType(); + case DATA: + return getIdentifier(); + case TAG: + return getTag(); + case CALLBACK: + return getCallbackString(); + case CALLBACKTYPE: + return getCallbackType(); + case UNKNOWNPROPERTY: + return null; + default: + return null; + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (!(property instanceof GraphicObjectPropertyType)) { + return UpdateStatus.Success; + } + + GraphicObjectPropertyType p = (GraphicObjectPropertyType) property; + switch (p) { + case PARENT: + setParent((Integer) value); + break; + case CHILDREN: + setChildren((Integer[]) value); + break; + case VALID: + setValid((Boolean) value); + break; + case HIDDEN: + setHidden((Boolean) value); + break; + case VISIBLE: + setVisible((Boolean) value); + break; + case SELECTEDCHILD: + setSelectedChild((Integer) value); + break; + case DATA: + return UpdateStatus.Success; + case TAG: + setTag((String) value); + break; + case CALLBACK: + setCallbackString((String) value); + break; + case CALLBACKTYPE: + setCallbackType((Integer) value); + break; + case UNKNOWNPROPERTY: + return UpdateStatus.Fail; + default: + return UpdateStatus.Success; + } + + return UpdateStatus.Success; + } + + /** + * Returns a null property + * @param property property name + * @return null property + */ + public Object getNullProperty(String property) { + return null; + } + + /** + * Void property get method + * @param property the property name + */ + public Object getPropertyVoid(String property) { + // TODO + return null; + } + + /* TODO */ + /** + * Void property set method + * @param property the property name + * @param value the property value + */ + public void setPropertyVoid(String property, Object value) { + // TODO + } + + /** + * @return the children + */ + public Integer[] getChildren() { + return children.toArray(new Integer[children.size()]); + } + + /** + * Adds a child. + * @param child the identifier of the added child. + */ + public void addChild(Integer child) { + children.add(0, child); + } + + /** + * Removes a child. + * @param child the identifier of the removed child. + */ + public void removeChild(Integer child) { + children.remove(child); + } + + /** + * @param children the children to set + */ + private UpdateStatus setChildren(List<Integer> children) { + this.children = children; + return UpdateStatus.Success; + } + + /** + * @param children the children to set + */ + public UpdateStatus setChildren(Integer[] children) { + this.children = new LinkedList<Integer>(Arrays.asList(children)); + return UpdateStatus.Success; + } + + /** + * @return the identifier + */ + public Integer getIdentifier() { + return identifier; + } + + /** + * @param identifier the identifier to set + */ + public UpdateStatus setIdentifier(Integer identifier) { + this.identifier = identifier; + return UpdateStatus.Success; + } + + /** + * @return the parent + */ + public Integer getParent() { + return parent; + } + + /** + * @param parent the parent to set + * @return TODO + */ + public UpdateStatus setParent(Integer parent) { + this.parent = parent; + return UpdateStatus.Success; + } + + /** + * @return the tag + */ + public String getTag() { + return tag; + } + + /** + * @param tag the tag to set + * @return TODO + */ + public UpdateStatus setTag(String tag) { + if (this.tag.equals(tag)) { + return UpdateStatus.NoChange; + } + + this.tag = tag; + return UpdateStatus.Success; + } + + /** + * @return the callback + */ + public String getCallbackString() { + return callback.getCommand(); + } + + /** + * @param callback the callback to set + * @return TODO + */ + public UpdateStatus setCallbackString(String callback) { + return this.callback.setCommand(callback); + } + + /** + * @return the callbackType + */ + public Integer getCallbackType() { + return callback.getCommandType(); + } + + /** + * @param callbackType the callbackType to set + * @return TODO + */ + public UpdateStatus setCallbackType(Integer callbackType) { + this.callback.setCommandType(callbackType); + return UpdateStatus.Success; + } + + /** + * Get parent Figure method + * Returns the identifier of the object's parent Figure + * If the object is a Figure, then returns its own identifier. + * To be done: use a member variable storing the up-to-date current parent Figure, + * returned instead of recursively ascending the hierarchy at each call. + * @return the parent Figure identifier + */ + public Integer getParentFigure() { + if (this instanceof Figure) { + return getIdentifier(); + } + + if (getParent() != 0 && GraphicController.getController().getObjectFromId(getParent()) != null) { + return GraphicController.getController().getObjectFromId(getParent()).getParentFigure(); + } + + /* No parent Figure found */ + return 0; + } + + /** + * Get parent Figure method + * Returns the identifier of the object's parent Figure + * If the object is a Figure, then returns its own identifier. + * To be done: use a member variable storing the up-to-date current parent Figure, + * returned instead of recursively ascending the hierarchy at each call. + * @return the parent Figure identifier + */ + public Integer getParentFrameOrFigure() { + if (this instanceof Figure || this instanceof Frame) { + return getIdentifier(); + } + + if (getParent() != 0 && GraphicController.getController().getObjectFromId(getParent()) != null) { + return GraphicController.getController().getObjectFromId(getParent()).getParentFrameOrFigure(); + } + + /* No parent Figure nor Frame found */ + return 0; + } + + /** + * Get parent Axes method + * Returns the identifier of the object's parent Axes + * If the object is an Axes, then returns its own identifier. + * To be done: use a member variable storing the up-to-date current parent Axes, + * returned instead of recursively ascending the hierarchy at each call. + * @return the parent Axes identifier + */ + public Integer getParentAxes() { + if (this instanceof Axes) { + return getIdentifier(); + } else { + if (getParent() != 0 && GraphicController.getController().getObjectFromId(getParent()) != null) { + return GraphicController.getController().getObjectFromId(getParent()).getParentAxes(); + } else { + /* No parent Axes found */ + return 0; + } + } + } + + /** + * Get has legend child method + * Returns a boolean indicating whether one of the object's direct children + * is a Legend object. Only one Legend is supposed to be present in the list. + * To be done: storing the property and updating it only when a Legend object + * is inserted or deleted instead of searching the children list when the + * property is queried. + * @return a Boolean indicating whether the object has a child Legend object or not + */ + public Boolean getHasLegendChild() { + for (int i = 0; i < children.size(); i++) { + GraphicObject currentObject = GraphicController.getController().getObjectFromId(children.get(i)); + + if (currentObject instanceof Legend) { + return true; + } + } + + return false; + } + + /** + * Returns the identifier of the object's direct child that is a Legend object. + * It returns an empty string if the object has no Legend in its children list + * (one Legend is supposed to be present at most). + * @return the object's child Legend object identifier, or an empty string if no child Legend found. + */ + public Integer getLegendChild() { + for (int i = 0; i < children.size(); i++) { + GraphicObject currentObject = GraphicController.getController().getObjectFromId(children.get(i)); + + if (currentObject instanceof Legend) { + return currentObject.getIdentifier(); + } + } + + /* No child legend found */ + return 0; + } + + /** + * Get selected child method + * @return the selected child + */ + public Integer getSelectedChild() { + return selectedChild; + } + + /** + * Set selected child method + * @param selectedChild the selected child to set + */ + public UpdateStatus setSelectedChild(Integer selectedChild) { + this.selectedChild = selectedChild; + return UpdateStatus.Success; + } + + /** + * Get visible method + * @return the visible + */ + public Boolean getVisible() { + return visible; + } + + /** + * Set visible method + * @param visible the visible to set + * @return TODO + */ + public UpdateStatus setVisible(Boolean visible) { + if (this.visible == visible) { + return UpdateStatus.NoChange; + } + + this.visible = visible; + return UpdateStatus.Success; + } + + /** + * Each type should name itself + * @return Type as String + */ + public abstract Integer getType(); + + /** + * isValid method + * @return valid + */ + public Boolean isValid() { + return valid; + } + + /** + * Set hidden method + * @param hidden the value to set + * @return TODO + */ + public UpdateStatus setHidden(Boolean hidden) { + this.hidden = hidden; + return UpdateStatus.Success; + } + + /** + * isHidden method + * @return hidden + */ + public Boolean isHidden() { + return hidden; + } + + /** + * Set valid method + * @param valid the validity to set + * @return TODO + */ + public UpdateStatus setValid(Boolean valid) { + this.valid = valid; + return UpdateStatus.Success; + } + + /** + * isReferenced method + * @return referenced + */ + public Boolean isReferenced() { + return referenced; + } + + /** + * Set referenced method + * @param referenced the reference status to set + * @return TODO + */ + public UpdateStatus setReferenced(Boolean referenced) { + this.referenced = referenced; + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java new file mode 100755 index 000000000..f5b430558 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java @@ -0,0 +1,419 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Bruno JOFRET + * Copyright (C) 2012-2014 - Scilab-Enterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +/* + * -=- This is a generated file, please do not edit by hand -=- + * -=- Please see properties definitions in -=- + * -=- SCI/modules/graphic_objects/src/scripts/propertiesMap.properties -=- + */ + +package org.scilab.modules.graphic_objects.graphicObject; + +public class GraphicObjectProperties { + + public static final int __GO_ARC__ = 0; + public static final int __GO_AXES__ = 1; + public static final int __GO_AXESMODEL__ = 2; + public static final int __GO_AXIS__ = 3; + public static final int __GO_CHAMP__ = 4; + public static final int __GO_COMPOUND__ = 5; + public static final int __GO_FAC3D__ = 6; + public static final int __GO_FEC__ = 7; + public static final int __GO_FIGURE__ = 8; + public static final int __GO_FIGUREMODEL__ = 9; + public static final int __GO_GRAYPLOT__ = 10; + public static final int __GO_LABEL__ = 11; + public static final int __GO_LEGEND__ = 12; + public static final int __GO_MATPLOT__ = 13; + public static final int __GO_PLOT3D__ = 14; + public static final int __GO_POLYLINE__ = 15; + public static final int __GO_RECTANGLE__ = 16; + public static final int __GO_SEGS__ = 17; + public static final int __GO_TEXT__ = 18; + public static final int __GO_UICONTROL__ = 19; + public static final int __GO_UIMENU__ = 20; + public static final int __GO_UICONTEXTMENU__ = 21; + public static final int __GO_CHILDREN__ = 22; + public static final int __GO_CHILDREN_COUNT__ = 23; + public static final int __GO_PARENT__ = 24; + public static final int __GO_USER_DATA__ = 25; + public static final int __GO_USER_DATA_SIZE__ = 26; + public static final int __GO_VISIBLE__ = 27; + public static final int __GO_HIDDEN__ = 28; + public static final int __GO_TYPE__ = 29; + public static final int __GO_DATA_MODEL__ = 30; + public static final int __GO_PARENT_FIGURE__ = 31; + public static final int __GO_PARENT_AXES__ = 32; + public static final int __GO_HAS_LEGEND_CHILD__ = 33; + public static final int __GO_LEGEND_CHILD__ = 34; + public static final int __GO_SELECTED_CHILD__ = 35; + public static final int __GO_CALLBACK__ = 36; + public static final int __GO_CALLBACKTYPE__ = 37; + public static final int __GO_DATA_MODEL_COORDINATES__ = 38; + public static final int __GO_DATA_MODEL_X__ = 39; + public static final int __GO_DATA_MODEL_Y__ = 40; + public static final int __GO_DATA_MODEL_Z__ = 41; + public static final int __GO_DATA_MODEL_X_COORDINATES_SHIFT__ = 42; + public static final int __GO_DATA_MODEL_Y_COORDINATES_SHIFT__ = 43; + public static final int __GO_DATA_MODEL_Z_COORDINATES_SHIFT__ = 44; + public static final int __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ = 45; + public static final int __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ = 46; + public static final int __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ = 47; + public static final int __GO_DATA_MODEL_NUM_ELEMENTS__ = 48; + public static final int __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ = 49; + public static final int __GO_DATA_MODEL_NUM_VERTICES_PER_GON__ = 50; + public static final int __GO_DATA_MODEL_NUM_GONS__ = 51; + public static final int __GO_DATA_MODEL_Z_COORDINATES_SET__ = 52; + public static final int __GO_DATA_MODEL_COLORS__ = 53; + public static final int __GO_DATA_MODEL_NUM_COLORS__ = 54; + public static final int __GO_DATA_MODEL_NUM_VERTICES__ = 55; + public static final int __GO_DATA_MODEL_NUM_INDICES__ = 56; + public static final int __GO_DATA_MODEL_INDICES__ = 57; + public static final int __GO_DATA_MODEL_VALUES__ = 58; + public static final int __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ = 59; + public static final int __GO_DATA_MODEL_FEC_ELEMENTS__ = 60; + public static final int __GO_DATA_MODEL_NUM_X__ = 61; + public static final int __GO_DATA_MODEL_NUM_Y__ = 62; + public static final int __GO_DATA_MODEL_NUM_Z__ = 63; + public static final int __GO_DATA_MODEL_GRID_SIZE__ = 64; + public static final int __GO_DATA_MODEL_X_DIMENSIONS__ = 65; + public static final int __GO_DATA_MODEL_Y_DIMENSIONS__ = 66; + public static final int __GO_MATPLOT_TRANSLATE__ = 67; + public static final int __GO_MATPLOT_SCALE__ = 68; + public static final int __GO_DATA_MODEL_MATPLOT_BOUNDS__ = 69; + public static final int __GO_DATA_MODEL_MATPLOT_TYPE__ = 70; + public static final int __GO_DATA_MODEL_MATPLOT_GL_TYPE__ = 71; + public static final int __GO_DATA_MODEL_MATPLOT_DATA_INFOS__ = 72; + public static final int __GO_DATA_MODEL_MATPLOT_DATA_TYPE__ = 73; + public static final int __GO_DATA_MODEL_MATPLOT_DATA_ORDER__ = 74; + public static final int __GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ = 75; + public static final int __GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ = 76; + public static final int __GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__ = 77; + public static final int __GO_REFERENCED__ = 78; + public static final int __GO_VALID__ = 79; + public static final int __GO_POSITION__ = 80; + public static final int __GO_SIZE__ = 81; + public static final int __GO_CANVAS__ = 82; + public static final int __GO_AUTORESIZE__ = 83; + public static final int __GO_VIEWPORT__ = 84; + public static final int __GO_AXES_SIZE__ = 85; + public static final int __GO_FIGURE_NAME__ = 86; + public static final int __GO_NAME__ = 87; + public static final int __GO_ID__ = 88; + public static final int __GO_INFO_MESSAGE__ = 89; + public static final int __GO_COLORMAP__ = 90; + public static final int __GO_COLORMAP_SIZE__ = 91; + public static final int __GO_RENDERING_MODE__ = 92; + public static final int __GO_PIXEL_DRAWING_MODE__ = 93; + public static final int __GO_ANTIALIASING__ = 94; + public static final int __GO_IMMEDIATE_DRAWING__ = 95; + public static final int __GO_BACKGROUND__ = 96; + public static final int __GO_EVENTHANDLER__ = 97; + public static final int __GO_EVENTHANDLER_NAME__ = 98; + public static final int __GO_EVENTHANDLER_ENABLE__ = 99; + public static final int __GO_TAG__ = 100; + public static final int __GO_ROTATION_TYPE__ = 101; + public static final int __GO_RESIZEFCN__ = 102; + public static final int __GO_CLOSEREQUESTFCN__ = 103; + public static final int __GO_DEFAULT_AXES__ = 104; + public static final int __GO_UPPER_LEFT_POINT__ = 105; + public static final int __GO_WIDTH__ = 106; + public static final int __GO_HEIGHT__ = 107; + public static final int __GO_START_ANGLE__ = 108; + public static final int __GO_END_ANGLE__ = 109; + public static final int __GO_ARC_DRAWING_METHOD__ = 110; + public static final int __GO_X_AXIS_VISIBLE__ = 111; + public static final int __GO_X_AXIS_REVERSE__ = 112; + public static final int __GO_X_AXIS_GRID_COLOR__ = 113; + public static final int __GO_X_AXIS_GRID_THICKNESS__ = 114; + public static final int __GO_X_AXIS_GRID_STYLE__ = 115; + public static final int __GO_X_AXIS_LABEL__ = 116; + public static final int __GO_X_AXIS_LOCATION__ = 117; + public static final int __GO_X_AXIS_LOG_FLAG__ = 118; + public static final int __GO_X_AXIS_TICKS__ = 119; + public static final int __GO_X_AXIS_FORMAT__ = 120; + public static final int __GO_X_AXIS_ST_FACTORS__ = 121; + public static final int __GO_X_AXIS_AUTO_TICKS__ = 122; + public static final int __GO_X_AXIS_NUMBER_TICKS__ = 123; + public static final int __GO_X_AXIS_TICKS_LOCATIONS__ = 124; + public static final int __GO_X_AXIS_TICKS_LABELS__ = 125; + public static final int __GO_X_AXIS_SUBTICKS__ = 126; + public static final int __GO_Y_AXIS_VISIBLE__ = 127; + public static final int __GO_Y_AXIS_REVERSE__ = 128; + public static final int __GO_Y_AXIS_GRID_COLOR__ = 129; + public static final int __GO_Y_AXIS_GRID_THICKNESS__ = 130; + public static final int __GO_Y_AXIS_GRID_STYLE__ = 131; + public static final int __GO_Y_AXIS_LABEL__ = 132; + public static final int __GO_Y_AXIS_LOCATION__ = 133; + public static final int __GO_Y_AXIS_LOG_FLAG__ = 134; + public static final int __GO_Y_AXIS_TICKS__ = 135; + public static final int __GO_Y_AXIS_FORMAT__ = 136; + public static final int __GO_Y_AXIS_ST_FACTORS__ = 137; + public static final int __GO_Y_AXIS_AUTO_TICKS__ = 138; + public static final int __GO_Y_AXIS_NUMBER_TICKS__ = 139; + public static final int __GO_Y_AXIS_TICKS_LOCATIONS__ = 140; + public static final int __GO_Y_AXIS_TICKS_LABELS__ = 141; + public static final int __GO_Y_AXIS_SUBTICKS__ = 142; + public static final int __GO_Z_AXIS_VISIBLE__ = 143; + public static final int __GO_Z_AXIS_REVERSE__ = 144; + public static final int __GO_Z_AXIS_GRID_COLOR__ = 145; + public static final int __GO_Z_AXIS_GRID_THICKNESS__ = 146; + public static final int __GO_Z_AXIS_GRID_STYLE__ = 147; + public static final int __GO_Z_AXIS_LABEL__ = 148; + public static final int __GO_Z_AXIS_LOCATION__ = 149; + public static final int __GO_Z_AXIS_LOG_FLAG__ = 150; + public static final int __GO_Z_AXIS_TICKS__ = 151; + public static final int __GO_Z_AXIS_FORMAT__ = 152; + public static final int __GO_Z_AXIS_ST_FACTORS__ = 153; + public static final int __GO_Z_AXIS_AUTO_TICKS__ = 154; + public static final int __GO_Z_AXIS_NUMBER_TICKS__ = 155; + public static final int __GO_Z_AXIS_TICKS_LOCATIONS__ = 156; + public static final int __GO_Z_AXIS_TICKS_LABELS__ = 157; + public static final int __GO_Z_AXIS_SUBTICKS__ = 158; + public static final int __GO_AUTO_SUBTICKS__ = 159; + public static final int __GO_GRID_POSITION__ = 160; + public static final int __GO_TITLE__ = 161; + public static final int __GO_AUTO_CLEAR__ = 162; + public static final int __GO_FILLED__ = 163; + public static final int __GO_CAMERA__ = 164; + public static final int __GO_VIEW__ = 165; + public static final int __GO_ISOVIEW__ = 166; + public static final int __GO_CUBE_SCALING__ = 167; + public static final int __GO_ROTATION_ANGLES__ = 168; + public static final int __GO_ROTATION_ANGLES_3D__ = 169; + public static final int __GO_BOX_TYPE__ = 170; + public static final int __GO_HIDDEN_AXIS_COLOR__ = 171; + public static final int __GO_X_TIGHT_LIMITS__ = 172; + public static final int __GO_Y_TIGHT_LIMITS__ = 173; + public static final int __GO_Z_TIGHT_LIMITS__ = 174; + public static final int __GO_DATA_BOUNDS__ = 175; + public static final int __GO_REAL_DATA_BOUNDS__ = 176; + public static final int __GO_ZOOM_ENABLED__ = 177; + public static final int __GO_ZOOM_BOX__ = 178; + public static final int __GO_AUTO_SCALE__ = 179; + public static final int __GO_FIRST_PLOT__ = 180; + public static final int __GO_MARGINS__ = 181; + public static final int __GO_AUTO_MARGINS__ = 182; + public static final int __GO_AXES_BOUNDS__ = 183; + public static final int __GO_CLIP_PROPERTY__ = 184; + public static final int __GO_CLIP_STATE__ = 185; + public static final int __GO_CLIP_BOX__ = 186; + public static final int __GO_CLIP_BOX_SET__ = 187; + public static final int __GO_LINE__ = 188; + public static final int __GO_LINE_MODE__ = 189; + public static final int __GO_LINE_STYLE__ = 190; + public static final int __GO_LINE_THICKNESS__ = 191; + public static final int __GO_LINE_COLOR__ = 192; + public static final int __GO_FILL_MODE__ = 193; + public static final int __GO_MARK__ = 194; + public static final int __GO_MARK_MODE__ = 195; + public static final int __GO_MARK_STYLE__ = 196; + public static final int __GO_MARK_SIZE_UNIT__ = 197; + public static final int __GO_MARK_SIZE__ = 198; + public static final int __GO_MARK_FOREGROUND__ = 199; + public static final int __GO_MARK_BACKGROUND__ = 200; + public static final int __GO_MARK_OFFSET__ = 201; + public static final int __GO_MARK_STRIDE__ = 202; + public static final int __GO_SELECTED__ = 203; + public static final int __GO_TICKS_DIRECTION__ = 204; + public static final int __GO_X_NUMBER_TICKS__ = 205; + public static final int __GO_Y_NUMBER_TICKS__ = 206; + public static final int __GO_X_TICKS_COORDS__ = 207; + public static final int __GO_Y_TICKS_COORDS__ = 208; + public static final int __GO_TICKS_COLOR__ = 209; + public static final int __GO_TICKS_SEGMENT__ = 210; + public static final int __GO_TICKS_STYLE__ = 211; + public static final int __GO_SUBTICKS__ = 212; + public static final int __GO_NUMBER_TICKS_LABELS__ = 213; + public static final int __GO_TICKS_LABELS__ = 214; + public static final int __GO_FORMATN__ = 215; + public static final int __GO_FONT__ = 216; + public static final int __GO_FONT_STYLE__ = 217; + public static final int __GO_FONT_SIZE__ = 218; + public static final int __GO_FONT_COLOR__ = 219; + public static final int __GO_FONT_FRACTIONAL__ = 220; + public static final int __GO_Z_BOUNDS__ = 221; + public static final int __GO_OUTSIDE_COLOR__ = 222; + public static final int __GO_COLOR_RANGE__ = 223; + public static final int __GO_DATA_MAPPING__ = 224; + public static final int __GO_FONT_ANGLE__ = 225; + public static final int __GO_AUTO_POSITION__ = 226; + public static final int __GO_CORNERS__ = 227; + public static final int __GO_AUTO_ROTATION__ = 228; + public static final int __GO_LINKS__ = 229; + public static final int __GO_LINKS_COUNT__ = 230; + public static final int __GO_LEGEND_LOCATION__ = 231; + public static final int __GO_MARKS_COUNT__ = 232; + public static final int __GO_LINE_WIDTH__ = 233; + public static final int __GO_CLOSED__ = 234; + public static final int __GO_ARROW_SIZE_FACTOR__ = 235; + public static final int __GO_POLYLINE_STYLE__ = 236; + public static final int __GO_INTERP_COLOR_VECTOR__ = 237; + public static final int __GO_INTERP_COLOR_VECTOR_SET__ = 238; + public static final int __GO_INTERP_COLOR_MODE__ = 239; + public static final int __GO_X_SHIFT__ = 240; + public static final int __GO_Y_SHIFT__ = 241; + public static final int __GO_Z_SHIFT__ = 242; + public static final int __GO_BAR_WIDTH__ = 243; + public static final int __GO_SURFACE_MODE__ = 244; + public static final int __GO_COLOR_MODE__ = 245; + public static final int __GO_COLOR_FLAG__ = 246; + public static final int __GO_ALIGNMENT__ = 247; + public static final int __GO_BOX__ = 248; + public static final int __GO_TEXT_BOX__ = 249; + public static final int __GO_TEXT_BOX_MODE__ = 250; + public static final int __GO_AUTO_DIMENSIONING__ = 251; + public static final int __GO_FORMATTED_TEXT__ = 252; + public static final int __GO_TEXT_ARRAY_DIMENSIONS__ = 253; + public static final int __GO_TEXT_STRINGS__ = 254; + public static final int __GO_BASE__ = 255; + public static final int __GO_BASE_X__ = 256; + public static final int __GO_BASE_Y__ = 257; + public static final int __GO_BASE_Z__ = 258; + public static final int __GO_DIRECTION__ = 259; + public static final int __GO_DIRECTION_X__ = 260; + public static final int __GO_DIRECTION_Y__ = 261; + public static final int __GO_DIRECTION_Z__ = 262; + public static final int __GO_ARROW_SIZE__ = 263; + public static final int __GO_SEGS_COLORS__ = 264; + public static final int __GO_COLORED__ = 265; + public static final int __GO_ARROWS__ = 266; + public static final int __GO_NUMBER_ARROWS__ = 267; + public static final int __GO_CHAMP_DIMENSIONS__ = 268; + public static final int __GO_BOUNDING_BOX__ = 269; + public static final int __GO_MAX_LENGTH__ = 270; + public static final int __GO_MAX_USABLE_LENGTH__ = 271; + public static final int __GO_HIDDEN_COLOR__ = 272; + public static final int __GO_STYLE__ = 273; + public static final int __GO_UI_CHECKBOX__ = 274; + public static final int __GO_UI_EDIT__ = 275; + public static final int __GO_UI_SPINNER__ = 276; + public static final int __GO_UI_FRAME__ = 277; + public static final int __GO_UI_FRAME_SCROLLABLE__ = 278; + public static final int __GO_UI_IMAGE__ = 279; + public static final int __GO_UI_LISTBOX__ = 280; + public static final int __GO_UI_POPUPMENU__ = 281; + public static final int __GO_UI_PUSHBUTTON__ = 282; + public static final int __GO_UI_RADIOBUTTON__ = 283; + public static final int __GO_UI_SLIDER__ = 284; + public static final int __GO_UI_TABLE__ = 285; + public static final int __GO_UI_TEXT__ = 286; + public static final int __GO_UI_LAYER__ = 287; + public static final int __GO_UI_BACKGROUNDCOLOR__ = 288; + public static final int __GO_UI_ENABLE__ = 289; + public static final int __GO_UI_FONTANGLE__ = 290; + public static final int __GO_UI_FONTNAME__ = 291; + public static final int __GO_UI_FONTSIZE__ = 292; + public static final int __GO_UI_FONTUNITS__ = 293; + public static final int __GO_UI_FONTWEIGHT__ = 294; + public static final int __GO_UI_FOREGROUNDCOLOR__ = 295; + public static final int __GO_UI_HORIZONTALALIGNMENT__ = 296; + public static final int __GO_UI_LISTBOXTOP__ = 297; + public static final int __GO_UI_LISTBOXTOP_SIZE__ = 298; + public static final int __GO_UI_MAX__ = 299; + public static final int __GO_UI_MIN__ = 300; + public static final int __GO_UI_RELIEF__ = 301; + public static final int __GO_UI_STRING__ = 302; + public static final int __GO_UI_TAB_STRING__ = 303; + public static final int __GO_UI_STRING_SIZE__ = 304; + public static final int __GO_UI_STRING_COLNB__ = 305; + public static final int __GO_UI_TOOLTIPSTRING__ = 306; + public static final int __GO_UI_TOOLTIPSTRING_SIZE__ = 307; + public static final int __GO_UI_SLIDERSTEP__ = 308; + public static final int __GO_UI_UNITS__ = 309; + public static final int __GO_UI_VALUE__ = 310; + public static final int __GO_UI_TAB_VALUE__ = 311; + public static final int __GO_UI_VALUE_SIZE__ = 312; + public static final int __GO_UI_VERTICALALIGNMENT__ = 313; + public static final int __GO_UIPARENTMENU__ = 314; + public static final int __GO_UICHILDMENU__ = 315; + public static final int __GO_UICHECKEDMENU__ = 316; + public static final int __GO_UI_CHECKED__ = 317; + public static final int __GO_UI_LABEL__ = 318; + public static final int __GO_UI_MNEMONIC__ = 319; + public static final int __GO_UI_ACCELERATOR__ = 320; + public static final int __GO_UI_SEPARATOR__ = 321; + public static final int __GO_UI_ICON__ = 322; + public static final int __GO_CONSOLE__ = 323; + public static final int __GO_SHOWHIDDENHANDLES__ = 324; + public static final int __GO_SHOWHIDDENPROPERTIES__ = 325; + public static final int __GO_USEDEPRECATEDLF__ = 326; + public static final int __GO_WAITBAR__ = 327; + public static final int __GO_PROGRESSIONBAR__ = 328; + public static final int __GO_UI_MESSAGE__ = 329; + public static final int __GO_UI_MESSAGE_SIZE__ = 330; + public static final int __GO_DATATIP__ = 331; + public static final int __GO_DATATIP_DATA__ = 332; + public static final int __GO_DATATIP_ORIENTATION__ = 333; + public static final int __GO_DATATIP_3COMPONENT__ = 334; + public static final int __GO_DATATIP_AUTOORIENTATION__ = 335; + public static final int __GO_DATATIP_INTERP_MODE__ = 336; + public static final int __GO_DATATIP_DISPLAY_FNC__ = 337; + public static final int __GO_DATATIP_BOX_MODE__ = 338; + public static final int __GO_DATATIP_LABEL_MODE__ = 339; + public static final int __GO_DATATIP_MARK__ = 340; + public static final int __GO_AMBIENTCOLOR__ = 341; + public static final int __GO_DIFFUSECOLOR__ = 342; + public static final int __GO_SPECULARCOLOR__ = 343; + public static final int __GO_COLOR_MATERIAL__ = 344; + public static final int __GO_MATERIAL_SHININESS__ = 345; + public static final int __GO_LIGHT__ = 346; + public static final int __GO_LIGHT_TYPE__ = 347; + public static final int __GO_DATATIPS__ = 348; + public static final int __GO_DATATIPS_COUNT__ = 349; + public static final int __GO_DATATIP_INDEXES__ = 350; + public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION__ = 351; + public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ = 352; + public static final int __GO_RESIZE__ = 353; + public static final int __GO_TOOLBAR__ = 354; + public static final int __GO_TOOLBAR_VISIBLE__ = 355; + public static final int __GO_MENUBAR__ = 356; + public static final int __GO_MENUBAR_VISIBLE__ = 357; + public static final int __GO_INFOBAR_VISIBLE__ = 358; + public static final int __GO_DOCKABLE__ = 359; + public static final int __GO_LAYOUT__ = 360; + public static final int __GO_LAYOUT_SET__ = 361; + public static final int __GO_UI_TAB__ = 362; + public static final int __GO_UI_GRIDBAG_GRID__ = 363; + public static final int __GO_UI_GRIDBAG_WEIGHT__ = 364; + public static final int __GO_UI_GRIDBAG_FILL__ = 365; + public static final int __GO_UI_GRIDBAG_ANCHOR__ = 366; + public static final int __GO_UI_GRIDBAG_PADDING__ = 367; + public static final int __GO_UI_GRIDBAG_PREFERREDSIZE__ = 368; + public static final int __GO_UI_GRID_GRID__ = 369; + public static final int __GO_UI_GRID_PADDING__ = 370; + public static final int __GO_UI_BORDER_POSITION__ = 371; + public static final int __GO_UI_BORDER_PREFERREDSIZE__ = 372; + public static final int __GO_GRID_OPT_GRID__ = 373; + public static final int __GO_GRID_OPT_PADDING__ = 374; + public static final int __GO_BORDER_OPT_PADDING__ = 375; + public static final int __GO_UI_FRAME_BORDER__ = 376; + public static final int __GO_UI_FRAME_BORDER_COLOR__ = 377; + public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ = 378; + public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ = 379; + public static final int __GO_UI_FRAME_BORDER_IN_BORDER__ = 380; + public static final int __GO_UI_FRAME_BORDER_JUSTIFICATION__ = 381; + public static final int __GO_UI_FRAME_BORDER_OUT_BORDER__ = 382; + public static final int __GO_UI_FRAME_BORDER_ROUNDED__ = 383; + public static final int __GO_UI_FRAME_BORDER_SHADOW_IN__ = 384; + public static final int __GO_UI_FRAME_BORDER_SHADOW_OUT__ = 385; + public static final int __GO_UI_FRAME_BORDER_TITLE__ = 386; + public static final int __GO_UI_FRAME_BORDER_POSITION__ = 387; + public static final int __GO_UI_FRAME_BORDER_STYLE__ = 388; + public static final int __GO_UI_GROUP_NAME__ = 389; + public static final int __GO_UI_TITLE_POSITION__ = 390; + public static final int __GO_UI_TITLE_SCROLL__ = 391; + public static final int __GO_UI_FRAME_BORDER_TYPE__ = 392; + public static final int __GO_UI_SCROLLABLE__ = 393; + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/Visitor.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/Visitor.java new file mode 100755 index 000000000..ad202da41 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/Visitor.java @@ -0,0 +1,80 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2010 - DIGITEO - Pierre LANDO + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicObject; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.arc.Arc; +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.axis.Axis; +import org.scilab.modules.graphic_objects.compound.Compound; +import org.scilab.modules.graphic_objects.datatip.Datatip; +import org.scilab.modules.graphic_objects.fec.Fec; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.imageplot.Grayplot; +import org.scilab.modules.graphic_objects.imageplot.Matplot; +import org.scilab.modules.graphic_objects.label.Label; +import org.scilab.modules.graphic_objects.legend.Legend; +import org.scilab.modules.graphic_objects.polyline.Polyline; +import org.scilab.modules.graphic_objects.rectangle.Rectangle; +import org.scilab.modules.graphic_objects.surface.Fac3d; +import org.scilab.modules.graphic_objects.surface.Plot3d; +import org.scilab.modules.graphic_objects.textObject.Text; +import org.scilab.modules.graphic_objects.uicontrol.frame.Frame; +import org.scilab.modules.graphic_objects.vectfield.Arrow; +import org.scilab.modules.graphic_objects.vectfield.Champ; +import org.scilab.modules.graphic_objects.vectfield.Segs; + +/** + * @author Pierre Lando + */ +public interface Visitor { + + void visit(Axes axes); + + void visit(Arc arc); + + void visit(Axis axis); + + void visit(Compound compound); + + void visit(Fec fec) throws ObjectRemovedException; + + void visit(Figure figure); + + void visit(Frame frame); + + void visit(Grayplot grayplot) throws ObjectRemovedException; + + void visit(Matplot matplot) throws ObjectRemovedException; + + void visit(Label label); + + void visit(Legend legend); + + void visit(Polyline polyline) throws ObjectRemovedException; + + void visit(Rectangle rectangle); + + void visit(Fac3d fac3d) throws ObjectRemovedException; + + void visit(Plot3d plot3d) throws ObjectRemovedException; + + void visit(Text text); + + void visit(Datatip datatip); + + void visit(Arrow arrow); + + void visit(Champ champ) throws ObjectRemovedException; + + void visit(Segs segs) throws ObjectRemovedException; +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/FlattenTreeView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/FlattenTreeView.java new file mode 100755 index 000000000..5e6196c8e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/FlattenTreeView.java @@ -0,0 +1,74 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Scilab Enterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicView; + +import javax.swing.tree.DefaultMutableTreeNode; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; + +public class FlattenTreeView extends TreeView { + private static FlattenTreeView me; + + private FlattenTreeView() { + super(); + } + + public static void createView() { + if (me == null) { + me = new FlattenTreeView(); + GraphicController.getController().register(me); + me.show(); + } + } + + public static void deleteView() { + if (me != null) { + me.hide(); + GraphicController.getController().unregister(me); + me = null; + } + } + + public void createObject(Integer id) { + try { + GraphicObject graphiObject = GraphicController.getController().getObjectFromId(id); + //if (!(graphiObject instanceof Uimenu)) { + DefaultMutableTreeNode node = new DefaultMutableTreeNode(new GraphicObjectNode(graphiObject)); + + allObjects.put(id, node); + top.add(node); + topModel.nodeStructureChanged(top); + //} + } catch (Exception e) { + //e.printStackTrace(); + } + } + + public void deleteObject(Integer id) { + try { + DefaultMutableTreeNode objectNode = allObjects.get(id); + if (objectNode != null) { + DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) objectNode.getParent(); + objectNode.removeFromParent(); + allObjects.remove(id); + topModel.nodeStructureChanged(parentNode); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void updateObject(Integer id, int property) { + + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GedTreeView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GedTreeView.java new file mode 100755 index 000000000..4360f82c9 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GedTreeView.java @@ -0,0 +1,91 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Scilab Enterprises - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicView; + +import javax.swing.tree.DefaultMutableTreeNode; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; + +public class GedTreeView extends TreeView { + + private static GedTreeView me; + + private GedTreeView() { + super(); + } + + public static GedTreeView create() { + if (me == null) { + me = new GedTreeView(); + } + return me; + } + + public void createObject(Integer id) { + try { + GraphicObject graphiObject = GraphicController.getController().getObjectFromId(id); + DefaultMutableTreeNode node = new DefaultMutableTreeNode(new GraphicObjectNode(graphiObject)); + + allObjects.put(id, node); + top.add(node); + topModel.nodeStructureChanged(top); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void deleteObject(Integer id) { + try { + DefaultMutableTreeNode objectNode = allObjects.get(id); + if (objectNode != null) { + DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) objectNode.getParent(); + objectNode.removeFromParent(); + allObjects.remove(id); + topModel.nodeStructureChanged(parentNode); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void updateObject(Integer id, int property) { + + DefaultMutableTreeNode objectNode = allObjects.get(id); + /* + * Update parent property + */ + if (objectNode != null && property == GraphicObjectProperties.__GO_PARENT__) { + DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) objectNode.getParent(); + + if (parentNode != null) { + // Remove from old parent + objectNode.removeFromParent(); + topModel.nodeStructureChanged(parentNode); + + Integer parentUID = (Integer) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_PARENT__); + // Retrieve new Parent + DefaultMutableTreeNode newParentNode = allObjects.get(parentUID); + + // If there is no more parent, leave object at top level + if (newParentNode == null) { + newParentNode = top; + } + + newParentNode.add(objectNode); + topModel.nodeStructureChanged(newParentNode); + } + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GraphicView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GraphicView.java new file mode 100755 index 000000000..b820c9889 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GraphicView.java @@ -0,0 +1,39 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicView; + +import java.util.EventListener; + +public interface GraphicView extends EventListener { + + /** + * Notify an object with ID : id + * has been updated. + * @param id + */ + void updateObject(Integer id, int property); + + /** + * Notify an object with ID : id + * has been created. + * @param id + */ + void createObject(Integer id); + + /** + * Notify an object with ID : id + * has been deleted. + * @param id + */ + void deleteObject(Integer id); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GuiLogView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GuiLogView.java new file mode 100755 index 000000000..237b8d8f2 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GuiLogView.java @@ -0,0 +1,80 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicView; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; + +import javax.swing.JEditorPane; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.text.Document; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; + +public class GuiLogView implements GraphicView { + private static GuiLogView me; + private JEditorPane htmlLogPane; + private JFrame frame; + + public static GuiLogView createGuiLogView() { + if (me == null) { + me = new GuiLogView(); + } + return me; + } + + private GuiLogView() { + frame = new JFrame("GuiLogView"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + htmlLogPane = new JEditorPane(); + htmlLogPane.setEditable(false); + JScrollPane logView = new JScrollPane(htmlLogPane); + frame.setContentPane(logView); + frame.setVisible(false); + frame.setSize(800, 600); + } + + public void show() { + frame.setVisible(true); + } + + public void createObject(Integer id) { + try { + int objectType = (Integer) GraphicController.getController().getProperty(id, __GO_TYPE__); + Document doc = htmlLogPane.getDocument(); + doc.insertString(doc.getLength(), "+++" + id + " Object Created type is " + objectType + ".\n", null); + htmlLogPane.setCaretPosition(doc.getLength()); + } catch (Exception e) { + e.printStackTrace(); + } + } + public void deleteObject(Integer id) { + try { + Document doc = htmlLogPane.getDocument(); + doc.insertString(doc.getLength(), "---" + id + " Object Deleted.\n", null); + htmlLogPane.setCaretPosition(doc.getLength()); + } catch (Exception e) { + e.printStackTrace(); + } + } + public void updateObject(Integer id, int property) { + try { + Document doc = htmlLogPane.getDocument(); + doc.insertString(doc.getLength(), "===" + id + " Object Property " + property + " Updated.\n", null); + htmlLogPane.setCaretPosition(doc.getLength()); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/LogView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/LogView.java new file mode 100755 index 000000000..c9cc0b7c7 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/LogView.java @@ -0,0 +1,70 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.graphicView; + +import java.lang.reflect.Field; +import java.util.HashMap; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; + +public class LogView implements GraphicView { + + private static LogView me = null; + + private LogView() {} + + public static void createLogView() { + if (me == null) { + me = new LogView(); + GraphicController.getController().register(me); + } + } + + public static void deleteLogView() { + if (me != null) { + GraphicController.getController().unregister(me); + me = null; + } + } + + public static HashMap<Integer, String> pierreDeRosette = new HashMap<Integer, String>(); + + static { + Field[] fields = GraphicObjectProperties.class.getFields(); + for(int i = 0 ; i < fields.length ; ++i) { + try { + pierreDeRosette.put(fields[i].getInt(null), fields[i].getName()); + } catch (Exception e){ + e.printStackTrace(); + } + } + } + + public void createObject(Integer id) { + int objectType = (Integer) GraphicController.getController().getProperty(id, __GO_TYPE__); + System.out.println("+++ " + id + " Object Created type is " + pierreDeRosette.get(objectType) + "."); + } + + public void deleteObject(Integer id) { + System.out.println("--- " + id + " Object Deleted."); + + } + + public void updateObject(Integer id, int property) { + System.out.println("=== " + id + " Object Property " + pierreDeRosette.get(property) + " Updated."); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/ScilabView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/ScilabView.java new file mode 100755 index 000000000..ea8dc53ff --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/ScilabView.java @@ -0,0 +1,57 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicView; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PARENT__; + +import org.scilab.modules.graphic_objects.ScilabNativeView; + +public class ScilabView extends ScilabNativeView implements GraphicView { + + private static ScilabView me; + + public ScilabView() { + } + + public static ScilabView getScilabView() { + if (me == null) { + me = new ScilabView(); + } + return me; + } + + public void createObject(Integer id) { + ScilabNativeView__createObject(id); + } + + public void deleteObject(Integer id) { + ScilabNativeView__deleteObject(id); + } + + public void updateObject(Integer id, int property) { + switch (property) { + case __GO_ID__ : + case __GO_CHILDREN__ : + case __GO_PARENT__ : + case __GO_TAG__ : { + ScilabNativeView__updateObject(id, property); + break; + } + default : { + break; + } + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/TreeView.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/TreeView.java new file mode 100755 index 000000000..c27087a56 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/TreeView.java @@ -0,0 +1,218 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +package org.scilab.modules.graphic_objects.graphicView; + +import java.awt.Dimension; +import java.awt.GridLayout; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import javax.swing.JEditorPane; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.JTree; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeSelectionModel; + +import org.scilab.modules.graphic_objects.contouredObject.ContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder; + +public abstract class TreeView implements GraphicView, TreeSelectionListener { + + protected Map<Integer, DefaultMutableTreeNode> allObjects = new ConcurrentHashMap<Integer, DefaultMutableTreeNode>(); + protected DefaultTreeModel topModel = null; + protected DefaultMutableTreeNode top = new DefaultMutableTreeNode("Graphic Objects"); + private JTree tree; + private JEditorPane htmlDetailPane; + private JFrame frame; + + public void show() { + frame.setVisible(true); + } + + public void hide() { + frame.setVisible(false); + } + + protected TreeView() { + frame = new JFrame("TreeView"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + JPanel panel = new JPanel(new GridLayout(1, 0)); + + topModel = new DefaultTreeModel(top); + tree = new JTree(topModel); + tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + tree.addTreeSelectionListener(this); + tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + + + //Listen for when the selection changes. + tree.addTreeSelectionListener(this); + + + Dimension minDims = new Dimension(400, 300); + //Create the scroll pane and add the tree to it. + JScrollPane treeView = new JScrollPane(tree); + treeView.setMinimumSize(minDims); + + //Create the HTML detail viewing pane. + htmlDetailPane = new JEditorPane(); + htmlDetailPane.setEditable(false); + htmlDetailPane.setContentType("text/html"); + JScrollPane htmlView = new JScrollPane(htmlDetailPane); + + //Add the scroll panes to a split pane. + JSplitPane treeDetailPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); + //treeDetailPane.setLeftComponent(fTreeView); + treeDetailPane.setLeftComponent(treeView); + treeDetailPane.setRightComponent(htmlView); + + treeDetailPane.setDividerLocation(100); + treeDetailPane.setPreferredSize(new Dimension(1200, 600)); + + //Add the split pane to this panel. + panel.add(treeDetailPane); + frame.add(panel); + frame.setVisible(false); + frame.setSize(1200, 600); + } + + public abstract void createObject(Integer id); + public abstract void deleteObject(Integer id) ; + public abstract void updateObject(Integer id, int property); + + /* + * Inner class to wrap GraphicObject in a Node. + */ + protected class GraphicObjectNode { + private GraphicObject graphicObject; + + public GraphicObjectNode(GraphicObject object) { + this.graphicObject = object; + } + + public String toString() { + return typeToString(graphicObject.getType()) + " : @" + graphicObject.getIdentifier().toString(); + } + + public String toHTML() { + StringBuffer strBuff = new StringBuffer(); + strBuff.append("<html><body>"); + strBuff.append("<h1>Graphic Object of type: " + typeToString(graphicObject.getType()) + "</h1>"); + strBuff.append("<h2> Id : " + graphicObject.getIdentifier() + "</h2>"); + strBuff.append("<table border=\"1\">"); + strBuff.append("<tr><th>Property Name</th><th>Value</th></tr>"); + // Graphic Object + for (GraphicObject.GraphicObjectPropertyType goProperty : GraphicObject.GraphicObjectPropertyType.values()) { + strBuff.append("<tr><td>"); + strBuff.append(goProperty); + strBuff.append("</td><td>"); + Object values = graphicObject.getProperty(goProperty); + if (values instanceof String[]) { + String[] strings = (String []) values; + strBuff.append("{"); + for (int i = 0; i < strings.length ; ++i) { + strBuff.append(strings[i] + ","); + } + strBuff.append("}"); + } else if (values instanceof Integer[]) { + Integer[] ints = (Integer []) values; + strBuff.append("{"); + for (int i = 0; i < ints.length ; ++i) { + strBuff.append(ints[i] + ","); + } + strBuff.append("}"); + } else if (values instanceof Double[]) { + Double[] vals = (Double []) values; + strBuff.append("{"); + for (int i = 0; i < vals.length ; ++i) { + strBuff.append(vals[i] + ","); + } + strBuff.append("}"); + } else { + if (values != null) { + if (values.getClass().getPackage().getName().contains("scilab")) { + strBuff.append(values.getClass().getCanonicalName()); + } else { + strBuff.append(values.toString()); + } + } else { + strBuff.append("??? NULL ???"); + } + } + strBuff.append("</td></tr>"); + } + + // ContouredObject + if (graphicObject instanceof ContouredObject) { + for (ContouredObject.ContouredObjectPropertyType goProperty : ContouredObject.ContouredObjectPropertyType.values()) { + strBuff.append("<tr><td>"); + strBuff.append(goProperty); + strBuff.append("</td><td>"); + strBuff.append(graphicObject.getProperty(goProperty)); + strBuff.append("</td></tr>"); + } + } + + // UiControl + if (graphicObject instanceof Uicontrol) { + Uicontrol uiControl = (Uicontrol) graphicObject; + strBuff.append("<tr><td>STYLE</td><td>" + typeToString(uiControl.getStyle()) + "</td>"); + strBuff.append("<tr><td>LAYOUT</td><td>" + uiControl.getLayoutAsEnum() + "</td>"); + strBuff.append("<tr><td>GROUP NAME</td><td>" + uiControl.getGroupName() + "</td>"); + strBuff.append("<tr><td>FRAME_BORDER</td><td>" + uiControl.getFrameBorder() + "</td>"); + } + + if (graphicObject instanceof FrameBorder) { + FrameBorder frameBorder = (FrameBorder) graphicObject; + strBuff.append("<tr><td>STYLE</td><td>" + frameBorder.getStyleAsEnum().toString() + "</td>"); + } + + strBuff.append("</table>"); + strBuff.append("</body></html>"); + return strBuff.toString(); + } + + private String typeToString(Integer key) { + return LogView.pierreDeRosette.get(key); + } + } + + + + /** Required by TreeSelectionListener interface. */ + public void valueChanged(TreeSelectionEvent e) { + Object node = tree.getLastSelectedPathComponent(); + + if (node == null || !(node instanceof DefaultMutableTreeNode)) { + htmlDetailPane.setText(""); + return; + } + + Object nodeInfo = ((DefaultMutableTreeNode) node).getUserObject(); + if (nodeInfo == null || !(nodeInfo instanceof GraphicObjectNode)) { + htmlDetailPane.setText(""); + return; + } + GraphicObjectNode graphicObject = (GraphicObjectNode) nodeInfo; + htmlDetailPane.setText(graphicObject.toHTML()); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Grayplot.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Grayplot.java new file mode 100755 index 000000000..754c7e773 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Grayplot.java @@ -0,0 +1,144 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.imageplot; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Grayplot class + * @author Manuel JULIACHS + */ +public class Grayplot extends Imageplot { + /* TBD: properties relative to the data model */ + /** Grayplot properties names */ + private enum GrayplotProperty { DATAMAPPING }; + + /** Data mapping */ + private enum DataMapping { SCALED, DIRECT; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the data mapping enum + */ + public static DataMapping intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return DataMapping.SCALED; + case 1: + return DataMapping.DIRECT; + default: + return null; + } + } + } + + /** Specifies how colors are mapped to values */ + private DataMapping dataMapping; + + /** Constructor */ + public Grayplot() { + super(); + dataMapping = DataMapping.DIRECT; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + if (propertyName == __GO_DATA_MAPPING__) { + return GrayplotProperty.DATAMAPPING; + } else { + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == GrayplotProperty.DATAMAPPING) { + return getDataMapping(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == GrayplotProperty.DATAMAPPING) { + setDataMapping((Integer) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the dataMapping + */ + public Integer getDataMapping() { + return getDataMappingAsEnum().ordinal(); + } + + /** + * @return the dataMapping + */ + public DataMapping getDataMappingAsEnum() { + return dataMapping; + } + + /** + * @param dataMapping the dataMapping to set + */ + public UpdateStatus setDataMapping(Integer dataMapping) { + setDataMappingAsEnum(DataMapping.intToEnum(dataMapping)); + return UpdateStatus.Success; + } + + /** + * @param dataMapping the dataMapping to set + */ + public UpdateStatus setDataMappingAsEnum(DataMapping dataMapping) { + this.dataMapping = dataMapping; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_GRAYPLOT__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Imageplot.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Imageplot.java new file mode 100755 index 000000000..fd921f2d5 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Imageplot.java @@ -0,0 +1,106 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.imageplot; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MATPLOT_SCALE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MATPLOT_TRANSLATE__; + +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * ImagePlot class + * @author Manuel JULIACHS + */ +public abstract class Imageplot extends ClippableContouredObject { + // TBD + // Data -> Data Model + /** Grayplot properties names */ + private enum ImageplotProperty { SCALE, TRANSLATE }; + // Methods: to be done + + private Double[] scale = {1.0, 1.0}; + private Double[] translate = {0.5, 0.5}; + + /** Constructor */ + public Imageplot() { + super(); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_MATPLOT_SCALE__ : + return ImageplotProperty.SCALE; + case __GO_MATPLOT_TRANSLATE__ : + return ImageplotProperty.TRANSLATE; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ImageplotProperty.TRANSLATE) { + return getTranslate(); + } else if (property == ImageplotProperty.SCALE) { + return getScale(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ImageplotProperty.TRANSLATE) { + setTranslate((Double[]) value); + } else if (property == ImageplotProperty.SCALE) { + setScale((Double[]) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + public Double[] getScale() { + return new Double[] {scale[0], scale[1]}; + } + + public UpdateStatus setScale(Double[] scale) { + this.scale = scale; + return UpdateStatus.Success; + } + + public Double[] getTranslate() { + return new Double[] {translate[0], translate[1]}; + } + + public UpdateStatus setTranslate(Double[] translate) { + this.translate = translate; + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Matplot.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Matplot.java new file mode 100755 index 000000000..1b5eee104 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Matplot.java @@ -0,0 +1,43 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.imageplot; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * Matplot class + * @author Manuel JULIACHS + */ +public class Matplot extends Imageplot { + // Methods: to be done + + /** Constructor */ + public Matplot() { + super(); + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_MATPLOT__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/label/Label.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/label/Label.java new file mode 100755 index 000000000..4389bd5f8 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/label/Label.java @@ -0,0 +1,281 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.label; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.textObject.TextObject; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Label class + * @author Manuel JULIACHS + */ +public class Label extends TextObject { + /** Label properties names */ + public enum LabelProperty { FONTANGLE, AUTOPOSITION, POSITION, CORNERS, AUTOROTATION }; + + /** Text orientation */ + private double fontAngle; + + /** Specifies whether the label position is automatically computed or not */ + private boolean autoPosition; + + /** 3-element array: (x, y, z) position */ + private double[] position; + + /** + * The 3D coordinates of the Label's four corners. + * They are stored in clockwise order, starting from the lower-left corner. + */ + private double[][] corners; + + /** Specifies whether the label orientation is automatically computed or not */ + private boolean autoRotation; + + /** Constructor */ + public Label() { + super(); + fontAngle = 0.0; + autoPosition = false; + position = new double[3]; + corners = new double[4][3]; + autoRotation = false; + + Integer[] textDimensions = {1, 1}; + String[] textStrings = {""}; + + setTextArrayDimensions(textDimensions); + setTextStrings(textStrings); + } + + /** + * Clone method + */ + public Label clone() { + Label copy = (Label) super.clone(); + + copy.position = new double[3]; + for (int i = 0; i < position.length; i++) { + copy.position[i] = position[i]; + } + + return copy; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_FONT_ANGLE__ : + return LabelProperty.FONTANGLE; + case __GO_AUTO_POSITION__ : + return LabelProperty.AUTOPOSITION; + case __GO_POSITION__ : + return LabelProperty.POSITION; + case __GO_CORNERS__ : + return LabelProperty.CORNERS; + case __GO_AUTO_ROTATION__ : + return LabelProperty.AUTOROTATION; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == LabelProperty.FONTANGLE) { + return getFontAngle(); + } else if (property == LabelProperty.AUTOPOSITION) { + return getAutoPosition(); + } else if (property == LabelProperty.POSITION) { + return getPosition(); + } else if (property == LabelProperty.CORNERS) { + return getCorners(); + } else if (property == LabelProperty.AUTOROTATION) { + return getAutoRotation(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == LabelProperty.FONTANGLE) { + setFontAngle((Double) value); + } else if (property == LabelProperty.AUTOPOSITION) { + setAutoPosition((Boolean) value); + } else if (property == LabelProperty.POSITION) { + setPosition((Double[]) value); + } else if (property == LabelProperty.CORNERS) { + setCorners((Double[]) value); + } else if (property == LabelProperty.AUTOROTATION) { + setAutoRotation((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the autoPosition + */ + public Boolean getAutoPosition() { + return autoPosition; + } + + /** + * @param autoPosition the autoPosition to set + */ + public UpdateStatus setAutoPosition(Boolean autoPosition) { + this.autoPosition = autoPosition; + return UpdateStatus.Success; + } + + /** + * @return the autoRotation + */ + public Boolean getAutoRotation() { + return autoRotation; + } + + /** + * @param autoRotation the autoRotation to set + */ + public UpdateStatus setAutoRotation(Boolean autoRotation) { + this.autoRotation = autoRotation; + return UpdateStatus.Success; + } + + /** + * @return the fontAngle + */ + public Double getFontAngle() { + return fontAngle; + } + + /** + * @param fontAngle the fontAngle to set + */ + public UpdateStatus setFontAngle(Double fontAngle) { + if (autoRotation == true) { + autoRotation = false; + } + + this.fontAngle = fontAngle; + return UpdateStatus.Success; + } + + /** + * @return the position + */ + public Double[] getPosition() { + Double[] retPosition = new Double[3]; + + retPosition[0] = position[0]; + retPosition[1] = position[1]; + retPosition[2] = position[2]; + + return retPosition; + } + + /** + * @param position the position to set + */ + public UpdateStatus setPosition(Double[] position) { + if (autoPosition == true) { + autoPosition = false; + } + + this.position[0] = position[0]; + this.position[1] = position[1]; + this.position[2] = position[2]; + return UpdateStatus.Success; + } + + /** + * Returns the coordinates of the Label's corners + * Coordinates are returned as consecutive (x,y,z) triplets, each triplet + * corresponding to one corner, starting from the lower-left one and + * going in clockwise order. + * @return the corners' coordinates (12-element array) + */ + public Double[] getCorners() { + Double[] retCorners = new Double[12]; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 3; j++) { + retCorners[3 * i + j] = corners[i][j]; + } + } + + return retCorners; + } + + /** + * Sets the coordinates of the Label's corners + * The coordinates to set are given as consecutive (x,y,z) triplets, each triplet + * corresponding to one corner, starting from the lower-left one and going in + * clockwise order. + * @param coordinates the corners' coordinates (12-element array) + */ + public UpdateStatus setCorners(Double [] coordinates) { + if (coordinates.length != 12) { + return UpdateStatus.NoChange; + } + + corners[0][0] = coordinates[0]; + corners[0][1] = coordinates[1]; + corners[0][2] = coordinates[2]; + + corners[1][0] = coordinates[3]; + corners[1][1] = coordinates[4]; + corners[1][2] = coordinates[5]; + + corners[2][0] = coordinates[6]; + corners[2][1] = coordinates[7]; + corners[2][2] = coordinates[8]; + + corners[3][0] = coordinates[9]; + corners[3][1] = coordinates[10]; + corners[3][2] = coordinates[11]; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_LABEL__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/legend/Legend.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/legend/Legend.java new file mode 100755 index 000000000..239bfc3f2 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/legend/Legend.java @@ -0,0 +1,409 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.legend; + +import java.util.ArrayList; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.textObject.ClippableTextObject; +import org.scilab.modules.graphic_objects.textObject.FormattedText; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Legend class + * @author Manuel JULIACHS + */ +public class Legend extends ClippableTextObject { + /** Legend properties names */ + private enum LegendProperty { LINKS, LINKSCOUNT, LEGENDLOCATION, POSITION , SIZE, MARKSCOUNT, LINEWIDTH}; + + /** Legend location */ + public enum LegendLocation { IN_UPPER_RIGHT, IN_UPPER_LEFT, IN_LOWER_RIGHT, IN_LOWER_LEFT, + OUT_UPPER_RIGHT, OUT_UPPER_LEFT, OUT_LOWER_RIGHT, OUT_LOWER_LEFT, + UPPER_CAPTION, LOWER_CAPTION, BY_COORDINATES; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the legend location enum + */ + public static LegendLocation intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return LegendLocation.IN_UPPER_RIGHT; + case 1: + return LegendLocation.IN_UPPER_LEFT; + case 2: + return LegendLocation.IN_LOWER_RIGHT; + case 3: + return LegendLocation.IN_LOWER_LEFT; + case 4: + return LegendLocation.OUT_UPPER_RIGHT; + case 5: + return LegendLocation.OUT_UPPER_LEFT; + case 6: + return LegendLocation.OUT_LOWER_RIGHT; + case 7: + return LegendLocation.OUT_LOWER_LEFT; + case 8: + return LegendLocation.UPPER_CAPTION; + case 9: + return LegendLocation.LOWER_CAPTION; + case 10: + return LegendLocation.BY_COORDINATES; + default: + return null; + } + } + }; + + /** List of the polylines referred to */ + private ArrayList <Integer> links; + + /** Legend location */ + private LegendLocation legendLocation; + + /** 2D position relative to the parent axes bounds */ + private double[] position; + + /** 2D size relative to the parent axes bounds */ + private double[] size; + + /** Number of marks to draw */ + private Integer marksCount; + + /** Line width in axes coordinates (percentage) */ + private Double lineWidth; + + /** Constructor */ + public Legend() { + super(); + this.links = new ArrayList<Integer>(0); + this.legendLocation = LegendLocation.LOWER_CAPTION; + position = new double[2]; + size = new double[2]; + marksCount = 3; + lineWidth = 0.1; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_LINKS__ : + return LegendProperty.LINKS; + case __GO_LINKS_COUNT__ : + return LegendProperty.LINKSCOUNT; + case __GO_LEGEND_LOCATION__ : + return LegendProperty.LEGENDLOCATION; + case __GO_POSITION__ : + return LegendProperty.POSITION; + case __GO_SIZE__ : + return LegendProperty.SIZE; + case __GO_MARKS_COUNT__ : + return LegendProperty.MARKSCOUNT; + case __GO_LINE_WIDTH__ : + return LegendProperty.LINEWIDTH; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == LegendProperty.LINKS) { + return getValidLinks(); + } else if (property == LegendProperty.LINKSCOUNT) { + return getValidLinksCount(); + } else if (property == LegendProperty.LEGENDLOCATION) { + return getLegendLocation(); + } else if (property == LegendProperty.POSITION) { + return getPosition(); + } else if (property == TextObjectProperty.TEXT_ARRAY_DIMENSIONS) { + return getValidTextArrayDimensions(); + } else if (property == FormattedText.FormattedTextProperty.TEXT) { + return getValidTextStrings(); + } else if (property == LegendProperty.SIZE) { + return getSize(); + } else if (property == LegendProperty.MARKSCOUNT) { + return getMarksCount(); + } else if (property == LegendProperty.LINEWIDTH) { + return getLineWidth(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == LegendProperty.LINKS) { + setLinks((Integer[]) value); + } else if (property == LegendProperty.LEGENDLOCATION) { + setLegendLocation((Integer) value); + } else if (property == LegendProperty.POSITION) { + setPosition((Double[]) value); + } else if (property == LegendProperty.MARKSCOUNT) { + setMarksCount((Integer) value); + } else if (property == LegendProperty.LINEWIDTH) { + setLineWidth((Double) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the legendLocation + */ + public Integer getLegendLocation() { + return getLegendLocationAsEnum().ordinal(); + } + + /** + * @return the legendLocation + */ + public LegendLocation getLegendLocationAsEnum() { + return legendLocation; + } + + /** + * @param legendLocation the legendLocation to set + */ + public UpdateStatus setLegendLocation(Integer legendLocation) { + setLegendLocationAsEnum(LegendLocation.intToEnum(legendLocation)); + return UpdateStatus.Success; + } + + /** + * @param legendLocation the legendLocation to set + */ + public UpdateStatus setLegendLocationAsEnum(LegendLocation legendLocation) { + this.legendLocation = legendLocation; + return UpdateStatus.Success; + } + + /** + * @return the valid links + */ + public Integer[] getValidLinks() { + ArrayList <Integer> validLinks = new ArrayList<Integer>(0); + + for (int i = 0; i < links.size(); i++) { + GraphicObject object = GraphicController.getController().getObjectFromId(links.get(i)); + + if (object != null) { + validLinks.add(links.get(i)); + } + } + + return validLinks.toArray(new Integer[validLinks.size()]); + } + + /** + * @return the valid links count + */ + public Integer getValidLinksCount() { + int numValidLinks = 0; + + for (int i = 0; i < links.size(); i++) { + GraphicObject object = GraphicController.getController().getObjectFromId(links.get(i)); + + if (object != null) { + numValidLinks++; + } + } + + return numValidLinks; + } + + /** + * @return the links + */ + public Integer[] getLinks() { + Integer[] retLinks = new Integer[links.size()]; + + for (int i = 0; i < links.size(); i++) { + retLinks[i] = links.get(i); + } + + return retLinks; + } + + /** + * @return the links count + */ + public Integer getLinksCount() { + return links.size(); + } + + /** + * @param links the links to set + */ + public UpdateStatus setLinks(Integer[] links) { + if (!this.links.isEmpty()) { + this.links.clear(); + } + + for (int i = 0; i < links.length; i++) { + this.links.add(links[i]); + } + return UpdateStatus.Success; + } + + /** + * @return the marks count + */ + public Integer getMarksCount() { + return marksCount; + } + + /** + * @param marksCount the marks count + */ + public UpdateStatus setMarksCount(Integer marksCount) { + if (!this.marksCount.equals(marksCount)) { + this.marksCount = marksCount; + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * @return the line width + */ + public Double getLineWidth() { + return lineWidth; + } + + /** + * @param lineWidth the line width + */ + public UpdateStatus setLineWidth(Double lineWidth) { + if (!this.lineWidth.equals(lineWidth)) { + this.lineWidth = lineWidth; + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } + + /** + * Returns the dimensions of the text array, taking into account only valid links. + * @return the dimensions of the text array + */ + public Integer[] getValidTextArrayDimensions() { + return new Integer[] {getValidLinksCount(), 1}; + } + + /** + * Returns the array of valid text strings. + * A string if considered valid if its corresponding link is also valid, otherwise it is ignored. + * This is used when getting the Legend's TEXT_STRINGS property in order to return only the strings + * corresponding to valid links (see also getValidLinks). + * @return the valid text strings + */ + public String[] getValidTextStrings() { + ArrayList <String> validStrings = new ArrayList<String>(0); + + /* Text strings are stored in reverse order relative to links. */ + for (int i = 0; i < links.size(); i++) { + GraphicObject object = GraphicController.getController().getObjectFromId(links.get(links.size() - i - 1)); + + if (object != null) { + validStrings.add(text[i].getText()); + } + } + + return validStrings.toArray(new String[validStrings.size()]); + } + + /** + * @param links the links to set + */ + public UpdateStatus setLinks(ArrayList<Integer> links) { + this.links = links; + return UpdateStatus.Success; + } + + /** + * @return the position + */ + public Double[] getPosition() { + Double[] retPosition = new Double[2]; + retPosition[0] = position[0]; + retPosition[1] = position[1]; + + return retPosition; + } + + /** + * @param position the position to set + */ + public UpdateStatus setPosition(Double[] position) { + this.position[0] = position[0]; + this.position[1] = position[1]; + return UpdateStatus.Success; + } + + /** + * @return the size + */ + public Double[] getSize() { + Double[] retSize = new Double[2]; + retSize[0] = size[0]; + retSize[1] = size[1]; + + return retSize; + } + + /** + * @param size the size to set + */ + public UpdateStatus setSize(Double[] size) { + this.size[0] = size[0]; + this.size[1] = size[1]; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_LEGEND__; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/ColorTriplet.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/ColorTriplet.java new file mode 100755 index 000000000..2214b4125 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/ColorTriplet.java @@ -0,0 +1,121 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Pedro SOUZA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.lighting; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Color triplet used for lighting. + * @author Pedro SOUZA + */ + +public class ColorTriplet { + + /** color triplet properties */ + public enum ColorTripletProperty {AMBIENTCOLOR, DIFFUSECOLOR, SPECULARCOLOR}; + /** ambient color */ + protected Double[] ambient; + /** diffuse color */ + protected Double[] diffuse; + /** specular color */ + protected Double[] specular; + + public ColorTriplet() { + ambient = new Double[] {0.0, 0.0, 0.0}; + diffuse = new Double[] {0.0, 0.0, 0.0}; + specular = new Double[] {0.0, 0.0, 0.0}; + } + + /** copy constructor */ + public ColorTriplet(ColorTriplet other) { + ambient = new Double[3]; + diffuse = new Double[3]; + specular = new Double[3]; + setAmbientColor(other.ambient); + setDiffuseColor(other.diffuse); + setSpecularColor(other.specular); + } + + + /** returns the ambient color */ + public Double[] getAmbientColor() { + Double[] ret = new Double[] {ambient[0], ambient[1], ambient[2]}; + return ret; + } + + /** Sets the ambient color */ + public UpdateStatus setAmbientColor(Double[] color) { + if (color.length != 3 || !isColorValid(color)) { + return UpdateStatus.Fail; + } + + if (ambient[0] != color[0] || ambient[1] != color[1] || ambient[2] != color[2]) { + ambient[0] = color[0]; + ambient[1] = color[1]; + ambient[2] = color[2]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** returns the dffuse color */ + public Double[] getDiffuseColor() { + Double[] ret = new Double[] {diffuse[0], diffuse[1], diffuse[2]}; + return ret; + } + + /** Sets the diffuse color */ + public UpdateStatus setDiffuseColor(Double[] color) { + if (color.length != 3 || !isColorValid(color)) { + return UpdateStatus.Fail; + } + + if (diffuse[0] != color[0] || diffuse[1] != color[1] || diffuse[2] != color[2]) { + diffuse[0] = color[0]; + diffuse[1] = color[1]; + diffuse[2] = color[2]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** returns the specular color */ + public Double[] getSpecularColor() { + Double[] ret = new Double[] {specular[0], specular[1], specular[2]}; + return ret; + } + + /** Sets the specular color */ + public UpdateStatus setSpecularColor(Double[] color) { + if (color.length != 3 || !isColorValid(color)) { + return UpdateStatus.Fail; + } + + if (specular[0] != color[0] || specular[1] != specular[1] || specular[2] != color[2]) { + specular[0] = color[0]; + specular[1] = color[1]; + specular[2] = color[2]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + private boolean isColorValid(Double[] color) { + for (Double d : color) { + if (d < 0.0 || d > 1.0) { + return false; + } + } + return true; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Light.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Light.java new file mode 100755 index 000000000..a0042ba8c --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Light.java @@ -0,0 +1,278 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Pedro SOUZA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.lighting; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.legend.Legend.LegendLocation; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Light class + * @author Pedro SOUZA + */ +public class Light extends GraphicObject { + + public enum LightProperty {POSITION, DIRECTION, TYPE}; + + public enum LightType {DIRECTIONAL, POINT; + + public static LightType intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return DIRECTIONAL; + case 1: + return POINT; + default: + return null; + } + } + }; + + + /** light position */ + Double[] position; + + /** light direction */ + Double[] direction; + + /** light type */ + LightType type; + + /** the light color */ + ColorTriplet lightColor; + + public Light() { + super(); + lightColor = new ColorTriplet(); + + position = new Double[] {0.0, 0.0, 1.0}; + direction = new Double[] {0.0, 0.0, 1.0}; + type = LightType.POINT; + + Double[] dark_gray = new Double[] {0.1, 0.1, 0.1}; + Double[] white = new Double[] {1.0, 1.0, 1.0}; + setAmbientColor(dark_gray); + setDiffuseColor(white); + setSpecularColor(white); + } + + /** copy contructor */ + public Light(Light other) { + super(); + position = new Double[3]; + direction = new Double[3]; + type = other.type; + lightColor = new ColorTriplet(other.lightColor); + setPosition(other.position); + setDirection(other.direction); + } + + @Override + public void accept(Visitor visitor) { + } + + /** returns the light's position */ + public Double[] getPosition() { + Double[] ret = new Double[] {position[0], position[1], position[2]}; + return ret; + } + + /** Sets the light's position */ + public UpdateStatus setPosition(Double[] pos) { + if (pos.length != 3) { + return UpdateStatus.Fail; + } + + if (position[0] != pos[0] || position[1] != pos[1] || position[2] != pos[2]) { + position[0] = pos[0]; + position[1] = pos[1]; + position[2] = pos[2]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** returns the light's direction */ + public Double[] getDirection() { + Double[] ret = new Double[] {direction[0], direction[1], direction[2]}; + return ret; + } + + /** Sets the light's direction */ + public UpdateStatus setDirection(Double[] dir) { + if (dir.length != 3) { + return UpdateStatus.Fail; + } + + if (direction[0] != dir[0] || direction[1] != dir[1] || direction[2] != dir[2]) { + direction[0] = dir[0]; + direction[1] = dir[1]; + direction[2] = dir[2]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** Sets the light's type from an integer */ + public UpdateStatus setLightTypeAsInteger(Integer i) { + if (i >= 0 && i < LightType.values().length) { + if (this.type != LightType.values()[i]) { + this.type = LightType.values()[i]; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + return UpdateStatus.Fail; + } + + /** Get the light's type as integer */ + public Integer getLightTypeAsInteger() { + return type.ordinal(); + } + + /** Sets the light's type */ + public UpdateStatus setLightType(LightType type) { + if (this.type != type) { + this.type = type; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** Get the light's type */ + public LightType getLightType() { + return type; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_AMBIENTCOLOR__ : + return ColorTriplet.ColorTripletProperty.AMBIENTCOLOR; + case __GO_DIFFUSECOLOR__ : + return ColorTriplet.ColorTripletProperty.DIFFUSECOLOR; + case __GO_SPECULARCOLOR__ : + return ColorTriplet.ColorTripletProperty.SPECULARCOLOR; + case __GO_LIGHT_TYPE__ : + return LightProperty.TYPE; + case __GO_POSITION__ : + return LightProperty.POSITION; + case __GO_DIRECTION__ : + return LightProperty.DIRECTION; + default : + return super.getPropertyFromName(propertyName); + } + } + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property instanceof ColorTriplet.ColorTripletProperty) { + ColorTriplet.ColorTripletProperty cp = (ColorTriplet.ColorTripletProperty)property; + switch (cp) { + case AMBIENTCOLOR: + return getAmbientColor(); + case DIFFUSECOLOR: + return getDiffuseColor(); + case SPECULARCOLOR: + return getSpecularColor(); + } + } else if (property instanceof LightProperty) { + LightProperty lp = (LightProperty)property; + switch (lp) { + case TYPE: + return getLightTypeAsInteger(); + case POSITION: + return getPosition(); + case DIRECTION: + return getDirection(); + } + } + + return super.getProperty(property); + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof ColorTriplet.ColorTripletProperty) { + ColorTriplet.ColorTripletProperty cp = (ColorTriplet.ColorTripletProperty)property; + switch (cp) { + case AMBIENTCOLOR: + return setAmbientColor((Double[])value); + case DIFFUSECOLOR: + return setDiffuseColor((Double[])value); + case SPECULARCOLOR: + return setSpecularColor((Double[])value); + } + } else if (property instanceof LightProperty) { + LightProperty lp = (LightProperty)property; + switch (lp) { + case TYPE: + return setLightTypeAsInteger((Integer)value); + case POSITION: + return setPosition((Double[])value); + case DIRECTION: + return setDirection((Double[])value); + } + } + + return super.setProperty(property, value); + } + + /** returns the ambient color of the light*/ + public Double[] getAmbientColor() { + return lightColor.getAmbientColor(); + } + + /** Sets the ambient color */ + public UpdateStatus setAmbientColor(Double[] color) { + return lightColor.setAmbientColor(color); + } + + /** returns the dffuse color of the light*/ + public Double[] getDiffuseColor() { + return lightColor.getDiffuseColor(); + } + + /** Sets the diffuse color of the light*/ + public UpdateStatus setDiffuseColor(Double[] color) { + return lightColor.setDiffuseColor(color); + } + + /** returns the specular color of the light*/ + public Double[] getSpecularColor() { + return lightColor.getSpecularColor(); + } + + /** Sets the specular color of the light*/ + public UpdateStatus setSpecularColor(Double[] color) { + return lightColor.setSpecularColor(color); + } + + public Integer getType() { + return __GO_LIGHT__; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Material.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Material.java new file mode 100755 index 000000000..034282951 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/lighting/Material.java @@ -0,0 +1,74 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Pedro SOUZA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.lighting; + +import org.scilab.modules.graphic_objects.lighting.ColorTriplet; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Material class + * @author Pedro SOUZA + */ + +public class Material extends ColorTriplet { + + /** material properties */ + public enum MaterialProperty {COLOR_MATERIAL, SHININESS}; + /** Specifies if the sufarce color will be used as diffuse color */ + private Boolean useColorMaterial; + + /** Specular shininess parameter*/ + private Double shininess; + + + public Material() { + super(); + useColorMaterial = true; + ambient[0] = ambient[1] = ambient[2] = 0.0; + diffuse[0] = diffuse[1] = diffuse[2] = 1.0; + specular[0] = specular[1] = specular[2] = 1.0; + shininess = 2.0; + } + + /** + * Sets color-material mode, if true + * the surface color is used as diffuse color. + */ + public UpdateStatus setColorMaterialMode(Boolean status) { + if (useColorMaterial != status) { + useColorMaterial = status; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** returns the color-material status*/ + public Boolean getColorMaterialMode() { + return useColorMaterial; + } + + /** Sets shininess level*/ + public UpdateStatus setShininess(Double s) { + if (shininess != s) { + shininess = s; + return UpdateStatus.Success; + } + return UpdateStatus.NoChange; + } + + /** Gets shininess level*/ + public Double getShininess() { + return shininess; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/polyline/Polyline.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/polyline/Polyline.java new file mode 100755 index 000000000..0c3892f3a --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/polyline/Polyline.java @@ -0,0 +1,478 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.polyline; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARROW_SIZE_FACTOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BAR_WIDTH__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLOSED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIPS_COUNT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIPS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_DISPLAY_FNC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP_MARK__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INTERP_COLOR_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INTERP_COLOR_VECTOR_SET__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INTERP_COLOR_VECTOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POLYLINE_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_SHIFT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_SHIFT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_SHIFT__; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.datatip.Datatip; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * Polyline class + * @author Manuel JULIACHS + */ +public class Polyline extends ClippableContouredObject { + /** TBD: data */ + // Data data -> Data Model + /* TODO: properties relative to the data model */ + /** Polyline properties names */ + private enum PolylineProperty { CLOSED, ARROWSIZEFACTOR, POLYLINESTYLE, + INTERPCOLORVECTOR, INTERPCOLORVECTORSET, INTERPCOLORMODE, + XSHIFT, YSHIFT, ZSHIFT, BARWIDTH, DATATIPS, DATATIPSCOUNT, TIP_DISPLAY_FNC, TIP_MARK + }; + + /** Specifies whether the polyline is closed */ + private boolean closed; + + /** Determines the arrow size */ + private double arrowSizeFactor; + + /** Polyline drawing style (normal, staircase, , etc.) */ + private int polylineStyle; + + /** Interpolation color vector (3- or 4-element array) */ + private int[] interpColorVector; + + /** Specifies whether the interpolation color vector has been set */ + private boolean interpColorVectorSet; + + /** Specifies whether interpolated shading is used */ + private boolean interpColorMode; + + /** Shift applied to the line points along the x-axis */ + private double[] xShift; + + /** Shift applied to the line points along the y-axis */ + private double[] yShift; + + /** Shift applied to the line points along the z-axis */ + private double[] zShift; + + /** Bar width */ + private double barWidth; + + /** Datatips objects list */ + private List<Integer> datatips; + + /** Display function*/ + private String displayFnc; + + private Integer tipMark; + + /** Constructor */ + public Polyline() { + super(); + closed = false; + arrowSizeFactor = 1.0; + polylineStyle = 1; + interpColorVector = new int[4]; + interpColorVectorSet = false; + interpColorMode = false; + xShift = null; + yShift = null; + zShift = null; + barWidth = 0.0; + datatips = new ArrayList<Integer>(); + displayFnc = ""; + tipMark = 11; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_CLOSED__ : + return PolylineProperty.CLOSED; + case __GO_ARROW_SIZE_FACTOR__ : + return PolylineProperty.ARROWSIZEFACTOR; + case __GO_POLYLINE_STYLE__ : + return PolylineProperty.POLYLINESTYLE; + case __GO_INTERP_COLOR_VECTOR__ : + return PolylineProperty.INTERPCOLORVECTOR; + case __GO_INTERP_COLOR_VECTOR_SET__ : + return PolylineProperty.INTERPCOLORVECTORSET; + case __GO_INTERP_COLOR_MODE__ : + return PolylineProperty.INTERPCOLORMODE; + case __GO_X_SHIFT__ : + return PolylineProperty.XSHIFT; + case __GO_Y_SHIFT__ : + return PolylineProperty.YSHIFT; + case __GO_Z_SHIFT__ : + return PolylineProperty.ZSHIFT; + case __GO_BAR_WIDTH__ : + return PolylineProperty.BARWIDTH; + case __GO_DATATIPS__ : + return PolylineProperty.DATATIPS; + case __GO_DATATIPS_COUNT__ : + return PolylineProperty.DATATIPSCOUNT; + case __GO_DATATIP_DISPLAY_FNC__ : + return PolylineProperty.TIP_DISPLAY_FNC; + case __GO_DATATIP_MARK__ : + return PolylineProperty.TIP_MARK; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property instanceof PolylineProperty) { + switch ((PolylineProperty) property) { + case CLOSED: + return getClosed(); + case ARROWSIZEFACTOR: + return getArrowSizeFactor(); + case POLYLINESTYLE: + return getPolylineStyle(); + case INTERPCOLORVECTOR: + return getInterpColorVector(); + case INTERPCOLORVECTORSET: + return getInterpColorVectorSet(); + case INTERPCOLORMODE: + return getInterpColorMode(); + case XSHIFT: + return getXShift(); + case YSHIFT: + return getYShift(); + case ZSHIFT: + return getZShift(); + case BARWIDTH: + return getBarWidth(); + case DATATIPS: + return getDatatips(); + case DATATIPSCOUNT: + return datatips.size(); + case TIP_DISPLAY_FNC: + return getDisplayFunction(); + case TIP_MARK: + return getTipMark(); + } + } + return super.getProperty(property); + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + synchronized (this) { + if (property instanceof PolylineProperty) { + switch ((PolylineProperty) property) { + case CLOSED: + setClosed((Boolean) value); + break; + case ARROWSIZEFACTOR: + return setArrowSizeFactor((Double) value); + case POLYLINESTYLE: + return setPolylineStyle((Integer) value); + case INTERPCOLORVECTOR: + setInterpColorVector((Integer[]) value); + break; + case INTERPCOLORVECTORSET: + setInterpColorVectorSet((Boolean) value); + break; + case INTERPCOLORMODE: + return setInterpColorMode((Boolean) value); + case XSHIFT: + setXShift((double[]) value); + break; + case YSHIFT: + setYShift((double[]) value); + break; + case ZSHIFT: + setZShift((double[]) value); + break; + case BARWIDTH: + setBarWidth((Double) value); + break; + case DATATIPS: + setDatatips((Integer[]) value); + break; + case TIP_DISPLAY_FNC: + setDisplayFunction((String) value); + break; + case TIP_MARK: + setTipMark((Integer) value); + break; + } + } + return super.setProperty(property, value); + } + } + + /** + * @return the arrowSizeFactor + */ + public Double getArrowSizeFactor() { + return arrowSizeFactor; + } + + /** + * @param arrowSizeFactor the arrowSizeFactor to set + */ + public UpdateStatus setArrowSizeFactor(Double arrowSizeFactor) { + if (this.arrowSizeFactor == arrowSizeFactor) { + return UpdateStatus.NoChange; + } + this.arrowSizeFactor = arrowSizeFactor; + return UpdateStatus.Success; + } + + /** + * @return the barWidth + */ + public Double getBarWidth() { + return barWidth; + } + + /** + * @param barWidth the barWidth to set + */ + public UpdateStatus setBarWidth(Double barWidth) { + this.barWidth = barWidth; + return UpdateStatus.Success; + } + + /** + * @return the closed + */ + public Boolean getClosed() { + return closed; + } + + /** + * @param closed the closed to set + */ + public UpdateStatus setClosed(Boolean closed) { + this.closed = closed; + return UpdateStatus.Success; + } + + /** + * @return the interpColorMode + */ + public Boolean getInterpColorMode() { + return interpColorMode; + } + + /** + * @param interpColorMode the interpColorMode to set + */ + public UpdateStatus setInterpColorMode(Boolean interpColorMode) { + if (this.interpColorMode == interpColorMode) { + return UpdateStatus.NoChange; + } + this.interpColorMode = interpColorMode; + return UpdateStatus.Success; + } + + /** + * @return the interpColorVector + */ + public Integer[] getInterpColorVector() { + Integer[] retVector = new Integer[interpColorVector.length]; + for (int i = 0; i < interpColorVector.length; i++) { + retVector[i] = interpColorVector[i]; + } + + return retVector; + } + + /** + * @param interpColorVector the interpColorVector to set + */ + public UpdateStatus setInterpColorVector(Integer[] interpColorVector) { + if (interpColorVectorSet == false) { + interpColorVectorSet = true; + } + + for (int i = 0; i < interpColorVector.length; i++) { + this.interpColorVector[i] = interpColorVector[i]; + } + return UpdateStatus.Success; + } + + /** + * @return the interpColorVectorSet + */ + public Boolean getInterpColorVectorSet() { + return interpColorVectorSet; + } + + /** + * @param interpColorVectorSet the interpColorVectorSet to set + */ + public UpdateStatus setInterpColorVectorSet(Boolean interpColorVectorSet) { + this.interpColorVectorSet = interpColorVectorSet; + return UpdateStatus.Success; + } + + /** + * @return the polylineStyle + */ + public Integer getPolylineStyle() { + return polylineStyle; + } + + /** + * @param polylineStyle the polylineStyle to set + */ + public UpdateStatus setPolylineStyle(Integer polylineStyle) { + if (this.polylineStyle == polylineStyle) { + return UpdateStatus.NoChange; + } + this.polylineStyle = polylineStyle; + return UpdateStatus.Success; + } + + /** + * @return the xShift + */ + public double[] getXShift() { + return xShift; + } + + /** + * @param shift the xShift to set + */ + public UpdateStatus setXShift(double[] shift) { + xShift = shift; + return UpdateStatus.Success; + } + + /** + * @return the yShift + */ + public double[] getYShift() { + return yShift; + } + + /** + * @param shift the yShift to set + */ + public UpdateStatus setYShift(double[] shift) { + yShift = shift; + return UpdateStatus.Success; + } + + /** + * @return the zShift + */ + public double[] getZShift() { + return zShift; + } + + /** + * @param shift the zShift to set + */ + public UpdateStatus setZShift(double[] shift) { + zShift = shift; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_POLYLINE__; + } + + /** + * @return datatips + */ + public Integer[] getDatatips() { + return datatips.toArray(new Integer[datatips.size()]); + } + + /** + * @param datatips the datatips to set + */ + private UpdateStatus setDatatips(List<Integer> datatips) { + this.datatips = datatips; + return UpdateStatus.Success; + } + + /** + * @param datatips the datatips to set + */ + public UpdateStatus setDatatips(Integer[] datatips) { + this.datatips = new LinkedList<Integer>(Arrays.asList(datatips)); + return UpdateStatus.Success; + } + + public String getDisplayFunction() { + return displayFnc; + } + + public UpdateStatus setDisplayFunction(String fnc) { + GraphicController controller = GraphicController.getController(); + displayFnc = fnc; + //update datatips + for (int i = 0 ; i < datatips.size() ; i++) { + Datatip tip = (Datatip) controller.getObjectFromId(datatips.get(i)); + tip.updateText(); + } + return UpdateStatus.Success; + } + + public Integer getTipMark() { + return tipMark; + } + + public UpdateStatus setTipMark(Integer tipMark) { + if (!this.tipMark.equals(tipMark)) { + this.tipMark = tipMark; + + return UpdateStatus.Success; + } + + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/Rectangle.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/Rectangle.java new file mode 100755 index 000000000..57e83c08f --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/Rectangle.java @@ -0,0 +1,167 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.rectangle; + +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class Rectangle + * @author Manuel JULIACHS + */ +public class Rectangle extends ClippableContouredObject { + /** Rectangle properties names */ + private enum RectangleProperty { UPPERLEFTPOINT, WIDTH, HEIGHT }; + + /** Upper-left corner (x,y,z) coordinates */ + private double[] upperLeftPoint; + + /** Width */ + private double width; + + /** Height */ + private double height; + + /** Constructor */ + public Rectangle() { + super(); + upperLeftPoint = new double[3]; + width = 0.0; + height = 0.0; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_UPPER_LEFT_POINT__ : + return RectangleProperty.UPPERLEFTPOINT; + case __GO_WIDTH__ : + return RectangleProperty.WIDTH; + case __GO_HEIGHT__ : + return RectangleProperty.HEIGHT; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == RectangleProperty.UPPERLEFTPOINT) { + return getUpperLeftPoint(); + } else if (property == RectangleProperty.WIDTH) { + return getWidth(); + } else if (property == RectangleProperty.HEIGHT) { + return getHeight(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == RectangleProperty.UPPERLEFTPOINT) { + setUpperLeftPoint((Double[]) value); + } else if (property == RectangleProperty.WIDTH) { + setWidth((Double) value); + } else if (property == RectangleProperty.HEIGHT) { + setHeight((Double) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the height + */ + public Double getHeight() { + return height; + } + + /** + * @param height the height to set + */ + public UpdateStatus setHeight(Double height) { + this.height = height; + return UpdateStatus.Success; + } + + /** + * @return the upperLeftPoint + */ + public Double[] getUpperLeftPoint() { + Double[] retPoint = new Double[3]; + + retPoint[0] = upperLeftPoint[0]; + retPoint[1] = upperLeftPoint[1]; + retPoint[2] = upperLeftPoint[2]; + + return retPoint; + } + + /** + * @param upperLeftPoint the upperLeftPoint to set + */ + public UpdateStatus setUpperLeftPoint(Double[] upperLeftPoint) { + this.upperLeftPoint[0] = upperLeftPoint[0]; + this.upperLeftPoint[1] = upperLeftPoint[1]; + this.upperLeftPoint[2] = upperLeftPoint[2]; + return UpdateStatus.Success; + } + + /** + * @return the width + */ + public Double getWidth() { + return width; + } + + /** + * @param width the width to set + */ + public UpdateStatus setWidth(Double width) { + this.width = width; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_RECTANGLE__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/RectangleDecomposer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/RectangleDecomposer.java new file mode 100755 index 000000000..28e66379b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/RectangleDecomposer.java @@ -0,0 +1,220 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.rectangle; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.utils.Utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class RectangleDecomposer + * A set of static methods decomposing a rectangle into two triangles. + * Vertex indices 0 to 3 respectively correspond to the lower-left, lower-right, + * upper-left and upper-right corners. + * @author Manuel JULIACHS + */ +public class RectangleDecomposer { + + /** The number of vertices of a rectangle. */ + private static final int NUMBER_VERTICES = 4; + + /** The triangle indices of a decomposed rectangle */ + private static final int [] triangleIndices = {0, 1, 3, 0, 3, 2}; + + /** The line segment indices of a decomposed rectangle */ + private static final int [] lineIndices = {0, 1, 1, 3, 3, 2, 2, 0}; + + /** + * @return the number of data elements. + */ + public static int getDataSize() { + return NUMBER_VERTICES; + } + + /** + * @return the number of triangle indices. + */ + public static int getIndicesSize() { + return triangleIndices.length; + } + + /** + * @return the number of line segment indices. + */ + public static int getWireIndicesSize() { + return lineIndices.length; + } + + /** + * Fills the input buffer with vertex data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the number of coordinates taken by one element in the buffer. + * @param the byte mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param the conversion scale factor to apply to data. + * @param the conversion translation value to apply to data. + * @param the bit mask specifying whether logarithmic coordinates are used. + */ + public static void fillVertices(FloatBuffer buffer, Integer id, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) { + + /* The x coordinates of the lower-left and upper-right corners */ + double [] xcoords; + /* The y coordinates of the lower-left and upper-right corners */ + double [] ycoords; + /* The rectangle's z coordinate */ + double zcoord; + + xcoords = new double[2]; + ycoords = new double[2]; + + Double [] upperLeftPoint = (Double []) GraphicController.getController().getProperty(id, __GO_UPPER_LEFT_POINT__); + Double width = (Double) GraphicController.getController().getProperty(id, __GO_WIDTH__); + Double height = (Double) GraphicController.getController().getProperty(id, __GO_HEIGHT__); + + xcoords[0] = upperLeftPoint[0]; + xcoords[1] = upperLeftPoint[0] + width; + + ycoords[0] = upperLeftPoint[1] - height; + ycoords[1] = upperLeftPoint[1]; + + zcoord = upperLeftPoint[2]; + + /* Vertices are output in the following order: lower-left, lower-right, upper-left and upper-right. */ + if ((coordinateMask & 0x1) != 0) { + if ((logMask & 0x1) != 0) { + xcoords[0] = Math.log10(xcoords[0]); + xcoords[1] = Math.log10(xcoords[1]); + } + + xcoords[0] = xcoords[0] * scale[0] + translation[0]; + xcoords[1] = xcoords[1] * scale[0] + translation[0]; + + buffer.put(0, (float) xcoords[0]); + buffer.put(elementsSize, (float) xcoords[1]); + buffer.put(2 * elementsSize, (float) xcoords[0]); + buffer.put(3 * elementsSize, (float) xcoords[1]); + } + + if ((coordinateMask & 0x2) != 0) { + if ((logMask & 0x2) != 0) { + ycoords[0] = Math.log10(ycoords[0]); + ycoords[1] = Math.log10(ycoords[1]); + } + + ycoords[0] = ycoords[0] * scale[1] + translation[1]; + ycoords[1] = ycoords[1] * scale[1] + translation[1]; + + buffer.put(1, (float) ycoords[0]); + buffer.put(elementsSize + 1, (float) ycoords[0]); + buffer.put(2 * elementsSize + 1, (float) ycoords[1]); + buffer.put(3 * elementsSize + 1, (float) ycoords[1]); + } + + if ((coordinateMask & 0x4) != 0) { + if ((logMask & 0x4) != 0) { + zcoord = Math.log10(zcoord); + } + + zcoord = zcoord * scale[2] + translation[2]; + + buffer.put(2, (float) zcoord); + buffer.put(elementsSize + 2, (float) zcoord); + buffer.put(2 * elementsSize + 2, (float) zcoord); + buffer.put(3 * elementsSize + 2, (float) zcoord); + } + + if (elementsSize == 4 && (coordinateMask & 0x8) != 0) { + buffer.put(3, 1.0f); + buffer.put(elementsSize + 3, 1.0f); + buffer.put(2 * elementsSize + 3, 1.0f); + buffer.put(3 * elementsSize + 3, 1.0f); + } + } + + /** + * Fills the input buffer with triangle index data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid = false; + + Double [] upperLeftPoint = (Double []) GraphicController.getController().getProperty(id, __GO_UPPER_LEFT_POINT__); + Double width = (Double) GraphicController.getController().getProperty(id, __GO_WIDTH__); + Double height = (Double) GraphicController.getController().getProperty(id, __GO_HEIGHT__); + + /* Indices are output only if all the rectangle's values are valid. */ + if (Utils.isValid(upperLeftPoint[0], upperLeftPoint[1], upperLeftPoint[2]) + && Utils.isValid(width) && Utils.isValid(height)) { + valid = true; + } + + /* + * Only the lower-left corner's log validity is tested, since width and height are supposed + * to be greater than or equal to 0 . + */ + if (logMask != 0) { + valid = valid && Utils.isLogValid(upperLeftPoint[0], upperLeftPoint[1] - height, upperLeftPoint[2], logMask); + } + + if (valid) { + buffer.put(triangleIndices); + return triangleIndices.length; + } else { + return 0; + } + } + + /** + * Fills the input buffer with segment index data from the given object. + * @param the buffer to fill. + * @param the given object id. + * @param the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillWireIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid = false; + + Double [] upperLeftPoint = (Double []) GraphicController.getController().getProperty(id, __GO_UPPER_LEFT_POINT__); + Double width = (Double) GraphicController.getController().getProperty(id, __GO_WIDTH__); + Double height = (Double) GraphicController.getController().getProperty(id, __GO_HEIGHT__); + + /* Segment indices are output only if all the rectangle's values are valid. */ + if (Utils.isValid(upperLeftPoint[0], upperLeftPoint[1], upperLeftPoint[2]) + && Utils.isValid(width) && Utils.isValid(height)) { + valid = true; + } + + /* + * Only the lower-left corner's log validity is tested, since width and height are supposed + * to be greater than or equal to 0 . + */ + if (logMask != 0) { + valid = valid && Utils.isLogValid(upperLeftPoint[0], upperLeftPoint[1] - height, upperLeftPoint[2], logMask); + } + + if (valid) { + buffer.put(lineIndices); + return lineIndices.length; + } else { + return 0; + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Fac3d.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Fac3d.java new file mode 100755 index 000000000..b84a1934d --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Fac3d.java @@ -0,0 +1,143 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.surface; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Fac3d class + * @author Manuel JULIACHS + */ +public class Fac3d extends Surface { + /** Fac3d properties names */ + private enum Fac3dProperty { DATAMAPPING }; + + /** Data mapping type */ + private enum DataMapping { SCALED, DIRECT; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the data mapping enum + */ + public static DataMapping intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return DataMapping.SCALED; + case 1: + return DataMapping.DIRECT; + default: + return null; + } + } + } + + /** Specifies how colors are mapped to scalar values */ + private DataMapping dataMapping; + + /** Constructor */ + public Fac3d() { + super(); + dataMapping = DataMapping.DIRECT; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + if (propertyName == __GO_DATA_MAPPING__) { + return Fac3dProperty.DATAMAPPING; + } else { + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == Fac3dProperty.DATAMAPPING) { + return getDataMapping(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == Fac3dProperty.DATAMAPPING) { + setDataMapping((Integer) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the dataMapping + */ + public Integer getDataMapping() { + return getDataMappingAsEnum().ordinal(); + } + + /** + * @return the dataMapping + */ + public DataMapping getDataMappingAsEnum() { + return dataMapping; + } + + /** + * @param dataMapping the dataMapping to set + */ + public UpdateStatus setDataMapping(Integer dataMapping) { + setDataMappingAsEnum(DataMapping.intToEnum(dataMapping)); + return UpdateStatus.Success; + } + + /** + * @param dataMapping the dataMapping to set + */ + public UpdateStatus setDataMappingAsEnum(DataMapping dataMapping) { + this.dataMapping = dataMapping; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_FAC3D__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Plot3d.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Plot3d.java new file mode 100755 index 000000000..9ef226feb --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Plot3d.java @@ -0,0 +1,45 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.surface; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * Plot3d class + * @author Manuel JULIACHS + */ +public class Plot3d extends Surface { + // TBD Data -> Data Model + /* TBD: properties relative to the data model */ + + /** Constructor */ + public Plot3d() { + super(); + // TODO Auto-generated constructor stub + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_PLOT3D__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Surface.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Surface.java new file mode 100755 index 000000000..3957af87d --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Surface.java @@ -0,0 +1,323 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.surface; + +import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; +import org.scilab.modules.graphic_objects.lighting.ColorTriplet; +import org.scilab.modules.graphic_objects.lighting.Material; + +/** + * Surface class + * @author Manuel JULIACHS + */ +public abstract class Surface extends ClippableContouredObject { + // TBD Data -> Data Model + /* TBD: properties relative to the data model */ + /** Surface properties names */ + private enum SurfaceProperty { SURFACEMODE, COLORMODE, COLORFLAG, HIDDENCOLOR }; + + /** Specifies whether the surface is drawn or not */ + private boolean surfaceMode; + + /** Specifies the front face color (when colorFlag == 0) */ + private int colorMode; + + /** Specifies how facet colors are computed */ + private int colorFlag; + + /** Back-facing facets color */ + private int hiddenColor; + + /** material properties used for lighting */ + private Material material; + + /** Constructor */ + public Surface() { + super(); + surfaceMode = false; + colorMode = 0; + colorFlag = 0; + hiddenColor = 0; + material = new Material(); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_SURFACE_MODE__ : + return SurfaceProperty.SURFACEMODE; + case __GO_COLOR_MODE__ : + return SurfaceProperty.COLORMODE; + case __GO_COLOR_FLAG__ : + return SurfaceProperty.COLORFLAG; + case __GO_HIDDEN_COLOR__ : + return SurfaceProperty.HIDDENCOLOR; + case __GO_AMBIENTCOLOR__ : + return ColorTriplet.ColorTripletProperty.AMBIENTCOLOR; + case __GO_DIFFUSECOLOR__ : + return ColorTriplet.ColorTripletProperty.DIFFUSECOLOR; + case __GO_SPECULARCOLOR__ : + return ColorTriplet.ColorTripletProperty.SPECULARCOLOR; + case __GO_COLOR_MATERIAL__ : + return Material.MaterialProperty.COLOR_MATERIAL; + case __GO_MATERIAL_SHININESS__ : + return Material.MaterialProperty.SHININESS; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property instanceof SurfaceProperty) { + SurfaceProperty sp = (SurfaceProperty)property; + switch (sp) { + case SURFACEMODE: + return getSurfaceMode(); + case COLORMODE: + return getColorMode(); + case COLORFLAG: + return getColorFlag(); + case HIDDENCOLOR: + return getHiddenColor(); + } + } else if (property instanceof Material.MaterialProperty) { + Material.MaterialProperty mp = (Material.MaterialProperty)property; + switch (mp) { + case COLOR_MATERIAL: + return getColorMaterialMode(); + case SHININESS: + return getMaterialShininess(); + } + } else if (property instanceof ColorTriplet.ColorTripletProperty) { + ColorTriplet.ColorTripletProperty cp = (ColorTriplet.ColorTripletProperty)property; + switch (cp) { + case AMBIENTCOLOR: + return getMaterialAmbientColor(); + case DIFFUSECOLOR: + return getMaterialDiffuseColor(); + case SPECULARCOLOR: + return getMaterialSpecularColor(); + } + } + return super.getProperty(property); + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof SurfaceProperty) { + SurfaceProperty sp = (SurfaceProperty)property; + switch (sp) { + case SURFACEMODE: + setSurfaceMode((Boolean) value); + break; + case COLORMODE: + setColorMode((Integer) value); + break; + case COLORFLAG: + setColorFlag((Integer) value); + break; + case HIDDENCOLOR: + setHiddenColor((Integer) value); + break; + } + } else if (property instanceof Material.MaterialProperty) { + Material.MaterialProperty mp = (Material.MaterialProperty)property; + switch (mp) { + case COLOR_MATERIAL: + return setColorMaterialMode((Boolean)value); + case SHININESS: + return setMaterialShininess((Double)value); + } + } else if (property instanceof ColorTriplet.ColorTripletProperty) { + ColorTriplet.ColorTripletProperty cp = (ColorTriplet.ColorTripletProperty)property; + switch (cp) { + case AMBIENTCOLOR: + return setMaterialAmbientColor((Double[])value); + case DIFFUSECOLOR: + return setMaterialDiffuseColor((Double[])value); + case SPECULARCOLOR: + return setMaterialSpecularColor((Double[])value); + } + } else { + return super.setProperty(property, value); + } + return UpdateStatus.Success; + } + + + /** + * @return the surfaceMode + */ + public Boolean getSurfaceMode() { + return surfaceMode; + } + + /** + * @param surfaceMode the surfaceMode to set + */ + public UpdateStatus setSurfaceMode(Boolean surfaceMode) { + this.surfaceMode = surfaceMode; + return UpdateStatus.Success; + } + + /** + * @return the colorMode + */ + public Integer getColorMode() { + return colorMode; + } + + /** + * @param colorMode the colorMode to set + */ + public UpdateStatus setColorMode(Integer colorMode) { + this.colorMode = colorMode; + return UpdateStatus.Success; + } + + /** + * @return the colorFlag + */ + public Integer getColorFlag() { + return colorFlag; + } + + /** + * @param colorFlag the colorFlag to set + */ + public UpdateStatus setColorFlag(Integer colorFlag) { + this.colorFlag = colorFlag; + return UpdateStatus.Success; + } + + /** + * @return the hiddenColor + */ + public Integer getHiddenColor() { + return hiddenColor; + } + + /** + * @param hiddenColor the hiddenColor to set + */ + public UpdateStatus setHiddenColor(Integer hiddenColor) { + this.hiddenColor = hiddenColor; + return UpdateStatus.Success; + } + + /** + * Sets the color-material mode, that is, + * use the surface color as diffuse color + * @param status if true enables color-material + */ + public UpdateStatus setColorMaterialMode(Boolean status) { + return material.setColorMaterialMode(status); + } + + /** + * @return if color-material is enabled. + */ + public Boolean getColorMaterialMode() { + return material.getColorMaterialMode(); + } + + /** + * @return the ambient color of the material. + */ + public Double[] getMaterialAmbientColor() { + return material.getAmbientColor(); + } + + /** + * @param the new ambient color of the material. + */ + public UpdateStatus setMaterialAmbientColor(Double[] color) { + return material.setAmbientColor(color); + } + + /** + * @return the diffuse color of the material. + */ + public Double[] getMaterialDiffuseColor() { + return material.getDiffuseColor(); + } + + /** + * @param the new diffuse color of the material. + */ + public UpdateStatus setMaterialDiffuseColor(Double[] color) { + return material.setDiffuseColor(color); + } + + /** + * @return the specular color of the material. + */ + public Double[] getMaterialSpecularColor() { + return material.getSpecularColor(); + } + + /** + * @param the new specular color of the material. + */ + public UpdateStatus setMaterialSpecularColor(Double[] color) { + return material.setSpecularColor(color); + } + + /** + * @return the shininess level of the material. + */ + public Double getMaterialShininess() { + return material.getShininess(); + } + + /** + * @param the new shininess level of the material. + */ + public UpdateStatus setMaterialShininess(Double s) { + return material.setShininess(s); + } + + /** + * @return the material. + */ + public Material getMaterial() { + return material; + } + + /** + * @param the new material. + */ + public UpdateStatus setMaterial(Material material) { + if (material != null) { + this.material = material; + } + return UpdateStatus.Success; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/ClippableTextObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/ClippableTextObject.java new file mode 100755 index 000000000..e264a2282 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/ClippableTextObject.java @@ -0,0 +1,170 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.textObject; + +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType; +import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * ClippableTextObject + * @author Manuel JULIACHS + */ +public abstract class ClippableTextObject extends TextObject { + /** ClippableTextObject properties names */ + private enum ClippableTextObjectProperty { CLIPPROPERTY }; + + /** Clipping state */ + private ClippableProperty clipProperty; + + /** Constructor */ + public ClippableTextObject() { + clipProperty = new ClippableProperty(); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_CLIP_PROPERTY__ : + return ClippableTextObjectProperty.CLIPPROPERTY; + case __GO_CLIP_STATE__ : + return ClippablePropertyType.CLIPSTATE; + case __GO_CLIP_BOX__ : + return ClippablePropertyType.CLIPBOX; + case __GO_CLIP_BOX_SET__ : + return ClippablePropertyType.CLIPBOXSET; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ClippableTextObjectProperty.CLIPPROPERTY) { + return getClipProperty(); + } else if (property == ClippablePropertyType.CLIPSTATE) { + return getClipState(); + } else if (property == ClippablePropertyType.CLIPBOX) { + return getClipBox(); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + return getClipBoxSet(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ClippableTextObjectProperty.CLIPPROPERTY) { + setClipProperty((ClippableProperty) value); + } else if (property == ClippablePropertyType.CLIPSTATE) { + setClipState((Integer) value); + } else if (property == ClippablePropertyType.CLIPBOX) { + setClipBox((Double[]) value); + } else if (property == ClippablePropertyType.CLIPBOXSET) { + setClipBoxSet((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the clipProperty + */ + public ClippableProperty getClipProperty() { + return clipProperty; + } + + /** + * @param clipProperty the clipProperty to set + */ + public UpdateStatus setClipProperty(ClippableProperty clipProperty) { + this.clipProperty = clipProperty; + return UpdateStatus.Success; + } + + /** + * @return the clipBox + */ + public Double[] getClipBox() { + return clipProperty.getClipBox(); + } + + /** + * @param clipBox the clipBox to set + */ + public UpdateStatus setClipBox(Double[] clipBox) { + return clipProperty.setClipBox(clipBox); + } + + /** + * @return the clipState + */ + public Integer getClipState() { + return getClipStateAsEnum().ordinal(); + } + + /** + * @return the clipState + */ + public ClipStateType getClipStateAsEnum() { + return clipProperty.getClipState(); + } + + /** + * @param clipState the clipState to set + */ + public UpdateStatus setClipState(Integer clipState) { + return setClipStateAsEnum(ClipStateType.intToEnum(clipState)); + } + + /** + * @param clipState the clipState to set + */ + public UpdateStatus setClipStateAsEnum(ClipStateType clipState) { + return clipProperty.setClipState(clipState); + } + + /** + * @return the clipBoxSet + */ + public Boolean getClipBoxSet() { + return clipProperty.getClipBoxSet(); + } + + /** + * @param clipBoxSet the clipBoxSet to set + */ + public UpdateStatus setClipBoxSet(Boolean clipBoxSet) { + return clipProperty.setClipBoxSet(clipBoxSet); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Font.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Font.java new file mode 100755 index 000000000..1ac76aaf6 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Font.java @@ -0,0 +1,179 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.textObject; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_FRACTIONAL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_STYLE__; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Font class + * @author Manuel JULIACHS + */ +public class Font { + /** Font properties names */ + public enum FontProperty { STYLE, SIZE, COLOR, FRACTIONAL, UNKNOWNPROPERTY }; + + /** Font style */ + private int style; + + /** Font size */ + private double size; + + /** Font color */ + private int color; + + /** Specifies whether fractional font sizes are used or not */ + private boolean fractional; + + /** Constructor */ + public Font() { + this.style = 6; + this.size = 1.0; + this.color = -1; + this.fractional = false; + } + + /** + * Copy constructor + * @param + */ + public Font(Font font) { + style = font.style; + size = font.size; + color = font.color; + fractional = font.fractional; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(String propertyName) { + if (propertyName.equals(__GO_FONT_STYLE__)) { + return FontProperty.STYLE; + } else if (propertyName.equals(__GO_FONT_SIZE__)) { + return FontProperty.SIZE; + } else if (propertyName.equals(__GO_FONT_COLOR__)) { + return FontProperty.COLOR; + } else if (propertyName.equals(__GO_FONT_FRACTIONAL__)) { + return FontProperty.FRACTIONAL; + } else { + return FontProperty.UNKNOWNPROPERTY; + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == FontProperty.STYLE) { + return getStyle(); + } else if (property == FontProperty.SIZE) { + return getSize(); + } else if (property == FontProperty.COLOR) { + return getColor(); + } else if (property == FontProperty.FRACTIONAL) { + return getFractional(); + } else { + return null; + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public boolean setProperty(Object property, Object value) { + if (property == FontProperty.STYLE) { + setStyle((Integer) value); + } else if (property == FontProperty.SIZE) { + setSize((Double) value); + } else if (property == FontProperty.COLOR) { + setColor((Integer) value); + } else if (property == FontProperty.FRACTIONAL) { + setFractional((Boolean) value); + } + + return true; + } + + /** + * @return the color + */ + public Integer getColor() { + return color; + } + + /** + * @param color the color to set + */ + public UpdateStatus setColor(Integer color) { + this.color = color; + return UpdateStatus.Success; + } + + /** + * @return the fractional + */ + public Boolean getFractional() { + return fractional; + } + + /** + * @param fractional the fractional to set + */ + public UpdateStatus setFractional(Boolean fractional) { + this.fractional = fractional; + return UpdateStatus.Success; + } + + /** + * @return the size + */ + public Double getSize() { + return size; + } + + /** + * @param size the size to set + */ + public UpdateStatus setSize(Double size) { + this.size = size; + return UpdateStatus.Success; + } + + /** + * @return the style + */ + public Integer getStyle() { + return style; + } + + /** + * @param style the style to set + */ + public UpdateStatus setStyle(Integer style) { + this.style = style; + return UpdateStatus.Success; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/FormattedText.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/FormattedText.java new file mode 100755 index 000000000..fbd48e896 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/FormattedText.java @@ -0,0 +1,92 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.textObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * FormattedText class + * @author Manuel JULIACHS + */ +public class FormattedText { + /** FormattedText properties names */ + public enum FormattedTextProperty { TEXT, FONT }; + + /** Text */ + private String text; + + /** Font */ + private Font font; + + /** Constructor */ + public FormattedText() { + text = ""; + font = new Font(); + } + + /** Constructor */ + public FormattedText(String text, Font font) { + this.text = text == null ? "" : text; + this.font = font; + } + + /** + * Copy constructor + * @param formText the formatted text to copy + */ + public FormattedText(FormattedText formText) { + this.text = new String(formText.getText()); + this.font = new Font(formText.getFont()); + } + + @Override + public boolean equals(Object o) { + if (o instanceof FormattedText) { + FormattedText ft = (FormattedText) o; + return ft.text.equals(text) && ft.font.equals(font); + } + + return false; + } + + /** + * @return the font + */ + public Font getFont() { + return font; + } + + /** + * @param font the font to set + */ + public UpdateStatus setFont(Font font) { + this.font = font; + return UpdateStatus.Success; + } + + /** + * @return the text + */ + public String getText() { + return text; + } + + /** + * @param text the text to set + */ + public UpdateStatus setText(String text) { + this.text = text == null ? "" : text; + return UpdateStatus.Success; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Text.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Text.java new file mode 100755 index 000000000..65ad8a5ba --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Text.java @@ -0,0 +1,408 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.textObject; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Text class + * @author Manuel JULIACHS + */ +public class Text extends ClippableTextObject { + /** Text properties names */ + private enum TextProperty { FONTANGLE, POSITION, CORNERS, ALIGNMENT, BOX, TEXTBOX, TEXTBOXMODE, AUTODIMENSIONING }; + + /** Alignment */ + public enum Alignment { LEFT, CENTER, RIGHT; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the alignment enum + */ + public static Alignment intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return Alignment.LEFT; + case 1: + return Alignment.CENTER; + case 2: + return Alignment.RIGHT; + default: + return null; + } + } + + }; + + /** Text box mode */ + private enum TextBoxMode { OFF, CENTERED, FILLED; + + /** + * Converts an integer to the corresponding enum + * @param intValue the integer value + * @return the text box mode enum + */ + public static TextBoxMode intToEnum(Integer intValue) { + switch (intValue) { + case 0: + return TextBoxMode.OFF; + case 1: + return TextBoxMode.CENTERED; + case 2: + return TextBoxMode.FILLED; + default: + return null; + } + } + + }; + + /** Text angle */ + private double fontAngle; + + /** 3D coordinates position (3-element array) */ + private double[] position; + + /** + * The 3D coordinates of the Text's four corners. + * They are stored in clockwise order, starting from the lower-left corner. + */ + private double[][] corners; + + /** Text alignment */ + private Alignment alignment; + + /** Specifies whether a box is drawn */ + private boolean box; + + /** Text box dimensions (2-element array) */ + private double[] textBox; + + /** Text box mode */ + private TextBoxMode textBoxMode; + + /** Auto-dimensioning */ + private boolean autoDimensioning; + + /** Constructor */ + public Text() { + super(); + fontAngle = 0.0; + position = new double[3]; + corners = new double[4][3]; + alignment = Alignment.CENTER; + box = false; + textBox = new double[2]; + textBoxMode = TextBoxMode.OFF; + autoDimensioning = false; + } + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_FONT_ANGLE__ : + return TextProperty.FONTANGLE; + case __GO_POSITION__ : + return TextProperty.POSITION; + case __GO_CORNERS__ : + return TextProperty.CORNERS; + case __GO_ALIGNMENT__ : + return TextProperty.ALIGNMENT; + case __GO_BOX__ : + return TextProperty.BOX; + case __GO_TEXT_BOX__ : + return TextProperty.TEXTBOX; + case __GO_TEXT_BOX_MODE__ : + return TextProperty.TEXTBOXMODE; + case __GO_AUTO_DIMENSIONING__ : + return TextProperty.AUTODIMENSIONING; + default : + return super.getPropertyFromName(propertyName); + } + } + + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == TextProperty.FONTANGLE) { + return getFontAngle(); + } else if (property == TextProperty.POSITION) { + return getPosition(); + } else if (property == TextProperty.CORNERS) { + return getCorners(); + } else if (property == TextProperty.ALIGNMENT) { + return getAlignment(); + } else if (property == TextProperty.BOX) { + return getBox(); + } else if (property == TextProperty.TEXTBOX) { + return getTextBox(); + } else if (property == TextProperty.TEXTBOXMODE) { + return getTextBoxMode(); + } else if (property == TextProperty.AUTODIMENSIONING) { + return getAutoDimensioning(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == TextProperty.FONTANGLE) { + setFontAngle((Double) value); + } else if (property == TextProperty.POSITION) { + setPosition((Double[]) value); + } else if (property == TextProperty.CORNERS) { + setCorners((Double[]) value); + } else if (property == TextProperty.ALIGNMENT) { + setAlignment((Integer) value); + } else if (property == TextProperty.BOX) { + setBox((Boolean) value); + } else if (property == TextProperty.TEXTBOX) { + setTextBox((Double[]) value); + } else if (property == TextProperty.TEXTBOXMODE) { + setTextBoxMode((Integer) value); + } else if (property == TextProperty.AUTODIMENSIONING) { + setAutoDimensioning((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the alignment + */ + public Integer getAlignment() { + return getAlignmentAsEnum().ordinal(); + } + + /** + * @return the alignment + */ + public Alignment getAlignmentAsEnum() { + return alignment; + } + + /** + * @param alignment the alignment to set + */ + public UpdateStatus setAlignment(Integer alignment) { + return setAlignmentAsEnum(Alignment.intToEnum(alignment)); + } + + /** + * @param alignment the alignment to set + */ + public UpdateStatus setAlignmentAsEnum(Alignment alignment) { + this.alignment = alignment; + return UpdateStatus.Success; + } + + /** + * @return the autoDimensioning + */ + public Boolean getAutoDimensioning() { + return autoDimensioning; + } + + /** + * @param autoDimensioning the autoDimensioning to set + */ + public UpdateStatus setAutoDimensioning(Boolean autoDimensioning) { + this.autoDimensioning = autoDimensioning; + return UpdateStatus.Success; + } + + /** + * @return the box + */ + public Boolean getBox() { + return box; + } + + /** + * @param box the box to set + */ + public UpdateStatus setBox(Boolean box) { + this.box = box; + return UpdateStatus.Success; + } + + /** + * @return the fontAngle + */ + public Double getFontAngle() { + return fontAngle; + } + + /** + * @param fontAngle the fontAngle to set + */ + public UpdateStatus setFontAngle(Double fontAngle) { + this.fontAngle = fontAngle; + return UpdateStatus.Success; + } + + /** + * @return the position + */ + public Double[] getPosition() { + Double[] retPosition = new Double[3]; + retPosition[0] = position[0]; + retPosition[1] = position[1]; + retPosition[2] = position[2]; + + return retPosition; + } + + /** + * @param position the position to set + */ + public UpdateStatus setPosition(Double[] position) { + this.position[0] = position[0]; + this.position[1] = position[1]; + this.position[2] = position[2]; + return UpdateStatus.Success; + } + + /** + * Returns the coordinates of the Text's corners + * Coordinates are returned as consecutive (x,y,z) triplets, each triplet + * corresponding to one corner, starting from the lower-left one and + * going in clockwise order. + * @return the corners' coordinates (12-element array) + */ + public Double[] getCorners() { + Double[] retCorners = new Double[12]; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 3; j++) { + retCorners[3 * i + j] = corners[i][j]; + } + } + + return retCorners; + } + + /** + * Sets the coordinates of the Text's corners + * The coordinates to set are given as consecutive (x,y,z) triplets, each triplet + * corresponding to one corner, starting from the lower-left one and going in + * clockwise order. + * @param coordinates the corners' coordinates (12-element array) + */ + public UpdateStatus setCorners(Double[] coordinates) { + if (coordinates.length != 12) { + return UpdateStatus.NoChange; + } + + corners[0][0] = coordinates[0]; + corners[0][1] = coordinates[1]; + corners[0][2] = coordinates[2]; + + corners[1][0] = coordinates[3]; + corners[1][1] = coordinates[4]; + corners[1][2] = coordinates[5]; + + corners[2][0] = coordinates[6]; + corners[2][1] = coordinates[7]; + corners[2][2] = coordinates[8]; + + corners[3][0] = coordinates[9]; + corners[3][1] = coordinates[10]; + corners[3][2] = coordinates[11]; + + return UpdateStatus.Success; + } + + /** + * @return the textBox + */ + public Double[] getTextBox() { + Double[] retTextBox = new Double[2]; + retTextBox[0] = textBox[0]; + retTextBox[1] = textBox[1]; + + return retTextBox; + } + + /** + * @param textBox the textBox to set + */ + public UpdateStatus setTextBox(Double[] textBox) { + this.textBox[0] = textBox[0]; + this.textBox[1] = textBox[1]; + return UpdateStatus.Success; + } + + /** + * @return the textBoxMode + */ + public Integer getTextBoxMode() { + return getTextBoxModeAsEnum().ordinal(); + } + + /** + * @return the textBoxMode + */ + public TextBoxMode getTextBoxModeAsEnum() { + return textBoxMode; + } + + /** + * @param textBoxMode the textBoxMode to set + */ + public UpdateStatus setTextBoxMode(Integer textBoxMode) { + return setTextBoxModeAsEnum(TextBoxMode.intToEnum(textBoxMode)); + } + + /** + * @param textBoxMode the textBoxMode to set + */ + public UpdateStatus setTextBoxModeAsEnum(TextBoxMode textBoxMode) { + this.textBoxMode = textBoxMode; + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_TEXT__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/TextObject.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/TextObject.java new file mode 100755 index 000000000..728872d77 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/TextObject.java @@ -0,0 +1,340 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.textObject; + +import org.scilab.modules.graphic_objects.contouredObject.ContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_FRACTIONAL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FORMATTED_TEXT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TEXT_ARRAY_DIMENSIONS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TEXT_STRINGS__; + + +/** + * TextObject class + * @author Manuel JULIACHS + */ +public abstract class TextObject extends ContouredObject { + /** TextObject properties names */ + protected enum TextObjectProperty { TEXT, TEXT_ARRAY_DIMENSIONS }; + + /** + * Formatted text objects array, row-major order. + * For now, elements are supposed to have identical font properties values, + * hence the current associated get/set methods implementation. + */ + protected FormattedText[] text; + + /** Text array dimensions (number of rows, number of columns) */ + private int[] dimensions; + + /** Constructor */ + public TextObject() { + super(); + + dimensions = new int[2]; + dimensions[0] = 1; + dimensions[1] = 1; + + text = new FormattedText[1]; + text[0] = new FormattedText(); + } + + /** + * Clone method + */ + public TextObject clone() { + TextObject copy = (TextObject) super.clone(); + + copy.dimensions = new int[2]; + copy.dimensions[0] = dimensions[0]; + copy.dimensions[1] = dimensions[1]; + copy.text = new FormattedText[dimensions[0] * dimensions[1]]; + + /* Actually copies the FormattedText objects */ + copy.setText(text); + + return copy; + } + + /** + * @return true if we have an empty label + */ + public boolean isEmpty() { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + String s = text[i].getText(); + if (s != null && !s.isEmpty()) { + return false; + } + } + + return true; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_FORMATTED_TEXT__ : + return TextObjectProperty.TEXT; + case __GO_TEXT_ARRAY_DIMENSIONS__ : + return TextObjectProperty.TEXT_ARRAY_DIMENSIONS; + case __GO_TEXT_STRINGS__ : + return FormattedText.FormattedTextProperty.TEXT; + case __GO_FONT_STYLE__ : + return Font.FontProperty.STYLE; + case __GO_FONT_SIZE__ : + return Font.FontProperty.SIZE; + case __GO_FONT_COLOR__ : + return Font.FontProperty.COLOR; + case __GO_FONT_FRACTIONAL__ : + return Font.FontProperty.FRACTIONAL; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == TextObjectProperty.TEXT) { + return getText(); + } else if (property == TextObjectProperty.TEXT_ARRAY_DIMENSIONS) { + return getTextArrayDimensions(); + } else if (property == FormattedText.FormattedTextProperty.TEXT) { + return getTextStrings(); + } else if (property == Font.FontProperty.STYLE) { + return getFontStyle(); + } else if (property == Font.FontProperty.SIZE) { + return getFontSize(); + } else if (property == Font.FontProperty.COLOR) { + return getFontColor(); + } else if (property == Font.FontProperty.FRACTIONAL) { + return getFontFractional(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == TextObjectProperty.TEXT) { + setText((FormattedText[]) value); + } else if (property == TextObjectProperty.TEXT_ARRAY_DIMENSIONS) { + setTextArrayDimensions((Integer[]) value); + } else if (property == FormattedText.FormattedTextProperty.TEXT) { + setTextStrings((String[]) value); + } else if (property == Font.FontProperty.STYLE) { + setFontStyle((Integer) value); + } else if (property == Font.FontProperty.SIZE) { + setFontSize((Double) value); + } else if (property == Font.FontProperty.COLOR) { + setFontColor((Integer) value); + } else if (property == Font.FontProperty.FRACTIONAL) { + setFontFractional((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the text array dimensions + */ + public Integer[] getTextArrayDimensions() { + Integer retDimensions[] = new Integer[2]; + retDimensions[0] = dimensions[0]; + retDimensions[1] = dimensions[1]; + + return retDimensions; + } + + /** + * Sets the text array dimensions + * Recreates an array of formatted text objects. + * If there was an existing array, the new array's objects' font properties + * are set to those of the existing array's first element, as all the array's objects + * are supposed to have the same font properties for now. + * + * @param dimensions the text array dimensions to set + */ + public UpdateStatus setTextArrayDimensions(Integer[] dimensions) { + int currentSize = this.dimensions[0] * this.dimensions[1]; + + if (dimensions[0] * dimensions[1] != currentSize) { + FormattedText[] newText = new FormattedText[dimensions[0] * dimensions[1]]; + + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + newText[i] = new FormattedText(); + + if (currentSize >= 1) { + newText[i].setFont(new Font(text[0].getFont())); + } + } + + text = newText; + } + + this.dimensions[0] = dimensions[0]; + this.dimensions[1] = dimensions[1]; + return UpdateStatus.Success; + } + + /** + * @return the text + */ + public FormattedText[] getText() { + FormattedText[] retText = new FormattedText[dimensions[0] * dimensions[1]]; + + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + retText[i] = new FormattedText(text[i]); + } + + return retText; + } + + /** + * @param textArray the textArray to set + */ + public UpdateStatus setText(FormattedText[] textArray) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i] = new FormattedText(textArray[i]); + } + return UpdateStatus.Success; + } + + /** + * @return the text strings + */ + public String[] getTextStrings() { + String[] textStrings = new String[dimensions[0] * dimensions[1]]; + + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + textStrings[i] = new String(text[i].getText()); + } + + return textStrings; + } + + /** + * @param textStrings the text strings array to set + */ + public UpdateStatus setTextStrings(String[] textStrings) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].setText(textStrings[i]); + } + return UpdateStatus.Success; + } + + /** + * @return the font + */ + public Font getFont() { + return text[0].getFont(); + } + + /** + * @param font the font to set + */ + public UpdateStatus setFont(Font font) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].setFont(font); + } + return UpdateStatus.Success; + } + + /** + * @return the font style + */ + public Integer getFontStyle() { + return text[0].getFont().getStyle(); + } + + /** + * @param style the font style to set + */ + public UpdateStatus setFontStyle(Integer style) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].getFont().setStyle(style); + } + return UpdateStatus.Success; + } + + /** + * @return the font color + */ + public Integer getFontColor() { + return text[0].getFont().getColor(); + } + + /** + * @param color the font color to set + */ + public UpdateStatus setFontColor(Integer color) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].getFont().setColor(color); + } + return UpdateStatus.Success; + } + + /** + * @return the font size + */ + public Double getFontSize() { + return text[0].getFont().getSize(); + } + + /** + * @param size the font size to set + */ + public UpdateStatus setFontSize(Double size) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].getFont().setSize(size); + } + return UpdateStatus.Success; + } + + /** + * @return the font fractional + */ + public Boolean getFontFractional() { + return text[0].getFont().getFractional(); + } + + /** + * @param fractional the font fractional to set + */ + public UpdateStatus setFontFractional(Boolean fractional) { + for (int i = 0; i < dimensions[0] * dimensions[1]; i++) { + text[i].getFont().setFractional(fractional); + } + return UpdateStatus.Success; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/Uibar.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/Uibar.java new file mode 100755 index 000000000..290e05dc6 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/Uibar.java @@ -0,0 +1,143 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uibar; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MESSAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MESSAGE_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE__; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * @author Vincent COUVERT + */ +public abstract class Uibar extends GraphicObject { + + private String[] message = {""}; + private int value; + + /** + * All uibar properties + */ + private enum UibarProperty { + MESSAGE, + MESSAGE_SIZE, + VALUE + }; + + /** + * Constructor + */ + public Uibar() { + super(); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_UI_MESSAGE__ : + return UibarProperty.MESSAGE; + case __GO_UI_MESSAGE_SIZE__ : + return UibarProperty.MESSAGE_SIZE; + case __GO_UI_VALUE__ : + return UibarProperty.VALUE; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + Object propertyValue = null; + if (property == UibarProperty.MESSAGE) { + propertyValue = getMessage(); + } else if (property == UibarProperty.MESSAGE_SIZE) { + propertyValue = getMessage().length; + } else if (property == UibarProperty.VALUE) { + propertyValue = getValue(); + } else { + propertyValue = super.getProperty(property); + } + return propertyValue; + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == UibarProperty.MESSAGE) { + setMessage((String[]) value); + } else if (property == UibarProperty.VALUE) { + setValue((Integer) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * Get the uibar message + * @return the message + */ + public String[] getMessage() { + return this.message; + } + + /** + * Set the uibar message + * @param message the message + */ + public UpdateStatus setMessage(String[] message) { + this.message = message; + return UpdateStatus.Success; + } + + /** + * Get the uibar value + * @return the value + */ + public Integer getValue() { + return this.value; + } + + /** + * Set the uibar value + * @param value the value + */ + public UpdateStatus setValue(Integer value) { + this.value = value; + return UpdateStatus.Success; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/progressionbar/Progressionbar.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/progressionbar/Progressionbar.java new file mode 100755 index 000000000..bf49e584e --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/progressionbar/Progressionbar.java @@ -0,0 +1,48 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uibar.progressionbar; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PROGRESSIONBAR__; + +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.uibar.Uibar; + +/** + * @author Vincent COUVERT + */ +public class Progressionbar extends Uibar { + + /** + * Constructor + */ + public Progressionbar() { + super(); + } + + /** + * Get this object type + * @return waitbar + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_PROGRESSIONBAR__; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/waitbar/Waitbar.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/waitbar/Waitbar.java new file mode 100755 index 000000000..8be7b800d --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uibar/waitbar/Waitbar.java @@ -0,0 +1,48 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uibar.waitbar; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_WAITBAR__; + +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.uibar.Uibar; + +/** + * @author Vincent COUVERT + */ +public class Waitbar extends Uibar { + + /** + * Constructor + */ + public Waitbar() { + super(); + } + + /** + * Get this object type + * @return waitbar + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_WAITBAR__; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontextmenu/Uicontextmenu.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontextmenu/Uicontextmenu.java new file mode 100755 index 000000000..0dfcbe96f --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontextmenu/Uicontextmenu.java @@ -0,0 +1,49 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontextmenu; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTEXTMENU__; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * @author Vincent COUVERT + */ +public class Uicontextmenu extends GraphicObject { + + /** + * Constructor + */ + public Uicontextmenu() { + super(); + } + + /** + * Get this object type + * @return uicontextmenu + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_UICONTEXTMENU__; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/Uicontrol.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/Uicontrol.java new file mode 100755 index 000000000..96713db17 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/Uicontrol.java @@ -0,0 +1,1777 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Bruno JOFRET + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BORDER_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_EVENTHANDLER_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_EVENTHANDLER_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_GRID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT_SET__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARGINS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTROL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BACKGROUNDCOLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BORDER_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BORDER_PREFERREDSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTANGLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTNAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTUNITS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTWEIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FOREGROUNDCOLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_ANCHOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_FILL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_GRID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_PREFERREDSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_WEIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GROUP_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_HORIZONTALALIGNMENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ICON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LAYER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOXTOP_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOXTOP__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MAX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MIN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RELIEF__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SCROLLABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDERSTEP__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_COLNB__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TITLE_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TITLE_SCROLL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TOOLTIPSTRING_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TOOLTIPSTRING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_UNITS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VERTICALALIGNMENT__; + +import java.awt.Font; +import java.util.Arrays; +import java.util.StringTokenizer; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.event.EventHandler; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.utils.LayoutType; + +/** + * @author Bruno JOFRET + * @author Vincent COUVERT + */ +public class Uicontrol extends GraphicObject { + + public enum TitlePositionType { + TOP, LEFT, BOTTOM, RIGHT; + public static TitlePositionType intToEnum(Integer value) { + switch (value) { + default: + case 0: + return TOP; + case 1: + return LEFT; + case 2: + return BOTTOM; + case 3: + return RIGHT; + } + } + + public static TitlePositionType stringToEnum(String value) { + if (value.equals("left")) { + return LEFT; + } + + if (value.equals("bottom")) { + return BOTTOM; + } + + if (value.equals("right")) { + return RIGHT; + } + + return TOP; + } + + public static String enumToString(TitlePositionType value) { + switch (value) { + case BOTTOM: + return "bottom"; + case LEFT: + return "left"; + case RIGHT: + return "right"; + default: + case TOP: + return "top"; + } + } + } + + public enum BorderLayoutType { + BOTTOM, TOP, CENTER, LEFT, RIGHT; + public static BorderLayoutType intToEnum(Integer value) { + switch (value) { + case 0: + return BorderLayoutType.BOTTOM; + case 1: + return BorderLayoutType.TOP; + default: + case 2: + return BorderLayoutType.CENTER; + case 3: + return BorderLayoutType.LEFT; + case 4: + return BorderLayoutType.RIGHT; + } + } + + public static BorderLayoutType stringToEnum2(String value) { + if (value == null || value.equals("")) { + return CENTER; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'n' || chars[0] == 'N') { + return TOP; + } + + if (chars[0] == 'e' || chars[0] == 'E') { + return RIGHT; + } + + if (chars[0] == 's' || chars[0] == 'S') { + return BOTTOM; + } + + if (chars[0] == 'w' || chars[0] == 'W') { + return LEFT; + } + + return CENTER; + } + + public static String enumToString(BorderLayoutType value) { + switch (value) { + case BOTTOM: + return "bottom"; + default: + case CENTER: + return "center"; + case LEFT: + return "left"; + case RIGHT: + return "right"; + case TOP: + return "top"; + } + } + + public static BorderLayoutType stringToEnum(String value) { + if (value.equals("bottom")) { + return BOTTOM; + } + + if (value.equals("left")) { + return LEFT; + } + + if (value.equals("right")) { + return RIGHT; + } + + if (value.equals("top")) { + return TOP; + } + + return CENTER; + } + } + + public enum FillType { + NONE, VERTICAL, HORIZONTAL, BOTH; + public static FillType intToEnum(Integer value) { + switch (value) { + default: + case 0: + return FillType.NONE; + case 1: + return FillType.VERTICAL; + case 2: + return FillType.HORIZONTAL; + case 3: + return FillType.BOTH; + } + } + + public static FillType stringToEnum(String value) { + if (value == null || value.equals("")) { + return NONE; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'v' || chars[0] == 'V') { + return VERTICAL; + } + + if (chars[0] == 'h' || chars[0] == 'H') { + return HORIZONTAL; + } + + if (chars[0] == 'b' || chars[0] == 'B') { + return BOTH; + } + + return NONE; + } + + public static String enumToString(FillType value) { + switch (value) { + case BOTH: + return "both"; + case HORIZONTAL: + return "horizontal"; + case NONE: + default: + return "none"; + case VERTICAL: + return "vertical"; + } + } + } + + public enum AnchorType { + CENTER, UPPER, LOWER, RIGHT, LEFT, UPPER_RIGHT, UPPER_LEFT, LOWER_RIGHT, LOWER_LEFT; + //c,e,w,n,s,ne,nw,se,sw + public static AnchorType intToEnum(Integer value) { + switch (value) { + default: + case 0: + return CENTER; + case 1: + return UPPER; + case 2: + return LOWER; + case 3: + return RIGHT; + case 4: + return LEFT; + case 5: + return UPPER_RIGHT; + case 6: + return UPPER_LEFT; + case 7: + return LOWER_RIGHT; + case 8: + return LOWER_LEFT; + } + } + + public static AnchorType stringToEnum2(String value) { + if (value == null || value.equals("")) { + return CENTER; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'e' || chars[0] == 'E') { + return RIGHT; + } + + if (chars[0] == 'w' || chars[0] == 'W') { + return LEFT; + } + + if (chars[0] == 'n' || chars[0] == 'N') { + if (chars.length == 1) { + return UPPER; + } + + if (chars[1] == 'e' || chars[1] == 'E') { + return UPPER_RIGHT; + } + + if (chars[1] == 'w' || chars[1] == 'W') { + return UPPER_LEFT; + } + return UPPER; + } + + if (chars[0] == 's' || chars[0] == 'S') { + if (chars.length == 1) { + return LOWER; + } + + if (chars[1] == 'e' || chars[1] == 'E') { + return LOWER_RIGHT; + } + + if (chars[1] == 'w' || chars[1] == 'W') { + return LOWER_LEFT; + } + return LOWER; + } + + return CENTER; + } + + public static String enumToString(AnchorType value) { + switch (value) { + default: + case CENTER: + return "center"; + case LEFT: + return "left"; + case LOWER: + return "lower"; + case LOWER_LEFT: + return "lower_left"; + case LOWER_RIGHT: + return "lower_right"; + case RIGHT: + return "right"; + case UPPER: + return "upper"; + case UPPER_LEFT: + return "upper_left"; + case UPPER_RIGHT: + return "upper_right"; + } + } + + public static AnchorType stringToEnum(String value) { + if (value.equals("left")) { + return LEFT; + } + + if (value.equals("lower")) { + return LOWER; + } + + if (value.equals("lower_left")) { + return LOWER_LEFT; + } + + if (value.equals("lower_right")) { + return LOWER_RIGHT; + } + + if (value.equals("right")) { + return RIGHT; + } + + if (value.equals("upper")) { + return UPPER; + } + + if (value.equals("upper_left")) { + return UPPER_LEFT; + } + + if (value.equals("upper_right")) { + return UPPER_RIGHT; + } + + return CENTER; + } + } + + protected static final String RELIEF_DEFAULT = "default"; + protected static final String RELIEF_FLAT = "flat"; + protected static final String RELIEF_RAISED = "raised"; + protected static final String RELIEF_SUNKEN = "sunken"; + protected static final String RELIEF_GROOVE = "groove"; + protected static final String RELIEF_RIDGE = "ridge"; + protected static final String RELIEF_SOLID = "solid"; + + protected static final double DEFAULT_RED_BACKGROUND = 0.8; + protected static final double DEFAULT_GREEN_BACKGROUND = 0.8; + protected static final double DEFAULT_BLUE_BACKGROUND = 0.8; + + private static final double DEFAULT_X = 20.0; + private static final double DEFAULT_Y = 40.0; + private static final double DEFAULT_WIDTH = 40.0; + private static final double DEFAULT_HEIGHT = 20.0; + + protected static final double DEFAULT_FONTSIZE = 10; + protected static final String DEFAULT_FONTNAME = "helvetica"; + protected static final String DEFAULT_FONTWEIGHT = "normal"; + protected static final String DEFAULT_FONTANGLE = "normal"; + private static final String STRING_SEPARATOR = "|"; + + private UicontrolStyle style; + private Double[] backgroundColor = { -1.0, -1.0, -1.0}; + private Boolean enable = true; + private String fontAngle = ""; + private String fontName = ""; + private double fontSize = 0; + private String fontUnits = "points"; + private String fontWeight = ""; + private Double[] foregroundColor = { -1.0, -1.0, -1.0}; + private String horizontalAlignment = ""; + private String verticalAlignment = ""; + private Integer[] listboxTop; + private double max = 1.0; + private double min; + private Double[] position = {DEFAULT_X, DEFAULT_Y, DEFAULT_WIDTH, DEFAULT_HEIGHT}; + private String relief = RELIEF_DEFAULT; + private Double[] sliderStep = {0.01, 0.1}; + private String[] string = new String[] {}; + private int stringColNb = 1; // Used for tables + private String[] tooltipString = {""}; + private String units = "pixels"; + private Double[] value; + private Boolean scrollable = false; + private LayoutType layout = LayoutType.NONE; + private Double[] margins = new Double[] {0.0, 0.0, 0.0, 0.0}; + private Integer[] gridbagGrid = new Integer[] { -1, -1, 1, 1}; + private Double[] gridbagWeight = new Double[] {0.0, 0.0}; + private FillType gridbagFill = FillType.NONE; + private AnchorType gridbagAnchor = AnchorType.CENTER; + private Integer[] gridbagPadding = new Integer[] {0, 0}; + private Integer[] gridbagPreferredSize = new Integer[] { -1, -1}; + private BorderLayoutType borderPosition = BorderLayoutType.CENTER; + private Integer[] borderPreferredSize = new Integer[] { -1, -1}; + private String icon = ""; + + /** layout options */ + private Integer[] gridOptGrid = new Integer[] {0, 0}; + private Integer[] gridOptPadding = new Integer[] {0, 0}; + private Integer[] borderOptPadding = new Integer[] {0, 0}; + + /** border options */ + private Integer frameBorder = 0; + + /** groupname for radiobutton */ + private String groupName = ""; + + /** tab properties */ + private Boolean titleScroll = false; + private TitlePositionType titlePosition = TitlePositionType.TOP; + + private EventHandler eventHandler; + + /** + * All uicontrol properties + */ + private enum UicontrolProperty { + STYLE, + BACKGROUNDCOLOR, + ENABLE, + FONTANGLE, + FONTNAME, + FONTSIZE, + FONTUNITS, + FONTWEIGHT, + FOREGROUNDCOLOR, + HORIZONTALALIGNMENT, + LISTBOXTOP, + LISTBOXTOP_SIZE, + MAX, + MIN, + POSITION, + SCALE, + SHEAR, + SLIDERSTEP, + STRING, + STRING_SIZE, + STRING_COLNB, + RELIEF, + TOOLTIPSTRING, + TOOLTIPSTRING_SIZE, + UNITS, + VALUE, + VALUE_SIZE, + VERTICALALIGNMENT, + LAYOUT, + LAYOUT_SET, + MARGINS, + GRIDBAG_GRID, + GRIDBAG_WEIGHT, + GRIDBAG_FILL, + GRIDBAG_ANCHOR, + GRIDBAG_PADDING, + GRIDBAG_PREFERREDSIZE, + BORDER_POSITION, + BORDER_PREFERREDSIZE, + GRIDOPT_GRID, + GRIDOPT_PADDING, + BORDEROPT_PADDING, + FRAMEBORDER, + GROUPNAME, + TITLE_POSITION, + TITLE_SCROLL, + SCROLLABLE, + ICON, + EVENTHANDLER, + EVENTHANDLERENABLE + }; + + /** + * All uicontrol styles + */ + public enum UicontrolStyle { + CHECKBOX, + EDIT, + FRAME, + IMAGE, + LISTBOX, + POPUPMENU, + PUSHBUTTON, + RADIOBUTTON, + SLIDER, + TABLE, + TEXT, + TABGROUP, + TAB, + LAYER, + SPINNER + }; + + /** + * Constructor + */ + public Uicontrol() { + super(); + eventHandler = new EventHandler(); + setVisible(false); /* To avoid to see the object rendered before all its properties to be set (See bug #10346) */ + + if (Console.getConsole().getUseDeprecatedLF()) { + setBackgroundColor(new Double[] { + DEFAULT_RED_BACKGROUND, + DEFAULT_GREEN_BACKGROUND, + DEFAULT_BLUE_BACKGROUND + }); + + setHorizontalAlignment("center"); + setVerticalAlignment("middle"); + + setFontName(DEFAULT_FONTNAME); + setFontSize(DEFAULT_FONTSIZE); + setFontAngle(DEFAULT_FONTANGLE); + setFontWeight(DEFAULT_FONTWEIGHT); + } + } + + /** + * Get style as a string + * @param style the uicontrol style + * @return the uicontrol style as a string + */ + private int styleEnumToInt(UicontrolStyle style) { + switch (style) { + case CHECKBOX: + return __GO_UI_CHECKBOX__; + case EDIT: + return __GO_UI_EDIT__; + case FRAME: + return __GO_UI_FRAME__; + case IMAGE: + return __GO_UI_IMAGE__; + case LISTBOX: + return __GO_UI_LISTBOX__; + case POPUPMENU: + return __GO_UI_POPUPMENU__; + case PUSHBUTTON: + return __GO_UI_PUSHBUTTON__; + case RADIOBUTTON: + return __GO_UI_RADIOBUTTON__; + case SLIDER: + return __GO_UI_SLIDER__; + case TABLE: + return __GO_UI_TABLE__; + case TEXT: + return __GO_UI_TEXT__; + case TAB: + return __GO_UI_TAB__; + case LAYER: + return __GO_UI_LAYER__; + case SPINNER: + return __GO_UI_SPINNER__; + default : + return -1; + } + } + + /** + * Get style as an enum element + * @param style the uicontrol style + * @return the uicontrol style as an enum element + */ + private UicontrolStyle intToStyleEnum(int style) { + switch (style) { + case __GO_UI_CHECKBOX__ : + return UicontrolStyle.CHECKBOX; + case __GO_UI_EDIT__ : + return UicontrolStyle.EDIT; + case __GO_UI_FRAME__ : + return UicontrolStyle.FRAME; + case __GO_UI_IMAGE__ : + return UicontrolStyle.IMAGE; + case __GO_UI_LISTBOX__ : + return UicontrolStyle.LISTBOX; + case __GO_UI_POPUPMENU__ : + return UicontrolStyle.POPUPMENU; + case __GO_UI_PUSHBUTTON__ : + return UicontrolStyle.PUSHBUTTON; + case __GO_UI_RADIOBUTTON__ : + return UicontrolStyle.RADIOBUTTON; + case __GO_UI_SLIDER__ : + return UicontrolStyle.SLIDER; + case __GO_UI_TABLE__ : + return UicontrolStyle.TABLE; + case __GO_UI_TEXT__ : + return UicontrolStyle.TEXT; + case __GO_UI_TAB__: + return UicontrolStyle.TAB; + case __GO_UI_LAYER__: + return UicontrolStyle.LAYER; + case __GO_UI_SPINNER__: + return UicontrolStyle.SPINNER; + default : + return null; + } + } + + /** + * Get this object type + * @return uicontrol + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_UICONTROL__; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_STYLE__ : + return UicontrolProperty.STYLE; + case __GO_UI_BACKGROUNDCOLOR__ : + return UicontrolProperty.BACKGROUNDCOLOR; + case __GO_UI_ENABLE__ : + return UicontrolProperty.ENABLE; + case __GO_UI_FONTANGLE__ : + return UicontrolProperty.FONTANGLE; + case __GO_UI_FONTNAME__ : + return UicontrolProperty.FONTNAME; + case __GO_UI_FONTSIZE__ : + return UicontrolProperty.FONTSIZE; + case __GO_UI_FONTUNITS__ : + return UicontrolProperty.FONTUNITS; + case __GO_UI_FONTWEIGHT__ : + return UicontrolProperty.FONTWEIGHT; + case __GO_UI_FOREGROUNDCOLOR__ : + return UicontrolProperty.FOREGROUNDCOLOR; + case __GO_UI_HORIZONTALALIGNMENT__ : + return UicontrolProperty.HORIZONTALALIGNMENT; + case __GO_UI_LISTBOXTOP__ : + return UicontrolProperty.LISTBOXTOP; + case __GO_UI_LISTBOXTOP_SIZE__ : + return UicontrolProperty.LISTBOXTOP_SIZE; + case __GO_UI_MAX__ : + return UicontrolProperty.MAX; + case __GO_UI_MIN__ : + return UicontrolProperty.MIN; + case __GO_POSITION__ : + return UicontrolProperty.POSITION; + case __GO_UI_RELIEF__ : + return UicontrolProperty.RELIEF; + case __GO_UI_SLIDERSTEP__ : + return UicontrolProperty.SLIDERSTEP; + case __GO_UI_STRING__ : + return UicontrolProperty.STRING; + case __GO_UI_STRING_SIZE__ : + return UicontrolProperty.STRING_SIZE; + case __GO_UI_STRING_COLNB__ : + return UicontrolProperty.STRING_COLNB; + case __GO_UI_TOOLTIPSTRING__ : + return UicontrolProperty.TOOLTIPSTRING; + case __GO_UI_TOOLTIPSTRING_SIZE__ : + return UicontrolProperty.TOOLTIPSTRING_SIZE; + case __GO_UI_UNITS__ : + return UicontrolProperty.UNITS; + case __GO_UI_VALUE__ : + return UicontrolProperty.VALUE; + case __GO_UI_VALUE_SIZE__ : + return UicontrolProperty.VALUE_SIZE; + case __GO_UI_VERTICALALIGNMENT__ : + return UicontrolProperty.VERTICALALIGNMENT; + case __GO_LAYOUT__ : + return UicontrolProperty.LAYOUT; + case __GO_LAYOUT_SET__ : + return UicontrolProperty.LAYOUT_SET; + case __GO_MARGINS__: + return UicontrolProperty.MARGINS; + case __GO_UI_GRIDBAG_GRID__: + return UicontrolProperty.GRIDBAG_GRID; + case __GO_UI_GRIDBAG_WEIGHT__: + return UicontrolProperty.GRIDBAG_WEIGHT; + case __GO_UI_GRIDBAG_FILL__: + return UicontrolProperty.GRIDBAG_FILL; + case __GO_UI_GRIDBAG_ANCHOR__: + return UicontrolProperty.GRIDBAG_ANCHOR; + case __GO_UI_GRIDBAG_PADDING__: + return UicontrolProperty.GRIDBAG_PADDING; + case __GO_UI_GRIDBAG_PREFERREDSIZE__: + return UicontrolProperty.GRIDBAG_PREFERREDSIZE; + case __GO_UI_BORDER_POSITION__: + return UicontrolProperty.BORDER_POSITION; + case __GO_UI_BORDER_PREFERREDSIZE__: + return UicontrolProperty.BORDER_PREFERREDSIZE; + case __GO_GRID_OPT_GRID__: + return UicontrolProperty.GRIDOPT_GRID; + case __GO_GRID_OPT_PADDING__: + return UicontrolProperty.GRIDOPT_PADDING; + case __GO_BORDER_OPT_PADDING__: + return UicontrolProperty.BORDEROPT_PADDING; + case __GO_UI_FRAME_BORDER__: + return UicontrolProperty.FRAMEBORDER; + case __GO_UI_GROUP_NAME__: + return UicontrolProperty.GROUPNAME; + case __GO_UI_TITLE_POSITION__: + return UicontrolProperty.TITLE_POSITION; + case __GO_UI_TITLE_SCROLL__: + return UicontrolProperty.TITLE_SCROLL; + case __GO_UI_SCROLLABLE__: + return UicontrolProperty.SCROLLABLE; + case __GO_UI_ICON__: + return UicontrolProperty.ICON; + case __GO_EVENTHANDLER_NAME__: + return UicontrolProperty.EVENTHANDLER; + case __GO_EVENTHANDLER_ENABLE__: + return UicontrolProperty.EVENTHANDLERENABLE; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == UicontrolProperty.STYLE) { + return getStyle(); + } else if (property == UicontrolProperty.BACKGROUNDCOLOR) { + return getBackgroundColor(); + } else if (property == UicontrolProperty.ENABLE) { + return getEnable(); + } else if (property == UicontrolProperty.FONTANGLE) { + return getFontAngle(); + } else if (property == UicontrolProperty.FONTNAME) { + return getFontName(); + } else if (property == UicontrolProperty.FONTSIZE) { + return getFontSize(); + } else if (property == UicontrolProperty.FONTUNITS) { + return getFontUnits(); + } else if (property == UicontrolProperty.FONTWEIGHT) { + return getFontWeight(); + } else if (property == UicontrolProperty.FOREGROUNDCOLOR) { + return getForegroundColor(); + } else if (property == UicontrolProperty.HORIZONTALALIGNMENT) { + return getHorizontalAlignment(); + } else if (property == UicontrolProperty.LISTBOXTOP) { + return getListboxTop(); + } else if (property == UicontrolProperty.LISTBOXTOP_SIZE) { + return getListboxTopSize(); + } else if (property == UicontrolProperty.MAX) { + return getMax(); + } else if (property == UicontrolProperty.MIN) { + return getMin(); + } else if (property == UicontrolProperty.POSITION) { + return getUiPosition(); + } else if (property == UicontrolProperty.RELIEF) { + return getRelief(); + } else if (property == UicontrolProperty.SLIDERSTEP) { + return getSliderStep(); + } else if (property == UicontrolProperty.STRING) { + return getString(); + } else if (property == UicontrolProperty.STRING_SIZE) { + return getString().length; + } else if (property == UicontrolProperty.STRING_COLNB) { + return getStringColNb(); + } else if (property == UicontrolProperty.TOOLTIPSTRING) { + return getTooltipString(); + } else if (property == UicontrolProperty.TOOLTIPSTRING_SIZE) { + return getTooltipString().length; + } else if (property == UicontrolProperty.UNITS) { + return getUnits(); + } else if (property == UicontrolProperty.VALUE) { + return getUiValue(); + } else if (property == UicontrolProperty.VALUE_SIZE) { + return getUiValueSize(); + } else if (property == UicontrolProperty.VERTICALALIGNMENT) { + return getVerticalAlignment(); + } else if (property == UicontrolProperty.LAYOUT) { + return getLayout(); + } else if (property == UicontrolProperty.LAYOUT_SET) { + return isLayoutSettable(); + } else if (property == UicontrolProperty.MARGINS) { + return getMargins(); + } else if (property == UicontrolProperty.GRIDBAG_GRID) { + return getGridBagGrid(); + } else if (property == UicontrolProperty.GRIDBAG_WEIGHT) { + return getGridBagWeight(); + } else if (property == UicontrolProperty.GRIDBAG_FILL) { + return getGridBagFill(); + } else if (property == UicontrolProperty.GRIDBAG_ANCHOR) { + return getGridBagAnchor(); + } else if (property == UicontrolProperty.GRIDBAG_PADDING) { + return getGridBagPadding(); + } else if (property == UicontrolProperty.GRIDBAG_PREFERREDSIZE) { + return getGridBagPreferredSize(); + } else if (property == UicontrolProperty.BORDER_POSITION) { + return getBorderPosition(); + } else if (property == UicontrolProperty.BORDER_PREFERREDSIZE) { + return getBorderPreferredSize(); + } else if (property == UicontrolProperty.GRIDOPT_GRID) { + return getGridOptGrid(); + } else if (property == UicontrolProperty.GRIDOPT_PADDING) { + return getGridOptPadding(); + } else if (property == UicontrolProperty.BORDEROPT_PADDING) { + return getBorderOptPadding(); + } else if (property == UicontrolProperty.FRAMEBORDER) { + return getFrameBorder(); + } else if (property == UicontrolProperty.GROUPNAME) { + return getGroupName(); + } else if (property == UicontrolProperty.TITLE_POSITION) { + return getTitlePosition(); + } else if (property == UicontrolProperty.TITLE_SCROLL) { + return getTitleScroll(); + } else if (property == UicontrolProperty.SCROLLABLE) { + return getScrollable(); + } else if (property == UicontrolProperty.ICON) { + return getIcon(); + } else if (property == UicontrolProperty.EVENTHANDLER) { + return getEventHandler(); + } else if (property == UicontrolProperty.EVENTHANDLERENABLE) { + return getEventHandlerEnable(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (!(property instanceof UicontrolProperty)) { + return super.setProperty(property, value); + } + + UicontrolProperty p = (UicontrolProperty) property; + switch (p) { + case STYLE: + return setStyle((Integer) value); + case BACKGROUNDCOLOR: + return setBackgroundColor((Double[]) value); + case ENABLE: + return setEnable((Boolean) value); + case FONTANGLE: + return setFontAngle((String) value); + case FONTNAME: + return setFontName((String) value); + case FONTSIZE: + return setFontSize((Double) value); + case FONTUNITS: + return setFontUnits((String) value); + case FONTWEIGHT: + return setFontWeight((String) value); + case FOREGROUNDCOLOR: + return setForegroundColor((Double[]) value); + case HORIZONTALALIGNMENT: + return setHorizontalAlignment((String) value); + case LISTBOXTOP: + return setListboxTop((Integer[]) value); + case MAX: + return setMax((Double) value); + case MIN: + return setMin((Double) value); + case POSITION: + return setUiPosition((Double[]) value); + case RELIEF: + return setRelief((String) value); + case SLIDERSTEP: + return setSliderStep((Double[]) value); + case STRING: + return setString((String[]) value); + case STRING_COLNB: + return setStringColNb((Integer) value); + case TOOLTIPSTRING: + return setTooltipString((String[]) value); + case UNITS: + return setUnits((String) value); + case VALUE: + return setUiValue((Double[]) value); + case VERTICALALIGNMENT: + return setVerticalAlignment((String) value); + case LAYOUT: + return setLayout((Integer) value); + case MARGINS: + return setMargins((Double[]) value); + case GRIDBAG_GRID: + return setGridBagGrid((Integer[]) value); + case GRIDBAG_WEIGHT: + return setGridBagWeight((Double[]) value); + case GRIDBAG_FILL: + return setGridBagFill((Integer) value); + case GRIDBAG_ANCHOR: + return setGridBagAnchor((Integer) value); + case GRIDBAG_PADDING: + return setGridBagPadding((Integer[]) value); + case GRIDBAG_PREFERREDSIZE: + return setGridBagPreferredSize((Integer[]) value); + case BORDER_POSITION: + return setBorderPosition((Integer) value); + case BORDER_PREFERREDSIZE: + return setBorderPreferredSize((Integer[]) value); + case GRIDOPT_GRID: + return setGridOptGrid((Integer[]) value); + case GRIDOPT_PADDING: + return setGridOptPadding((Integer[]) value); + case BORDEROPT_PADDING: + return setBorderOptPadding((Integer[]) value); + case FRAMEBORDER: + return setFrameBorder((Integer) value); + case GROUPNAME: + return setGroupName((String) value); + case TITLE_POSITION: + return setTitlePosition((Integer) value); + case TITLE_SCROLL: + return setTitleScroll((Boolean) value); + case SCROLLABLE: + return setScrollable((Boolean) value); + case ICON: + return setIcon((String) value); + case EVENTHANDLER: + return setEventHandler((String) value); + case EVENTHANDLERENABLE: + return setEventHandlerEnable((Boolean) value); + default: + return super.setProperty(property, value); + } + } + + /** + * Get the style + * @return the style + */ + public Integer getStyle() { + return styleEnumToInt(style); + } + + public UicontrolStyle getStyleAsEnum() { + return style; + } + + /** + * Set the style + * @param style the style + */ + public UpdateStatus setStyle(int style) { + UicontrolStyle val = intToStyleEnum(style); + if (val == this.style) { + return UpdateStatus.NoChange; + } + + this.style = val; + return UpdateStatus.Success; + } + + /* Background Color */ + public Double[] getBackgroundColor() { + return this.backgroundColor; + } + + public UpdateStatus setBackgroundColor(Double[] colors) { + if (Arrays.equals(colors, this.backgroundColor)) { + return UpdateStatus.NoChange; + } + + this.backgroundColor = colors; + return UpdateStatus.Success; + } + + /* Enable */ + public Boolean getEnable() { + return enable; + } + + public UpdateStatus setEnable(Boolean status) { + if (enable.equals(status)) { + return UpdateStatus.NoChange; + } + enable = status; + return UpdateStatus.Success; + } + + /* FontAngle */ + public String getFontAngle() { + return this.fontAngle; + } + + public UpdateStatus setFontAngle(String fontAngle) { + if (this.fontAngle.equals(fontAngle)) { + return UpdateStatus.NoChange; + } + this.fontAngle = fontAngle; + return UpdateStatus.Success; + } + + /* FontName */ + public String getFontName() { + return this.fontName; + } + + public UpdateStatus setFontName(String fontName) { + if (this.fontName.equals(fontName)) { + return UpdateStatus.NoChange; + } + this.fontName = fontName; + return UpdateStatus.Success; + } + + /* FontSize */ + public double getFontSize() { + return this.fontSize; + } + + public UpdateStatus setFontSize(double fontSize) { + if (this.fontSize == fontSize) { + return UpdateStatus.NoChange; + } + this.fontSize = fontSize; + return UpdateStatus.Success; + } + + /* FontUnits */ + public String getFontUnits() { + return this.fontUnits; + } + + public UpdateStatus setFontUnits(String fontUnits) { + if (this.fontUnits.equals(fontUnits)) { + return UpdateStatus.NoChange; + } + this.fontUnits = fontUnits; + return UpdateStatus.Success; + } + + /* FontWeight */ + public String getFontWeight() { + return this.fontWeight; + } + + public UpdateStatus setFontWeight(String fontWeight) { + if (this.fontWeight.equals(fontWeight)) { + return UpdateStatus.NoChange; + } + this.fontWeight = fontWeight; + return UpdateStatus.Success; + } + + /* Foreground Color */ + public Double[] getForegroundColor() { + return this.foregroundColor; + } + + public UpdateStatus setForegroundColor(Double[] colors) { + if (Arrays.equals(this.foregroundColor, colors)) { + return UpdateStatus.NoChange; + } + this.foregroundColor = colors; + return UpdateStatus.Success; + } + + /* Horizontal Alignment */ + public String getHorizontalAlignment() { + return this.horizontalAlignment; + } + + public UpdateStatus setHorizontalAlignment(String alignment) { + if (this.horizontalAlignment.equals(alignment)) { + return UpdateStatus.NoChange; + } + this.horizontalAlignment = alignment; + return UpdateStatus.Success; + } + + /* Listbox Top */ + public Integer getListboxTopSize() { + return (listboxTop != null ? listboxTop.length : 0); + } + + public Integer[] getListboxTop() { + return this.listboxTop; + } + + public UpdateStatus setListboxTop(Integer[] listboxTop) { + if (Arrays.equals(this.listboxTop, listboxTop)) { + return UpdateStatus.NoChange; + } + this.listboxTop = listboxTop; + return UpdateStatus.Success; + } + + /* Max */ + public Double getMax() { + return this.max; + } + + public UpdateStatus setMax(double max) { + if (this.max == max) { + return UpdateStatus.NoChange; + } + this.max = max; + return UpdateStatus.Success; + } + + /* Min */ + public Double getMin() { + return this.min; + } + + public UpdateStatus setMin(double min) { + if (this.min == min) { + return UpdateStatus.NoChange; + } + this.min = min; + return UpdateStatus.Success; + } + + /* Position */ + public Double[] getUiPosition() { + return this.position; + } + + public UpdateStatus setUiPosition(Double[] position) { + if (Arrays.equals(this.position, position)) { + return UpdateStatus.NoChange; + } + this.position = position; + return UpdateStatus.Success; + } + + /* Relief */ + public String getRelief() { + return this.relief; + } + + public UpdateStatus setRelief(String relief) { + if (this.relief.equals(relief)) { + return UpdateStatus.NoChange; + } + this.relief = relief; + return UpdateStatus.Success; + } + + /** + * Get the string + * @return the string + */ + public String[] getString() { + return this.string; + } + + /** + * Set the string + * @param string the string + */ + public UpdateStatus setString(String[] string) { + //update needed ? + + //both null or same object + if (this.string == string) { + return UpdateStatus.NoChange; + } + + boolean needUpdate = false; + if (this.string.length == string.length) { + for (int i = 0 ; i < string.length ; i++) { + + if (this.string[i] == null && string[i] == null) { + continue; + } + + //only one null + if ((this.string[i] == null || string[i] == null) && + this.string[i] != string[i]) { + needUpdate = true; + break; + } + + if (this.string[i].equals(string[i]) == false) { + needUpdate = true; + break; + } + } + } else { + needUpdate = true; + } + + if (needUpdate == false) { + return UpdateStatus.NoChange; + } + + if (this.style == UicontrolStyle.LISTBOX || this.style == UicontrolStyle.POPUPMENU) { + /* String can be set using a|b|c|d */ + if (string.length == 0) { + if (this.string.length == 0) { + return UpdateStatus.NoChange; + } + + this.string = string; + return UpdateStatus.Success; + } else if (string.length == 1 && string[0].contains(STRING_SEPARATOR)) { + StringTokenizer strTok = new StringTokenizer(string[0], STRING_SEPARATOR); + String[] stringTab = new String[strTok.countTokens()]; + while (strTok.hasMoreTokens()) { + stringTab[stringTab.length - strTok.countTokens()] = strTok.nextToken(); + } + this.string = stringTab; + return UpdateStatus.Success; + } + } + + this.string = string; + return UpdateStatus.Success; + } + + /** + * Get the string column number + * @return the number of columns + */ + public int getStringColNb() { + return stringColNb; + } + + /** + * Set the string column number + * @param stringColNb the number of columns + */ + public UpdateStatus setStringColNb(Integer stringColNb) { + if (this.stringColNb == stringColNb) { + return UpdateStatus.NoChange; + } + this.stringColNb = stringColNb; + return UpdateStatus.Success; + } + + + /** + * Get the tooltip string + * @return the tooltip string + */ + public String[] getTooltipString() { + return this.tooltipString; + } + + /** + * Set the tooltip string + * @param tooltipString the tooltip string + */ + public UpdateStatus setTooltipString(String[] tooltipString) { + if (Arrays.equals(this.tooltipString, tooltipString)) { + return UpdateStatus.NoChange; + } + this.tooltipString = tooltipString; + return UpdateStatus.Success; + } + + /* Slider Step */ + public Double[] getSliderStep() { + return this.sliderStep; + } + + public UpdateStatus setSliderStep(Double[] sliderStep) { + if (Arrays.equals(this.sliderStep, sliderStep)) { + return UpdateStatus.NoChange; + } + this.sliderStep = sliderStep; + return UpdateStatus.Success; + } + + /* Units */ + public String getUnits() { + return this.units; + } + + public UpdateStatus setUnits(String units) { + if (this.units.equals(units)) { + return UpdateStatus.NoChange; + } + this.units = units; + return UpdateStatus.Success; + } + + /* Value */ + public Integer getUiValueSize() { + return (value != null ? value.length : 0); + } + + public Double[] getUiValue() { + return this.value; + } + + public UpdateStatus setUiValue(Double[] value) { + if (Arrays.equals(this.value, value)) { + return UpdateStatus.NoChange; + } + this.value = value; + return UpdateStatus.Success; + } + + /* Vertical Alignment */ + public String getVerticalAlignment() { + return this.verticalAlignment; + } + + public UpdateStatus setVerticalAlignment(String alignment) { + if (this.verticalAlignment.equals(alignment)) { + return UpdateStatus.NoChange; + } + this.verticalAlignment = alignment; + return UpdateStatus.Success; + } + + public Integer getLayout() { + return layout.ordinal(); + } + + public LayoutType getLayoutAsEnum() { + return layout; + } + + public boolean isLayoutSettable() { + return (this.layout == LayoutType.NONE); + } + + public UpdateStatus setLayout(Integer value) { + return setLayout(LayoutType.intToEnum(value)); + } + + public UpdateStatus setLayout(LayoutType layout) { + //avoid to set layout twice + if (this.layout == LayoutType.NONE) { + if (layout == LayoutType.NONE) { + return UpdateStatus.NoChange; + } + + this.layout = layout; + return UpdateStatus.Success; + } + + return UpdateStatus.Fail; + } + + public Double[] getMargins() { + return margins; + } + + public UpdateStatus setMargins(Double[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (value.length != 4) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < 4 ; i++) { + if (margins[i].equals(value[i]) == false) { + margins[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer getBorderPosition() { + return borderPosition.ordinal(); + } + + public BorderLayoutType getBorderPositionAsEnum() { + return borderPosition; + } + + public UpdateStatus setBorderPosition(Integer value) { + return setBorderPosition(BorderLayoutType.intToEnum(value)); + } + + public UpdateStatus setBorderPosition(BorderLayoutType value) { + if (borderPosition == value) { + return UpdateStatus.NoChange; + } + + borderPosition = value; + return UpdateStatus.Success; + } + + public Integer[] getGridBagPadding() { + return gridbagPadding; + } + + public UpdateStatus setGridBagPadding(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridbagPadding.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridbagPadding[i] != value[i]) { + gridbagPadding[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridBagPreferredSize() { + return gridbagPreferredSize; + } + + public UpdateStatus setGridBagPreferredSize(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridbagPreferredSize.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridbagPreferredSize[i] != value[i]) { + gridbagPreferredSize[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getBorderPreferredSize() { + return borderPreferredSize; + } + + public UpdateStatus setBorderPreferredSize(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (borderPreferredSize.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (borderPreferredSize[i] != value[i]) { + borderPreferredSize[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer getGridBagAnchor() { + return gridbagAnchor.ordinal(); + } + + public AnchorType getGridBagAnchorAsEnum() { + return gridbagAnchor; + } + + public UpdateStatus setGridBagAnchor(Integer value) { + return setGridBagAnchor(AnchorType.intToEnum(value)); + } + + public UpdateStatus setGridBagAnchor(AnchorType value) { + if (gridbagAnchor == value) { + return UpdateStatus.NoChange; + } + + gridbagAnchor = value; + return UpdateStatus.Success; + } + + public Integer getGridBagFill() { + return gridbagFill.ordinal(); + } + + public FillType getGridBagFillAsEnum() { + return gridbagFill; + } + + public UpdateStatus setGridBagFill(Integer value) { + return setGridBagFill(FillType.intToEnum(value)); + } + + public UpdateStatus setGridBagFill(FillType value) { + if (gridbagFill == value) { + return UpdateStatus.NoChange; + } + + gridbagFill = value; + return UpdateStatus.Success; + } + + public Double[] getGridBagWeight() { + return gridbagWeight; + } + + public UpdateStatus setGridBagWeight(Double[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridbagWeight.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridbagWeight[i] != value[i]) { + gridbagWeight[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridBagGrid() { + return gridbagGrid; + } + + public UpdateStatus setGridBagGrid(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridbagGrid.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridbagGrid[i] != value[i]) { + gridbagGrid[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getBorderOptPadding() { + return borderOptPadding; + } + + public UpdateStatus setBorderOptPadding(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (borderOptPadding.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (borderOptPadding[i] != value[i]) { + borderOptPadding[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridOptPadding() { + return gridOptPadding; + } + + public UpdateStatus setGridOptPadding(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridOptPadding.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridOptPadding[i] != value[i]) { + gridOptPadding[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer[] getGridOptGrid() { + return gridOptGrid; + } + + public UpdateStatus setGridOptGrid(Integer[] value) { + UpdateStatus status = UpdateStatus.NoChange; + if (gridOptGrid.length != value.length) { + return UpdateStatus.Fail; + } + + for (int i = 0 ; i < value.length ; i++) { + if (gridOptGrid[i] != value[i]) { + gridOptGrid[i] = value[i]; + status = UpdateStatus.Success; + } + } + + return status; + } + + public Integer getFrameBorder() { + return frameBorder; + } + + public UpdateStatus setFrameBorder(Integer value) { + if (frameBorder.equals(value)) { + return UpdateStatus.NoChange; + } + + frameBorder = value; + return UpdateStatus.Success; + } + + public String getGroupName() { + return groupName; + } + + public UpdateStatus setGroupName(String value) { + if (groupName.equals(value)) { + return UpdateStatus.NoChange; + } + + groupName = value; + return UpdateStatus.Success; + } + + public Boolean getTitleScroll() { + return titleScroll; + } + + public UpdateStatus setTitleScroll(Boolean value) { + if (titleScroll == value) { + return UpdateStatus.NoChange; + } + + titleScroll = value; + return UpdateStatus.Success; + } + + public Integer getTitlePosition() { + return titlePosition.ordinal(); + } + + public TitlePositionType getTitlePositionAsEnum() { + return titlePosition; + } + + + public UpdateStatus setTitlePosition(Integer value) { + return setTitlePosition(TitlePositionType.intToEnum(value)); + } + + public UpdateStatus setTitlePosition(TitlePositionType value) { + if (titlePosition == value) { + return UpdateStatus.NoChange; + } + + titlePosition = value; + return UpdateStatus.Success; + } + + public UpdateStatus setScrollable(Boolean scrollable) { + if (this.scrollable == scrollable) { + return UpdateStatus.NoChange; + } + + this.scrollable = scrollable; + return UpdateStatus.Success; + } + + public Boolean getScrollable() { + return scrollable; + } + + public void setFont(Font font) { + if (font == null) { + return; + } + + setFontName(font.getName()); + setFontSize(font.getSize()); + + if (font.isItalic()) { + setFontAngle("italic"); + } else { + setFontAngle("normal"); + } + + if (font.isBold()) { + setFontWeight("bold"); + } else { + setFontWeight("normal"); + } + } + + public UpdateStatus setIcon(String icon) { + if (this.icon.equals(icon)) { + return UpdateStatus.NoChange; + } + + this.icon = icon; + return UpdateStatus.Success; + } + + public String getIcon() { + return icon; + } + + public UpdateStatus setEventHandler(String eventHandlerName) { + return eventHandler.setEventHandlerString(eventHandlerName); + } + + public String getEventHandler() { + return eventHandler.getEventHandlerString(); + } + + public UpdateStatus setEventHandlerEnable(Boolean eventHandlerEnabled) { + return eventHandler.setEventHandlerEnabled(eventHandlerEnabled); + } + + public boolean getEventHandlerEnable() { + return eventHandler.getEventHandlerEnabled(); + } + + public void accept(Visitor visitor) { + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/checkbox/CheckBox.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/checkbox/CheckBox.java new file mode 100755 index 000000000..3dbaa4065 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/checkbox/CheckBox.java @@ -0,0 +1,55 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.checkbox; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class CheckBox extends Uicontrol { + + /** + * Constructor + */ + public CheckBox() { + super(); + setStyle(__GO_UI_CHECKBOX__); + + // Default value is the min value (not checked) + Double[] value = new Double[1]; + value[0] = getMin(); + setUiValue(value); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("CheckBox.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Edit.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Edit.java new file mode 100755 index 000000000..13b5e1f03 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Edit.java @@ -0,0 +1,50 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.edit; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class Edit extends Uicontrol { + + /** + * Constructor + */ + public Edit() { + super(); + setStyle(__GO_UI_EDIT__); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_SUNKEN); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("TextField.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java new file mode 100755 index 000000000..5b6ea3fcf --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java @@ -0,0 +1,32 @@ +package org.scilab.modules.graphic_objects.uicontrol.edit; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +public class Spinner extends Uicontrol { + + public Spinner() { + super(); + setStyle(__GO_UI_SPINNER__); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_SUNKEN); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Spinner.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/Frame.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/Frame.java new file mode 100755 index 000000000..4a2fe37f8 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/Frame.java @@ -0,0 +1,80 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.frame; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.axes.AxesContainer; +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.figure.ColorMap; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class Frame extends Uicontrol implements AxesContainer { + + /** + * Constructor + */ + public Frame() { + super(); + setStyle(__GO_UI_FRAME__); + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_RIDGE); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Panel.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } + + public Integer getAntialiasing() { + return 0; + } + + public Integer getBackground() { + Figure figure = (Figure) GraphicModel.getModel().getObjectFromId(getParentFigure()); + if (figure != null) { + return figure.getBackground(); + } + return -2; + } + + public ColorMap getColorMap() { + Figure figure = (Figure) GraphicModel.getModel().getObjectFromId(getParentFigure()); + if (figure != null) { + return figure.getColorMap(); + } + + return new ColorMap(); + } + + public Integer[] getAxesSize() { + Double[] pos = getUiPosition(); + return new Integer[] {pos[2].intValue(), pos[3].intValue()}; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorder.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorder.java new file mode 100755 index 000000000..a57abd436 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorder.java @@ -0,0 +1,675 @@ +package org.scilab.modules.graphic_objects.uicontrol.frame.border; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTANGLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTNAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTWEIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_HIGHLIGHT_IN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_IN_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_JUSTIFICATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_OUT_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_ROUNDED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_SHADOW_IN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_SHADOW_OUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; + +import java.util.Arrays; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +public class FrameBorder extends GraphicObject { + enum FrameBorderProperty { + TYPE, //RAISED or LOWERED + COLOR, //string + THICKNESS, //int + ROUNDED, //boolean + STYLE, //FrameBorderType + HIGHLIGHT_OUT, //string + HIGHLIGHT_IN, //string + SHADOW_OUT, //string + SHADOW_IN, //string + TITLE_BORDER, + TITLE, //string + JUSTIFICATION, //JustificationType + FONTNAME, //string + FONTANGLE, // string + FONT_SIZE, //int + FONT_WEIGHT, //string + TITLE_POSITION, // TitlePostionType + POSITION, //tlbr + IN_BORDER, + OUT_BORDER, + }; + + public enum BorderType { + RAISED, LOWERED; + public static BorderType intToEnum(Integer value) { + switch (value) { + default: + case 0: + return RAISED; + case 1: + return LOWERED; + } + } + + public static BorderType stringToEnum(String value) { + if (value == null || value.equals("")) { + return null; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'l' || chars[0] == 'L') { + return LOWERED; + } + + return RAISED; + } + } + + public enum JustificationType { + LEADING, LEFT, CENTER, RIGHT, TRAILING; + + public static JustificationType intToEnum(Integer val) { + switch (val) { + default : + case 0: + return LEADING; + case 1: + return LEFT; + case 2: + return CENTER; + case 3: + return RIGHT; + case 4: + return TRAILING; + } + } + + public static JustificationType stringToEnum(String value) { + if (value == null || value.equals("")) { + return null; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'l' || chars[0] == 'L') { + if (chars[3] == 'f' || chars[3] == 'F') { + return LEFT; + } + return LEADING; + } + + if (chars[0] == 'c' || chars[0] == 'C') { + return CENTER; + } + + if (chars[0] == 'r' || chars[0] == 'R') { + return RIGHT; + } + + if (chars[0] == 't' || chars[0] == 'T') { + return TRAILING; + } + + + return LEADING; + } + + }; + + public enum TitlePositionType { + TOP, ABOVE_TOP, BELOW_TOP, BOTTOM, ABOVE_BOTTOM, BELOW_BOTTOM; + + public static TitlePositionType intToEnum(Integer val) { + switch (val) { + default : + case 0: + return TOP; + case 1: + return ABOVE_TOP; + case 2: + return BELOW_TOP; + case 3: + return BOTTOM; + case 4: + return ABOVE_BOTTOM; + case 5: + return BELOW_BOTTOM; + } + } + + public static TitlePositionType stringToEnum(String value) { + if (value == null || value.equals("")) { + return null; + } + + if (value.equalsIgnoreCase("above_top")) { + return ABOVE_TOP; + } + + if (value.equalsIgnoreCase("below_top")) { + return BELOW_TOP; + } + + if (value.equalsIgnoreCase("bottom")) { + return BOTTOM; + } + + if (value.equalsIgnoreCase("above_bottom")) { + return ABOVE_BOTTOM; + } + + if (value.equalsIgnoreCase("below_bottom")) { + return BELOW_BOTTOM; + } + + return TOP; + } + }; + + private BorderType type = null;//BorderType.NONE; + private String color = null; + private String hlOutColor = null; + private String hlInColor = null; + private String shadowOutColor = null; + private String shadowInColor = null; + private Integer thickness = null; + private Boolean rounded = null; + private FrameBorderType style = null;//FrameBorderType.ETCHED; + private String title = null; + private JustificationType justification = null;//JustificationType.LEADING; + private String fontAngle = null; + private String fontName = null; + private Integer fontSize = null; + private String fontWeight = null; + private TitlePositionType titlePosition = TitlePositionType.TOP; + private Double[] position = null;//new Double[] {0.0, 0.0, 0.0, 0.0};//TLBR + + private Integer titleBorder = null; + private Integer inBorder = null; + private Integer outBorder = null; + + public FrameBorder() { + + } + + /** + * Get style as a string + * @param style the uicontrol style + * @return the uicontrol style as a string + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_UI_FRAME_BORDER_COLOR__: + return FrameBorderProperty.COLOR; + case __GO_UI_FONTANGLE__: + return FrameBorderProperty.FONTANGLE; + case __GO_UI_FONTNAME__: + return FrameBorderProperty.FONTNAME; + case __GO_UI_FONTSIZE__: + return FrameBorderProperty.FONT_SIZE; + case __GO_UI_FONTWEIGHT__: + return FrameBorderProperty.FONT_WEIGHT; + case __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__: + return FrameBorderProperty.HIGHLIGHT_IN; + case __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__: + return FrameBorderProperty.HIGHLIGHT_OUT; + case __GO_UI_FRAME_BORDER_IN_BORDER__: + return FrameBorderProperty.IN_BORDER; + case __GO_UI_FRAME_BORDER_JUSTIFICATION__: + return FrameBorderProperty.JUSTIFICATION; + case __GO_UI_FRAME_BORDER_OUT_BORDER__: + return FrameBorderProperty.OUT_BORDER; + case __GO_POSITION__: + return FrameBorderProperty.POSITION; + case __GO_UI_FRAME_BORDER_ROUNDED__: + return FrameBorderProperty.ROUNDED; + case __GO_UI_FRAME_BORDER_SHADOW_IN__: + return FrameBorderProperty.SHADOW_IN; + case __GO_UI_FRAME_BORDER_SHADOW_OUT__: + return FrameBorderProperty.SHADOW_OUT; + case __GO_UI_FRAME_BORDER_STYLE__: + return FrameBorderProperty.STYLE; + case __GO_LINE_THICKNESS__: + return FrameBorderProperty.THICKNESS; + case __GO_TITLE__: + return FrameBorderProperty.TITLE; + case __GO_UI_FRAME_BORDER_TITLE__: + return FrameBorderProperty.TITLE_BORDER; + case __GO_UI_FRAME_BORDER_POSITION__: + return FrameBorderProperty.TITLE_POSITION; + case __GO_UI_FRAME_BORDER_TYPE__: + return FrameBorderProperty.TYPE; + default: + return super.getPropertyFromName(propertyName); + } + } + + public Object getProperty(Object property) { + if (property instanceof FrameBorderProperty) { + switch ((FrameBorderProperty)property) { + case COLOR: + return getColor(); + case FONTANGLE: + return getFontAngle(); + case FONTNAME: + return getFontName(); + case FONT_SIZE: + return getFontSize(); + case FONT_WEIGHT: + return getFontWeight(); + case HIGHLIGHT_IN: + return getHlIn(); + case HIGHLIGHT_OUT: + return getHlOut(); + case IN_BORDER: + return getInBorder(); + case JUSTIFICATION: + return getJustification(); + case OUT_BORDER: + return getOutBorder(); + case POSITION: + return getPosition(); + case ROUNDED: + return getRounded(); + case SHADOW_IN: + return getShadowIn(); + case SHADOW_OUT: + return getShadowOut(); + case STYLE: + return getStyle(); + case THICKNESS: + return getThickness(); + case TITLE: + return getTitle(); + case TITLE_BORDER: + return getTitleBorder(); + case TITLE_POSITION: + return getTitlePosition(); + case TYPE: + return getBorderType(); + } + } + + return super.getProperty(property); + } + + public UpdateStatus setProperty(Object property, Object value) { + if (property instanceof FrameBorderProperty) { + switch ((FrameBorderProperty) property) { + case COLOR: + return setColor((String)value); + case FONTANGLE: + return setFontAngle((String)value); + case FONTNAME: + return setFontName((String)value); + case FONT_SIZE: + return setFontSize((Integer)value); + case FONT_WEIGHT: + return setFontWeight((String)value); + case HIGHLIGHT_IN: + return setHlIn((String)value); + case HIGHLIGHT_OUT: + return setHlOut((String)value); + case IN_BORDER: + return setInBorder((Integer)value); + case JUSTIFICATION: + return setJustification((Integer)value); + case OUT_BORDER: + return setOutBorder((Integer)value); + case POSITION: + return setPosition((Double[])value); + case ROUNDED: + return setRounded((Boolean)value); + case SHADOW_IN: + return setShadowIn((String)value); + case SHADOW_OUT: + return setShadowOut((String)value); + case STYLE: + return setStyle((Integer)value); + case THICKNESS: + return setThickness((Integer)value); + case TITLE: + return setTitle((String)value); + case TITLE_BORDER: + return setTitleBorder((Integer)value); + case TITLE_POSITION: + return setTitlePosition((Integer)value); + case TYPE: + return setBorderType((Integer)value); + } + } + return super.setProperty(property, value); + } + + /** type */ + public Integer getBorderType() { + return type == null ? null : type.ordinal(); + } + + public BorderType getBorderTypeAsEnum() { + return type; + } + + public UpdateStatus setBorderType(BorderType value) { + if (value == type) { + return UpdateStatus.NoChange; + } + + type = value; + return UpdateStatus.Success; + } + + public UpdateStatus setBorderType(Integer value) { + return setBorderType(BorderType.intToEnum(value)); + } + + /** titleposition */ + public Integer getTitlePosition() { + return titlePosition == null ? null : titlePosition.ordinal(); + } + + public TitlePositionType getTitlePositionAsEnum() { + return titlePosition; + } + + public UpdateStatus setTitlePosition(Integer value) { + return setTitlePosition(TitlePositionType.intToEnum(value)); + } + + public UpdateStatus setTitlePosition(TitlePositionType value) { + if (titlePosition == value) { + return UpdateStatus.NoChange; + } + + titlePosition = value; + return UpdateStatus.Success; + } + + /** titleborder */ + public Integer getTitleBorder() { + return titleBorder; + } + + public UpdateStatus setTitleBorder(Integer value) { + if (titleBorder != null && titleBorder.equals(value)) { + return UpdateStatus.NoChange; + } + + titleBorder = value; + return UpdateStatus.Success; + } + + /** title */ + public String getTitle() { + return title; + } + + public UpdateStatus setTitle(String value) { + if (title != null && title.equals(value)) { + return UpdateStatus.NoChange; + } + + title = value; + return UpdateStatus.Success; + } + + /** thickness */ + public Integer getThickness() { + return thickness; + } + + public UpdateStatus setThickness(Integer value) { + if (thickness != null && thickness.equals(value)) { + return UpdateStatus.NoChange; + } + + thickness = value; + return UpdateStatus.Success; + } + + /** style */ + public Integer getStyle() { + return style == null ? null : style.ordinal(); + } + + public FrameBorderType getStyleAsEnum() { + return style; + } + + public UpdateStatus setStyle(Integer value) { + return setStyle(FrameBorderType.intToEnum(value)); + } + + public UpdateStatus setStyle(FrameBorderType value) { + if (style != null && style.equals(value)) { + return UpdateStatus.NoChange; + } + + style = value; + return UpdateStatus.Success; + } + + /** shadowOut */ + public String getShadowOut() { + return shadowOutColor; + } + + public UpdateStatus setShadowOut(String value) { + if (shadowOutColor != null && shadowOutColor.equals(value)) { + return UpdateStatus.NoChange; + } + + shadowOutColor = value; + return UpdateStatus.Success; + } + + /** shadowIn */ + public String getShadowIn() { + return shadowInColor; + } + + public UpdateStatus setShadowIn(String value) { + if (shadowInColor != null && shadowInColor.equals(value)) { + return UpdateStatus.NoChange; + } + + shadowInColor = value; + return UpdateStatus.Success; + } + + /** rounded */ + public Boolean getRounded() { + return rounded; + } + + public UpdateStatus setRounded(Boolean value) { + if (rounded != null && rounded.equals(value)) { + return UpdateStatus.NoChange; + } + + rounded = value; + return UpdateStatus.Success; + } + + /** position */ + public Double[] getPosition() { + return position; + } + + public UpdateStatus setPosition(Double[] value) { + if (position != null && Arrays.equals(position, value)) { + return UpdateStatus.NoChange; + } + + position = value; + return UpdateStatus.Success; + } + + /** outBorder */ + public Integer getOutBorder() { + return outBorder; + } + + public UpdateStatus setOutBorder(Integer value) { + if (outBorder != null && outBorder.equals(value)) { + return UpdateStatus.NoChange; + } + + outBorder = value; + return UpdateStatus.Success; + } + + /** justification */ + public Integer getJustification() { + return justification == null ? null : justification.ordinal(); + } + + public JustificationType getJustificationAsEnum() { + return justification; + } + + public UpdateStatus setJustification(Integer value) { + return setJustification(JustificationType.intToEnum(value)); + } + + public UpdateStatus setJustification(JustificationType value) { + if (justification == value) { + return UpdateStatus.NoChange; + } + + justification = value; + return UpdateStatus.Success; + } + + /** inBorder */ + public Integer getInBorder() { + return inBorder; + } + + public UpdateStatus setInBorder(Integer value) { + if (inBorder != null && inBorder.equals(value)) { + return UpdateStatus.NoChange; + } + + inBorder = value; + return UpdateStatus.Success; + } + + /** hlOutColor */ + public String getHlOut() { + return hlOutColor; + } + + public UpdateStatus setHlOut(String value) { + if (hlOutColor != null && hlOutColor.equals(value)) { + return UpdateStatus.NoChange; + } + + hlOutColor = value; + return UpdateStatus.Success; + } + + /** hlInColor */ + public String getHlIn() { + return hlInColor; + } + + public UpdateStatus setHlIn(String value) { + if (hlInColor != null && hlInColor.equals(value)) { + return UpdateStatus.NoChange; + } + + hlInColor = value; + return UpdateStatus.Success; + } + + /** fontWeight */ + public String getFontWeight() { + return fontWeight; + } + + public UpdateStatus setFontWeight(String value) { + if (fontWeight != null && fontWeight.equals(value)) { + return UpdateStatus.NoChange; + } + + fontWeight = value; + return UpdateStatus.Success; + } + + /** fontSize */ + public Integer getFontSize() { + return fontSize; + } + + public UpdateStatus setFontSize(Integer value) { + if (fontSize != null && fontSize.equals(value)) { + return UpdateStatus.NoChange; + } + + fontSize = value; + return UpdateStatus.Success; + } + + /** fontName */ + public String getFontName() { + return fontName; + } + + public UpdateStatus setFontName(String value) { + if (fontName != null && fontName.equals(value)) { + return UpdateStatus.NoChange; + } + + fontName = value; + return UpdateStatus.Success; + } + + /** fontAngle */ + public String getFontAngle() { + return fontAngle; + } + + public UpdateStatus setFontAngle(String value) { + if (fontAngle != null && fontAngle.equals(value)) { + return UpdateStatus.NoChange; + } + + fontAngle = value; + return UpdateStatus.Success; + } + + /** color */ + public String getColor() { + return color; + } + + public UpdateStatus setColor(String value) { + if (color != null && color.equals(value)) { + return UpdateStatus.NoChange; + } + + color = value; + return UpdateStatus.Success; + } + + public void accept(Visitor visitor) throws ObjectRemovedException { + } + + public Integer getType() { + return __GO_UI_FRAME_BORDER__; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorderType.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorderType.java new file mode 100755 index 000000000..34e6af265 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/frame/border/FrameBorderType.java @@ -0,0 +1,73 @@ +package org.scilab.modules.graphic_objects.uicontrol.frame.border; + +public enum FrameBorderType { + NONE, LINE, BEVEL, SOFTBEVEL, ETCHED, TITLED, EMPTY, COMPOUND, MATTE; + + public static FrameBorderType intToEnum(Integer value) { + if (value == null) { + return null; + } + + switch (value) { + default : + case 0 : + return NONE; + case 1 : + return LINE; + case 2 : + return BEVEL; + case 3 : + return SOFTBEVEL; + case 4 : + return ETCHED; + case 5 : + return TITLED; + case 6 : + return EMPTY; + case 7 : + return COMPOUND; + case 8 : + return MATTE; + } + } + + public static FrameBorderType stringToEnum(String value) { + if (value == null || value.equals("")) { + return null; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'l' || chars[0] == 'L') { + return LINE; + } + + if (chars[0] == 'b' || chars[0] == 'B') { + return BEVEL; + } + + if (chars[0] == 's' || chars[0] == 'S') { + return SOFTBEVEL; + } + + if (chars[0] == 'e' || chars[0] == 'E') { + if (chars[1] == 'm' || chars[1] == 'M') { + return EMPTY; + } + return ETCHED; + } + + if (chars[0] == 't' || chars[0] == 'T') { + return TITLED; + } + + if (chars[0] == 'c' || chars[0] == 'C') { + return COMPOUND; + } + + if (chars[0] == 'm' || chars[0] == 'M') { + return MATTE; + } + + return NONE; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/layer/Layer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/layer/Layer.java new file mode 100755 index 000000000..b10b23834 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/layer/Layer.java @@ -0,0 +1,92 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2014 - Scilab enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.layer; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LAYER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB_STRING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB_VALUE__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.utils.LayoutType; + +/** + * @author Vincent COUVERT + */ +public class Layer extends Uicontrol { + private enum LayerProperty { + LAYER_VALUE, + LAYER_STRING + }; + + + /** + * Constructor + */ + public Layer() { + super(); + setStyle(__GO_UI_LAYER__); + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Panel.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + + //layout + setLayout(LayoutType.BORDER); + } + + public Object getPropertyFromName(int property) { + if (property == __GO_UI_TAB_VALUE__) { + return LayerProperty.LAYER_VALUE; + } else if (property == __GO_UI_TAB_STRING__) { + return LayerProperty.LAYER_STRING; + } else { + return super.getPropertyFromName(property); + } + } + + public UpdateStatus setProperty(Object property, Object value) { + if (!(property instanceof LayerProperty)) { + return super.setProperty(property, value); + } + + LayerProperty p = (LayerProperty) property; + switch (p) { + case LAYER_STRING: + return setUiTabString((String[])value); + case LAYER_VALUE: + return setUiTabValue((Double[])value); + default: + return super.setProperty(property, value); + } + } + + public UpdateStatus setUiTabString(String[] value) { + setString(value); + return UpdateStatus.NoChange; + } + + public UpdateStatus setUiTabValue(Double[] value) { + setUiValue(value); + return UpdateStatus.NoChange; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/listbox/ListBox.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/listbox/ListBox.java new file mode 100755 index 000000000..0cb236c81 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/listbox/ListBox.java @@ -0,0 +1,55 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.listbox; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class ListBox extends Uicontrol { + + /** + * Constructor + */ + public ListBox() { + super(); + setStyle(__GO_UI_LISTBOX__); + setUiValue(new Double[] {}); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("List.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } + + public UpdateStatus setUiValue(Double[] value) { + return super.setUiValue(value); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/popupmenu/PopupMenu.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/popupmenu/PopupMenu.java new file mode 100755 index 000000000..4534d492b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/popupmenu/PopupMenu.java @@ -0,0 +1,53 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.popupmenu; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class PopupMenu extends Uicontrol { + + /** + * Constructor + */ + public PopupMenu() { + super(); + setStyle(__GO_UI_POPUPMENU__); + setString(new String[] {}); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("ComboBox.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/pushbutton/PushButton.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/pushbutton/PushButton.java new file mode 100755 index 000000000..a72e48058 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/pushbutton/PushButton.java @@ -0,0 +1,61 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.pushbutton; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Bruno JOFRET + */ +public class PushButton extends Uicontrol { + + private static final double BUTTON_RED_BACKGROUND = 0.6; + private static final double BUTTON_GREEN_BACKGROUND = 0.6; + private static final double BUTTON_BLUE_BACKGROUND = 0.6; + + /** + * Constructor + */ + public PushButton() { + super(); + setStyle(__GO_UI_PUSHBUTTON__); + + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_RAISED); + setBackgroundColor(new Double[] { + BUTTON_RED_BACKGROUND, + BUTTON_GREEN_BACKGROUND, + BUTTON_BLUE_BACKGROUND + }); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Button.font")); + + //h-alignment + setHorizontalAlignment("center"); + + //v-alignement + setVerticalAlignment("middle"); + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/radiobutton/RadioButton.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/radiobutton/RadioButton.java new file mode 100755 index 000000000..8da298607 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/radiobutton/RadioButton.java @@ -0,0 +1,55 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.radiobutton; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Bruno JOFRET + */ +public class RadioButton extends Uicontrol { + + /** + * Constructor + */ + public RadioButton() { + super(); + setStyle(__GO_UI_RADIOBUTTON__); + + // Default value is the min value (not checked) + Double[] value = new Double[1]; + value[0] = getMin(); + setUiValue(value); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("RadioButton.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/slider/Slider.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/slider/Slider.java new file mode 100755 index 000000000..a31e61190 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/slider/Slider.java @@ -0,0 +1,55 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.slider; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class Slider extends Uicontrol { + + /** + * Constructor + */ + public Slider() { + super(); + setStyle(__GO_UI_SLIDER__); + + // Default value is the min value + Double[] value = new Double[1]; + value[0] = getMin(); + setUiValue(value); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Slider.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/tab/Tab.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/tab/Tab.java new file mode 100755 index 000000000..55938533f --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/tab/Tab.java @@ -0,0 +1,95 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2014 - Scilab enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.tab; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB_STRING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB_VALUE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.utils.LayoutType; + +/** + * @author Vincent COUVERT + */ +public class Tab extends Uicontrol { + private enum TabProperty { + TAB_VALUE, + TAB_STRING + }; + + /** + * Constructor + */ + public Tab() { + super(); + setStyle(__GO_UI_TAB__); + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("TabbedPane.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + + //layout + setLayout(LayoutType.BORDER); + } + } + + public Object getPropertyFromName(int property) { + if (property == __GO_UI_TAB_VALUE__) { + return TabProperty.TAB_VALUE; + } else if (property == __GO_UI_TAB_STRING__) { + return TabProperty.TAB_STRING; + } else { + return super.getPropertyFromName(property); + } + } + + public UpdateStatus setProperty(Object property, Object value) { + if (!(property instanceof TabProperty)) { + return super.setProperty(property, value); + } + + TabProperty p = (TabProperty) property; + switch (p) { + case TAB_STRING: + return setUiTabString((String[])value); + case TAB_VALUE: + return setUiTabValue((Double[])value); + default: + return super.setProperty(property, value); + } + } + + public UpdateStatus setUiTabString(String[] value) { + setString(value); + return UpdateStatus.NoChange; + } + + public UpdateStatus setUiTabValue(Double[] value) { + setUiValue(value); + return UpdateStatus.NoChange; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/table/Table.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/table/Table.java new file mode 100755 index 000000000..567cd4c5b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/table/Table.java @@ -0,0 +1,50 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.table; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TABLE__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class Table extends Uicontrol { + + /** + * Constructor + */ + public Table() { + super(); + setStyle(__GO_UI_TABLE__); + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Table.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uiimage/UiImage.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uiimage/UiImage.java new file mode 100755 index 000000000..92ec3d9f0 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uiimage/UiImage.java @@ -0,0 +1,52 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.uiimage; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class UiImage extends Uicontrol { + + /** + * Constructor + */ + public UiImage() { + super(); + setStyle(__GO_UI_IMAGE__); + Double[] imageInfos = {1.0, 1.0, 0.0, 0.0, 0.0}; // {XScale, YScale, XShear, YShear, RotationAngle} + setUiValue(imageInfos); + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_RAISED); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Panel.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uitext/UiText.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uitext/UiText.java new file mode 100755 index 000000000..81753a933 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/uitext/UiText.java @@ -0,0 +1,50 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uicontrol.uitext; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; + +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; + +/** + * @author Vincent COUVERT + */ +public class UiText extends Uicontrol { + + /** + * Constructor + */ + public UiText() { + super(); + setStyle(__GO_UI_TEXT__); + + if (Console.getConsole().getUseDeprecatedLF()) { + setRelief(RELIEF_FLAT); + } else { + UIDefaults defaults = UIManager.getDefaults(); + + //font + setFont(defaults.getFont("Label.font")); + + //h-alignment + setHorizontalAlignment("left"); + + //v-alignement + setVerticalAlignment("middle"); + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uimenu/Uimenu.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uimenu/Uimenu.java new file mode 100755 index 000000000..679ccaf26 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uimenu/Uimenu.java @@ -0,0 +1,313 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent COUVERT + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.uimenu; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ACCELERATOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FOREGROUNDCOLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ICON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MNEMONIC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SEPARATOR__; + +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; + +/** + * @author Vincent COUVERT + */ +public class Uimenu extends GraphicObject { + + private boolean checked; + private boolean enable = true; + private Double[] foregroundColor = {0.0, 0.0, 0.0}; + private String icon = ""; + private String label = ""; + private String mnemonic = ""; + private String accelerator = ""; + private boolean separator; + + /** + * All uimenu properties + */ + private enum UimenuProperty { + ACCELERATOR, + CHECKED, + ENABLE, + FOREGROUNDCOLOR, + ICON, + LABEL, + MNEMONIC, + SEPARATOR + }; + + /** + * Constructor + */ + public Uimenu() { + super(); + setCallbackString(""); + setCallbackType(0); + } + + /** + * Get this object type + * @return uicontrol + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType() + */ + public Integer getType() { + return __GO_UIMENU__; + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_UI_ACCELERATOR__ : + return UimenuProperty.ACCELERATOR; + case __GO_UI_CHECKED__ : + return UimenuProperty.CHECKED; + case __GO_UI_ENABLE__ : + return UimenuProperty.ENABLE; + case __GO_UI_FOREGROUNDCOLOR__ : + return UimenuProperty.FOREGROUNDCOLOR; + case __GO_UI_ICON__ : + return UimenuProperty.ICON; + case __GO_UI_LABEL__ : + return UimenuProperty.LABEL; + case __GO_UI_MNEMONIC__ : + return UimenuProperty.MNEMONIC; + case __GO_UI_SEPARATOR__ : + return UimenuProperty.SEPARATOR; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + Object propertyValue = null; + if (property == UimenuProperty.ACCELERATOR) { + propertyValue = getAccelerator(); + } else if (property == UimenuProperty.CHECKED) { + propertyValue = getChecked(); + } else if (property == UimenuProperty.ENABLE) { + propertyValue = getEnable(); + } else if (property == UimenuProperty.FOREGROUNDCOLOR) { + propertyValue = getForegroundColor(); + } else if (property == UimenuProperty.ICON) { + propertyValue = getIcon(); + } else if (property == UimenuProperty.LABEL) { + propertyValue = getLabel(); + } else if (property == UimenuProperty.MNEMONIC) { + propertyValue = getMnemonic(); + } else if (property == UimenuProperty.SEPARATOR) { + propertyValue = getSeparator(); + } else { + propertyValue = super.getProperty(property); + } + return propertyValue; + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == UimenuProperty.ACCELERATOR) { + setAccelerator((String) value); + } else if (property == UimenuProperty.CHECKED) { + setChecked((Boolean) value); + } else if (property == UimenuProperty.ENABLE) { + setEnable((Boolean) value); + } else if (property == UimenuProperty.FOREGROUNDCOLOR) { + setForegroundColor((Double[]) value); + } else if (property == UimenuProperty.ICON) { + setIcon((String) value); + } else if (property == UimenuProperty.LABEL) { + setLabel((String) value); + } else if (property == UimenuProperty.MNEMONIC) { + setMnemonic((String) value); + } else if (property == UimenuProperty.SEPARATOR) { + setSeparator((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * Get the menu checked status + * @return the status + */ + public Boolean getChecked() { + return this.checked; + } + + /** + * Set the menu checked status + * @param checked the status + */ + public UpdateStatus setChecked(Boolean checked) { + this.checked = checked; + return UpdateStatus.Success; + } + + /** + * Get the menu enable status + * @return the status + */ + public Boolean getEnable() { + return this.enable; + } + + /** + * Set the menu enable status + * @param enable the status + */ + public UpdateStatus setEnable(Boolean enable) { + this.enable = enable; + return UpdateStatus.Success; + } + + /** + * Get the menu Foreground Color + * @return the RGB color + */ + public Double[] getForegroundColor() { + return this.foregroundColor; + } + + /** + * Set the menu Foreground Color + * @param colors the RGB color + */ + public UpdateStatus setForegroundColor(Double[] colors) { + this.foregroundColor = colors; + return UpdateStatus.Success; + } + + /** + * Get the menu icon + * @return the icon + */ + public String getIcon() { + return this.icon; + } + + /** + * Set the menu icon + * @param icon the icon + */ + public UpdateStatus setIcon(String icon) { + this.icon = icon; + return UpdateStatus.Success; + } + + /** + * Get the menu label + * @return the label + */ + public String getLabel() { + return this.label; + } + + /** + * Set the menu label + * @param label the label + */ + public UpdateStatus setLabel(String label) { + this.label = label; + return UpdateStatus.Success; + } + + /** + * Get the menu mnemonic + * @return the mnemonic + */ + public String getMnemonic() { + return this.mnemonic; + } + + /** + * Set the menu mnemonic + * @param mnemonic the mnemonic + */ + public UpdateStatus setMnemonic(String mnemonic) { + this.mnemonic = mnemonic; + return UpdateStatus.Success; + } + + /** + * Get the menu accelerator + * @return the accelerator + */ + public String getAccelerator() { + return this.accelerator; + } + + /** + * Set the menu accelerator + * @param accelerator the accelerator + */ + public UpdateStatus setAccelerator(String accelerator) { + this.accelerator = accelerator; + return UpdateStatus.Success; + } + + /** + * Get the menu separator mode + * @return the separator mode + */ + public Boolean getSeparator() { + return this.separator; + } + + /** + * Set the menu separator mode + * @param separator the separator mode + */ + public UpdateStatus setSeparator(Boolean separator) { + this.separator = separator; + return UpdateStatus.Success; + } + + @Override + public Uimenu clone() { + Uimenu copy = (Uimenu) super.clone(); + copy.setValid(true); + return copy; + } + + /** + * Accept method + * @param visitor the visitor + * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#accept(org.scilab.modules.graphic_objects.graphicObject.Visitor) + */ + public void accept(Visitor visitor) { + + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/LayoutType.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/LayoutType.java new file mode 100755 index 000000000..c9e78afbd --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/LayoutType.java @@ -0,0 +1,68 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.utils; + + +public enum LayoutType { + NONE, GRIDBAG, GRID, BORDER; + + public static LayoutType intToEnum(Integer value) { + switch (value) { + default: + case 0: + return NONE; + case 1: + return GRIDBAG; + case 2: + return GRID; + case 3: + return BORDER; + } + } + + public static LayoutType stringToEnum(String value) { + + if (value == null || value.equals("")) { + return NONE; + } + + char[] chars = value.toCharArray(); + if (chars[0] == 'g' || chars[0] == 'G') { + if (value.equalsIgnoreCase("grid")) { + return GRID; + } else if (value.equalsIgnoreCase("gridbag")) { + return GRIDBAG; + } + } + + if (chars[0] == 'b' || chars[0] == 'B') { + return BORDER; + } + + return NONE; + } + + public static String enumToString(LayoutType value) { + switch (value) { + default: + case NONE: + return "none"; + case GRIDBAG: + return "gridbag"; + case GRID: + return "grid"; + case BORDER: + return "border"; + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarBuilder.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarBuilder.java new file mode 100755 index 000000000..fbbc86064 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarBuilder.java @@ -0,0 +1,433 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent Couvert + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACKTYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACK__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ACCELERATOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ICON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MNEMONIC__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SEPARATOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.Collection; +import java.util.TreeSet; + +import javax.xml.parsers.ParserConfigurationException; + +import org.scilab.modules.commons.OS; +import org.scilab.modules.commons.ScilabConstants; +import org.scilab.modules.commons.xml.ScilabDocumentBuilderFactory; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.CallBack; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.localization.Messages; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + + +/** + * Create a menuBar from an XML file + * @author Vincent COUVERT + */ +public final class MenuBarBuilder { + + private static final String MAINMENUBARXMLFILE = ScilabConstants.SCI + "/modules/gui/etc/main_menubar.xml"; + private static final String GRAPHICSMENUBARXMLFILE = ScilabConstants.SCI + "/modules/gui/etc/graphics_menubar.xml"; + + private static final String FILE_NOT_FOUND = "Could not find file: "; + + private static final String CANNOT_CREATE_MENUBAR = "Cannot create MenuBar.\n" + + "Check if file *_menubar.xml is available and valid."; + + private static boolean isParentValid = true;; + + /** + * Default constructor + */ + private MenuBarBuilder() { + throw new UnsupportedOperationException(); + } + + /** + * Create a proxy to access a XML file + * @param resultClass class for the return value + * @param fileToLoad XML file to load + * @return a proxy used to read the XML file + * @throws SAXException can be thrown when an error occurs while reading the file + * @throws IOException can be thrown when an error occurs while accessing the file + * @throws ParserConfigurationException can be thrown when an error occurs while parsing the file + */ + public static Object buildMenuBar(Class[] resultClass, String fileToLoad) throws SAXException, IOException, ParserConfigurationException { + + InvocationHandler invocationHandler = new MenuBarConfigurationHandler(fileToLoad); + + return Proxy.newProxyInstance(invocationHandler.getClass().getClassLoader(), resultClass, invocationHandler); + } + + /** + * Create console menubar from data in a XML file + * @param consoleId the console + */ + public static void buildConsoleMenuBar(Integer consoleId) { + buildMenuBar(MAINMENUBARXMLFILE, consoleId); + } + + /** + * Create graphic figure menubar from data in a XML file + * @param figureId the figure + */ + public static void buildFigureMenuBar(Integer figureId) { + boolean isheadless = false; + + try { + Class clazz = ClassLoader.getSystemClassLoader().loadClass("org.scilab.modules.gui.SwingView"); + Method meth = clazz.getMethod("isHeadless"); + isheadless = (Boolean) meth.invoke(null); + } catch (Exception e) { + System.err.println(e); + } + + if (!isheadless) { + MenuBarBuilder.isParentValid = false; + buildMenuBar(GRAPHICSMENUBARXMLFILE, figureId); + } + } + + /** + * Create children used in the menubar from data in a XML file + * @param fileToLoad XML file to load + * @param parentId the menubar parent + */ + public static void buildMenuBar(String fileToLoad, Integer parentId) { + + try { + MenuBarConfiguration menuBarConfig = + (MenuBarConfiguration) buildMenuBar(new Class[] {MenuBarConfiguration.class}, fileToLoad); + menuBarConfig.addMenus(parentId); + } catch (IllegalArgumentException e) { + System.err.println(CANNOT_CREATE_MENUBAR); + System.err.println(FILE_NOT_FOUND + e.getLocalizedMessage()); + } catch (SAXException e) { + System.err.println(CANNOT_CREATE_MENUBAR); + System.err.println(FILE_NOT_FOUND + e.getLocalizedMessage()); + } catch (IOException e) { + System.err.println(CANNOT_CREATE_MENUBAR); + System.err.println(FILE_NOT_FOUND + e.getLocalizedMessage()); + } catch (ParserConfigurationException e) { + System.err.println(CANNOT_CREATE_MENUBAR); + System.err.println(FILE_NOT_FOUND + e.getLocalizedMessage()); + } + } + + /** + * Class used to read the XMl file + */ + private static class MenuBarConfigurationHandler implements InvocationHandler { + protected static final String LABEL = "label"; + protected static final String MENU = "menu"; + protected static final String MNEMONIC = "mnemonic"; + protected static final String SUBMENU = "submenu"; + protected static final String SEPARATOR = "separator"; + protected static final String ENABLED = "enabled"; + protected static final String ACCELERATOR = "accelerator"; + protected static final String CALLBACK = "callback"; + protected static final String TYPE = "type"; + protected static final String INSTRUCTION = "instruction"; + protected static final String TRUE = "true"; + protected static final String ICON = "icon"; + protected static final String MACOSX = "macosx"; + + private Document dom; + private Collection<String> internalMethodNames; + + + /** + * Constructor + * @param xmlFile XML file to load + * @throws SAXException can be thrown when an error occurs while reading the file + * @throws IOException can be thrown when an error occurs while accessing the file + * @throws ParserConfigurationException can be thrown when an error occurs while parsing the file + */ + public MenuBarConfigurationHandler(String xmlFile) throws SAXException, IOException, ParserConfigurationException { + + if (!new File(xmlFile).exists()) { + throw new java.io.IOException(); + } + + // Build dictionary for internal method + internalMethodNames = new TreeSet<String>(); + Method[] internalMethodes = this.getClass().getMethods(); + for (Method method : internalMethodes) { + internalMethodNames.add(method.getName()); + } + + // Build xml document for request + dom = ScilabDocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(xmlFile)); + } + + /** + * Invoke a proxy to get data + * @param proxy the proxy to call + * @param method the method to call + * @param args the arguments for the method + * @return the object read + * @throws IllegalAccessException thrown when the method called is inaccessible + * @throws InvocationTargetException thorwn when the method called threw an exception + * @throws NoSuchMethodException thrown when invoking a non-existing method + * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) + */ + public Object invoke(Object proxy, Method method, Object[] args) + throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { + if (internalMethodNames.contains(method.getName())) { + return getClass().getMethod(method.getName(), method.getParameterTypes()).invoke(this, args); + } else { + return null; + } + } + + /** + * Add menus to a menubar using Scilab MVC + * @param parentId the tab ID to which the menus will be added to + * @see org.scilab.modules.MenuBarConfiguration.utils.MenuBarConfiguration#addMenus(org.scilab.modules.gui.menubar.MenuBar) + */ + public void addMenus(Integer parentId) { + + // delete old menus + for (Integer childId : (Integer []) GraphicController.getController().getProperty(parentId, GraphicObjectProperties.__GO_CHILDREN__)) { + if (GraphicController.getController().getProperty(childId, GraphicObjectProperties.__GO_TYPE__).equals(__GO_UIMENU__)) { + GraphicController.getController().removeRelationShipAndDelete(childId); + } + } + + NodeList menus = dom.getElementsByTagName(MENU); + + for (int i = 0; i < menus.getLength(); i++) { + // Create the menu + Integer menuId = null; + if (isParentValid) { + menuId = GraphicController.getController().askObject(Type.UIMENU); + } else { + menuId = GraphicController.getController().askObject(Type.UIMENUMODEL); + } + + // The menu is not visible in Scilab view by default + GraphicController.getController().setProperty(menuId, __GO_HIDDEN__, true); + + // Set the label + String menuLabel = Messages.gettext(menus.item(i).getAttributes().getNamedItem(LABEL).getNodeValue()); + GraphicController.getController().setProperty(menuId, __GO_UI_LABEL__, menuLabel); + + // Set the mnemonic if given + if (menus.item(i).getAttributes().getNamedItem(MNEMONIC) != null) { + String mnemonicString = menus.item(i).getAttributes().getNamedItem(MNEMONIC).getNodeValue(); + GraphicController.getController().setProperty(menuId, __GO_UI_MNEMONIC__, mnemonicString); + } + + // Set the icon if given + if (menus.item(i).getAttributes().getNamedItem(ICON) != null) { + String iconName = menus.item(i).getNodeValue(); + GraphicController.getController().setProperty(menuId, __GO_UI_ICON__, iconName); + } + + // Set the enable status if given + if (menus.item(i).getAttributes().getNamedItem(ENABLED) != null) { + boolean enabled = menus.item(i).getAttributes().getNamedItem(ENABLED).getNodeValue().equals(TRUE); + GraphicController.getController().setProperty(menuId, __GO_UI_ENABLE__, enabled); + } + // Set the menu parent + GraphicController.getController().setGraphicObjectRelationship(parentId, menuId); + addSubMenus(menuId, i); + } + } + + /** + * Read submenus data in the XML file and create them using Scilab MVC + * @param parentMenuId the parent menu UID for submenus + * @param index the index of the parent in menu list + */ + public void addSubMenus(Integer parentMenuId, int index) { + Node submenu = dom.getElementsByTagName(MENU).item(index).getFirstChild(); + + boolean separator = false; + boolean macosx = true; + + while (submenu != null) { + if (submenu.getNodeName() == SEPARATOR) { + // Add a separator + separator = true; + } else if (submenu.getNodeName() == SUBMENU) { + // Create the menu + Integer menuId = null; + if (isParentValid) { + menuId = GraphicController.getController().askObject(Type.UIMENU); + } else { + menuId = GraphicController.getController().askObject(Type.UIMENUMODEL); + } + + // The menu is not visible in Scilab view by default + GraphicController.getController().setProperty(menuId, __GO_HIDDEN__, true); + + // Set the menu parent + GraphicController.getController().setGraphicObjectRelationship(parentMenuId, menuId); + + // First we have to read its attributes + NamedNodeMap attributes = submenu.getAttributes(); + + for (int i = 0; i < attributes.getLength(); i++) { + if (attributes.item(i).getNodeName() == LABEL) { + // Set the label + String menuLabel = Messages.gettext(attributes.item(i).getNodeValue()); + GraphicController.getController().setProperty(menuId, __GO_UI_LABEL__, menuLabel); + } else if (attributes.item(i).getNodeName() == MNEMONIC) { + // Set the mnemonic + String mnemonicString = attributes.item(i).getNodeValue(); + GraphicController.getController().setProperty(menuId, __GO_UI_MNEMONIC__, mnemonicString); + } else if (attributes.item(i).getNodeName() == ENABLED) { + // Set the enable status + boolean enabled = attributes.item(i).getNodeValue().equals(TRUE); + GraphicController.getController().setProperty(menuId, __GO_UI_ENABLE__, enabled); + } else if (attributes.item(i).getNodeName() == ICON) { + // Set the icon + String iconName = attributes.item(i).getNodeValue(); + GraphicController.getController().setProperty(menuId, __GO_UI_ICON__, iconName); + } else if (attributes.item(i).getNodeName() == ACCELERATOR) { + // Set the accelerator + String acceleratorString = attributes.item(i).getNodeValue(); + GraphicController.getController().setProperty(menuId, __GO_UI_ACCELERATOR__, acceleratorString); + } else if (attributes.item(i).getNodeName() == MACOSX) { + macosx = attributes.item(i).getNodeValue().equals(TRUE); + if (!macosx && OS.get() == OS.MAC) { + GraphicController.getController().removeRelationShipAndDelete(menuId); + separator = false; + } + } + } + + // Then we get its callback (if exists) + Node callback = submenu.getFirstChild(); + while (callback != null) { + if (callback.getNodeName() == CALLBACK) { + NamedNodeMap cbAttributes = callback.getAttributes(); + String command = null; + int commandType = CallBack.UNTYPED; + for (int j = 0; j < cbAttributes.getLength(); j++) { + if (cbAttributes.item(j).getNodeName() == INSTRUCTION) { + command = cbAttributes.item(j).getNodeValue(); + } else if (cbAttributes.item(j).getNodeName() == TYPE) { + commandType = Integer.parseInt(cbAttributes.item(j).getNodeValue()); + } + } + if (command != null && commandType != CallBack.UNTYPED) { + GraphicController.getController().setProperty(menuId, __GO_CALLBACK__, command); + GraphicController.getController().setProperty(menuId, __GO_CALLBACKTYPE__, commandType); + } + } else if (callback.getNodeName() == SUBMENU) { + addSubMenuItem(menuId, callback); + } + // Read next child + callback = callback.getNextSibling(); + } + // Manage separators + if (separator) { + GraphicController.getController().setProperty(menuId, __GO_UI_SEPARATOR__, true); + separator = false; + } + } + // Read next child + submenu = submenu.getNextSibling(); + } + } + + /** + * Add submenu for menu + * @param parentMenuItemId object with this id will become a menu with subMenuItems + * @param node to get attributs of the menu + */ + public void addSubMenuItem(Integer parentMenuItemId, Node node) { + + NamedNodeMap attributes = node.getAttributes(); + + // Create the menu + Integer subMenuItemId = null; + if (isParentValid) { + subMenuItemId = GraphicController.getController().askObject(Type.UIMENU); + } else { + subMenuItemId = GraphicController.getController().askObject(Type.UIMENUMODEL); + } + + // The menu is not visible in Scilab view by default + GraphicController.getController().setProperty(subMenuItemId, __GO_HIDDEN__, true); + + // Set the menu parent + GraphicController.getController().setGraphicObjectRelationship(parentMenuItemId, subMenuItemId); + + for (int i = 0; i < attributes.getLength(); i++) { + if (attributes.item(i).getNodeName() == LABEL) { + // Set the label + String menuLabel = Messages.gettext(attributes.item(i).getNodeValue()); + GraphicController.getController().setProperty(subMenuItemId, __GO_UI_LABEL__, menuLabel); + } else if (attributes.item(i).getNodeName() == MNEMONIC) { + // Set the mnemonic + String mnemonicString = attributes.item(i).getNodeValue(); + GraphicController.getController().setProperty(subMenuItemId, __GO_UI_MNEMONIC__, mnemonicString); + } else if (attributes.item(i).getNodeName() == ICON) { + String iconName = attributes.item(i).getNodeValue(); + GraphicController.getController().setProperty(subMenuItemId, __GO_UI_ICON__, iconName); + } else if (attributes.item(i).getNodeName() == ENABLED) { + // Set the enable status + boolean enabled = attributes.item(i).getNodeValue().equals(TRUE); + GraphicController.getController().setProperty(subMenuItemId, __GO_UI_ENABLE__, enabled); + } + } + + // Then we get its callback (if exists) + Node callback = node.getFirstChild(); + while (callback != null) { + if (callback.getNodeName() == CALLBACK) { + NamedNodeMap cbAttributes = callback.getAttributes(); + String command = null; + int commandType = CallBack.UNTYPED; + for (int j = 0; j < cbAttributes.getLength(); j++) { + if (cbAttributes.item(j).getNodeName() == INSTRUCTION) { + command = cbAttributes.item(j).getNodeValue(); + } else if (cbAttributes.item(j).getNodeName() == TYPE) { + commandType = Integer.parseInt(cbAttributes.item(j).getNodeValue()); + } + } + if (command != null && commandType != CallBack.UNTYPED) { + GraphicController.getController().setProperty(subMenuItemId, __GO_CALLBACK__, command); + GraphicController.getController().setProperty(subMenuItemId, __GO_CALLBACKTYPE__, commandType); + } + } else if (callback.getNodeName() == SUBMENU) { + addSubMenuItem(subMenuItemId, callback); + } + // Read next child + callback = callback.getNextSibling(); + } + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarConfiguration.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarConfiguration.java new file mode 100755 index 000000000..b4a369975 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/MenuBarConfiguration.java @@ -0,0 +1,34 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Vincent Couvert + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.utils; + +/** + * Scilab menubar configuration + * All methods needed to create a menubar + * @author Vincent COUVERT + */ +public interface MenuBarConfiguration { + + /** + * Add menus to a menubar + * @param parentId the parent figure UID + */ + void addMenus(Integer parentId); + + /** + * Read submenus data in the XML file + * @param parentId the parent figure UID + * @param index the index of the parent in menu list + */ + void addSubMenus(Integer parentId, int index); +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/Utils.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/Utils.java new file mode 100755 index 000000000..cd98977a0 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/utils/Utils.java @@ -0,0 +1,93 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.utils; + +/** + * Class Utils + * A set of static methods used to determine the validity of points or values. + * @author Manuel JULIACHS + */ +public class Utils { + + /** + * Tests whether a scalar value is valid. + * The value is valid if it is neither infinite nor a NaN. + * @param the scalar value to test. + * @return true if the value is valid, false if it is not. + */ + public static boolean isValid(double x) { + if (Double.isNaN(x) || Double.isInfinite(x)) { + return false; + } else { + return true; + } + } + + /** + * Tests whether a point is valid. + * The point is valid if none of its coordinates is infinite or a NaN. + * @param the point's x-coordinate. + * @param the point's y-coordinate. + * @param the point's z-coordinate. + * @return true if the point is valid, false if it is not. + */ + public static boolean isValid(double x, double y, double z) { + if (Double.isNaN(x) || Double.isNaN(y) || Double.isNaN(z) || Double.isInfinite(x) || Double.isInfinite(y) || Double.isInfinite(z)) { + return false; + } else { + return true; + } + } + + /** + * Determines if a single-component point is valid in logarithmic scale. + * @param x the point's coordinate. + * @return true if the point is valid, false if it is not. + */ + public static boolean isLogValid(double x) { + if (x > 0.0) { + return true; + } else { + return false; + } + } + + /** + * Determines if a point is valid in logarithmic scale. + * It checks whether any of its coordinates is strictly less than 0 (if the + * logarithmic scale applies). In the event of the former, the point is + * determined as not valid. + * @param the point's x-coordinate. + * @param the point's y-coordinate. + * @param the point's z-coordinate. + * @param the bit mask specifying for which coordinates the logarithmic scale is used. + * @return true if the point is valid, false if it is not. + */ + public static boolean isLogValid(double x, double y, double z, int logMask) { + boolean valid = true; + + if ((logMask & 0x1) != 0) { + valid = valid && (x > 0.0); + } + + if ((logMask & 0x2) != 0) { + valid = valid && (y > 0.0); + } + + if ((logMask & 0x4) != 0) { + valid = valid && (z > 0.0); + } + + return valid; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Arrow.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Arrow.java new file mode 100755 index 000000000..eb7254819 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Arrow.java @@ -0,0 +1,185 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARROW_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BASE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DIRECTION__; + +import org.scilab.modules.graphic_objects.contouredObject.ContouredObject; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + + +/** + * Arrow class + * @author Manuel JULIACHS + */ +public class Arrow extends ContouredObject { + /** Arrow properties names */ + public enum ArrowProperty { BASE, BASEX, BASEY, BASEZ, DIRECTION, DIRECTIONX, DIRECTIONY, DIRECTIONZ, ARROWSIZE }; + + /** Arrow base (x,y,z) coordinates */ + private double[] base; + + /** Arrow vector (x,y,z) coordinates */ + private double[] direction; + + /** Arrow size */ + private double arrowSize; + + /** Constructor */ + public Arrow() { + super(); + base = new double[] {0.0, 0.0, 0.0}; + direction = new double[] {0.0, 0.0, 0.0}; + arrowSize = -1.0; + } + + /** Clone method */ + public Arrow clone() { + Arrow copy = (Arrow) super.clone(); + + copy.base = new double[] {0.0, 0.0, 0.0}; + copy.direction = new double[] {0.0, 0.0, 0.0}; + + return copy; + } + + + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_BASE__ : + return ArrowProperty.BASE; + case __GO_DIRECTION__ : + return ArrowProperty.DIRECTION; + case __GO_ARROW_SIZE__ : + return ArrowProperty.ARROWSIZE; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ArrowProperty.BASE) { + return getBase(); + } else if (property == ArrowProperty.DIRECTION) { + return getDirection(); + } else if (property == ArrowProperty.ARROWSIZE) { + return getArrowSize(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ArrowProperty.BASE) { + setBase((Double[]) value); + } else if (property == ArrowProperty.DIRECTION) { + setDirection((Double[]) value); + } else if (property == ArrowProperty.ARROWSIZE) { + setArrowSize((Double) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the arrowSize + */ + public Double getArrowSize() { + return arrowSize; + } + + /** + * @param arrowSize the arrowSize to set + */ + public UpdateStatus setArrowSize(Double arrowSize) { + this.arrowSize = arrowSize; + return UpdateStatus.Success; + } + + /** + * @return the base + */ + public Double[] getBase() { + Double[] retBase = new Double[3]; + + retBase[0] = base[0]; + retBase[1] = base[1]; + retBase[2] = base[2]; + + return retBase; + } + + /** + * @param base the base to set + */ + public UpdateStatus setBase(Double[] base) { + this.base[0] = base[0]; + this.base[1] = base[1]; + this.base[2] = base[2]; + return UpdateStatus.Success; + } + + /** + * @return the direction + */ + public Double[] getDirection() { + Double[] retDirection = new Double[3]; + + retDirection[0] = direction[0]; + retDirection[1] = direction[1]; + retDirection[2] = direction[2]; + + return retDirection; + } + + /** + * @param direction the direction to set + */ + public UpdateStatus setDirection(Double[] direction) { + this.direction[0] = direction[0]; + this.direction[1] = direction[1]; + this.direction[2] = direction[2]; + return UpdateStatus.Success; + } + + public Integer getType() { + return -1; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Champ.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Champ.java new file mode 100755 index 000000000..237ff6859 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Champ.java @@ -0,0 +1,480 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; +import org.scilab.modules.graphic_objects.utils.Utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Champ class + * Stores the arrows in row-major order, all the arrows of + * row j having the same y-coordinate. + * @author Manuel JULIACHS + */ +public class Champ extends VectField { + /** Champ properties names */ + private enum ChampProperty { DIMENSIONS, COLORED, BOUNDINGBOX, MAXLENGTH, MAXUSABLELENGTH }; + + /** Dimensions: 2-element array (number of columns Ni, number of rows Nj) */ + private int[] dimensions; + + /** Specifies whether vectors are colored or not */ + private boolean colored; + + /** Constructor */ + public Champ() { + super(); + colored = false; + dimensions = new int[2]; + dimensions[0] = 0; + dimensions[1] = 0; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_CHAMP_DIMENSIONS__ : + return ChampProperty.DIMENSIONS; + case __GO_BASE_X__ : + return Arrow.ArrowProperty.BASEX; + case __GO_BASE_Y__ : + return Arrow.ArrowProperty.BASEY; + case __GO_COLORED__ : + return ChampProperty.COLORED; + case __GO_BOUNDING_BOX__ : + return ChampProperty.BOUNDINGBOX; + case __GO_MAX_LENGTH__ : + return ChampProperty.MAXLENGTH; + case __GO_MAX_USABLE_LENGTH__ : + return ChampProperty.MAXUSABLELENGTH; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == ChampProperty.DIMENSIONS) { + return getDimensions(); + } else if (property == Arrow.ArrowProperty.BASEX) { + return getBaseX(); + } else if (property == Arrow.ArrowProperty.BASEY) { + return getBaseY(); + } else if (property == ChampProperty.COLORED) { + return getColored(); + } else if (property == ChampProperty.BOUNDINGBOX) { + return getBoundingBox(); + } else if (property == ChampProperty.MAXLENGTH) { + return getMaxLength(); + } else if (property == ChampProperty.MAXUSABLELENGTH) { + return getMaxUsableLength(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == ChampProperty.DIMENSIONS) { + setDimensions((Integer[]) value); + } else if (property == Arrow.ArrowProperty.BASEX) { + setBaseX((Double[]) value); + } else if (property == Arrow.ArrowProperty.BASEY) { + setBaseY((Double[]) value); + } else if (property == ChampProperty.COLORED) { + setColored((Boolean) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the field's dimensions + */ + public Integer[] getDimensions() { + Integer[] retDimensions = new Integer[2]; + retDimensions[0] = dimensions[0]; + retDimensions[1] = dimensions[1]; + + return retDimensions; + } + + /** + * @param dimensions the field dimensions to set + */ + public UpdateStatus setDimensions(Integer[] dimensions) { + this.dimensions[0] = dimensions[0]; + this.dimensions[1] = dimensions[1]; + return UpdateStatus.Success; + } + + /** + * Returns the arrow bases y coordinates (Ni-element array) + * @return the arrow bases x coordinates + */ + public Double[] getBaseX() { + Double[] retArrowBaseX; + + retArrowBaseX = new Double[dimensions[0]]; + + for (int i = 0; i < dimensions[0]; i++) { + Double[] base = getArrow(i, 0).getBase(); + retArrowBaseX[i] = base[0]; + } + + return retArrowBaseX; + } + + /** + * Sets the arrow bases x coordinates + * The arrows part of column i have the same base x-coordinate + * @param baseX the array of x coordinates (Ni elements) + */ + public UpdateStatus setBaseX(Double[] baseX) { + for (int j = 0; j < dimensions[1]; j++) { + for (int i = 0; i < dimensions[0]; i++) { + Double[] base = getArrow(i, j).getBase(); + + base[0] = baseX[i]; + getArrow(i, j).setBase(base); + } + } + return UpdateStatus.Success; + } + + /** + * Returns the arrow bases y coordinates (Nj-element array) + * @return the arrow bases y coordinates + */ + public Double[] getBaseY() { + Double[] retArrowBaseY; + + retArrowBaseY = new Double[dimensions[1]]; + + for (int j = 0; j < dimensions[1]; j++) { + Double[] base = getArrow(0, j).getBase(); + retArrowBaseY[j] = base[1]; + } + + return retArrowBaseY; + } + + /** + * Sets the arrow bases y coordinates + * The arrows part of row j have the same base y-coordinate + * @param baseY the array of y coordinates (Nj elements) + */ + public UpdateStatus setBaseY(Double[] baseY) { + for (int j = 0; j < dimensions[1]; j++) { + for (int i = 0; i < dimensions[0]; i++) { + Double[] base = getArrow(i, j).getBase(); + + base[1] = baseY[j]; + getArrow(i, j).setBase(base); + } + } + return UpdateStatus.Success; + } + + + + /** + * @return the colored + */ + public Boolean getColored() { + return colored; + } + + /** + * @param colored the colored to set + */ + public UpdateStatus setColored(Boolean colored) { + this.colored = colored; + return UpdateStatus.Success; + } + + /** + * Returns the champ's bounding box, which is required by + * its builder function. + * @return the bounding box [xmin, xmax, ymin, ymax, zmin, zmax] + */ + public Double[] getBoundingBox() { + Double[] retBoundingBox; + + retBoundingBox = computeBoundingBox(); + + return retBoundingBox; + } + + /** + * Returns the champ's maximum vector length + * @return the maximum length + */ + public Double getMaxLength() { + Double retMaxLength; + + retMaxLength = computeMaxLength(); + + return retMaxLength; + } + + /** + * Returns the champ's maximum usable vector length + * @return the maximum usable length + */ + public Double getMaxUsableLength() { + Double retMaxUsableLength; + + retMaxUsableLength = computeMaxUsableLength(); + + return retMaxUsableLength; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_CHAMP__; + } + + /** + * Computes the bounding box, which is required by the Champ + * builder function. + * @return the computed bounding box [xmin, xmax, ymin, ymax, zmin, zmax] + */ + private Double[] computeBoundingBox() { + double maxLength = 0.0; + double maxUsableLength = 0.0; + + double[] min = new double[3]; + double[] max = new double[3]; + double[] tmp = new double[3]; + + double[] base = new double[3]; + double[] direction = new double[3]; + + Double[] boundingBox = new Double[6]; + + if (colored == false) { + maxLength = computeMaxLength(); + } + + maxUsableLength = computeMaxUsableLength(); + + /* Compute the bounding box points using the previously computed lengths */ + + base[0] = arrows.get(0).getBase()[0]; + base[1] = arrows.get(0).getBase()[1]; + base[2] = arrows.get(0).getBase()[2]; + + direction[0] = arrows.get(0).getDirection()[0]; + direction[1] = arrows.get(0).getDirection()[1]; + direction[2] = arrows.get(0).getDirection()[2]; + + if (colored == true) { + maxLength = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + + if (maxLength <= Double.MIN_VALUE) { + maxLength = 1.0; + } + } + + direction[0] = base[0] + direction[0] * maxUsableLength / maxLength; + direction[1] = base[1] + direction[1] * maxUsableLength / maxLength; + direction[2] = base[2] + direction[2] * maxUsableLength / maxLength; + + computeMin(min, base, direction); + computeMax(max, base, direction); + + for (int i = 1; i < arrows.size(); i++) { + base[0] = arrows.get(i).getBase()[0]; + base[1] = arrows.get(i).getBase()[1]; + base[2] = arrows.get(i).getBase()[2]; + + direction[0] = arrows.get(i).getDirection()[0]; + direction[1] = arrows.get(i).getDirection()[1]; + direction[2] = arrows.get(i).getDirection()[2]; + + if (colored == true) { + maxLength = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + + if (maxLength <= Double.MIN_VALUE) { + maxLength = 1.0; + } + } + + direction[0] = base[0] + direction[0] * maxUsableLength / maxLength; + direction[1] = base[1] + direction[1] * maxUsableLength / maxLength; + direction[2] = base[2] + direction[2] * maxUsableLength / maxLength; + + computeMin(tmp, min, direction); + computeMin(min, tmp, base); + + computeMax(tmp, max, direction); + computeMax(max, tmp, base); + } + + boundingBox[0] = min[0]; + boundingBox[1] = max[0]; + boundingBox[2] = min[1]; + boundingBox[3] = max[1]; + boundingBox[4] = min[2]; + boundingBox[5] = max[2]; + + return boundingBox; + } + + /** + * Computes the maximum usable length + * @return the maximum usable length + */ + private double computeMaxUsableLength() { + double minX; + double minY; + + /* + * Determines the minimum distance between two consecutive abscissas + * Only the first row needs to be examined + */ + if (dimensions[0] < 2) { + minX = 1.0; + } else { + minX = Double.MAX_VALUE; + + for (int i = 0; i < dimensions[0] - 1; i++) { + double length = Math.abs(getArrow(i + 1, 0).getBase()[0] - getArrow(i, 0).getBase()[0]); + + if (Utils.isValid(length)) { + if (length < minX) { + minX = length; + } + } + } + + } + + /* + * Determines the minimum distance between two consecutive ordinates + * Only the first column needs to be examined + */ + if (dimensions[1] < 2) { + minY = 1.0; + } else { + minY = Double.MAX_VALUE; + + for (int j = 0; j < dimensions[1] - 1; j++) { + double length = Math.abs(getArrow(0, j + 1).getBase()[1] - getArrow(0, j).getBase()[1]); + + if (Utils.isValid(length)) { + if (length < minY) { + minY = length; + } + } + } + + } + + return Math.min(minX, minY); + } + + /** + * Computes the maximum arrow length + * @return the maximum arrow length + */ + private double computeMaxLength() { + double length; + double maxLength; + double[] direction = new double[3]; + + direction[0] = arrows.get(0).getDirection()[0]; + direction[1] = arrows.get(0).getDirection()[1]; + direction[2] = arrows.get(0).getDirection()[2]; + + maxLength = direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]; + + for (int i = 1; i < arrows.size(); i++) { + direction[0] = arrows.get(i).getDirection()[0]; + direction[1] = arrows.get(i).getDirection()[1]; + direction[2] = arrows.get(i).getDirection()[2]; + + length = direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]; + + if (length > maxLength) { + maxLength = length; + } + } + + maxLength = Math.sqrt(maxLength); + + return maxLength; + } + + /** + * Computes the component-wise minimum of two 3-element arrays + * @param result the component-wise minimum (3-element array) + * @param first the first 3-element array + * @param second the second 3-element array + */ + private void computeMin(double[] result, double[] first, double[] second) { + result[0] = Math.min(first[0], second[0]); + result[1] = Math.min(first[1], second[1]); + result[2] = Math.min(first[2], second[2]); + } + + /** + * Computes the component-wise maximum of two 3-element arrays + * @param result the component-wise maximum (3-element array) + * @param first the first 3-element array + * @param second the second 3-element array + */ + private void computeMax(double[] result, double[] first, double[] second) { + result[0] = Math.max(first[0], second[0]); + result[1] = Math.max(first[1], second[1]); + result[2] = Math.max(first[2], second[2]); + } + + /** + * Returns the arrow specified by a pair of indices + * @param firstDimIndex the first dimension index + * @param secondDimIndex the second dimension index + * @return the Arrow + */ + private Arrow getArrow(int firstDimIndex, int secondDimIndex) { + return arrows.get(dimensions[0] * secondDimIndex + firstDimIndex); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/ChampDecomposer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/ChampDecomposer.java new file mode 100755 index 000000000..9185e9689 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/ChampDecomposer.java @@ -0,0 +1,448 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import org.scilab.modules.graphic_objects.figure.ColorMap; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.utils.Utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class ChampDecomposer + * A set of static methods decomposing a Champ object (vector field) into a set of line segments. + * It takes into account the additional buffer space needed for arrow tip vertices and colors, + * fills tip colors, and outputs their triangle indices. Arrow tip coordinates are, however, + * computed at drawing time as they are projection-dependent. + * @author Manuel JULIACHS + */ +public class ChampDecomposer extends VectFieldDecomposer { + + /** + * Returns the number of data elements for the given object. + * @param id the id of the given object. + * @return the number of data elements. + */ + public static int getDataSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 2 vertices per segment plus 3 vertices for the arrow tip */ + return 5 * numberArrows; + } + + /** + * Fills the input buffer with vertex data from the given object. + * To do: optimize, as the test on colored's value is performed for each segment. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param elementsSize the number of coordinates taken by one element in the buffer. + * @param coordinateMask the byte mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param scale the conversion scale factor to apply to data. + * @param translation the conversion translation value to apply to data. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + */ + public static void fillVertices(FloatBuffer buffer, Integer id, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) { + int bufferOffset = 0; + + /* The coordinates of a segment's base */ + double[] base; + + /* The coordinates of a segment's tip */ + double[] tip; + + base = new double[3]; + tip = new double[3]; + + /* The direction vector */ + double[] direction = new double[3]; + + GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double maxLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_LENGTH__); + double maxUsableLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_USABLE_LENGTH__); + + boolean colored = (Boolean) GraphicController.getController().getProperty(id, __GO_COLORED__); + + if (maxLength <= Double.MIN_VALUE) { + maxLength = 1.0; + } + + for (int j = 0; j < yBase.length; j++) { + for (int i = 0; i < xBase.length; i++) { + base[0] = xBase[i]; + base[1] = yBase[j]; + base[2] = zBase[j * xBase.length + i]; + + direction[0] = xDirection[j * xBase.length + i]; + direction[1] = yDirection[j * xBase.length + i]; + direction[2] = zDirection[j * xBase.length + i]; + + /* Compute the segment tip */ + tip = computeSegmentTip(base, direction, colored, maxUsableLength, maxLength); + + /* Vertices are output in the following order: the segment's base and then its tip */ + if ((coordinateMask & 0x1) != 0) { + if ((logMask & 0x1) != 0) { + base[0] = Math.log10(base[0]); + tip[0] = Math.log10(tip[0]); + } + + base[0] = base[0] * scale[0] + translation[0]; + tip[0] = tip[0] * scale[0] + translation[0]; + + buffer.put(bufferOffset, (float) base[0]); + buffer.put(bufferOffset + elementsSize, (float) tip[0]); + } + + if ((coordinateMask & 0x2) != 0) { + if ((logMask & 0x2) != 0) { + base[1] = Math.log10(base[1]); + tip[1] = Math.log10(tip[1]); + } + + base[1] = base[1] * scale[1] + translation[1]; + tip[1] = tip[1] * scale[1] + translation[1]; + + buffer.put(bufferOffset + 1, (float) base[1]); + buffer.put(bufferOffset + elementsSize + 1, (float) tip[1]); + } + + if ((coordinateMask & 0x4) != 0) { + if ((logMask & 0x4) != 0) { + base[2] = Math.log10(base[2] + DEFAULT_LOG_COORD_Z); + tip[2] = Math.log10(tip[2] + DEFAULT_LOG_COORD_Z); + } + + base[2] = base[2] * scale[2] + translation[2]; + tip[2] = tip[2] * scale[2] + translation[2]; + + buffer.put(bufferOffset + 2, (float) base[2]); + buffer.put(bufferOffset + elementsSize + 2, (float) tip[2]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8) != 0) { + buffer.put(bufferOffset + 3, 1.0f); + buffer.put(bufferOffset + elementsSize + 3, 1.0f); + } + + bufferOffset += 2 * elementsSize; + } + } + } + + /** + * Fills the given buffer with color data from the given object. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param elementsSize the number of components taken by one element in the buffer (3 or 4). + */ + public static void fillColors(FloatBuffer buffer, Integer id, int elementsSize) { + int bufferOffset = 0; + + Integer parentFigureId = (Integer) GraphicController.getController().getProperty(id, __GO_PARENT_FIGURE__); + + /* To be sure that the object has a parent Figure, though it should not occur. */ + if (parentFigureId == 0) { + return; + } + + Figure parentFigure = (Figure) GraphicController.getController().getObjectFromId(parentFigureId); + ColorMap colorMap = parentFigure.getColorMap(); + int colorMapSize = colorMap.getSize(); + + GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double maxLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_LENGTH__); + + boolean colored = (Boolean) GraphicController.getController().getProperty(id, __GO_COLORED__); + + if (!colored) { + return; + } + + if (maxLength <= Double.MIN_VALUE) { + maxLength = 1.0; + } + + GraphicController.getController().getProperty(id, __GO_ARROW_SIZE__); + + double[] direction = new double[3]; + + /* Colors are output in the same order as vertices: first the base's color and then the tip's */ + for (int j = 0; j < yBase.length; j++) { + for (int i = 0; i < xBase.length; i++) { + direction[0] = xDirection[j * xBase.length + i]; + direction[1] = yDirection[j * xBase.length + i]; + direction[2] = zDirection[j * xBase.length + i]; + + double norm = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + + int colorIndex = (int) Math.floor((((double) colorMapSize - 1.0) * norm / maxLength) + 0.5); + + float[] color = colorMap.getScilabColor(colorIndex); + + writeSegmentColors(buffer, elementsSize, bufferOffset, color); + + bufferOffset += 2 * elementsSize; + } + } + + /* Arrow colors */ + for (int j = 0; j < yBase.length; j++) { + for (int i = 0; i < xBase.length; i++) { + direction[0] = xDirection[j * xBase.length + i]; + direction[1] = yDirection[j * xBase.length + i]; + direction[2] = zDirection[j * xBase.length + i]; + + double norm = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + + int colorIndex = (int) Math.floor((((double) colorMapSize - 1.0) * norm / maxLength) + 0.5); + + float[] color = colorMap.getScilabColor(colorIndex); + + writeArrowColors(buffer, elementsSize, bufferOffset, color); + + bufferOffset += 3 * elementsSize; + } + } + + } + + /** + * Returns the number of triangle indices for the given object. + * Triangle indices correspond to arrow tips. + * @param id the id of the given object. + * @return the number of triangle indices. + */ + public static int getIndicesSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 3 indices per arrow */ + return 3 * numberArrows; + } + + /** + * Fills the input buffer with triangle index data from the given object. + * Triangle indices are the indices of arrow tips. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + int bufferOffset = 0; + int segmentOffset; + + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + if (numberArrows == 0) { + return 0; + } + + segmentOffset = 2 * numberArrows; + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double maxLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_LENGTH__); + double maxUsableLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_USABLE_LENGTH__); + + boolean colored = (Boolean) GraphicController.getController().getProperty(id, __GO_COLORED__); + + /* The base and tip of a segment */ + double[] base = new double[3]; + double[] direction = new double[3]; + + for (int j = 0; j < yBase.length; j++) { + for (int i = 0; i < xBase.length; i++) { + int tipIndex = 3 * (xBase.length * j + i) + segmentOffset; + int leftIndex = tipIndex + 1; + int rightIndex = tipIndex + 2; + + base[0] = xBase[i]; + base[1] = yBase[j]; + base[2] = zBase[j * xBase.length + i]; + + direction[0] = xDirection[j * xBase.length + i]; + direction[1] = yDirection[j * xBase.length + i]; + direction[2] = zDirection[j * xBase.length + i]; + + /* Compute the segment tip */ + direction = computeSegmentTip(base, direction, colored, maxUsableLength, maxLength); + + if (Utils.isValid(base[0], base[1], base[2]) + && Utils.isValid(direction[0], direction[1], direction[2])) { + valid = true; + } else { + valid = false; + } + + if (logMask != 0) { + valid = valid && Utils.isLogValid(base[0], base[1], base[2] + DEFAULT_LOG_COORD_Z, logMask); + valid = valid && Utils.isLogValid(direction[0], direction[1], direction[2] + DEFAULT_LOG_COORD_Z, logMask); + } + + if (valid) { + buffer.put(bufferOffset, tipIndex); + buffer.put(bufferOffset + 1, leftIndex); + buffer.put(bufferOffset + 2, rightIndex); + bufferOffset += 3; + } + + } + } + + if (bufferOffset > 0) { + return bufferOffset; + } else { + return 0; + } + } + + /** + * Computes and returns the coordinates of a vector segment's tip. + * @param base the vector base's (x,y,z) coordinates (3-element array). + * @param direction the vector's (x,y,z) direction (3-element array). + * @param colored specifies whether the vector is colored or not. + * @param maxUsableLength the maximum usable vector length. + * @param maxLength the maximum vector length. + * @return the (x,y,z) coordinates of the tip (3-element array). + */ + private static double[] computeSegmentTip(double[] base, double[] direction, boolean colored, double maxUsableLength, double maxLength) { + double[] tip = new double[3]; + + /* The current vector's norm is used to normalize for colored Champ objects instead of the maximum length. */ + if (colored) { + double norm = Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2]); + + if (norm <= Double.MIN_VALUE) { + norm = 1.0; + } + + tip[0] = base[0] + direction[0] * maxUsableLength / norm; + tip[1] = base[1] + direction[1] * maxUsableLength / norm; + tip[2] = base[2] + direction[2] * maxUsableLength / norm; + } else { + tip[0] = base[0] + direction[0] * maxUsableLength / maxLength; + tip[1] = base[1] + direction[1] * maxUsableLength / maxLength; + tip[2] = base[2] + direction[2] * maxUsableLength / maxLength; + } + + return tip; + } + + /** + * Fills the input buffer with segment index data from the given object. + * To do: optimize, as the test on colored's value is performed for each segment. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillWireIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + int bufferOffset = 0; + + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + if (numberArrows == 0) { + return 0; + } + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double maxLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_LENGTH__); + double maxUsableLength = (Double) GraphicController.getController().getProperty(id, __GO_MAX_USABLE_LENGTH__); + + boolean colored = (Boolean) GraphicController.getController().getProperty(id, __GO_COLORED__); + + /* The base and tip of a segment */ + double[] base = new double[3]; + double[] direction = new double[3]; + + for (int j = 0; j < yBase.length; j++) { + for (int i = 0; i < xBase.length; i++) { + int baseIndex = 2 * (xBase.length * j + i); + int tipIndex = baseIndex + 1; + + base[0] = xBase[i]; + base[1] = yBase[j]; + base[2] = zBase[j * xBase.length + i]; + + direction[0] = xDirection[j * xBase.length + i]; + direction[1] = yDirection[j * xBase.length + i]; + direction[2] = zDirection[j * xBase.length + i]; + + /* Compute the segment tip */ + direction = computeSegmentTip(base, direction, colored, maxUsableLength, maxLength); + + if (Utils.isValid(base[0], base[1], base[2]) + && Utils.isValid(direction[0], direction[1], direction[2])) { + valid = true; + } else { + valid = false; + } + + if (logMask != 0) { + valid = valid && Utils.isLogValid(base[0], base[1], base[2] + DEFAULT_LOG_COORD_Z, logMask); + valid = valid && Utils.isLogValid(direction[0], direction[1], direction[2] + DEFAULT_LOG_COORD_Z, logMask); + } + + if (valid) { + buffer.put(bufferOffset, baseIndex); + buffer.put(bufferOffset + 1, tipIndex); + bufferOffset += 2; + } + + } + } + + if (bufferOffset > 0) { + return bufferOffset; + } else { + return 0; + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Segs.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Segs.java new file mode 100755 index 000000000..dffa9b413 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Segs.java @@ -0,0 +1,317 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_BACKGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_FOREGROUND__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE_UNIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SEGS_COLORS__; + +import org.scilab.modules.graphic_objects.ObjectRemovedException; +import org.scilab.modules.graphic_objects.contouredObject.Mark; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.graphicObject.Visitor; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * Segs class + * @author Manuel JULIACHS + */ +public class Segs extends VectField { + /** Sets properties names */ + private enum SegsProperty { COLORS }; + + /** Constructor */ + public Segs() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_SEGS_COLORS__ : + return SegsProperty.COLORS; + case __GO_MARK_MODE__ : + return Mark.MarkPropertyType.MODE; + case __GO_MARK_STYLE__ : + return Mark.MarkPropertyType.STYLE; + case __GO_MARK_SIZE_UNIT__ : + return Mark.MarkPropertyType.SIZEUNIT; + case __GO_MARK_SIZE__ : + return Mark.MarkPropertyType.SIZE; + case __GO_MARK_FOREGROUND__ : + return Mark.MarkPropertyType.FOREGROUND; + case __GO_MARK_BACKGROUND__ : + return Mark.MarkPropertyType.BACKGROUND; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == SegsProperty.COLORS) { + return getColors(); + } else if (property == Mark.MarkPropertyType.MODE) { + return getMarkMode(); + } else if (property == Mark.MarkPropertyType.STYLE) { + return getMarkStyle(); + } else if (property == Mark.MarkPropertyType.SIZEUNIT) { + return getMarkSizeUnit(); + } else if (property == Mark.MarkPropertyType.SIZE) { + return getMarkSize(); + } else if (property == Mark.MarkPropertyType.FOREGROUND) { + return getMarkForeground(); + } else if (property == Mark.MarkPropertyType.BACKGROUND) { + return getMarkBackground(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == SegsProperty.COLORS) { + setColors((Integer[]) value); + } else if (property == Mark.MarkPropertyType.MODE) { + setMarkMode((Boolean) value); + } else if (property == Mark.MarkPropertyType.STYLE) { + setMarkStyle((Integer) value); + } else if (property == Mark.MarkPropertyType.SIZEUNIT) { + setMarkSizeUnit((Integer) value); + } else if (property == Mark.MarkPropertyType.SIZE) { + setMarkSize((Integer) value); + } else if (property == Mark.MarkPropertyType.FOREGROUND) { + setMarkForeground((Integer) value); + } else if (property == Mark.MarkPropertyType.BACKGROUND) { + setMarkBackground((Integer) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + @Override + public void accept(Visitor visitor) throws ObjectRemovedException { + visitor.visit(this); + } + + /** + * Sets the number of arrows and resizes the arrow array + * The actual resizing of the arrow array is performed in + * the parent class' method. + * The color of each arrow is reset to 0 in case of a size + * change for compatibility with the previous behaviour of Segs. + * To be modified + * @param number the number of arrows to set + */ + public UpdateStatus setNumberArrows(Integer number) { + int currentNumber; + + currentNumber = arrows.size(); + + super.setNumberArrows(number); + + if (currentNumber != number) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineColor(0); + } + } + + return UpdateStatus.Success; + } + + /** + * @return the segs colors + */ + public Integer[] getColors() { + Integer[] retSegsColors = new Integer[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + retSegsColors[i] = arrows.get(i).getLineColor(); + } + + return retSegsColors; + } + + /** + * Sets the segment colors + * If the input color array contains only one element, each arrow's color is set to the latter. + * @param colors the segs colors to set (number of elements either 1 or equal to the number of arrows) + */ + public UpdateStatus setColors(Integer[] colors) { + if (colors.length == 1) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineColor(colors[0]); + } + } else { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineColor(colors[i]); + } + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark mode + * To be done: return an array of Boolean + * @return the mark mode + */ + public Boolean getMarkMode() { + return arrows.get(0).getMarkMode(); + } + + /** + * All segments are supposed to have the same mark mode + * To be done: change the argument to an array of Boolean + * @param mode the mark mode to set + */ + public UpdateStatus setMarkMode(Boolean mode) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkMode(mode); + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark style + * To be done: return an array of Integer + * @return the mark style + */ + public Integer getMarkStyle() { + return arrows.get(0).getMarkStyle(); + } + + /** + * All segments are supposed to have the same mark style + * To be done: change the argument to an array of Integer + * @param style the mark style to set + */ + public UpdateStatus setMarkStyle(Integer style) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkStyle(style); + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark size unit + * To be done: return an array of Integer + * @return the mark size unit + */ + public Integer getMarkSizeUnit() { + return arrows.get(0).getMarkSizeUnit(); + } + + /** + * All segments are supposed to have the same mark size unit + * To be done: change the argument to an array of Integer + * @param style the mark size unit to set + */ + public UpdateStatus setMarkSizeUnit(Integer sizeUnit) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkSizeUnit(sizeUnit); + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark size + * To be done: return an array of Integer + * @return the mark size + */ + public Integer getMarkSize() { + return arrows.get(0).getMarkSize(); + } + + /** + * All segments are supposed to have the same mark size + * To be done: change the argument to an array of Integer + * @param style the mark size to set + */ + public UpdateStatus setMarkSize(Integer size) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkSize(size); + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark foreground + * To be done: return an array of Integer + * @return the mark foreground + */ + public Integer getMarkForeground() { + return arrows.get(0).getMarkForeground(); + } + + /** + * All segments are supposed to have the same mark foreground + * To be done: change the argument to an array of Integer + * @param style the mark foreground to set + */ + public UpdateStatus setMarkForeground(Integer foreground) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkForeground(foreground); + } + return UpdateStatus.Success; + } + + /** + * All segments are supposed to have the same mark background + * To be done: return an array of Integer + * @return the mark background + */ + public Integer getMarkBackground() { + return arrows.get(0).getMarkBackground(); + } + + /** + * All segments are supposed to have the same mark background + * To be done: change the argument to an array of Integer + * @param style the mark background to set + */ + public UpdateStatus setMarkBackground(Integer background) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setMarkBackground(background); + } + return UpdateStatus.Success; + } + + /** + * @return Type as String + */ + public Integer getType() { + return GraphicObjectProperties.__GO_SEGS__; + } + +} + diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/SegsDecomposer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/SegsDecomposer.java new file mode 100755 index 000000000..a4c949b1c --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/SegsDecomposer.java @@ -0,0 +1,175 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import java.nio.IntBuffer; +import java.nio.FloatBuffer; +import org.scilab.modules.graphic_objects.figure.ColorMap; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.utils.Utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class SegsDecomposer + * A set of static methods decomposing a Segs object into a set of line segments. + * It takes into account the additional buffer space needed for arrow tip vertices and colors, + * fills tip colors, and outputs their triangle indices. Arrow tip coordinates are, however, + * computed at drawing time as they are projection-dependent. + * @author Manuel JULIACHS + */ +public class SegsDecomposer extends VectFieldDecomposer { + + /** + * Returns the number of data elements for the given object. + * @param id the id of the given object. + * @return the number of data elements. + */ + public static int getDataSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 2 vertices per segment plus 3 vertices for the arrow tip */ + return 5 * numberArrows; + } + + /** + * Fills the given buffer with color data from the given object. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param elementsSize the number of components taken by one element in the buffer (3 or 4). + */ + public static void fillColors(FloatBuffer buffer, Integer id, int elementsSize) { + int bufferOffset = 0; + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + Integer[] segmentColors = (Integer[]) GraphicController.getController().getProperty(id, __GO_SEGS_COLORS__); + + Integer parentFigureId = (Integer) GraphicController.getController().getProperty(id, __GO_PARENT_FIGURE__); + + /* To be sure that the object has a parent Figure, though it should not occur. */ + if (parentFigureId == 0) { + return; + } + + Figure parentFigure = (Figure) GraphicController.getController().getObjectFromId(parentFigureId); + ColorMap colorMap = parentFigure.getColorMap(); + + GraphicController.getController().getProperty(id, __GO_ARROW_SIZE__); + + /* Colors are output in the following order: first the base's color and then the tip's */ + for (int i = 0; i < numberArrows; i++) { + float[] color = colorMap.getScilabColor(segmentColors[i]); + + bufferOffset = 2 * elementsSize * i; + + writeSegmentColors(buffer, elementsSize, bufferOffset, color); + } + + /* Arrow colors */ + for (int i = 0; i < numberArrows; i++) { + float[] color = colorMap.getScilabColor(segmentColors[i]); + + bufferOffset = 2 * elementsSize * numberArrows + 3 * elementsSize * i; + + writeArrowColors(buffer, elementsSize, bufferOffset, color); + } + } + + /** + * Returns the number of triangle indices for the given object. + * Triangle indices correspond to arrow tips. + * @param id the object id. + * @return the number of triangle indices. + */ + public static int getIndicesSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 3 indices per arrow */ + return 3 * numberArrows; + } + + /** + * Fills the input buffer with triangle index data from the given object. + * Triangle indices are the indices of arrow tips. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + int bufferOffset = 0; + int segmentOffset; + + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + if (numberArrows == 0) { + return 0; + } + + segmentOffset = 2 * numberArrows; + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double[] base = new double[3]; + double[] direction = new double[3]; + + for (int i = 0; i < numberArrows; i++) { + int tipIndex = segmentOffset + 3 * i; + int leftIndex = tipIndex + 1; + int rightIndex = tipIndex + 2; + + base[0] = xBase[i]; + base[1] = yBase[i]; + base[2] = zBase[i]; + + direction[0] = xDirection[i]; + direction[1] = yDirection[i]; + direction[2] = zDirection[i]; + + if (Utils.isValid(base[0], base[1], base[2]) + && Utils.isValid(direction[0], direction[1], direction[2])) { + valid = true; + } else { + valid = false; + } + + if (logMask != 0) { + valid = valid && Utils.isLogValid(base[0], base[1], base[2], logMask); + valid = valid && Utils.isLogValid(direction[0], direction[1], direction[2], logMask); + } + + if (valid) { + buffer.put(bufferOffset, tipIndex); + buffer.put(bufferOffset + 1, leftIndex); + buffer.put(bufferOffset + 2, rightIndex); + + bufferOffset += 3; + } + } + + if (bufferOffset > 0) { + return bufferOffset; + } else { + return 0; + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectField.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectField.java new file mode 100755 index 000000000..a6044f8d3 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectField.java @@ -0,0 +1,610 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARROWS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARROW_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BASE_X__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BASE_Y__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BASE_Z__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BASE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DIRECTION_X__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DIRECTION_Y__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DIRECTION_Z__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DIRECTION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_MODE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_NUMBER_ARROWS__; + +import java.util.ArrayList; + +import org.scilab.modules.graphic_objects.contouredObject.Line; +import org.scilab.modules.graphic_objects.contouredObject.Line.LineType; +import org.scilab.modules.graphic_objects.graphicObject.GraphicClippableObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus; + +/** + * VectField class + * @author Manuel JULIACHS + */ +public abstract class VectField extends GraphicClippableObject { + /** VectField properties names */ + private enum VectFieldProperty { ARROWS, NUMBERARROWS }; + + /** List of arrows composing the field */ + protected ArrayList <Arrow> arrows; + + /** Constructor */ + public VectField() { + super(); + arrows = new ArrayList<Arrow>(0); + } + + /** + * Returns the enum associated to a property name + * @param propertyName the property name + * @return the property enum + */ + public Object getPropertyFromName(int propertyName) { + switch (propertyName) { + case __GO_ARROWS__ : + return VectFieldProperty.ARROWS; + case __GO_NUMBER_ARROWS__ : + return VectFieldProperty.NUMBERARROWS; + case __GO_BASE__ : + return Arrow.ArrowProperty.BASE; + case __GO_BASE_X__ : + return Arrow.ArrowProperty.BASEX; + case __GO_BASE_Y__ : + return Arrow.ArrowProperty.BASEY; + case __GO_BASE_Z__ : + return Arrow.ArrowProperty.BASEZ; + case __GO_DIRECTION__ : + return Arrow.ArrowProperty.DIRECTION; + case __GO_DIRECTION_X__ : + return Arrow.ArrowProperty.DIRECTIONX; + case __GO_DIRECTION_Y__ : + return Arrow.ArrowProperty.DIRECTIONY; + case __GO_DIRECTION_Z__ : + return Arrow.ArrowProperty.DIRECTIONZ; + case __GO_ARROW_SIZE__ : + return Arrow.ArrowProperty.ARROWSIZE; + case __GO_LINE_MODE__ : + return Line.LinePropertyType.MODE; + case __GO_LINE_STYLE__ : + return Line.LinePropertyType.LINESTYLE; + case __GO_LINE_THICKNESS__ : + return Line.LinePropertyType.THICKNESS; + default : + return super.getPropertyFromName(propertyName); + } + } + + /** + * Fast property get method + * @param property the property to get + * @return the property value + */ + public Object getProperty(Object property) { + if (property == VectFieldProperty.ARROWS) { + return getArrows(); + } else if (property == VectFieldProperty.NUMBERARROWS) { + return getNumberArrows(); + } else if (property == Arrow.ArrowProperty.BASE) { + return getBase(); + } else if (property == Arrow.ArrowProperty.BASEX) { + return getBaseX(); + } else if (property == Arrow.ArrowProperty.BASEY) { + return getBaseY(); + } else if (property == Arrow.ArrowProperty.BASEZ) { + return getBaseZ(); + } else if (property == Arrow.ArrowProperty.DIRECTION) { + return getDirection(); + } else if (property == Arrow.ArrowProperty.DIRECTIONX) { + return getDirectionX(); + } else if (property == Arrow.ArrowProperty.DIRECTIONY) { + return getDirectionY(); + } else if (property == Arrow.ArrowProperty.DIRECTIONZ) { + return getDirectionZ(); + } else if (property == Arrow.ArrowProperty.ARROWSIZE) { + return getArrowSize(); + } else if (property == Line.LinePropertyType.MODE) { + return getLineMode(); + } else if (property == Line.LinePropertyType.LINESTYLE) { + return getLineStyle(); + } else if (property == Line.LinePropertyType.THICKNESS) { + return getLineThickness(); + } else { + return super.getProperty(property); + } + } + + /** + * Fast property set method + * @param property the property to set + * @param value the property value + * @return true if the property has been set, false otherwise + */ + public UpdateStatus setProperty(Object property, Object value) { + if (property == VectFieldProperty.ARROWS) { + setArrows((ArrayList<Arrow>) value); + } else if (property == VectFieldProperty.NUMBERARROWS) { + setNumberArrows((Integer) value); + } else if (property == Arrow.ArrowProperty.BASE) { + setBase((Double[]) value); + } else if (property == Arrow.ArrowProperty.BASEX) { + setBaseX((Double[]) value); + } else if (property == Arrow.ArrowProperty.BASEY) { + setBaseY((Double[]) value); + } else if (property == Arrow.ArrowProperty.BASEZ) { + setBaseZ((Double[]) value); + } else if (property == Arrow.ArrowProperty.DIRECTION) { + setDirection((Double[]) value); + } else if (property == Arrow.ArrowProperty.DIRECTIONX) { + setDirectionX((Double[]) value); + } else if (property == Arrow.ArrowProperty.DIRECTIONY) { + setDirectionY((Double[]) value); + } else if (property == Arrow.ArrowProperty.DIRECTIONZ) { + setDirectionZ((Double[]) value); + } else if (property == Arrow.ArrowProperty.ARROWSIZE) { + setArrowSize((Double) value); + } else if (property == Line.LinePropertyType.MODE) { + setLineMode((Boolean) value); + } else if (property == Line.LinePropertyType.LINESTYLE) { + setLineStyle((Integer) value); + } else if (property == Line.LinePropertyType.THICKNESS) { + setLineThickness((Double) value); + } else { + return super.setProperty(property, value); + } + + return UpdateStatus.Success; + } + + /** + * @return the arrows + */ + public ArrayList<Arrow> getArrows() { + return arrows; + } + + /** + * @param arrows the arrows to set + */ + public UpdateStatus setArrows(ArrayList<Arrow> arrows) { + this.arrows = arrows; + return UpdateStatus.Success; + } + + /** + * @return the number of arrows + */ + public Integer getNumberArrows() { + return arrows.size(); + } + + /** + * Sets the number of arrows + * Empties the current arrow array, if required, and creates the + * specified number of arrows, which are added to the array. + * If the new number is equal to the current number, the + * array is left unmodified. + * If the existing array is not empty, the newly created + * arrows are cloned from the latter's first arrow, + * as all arrows are considered to have identical Contour values for now. + * To be modified when Contour values can be specified independently + * for each Arrow. + * @param number the number of arrows to set + * @return + */ + public UpdateStatus setNumberArrows(Integer number) { + if (!arrows.isEmpty() && number != arrows.size()) { + ArrayList <Arrow> newArrows = new ArrayList<Arrow>(0); + + /* Clones the Contour properties of the first arrow */ + for (int i = 0; i < number; i++) { + Arrow clonedArrow = arrows.get(0).clone(); + newArrows.add(clonedArrow); + } + + arrows.clear(); + arrows = newArrows; + + } else if (arrows.isEmpty()) { + for (int i = 0; i < number; i++) { + arrows.add(new Arrow()); + } + } + + return UpdateStatus.Success; + } + + /** + * @return the arrow bases + */ + public Double[] getBase() { + Double[] retBase; + + retBase = new Double[3 * arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] base = arrows.get(i).getBase(); + retBase[3 * i] = base[0]; + retBase[3 * i + 1] = base[1]; + retBase[3 * i + 2] = base[2]; + } + + return retBase; + } + + /** + * @param bases the arrow bases to set + */ + public UpdateStatus setBase(Double[] bases) { + Double[] arrowBase = new Double[3]; + + final int len = Math.min(bases.length / 3, arrows.size()); + for (int i = 0; i < len; i++) { + arrowBase[0] = bases[3 * i]; + arrowBase[1] = bases[3 * i + 1]; + arrowBase[2] = bases[3 * i + 2]; + arrows.get(i).setBase(arrowBase); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow bases x coordinates + */ + public Double[] getBaseX() { + Double[] retArrowBaseX; + + retArrowBaseX = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] base = arrows.get(i).getBase(); + retArrowBaseX[i] = base[0]; + } + + return retArrowBaseX; + } + + /** + * @param baseX the arrow base x coordinates to set + */ + public UpdateStatus setBaseX(Double[] baseX) { + final int len = Math.min(baseX.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] base = arrows.get(i).getBase(); + base[0] = baseX[i]; + arrows.get(i).setBase(base); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow bases y coordinates + */ + public Double[] getBaseY() { + Double[] retArrowBaseY; + + retArrowBaseY = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] base = arrows.get(i).getBase(); + retArrowBaseY[i] = base[1]; + } + + return retArrowBaseY; + } + + /** + * @param baseY the arrow base y coordinates to set + */ + public UpdateStatus setBaseY(Double[] baseY) { + final int len = Math.min(baseY.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] base = arrows.get(i).getBase(); + base[1] = baseY[i]; + arrows.get(i).setBase(base); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow bases z coordinates + */ + public Double[] getBaseZ() { + Double[] retArrowBaseZ; + + retArrowBaseZ = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] base = arrows.get(i).getBase(); + retArrowBaseZ[i] = base[2]; + } + + return retArrowBaseZ; + } + + /** + * @param baseZ the arrow base z coordinates to set + */ + public UpdateStatus setBaseZ(Double[] baseZ) { + final int len = Math.min(baseZ.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] base = arrows.get(i).getBase(); + base[2] = baseZ[i]; + arrows.get(i).setBase(base); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow directions + */ + public Double[] getDirection() { + Double[] retDirection; + + retDirection = new Double[3 * arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] base = arrows.get(i).getDirection(); + retDirection[3 * i] = base[0]; + retDirection[3 * i + 1] = base[1]; + retDirection[3 * i + 2] = base[2]; + } + + return retDirection; + } + + /** + * @param directions the arrow directions to set + */ + public UpdateStatus setDirection(Double[] directions) { + Double[] arrowDirection = new Double[3]; + + final int len = Math.min(directions.length / 3, arrows.size()); + for (int i = 0; i < len; i++) { + arrowDirection[0] = directions[3 * i]; + arrowDirection[1] = directions[3 * i + 1]; + arrowDirection[2] = directions[3 * i + 2]; + arrows.get(i).setDirection(arrowDirection); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow directions x coordinates + */ + public Double[] getDirectionX() { + Double[] retArrowDirectionX; + + retArrowDirectionX = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] direction = arrows.get(i).getDirection(); + retArrowDirectionX[i] = direction[0]; + } + + return retArrowDirectionX; + } + + /** + * @param directionX the arrow direction x coordinates to set + */ + public UpdateStatus setDirectionX(Double[] directionX) { + final int len = Math.min(directionX.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] direction = arrows.get(i).getDirection(); + direction[0] = directionX[i]; + arrows.get(i).setDirection(direction); + } + return UpdateStatus.Success; + } + + /** + * @return the arrow directions y coordinates + */ + public Double[] getDirectionY() { + Double[] retArrowDirectionY; + + retArrowDirectionY = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] direction = arrows.get(i).getDirection(); + retArrowDirectionY[i] = direction[1]; + } + + return retArrowDirectionY; + } + + /** + * @param directionY the arrow direction y coordinates to set + */ + public UpdateStatus setDirectionY(Double[] directionY) { + final int len = Math.min(directionY.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] direction = arrows.get(i).getDirection(); + direction[1] = directionY[i]; + arrows.get(i).setDirection(direction); + } + return UpdateStatus.Success; + } + + + /** + * @return the arrow directions z coordinates + */ + public Double[] getDirectionZ() { + Double[] retArrowDirectionZ; + + retArrowDirectionZ = new Double[arrows.size()]; + + for (int i = 0; i < arrows.size(); i++) { + Double[] direction = arrows.get(i).getDirection(); + retArrowDirectionZ[i] = direction[2]; + } + + return retArrowDirectionZ; + } + + + /** + * @param directionZ the arrow direction z coordinates to set + */ + public UpdateStatus setDirectionZ(Double[] directionZ) { + final int len = Math.min(directionZ.length, arrows.size()); + for (int i = 0; i < len; i++) { + Double[] direction = arrows.get(i).getDirection(); + direction[2] = directionZ[i]; + arrows.get(i).setDirection(direction); + } + return UpdateStatus.Success; + } + + /** + * All arrows are supposed to have the same size + * To be done: return an array of Double + * @return the arrow size + */ + public Double getArrowSize() { + Double retArrowSize; + + retArrowSize = arrows.get(0).getArrowSize(); + + return retArrowSize; + } + + /** + * All arrows are supposed to have the same size + * To be done: change the argument to an array of Double + * @param size the arrow size to set + */ + public UpdateStatus setArrowSize(Double size) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setArrowSize(size); + } + return UpdateStatus.Success; + } + + /** + * All arrows are supposed to have the same line mode + * To be done: return an array of Boolean + * @return the arrow line mode + */ + public Boolean getLineMode() { + Boolean retLineMode; + + retLineMode = arrows.get(0).getLineMode(); + return retLineMode; + } + + /** + * All arrows are supposed to have the same line mode + * To be done: change the argument to an array of Boolean + * @param lineMode the arrow line mode to set + */ + public UpdateStatus setLineMode(Boolean lineMode) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineMode(lineMode); + } + return UpdateStatus.Success; + } + + /** + * All arrows are supposed to have the same line style + * To be done: return an array of Integer + * @return the arrow line style + */ + public Integer getLineStyle() { + Integer retLineStyle; + + retLineStyle = arrows.get(0).getLineStyle(); + return retLineStyle; + } + + /** + * All arrows are supposed to have the same line style + * To be done: change the argument to an array of Integer + * @param lineStyle the arrow line style to set + */ + public UpdateStatus setLineStyle(Integer lineStyle) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineStyle(lineStyle); + } + return UpdateStatus.Success; + } + + /** + * All arrows are supposed to have the same line style + * To be done: return an array of LineType + * @return the arrow line style + */ + public LineType getLineStyleAsEnum() { + LineType retLineStyle; + + retLineStyle = arrows.get(0).getLineStyleAsEnum(); + return retLineStyle; + } + + /** + * All arrows are supposed to have the same line thickness + * To be done: return an array of Double + * @return the arrow line thickness + */ + public Double getLineThickness() { + Double retLineThickness; + + retLineThickness = arrows.get(0).getLineThickness(); + return retLineThickness; + } + + /** + * All arrows are supposed to have the same line thickness + * To be done: change the argument to an array of Double + * @param lineThickness the arrow line thickness to set + */ + public UpdateStatus setLineThickness(Double lineThickness) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineThickness(lineThickness); + } + return UpdateStatus.Success; + } + + /** + * All arrows are supposed to have the same line color + * To be done: return an array of Integer + * @return the arrow line color + */ + public Integer getLineColor() { + Integer retLineColor; + + retLineColor = arrows.get(0).getLineColor(); + return retLineColor; + } + + /** + * All arrows are supposed to have the same line color + * To be done: change the argument to an array of Integer + * @param lineColor the arrow line color to set + */ + public UpdateStatus setLineColor(Integer lineColor) { + for (int i = 0; i < arrows.size(); i++) { + arrows.get(i).setLineColor(lineColor); + } + return UpdateStatus.Success; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectFieldDecomposer.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectFieldDecomposer.java new file mode 100755 index 000000000..1df02400f --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/VectFieldDecomposer.java @@ -0,0 +1,293 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.vectfield; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.utils.Utils; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +/** + * Class VectFieldDecomposer + * A set of static methods decomposing a vector field into a set of line segments. + * @author Manuel JULIACHS + */ +public class VectFieldDecomposer { + + /** The default z-coordinate value when the logarithmic scale is used. */ + protected static final double DEFAULT_LOG_COORD_Z = 1.0; + + /** + * Returns the number of data elements for the given object. + * @param id the id of the given object. + * @return the number of data elements. + */ + public static int getDataSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 2 vertices per arrow */ + return 2 * numberArrows; + } + + /** + * Fills the input buffer with vertex data from the given object. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param elementsSize the number of coordinates taken by one element in the buffer. + * @param coordinateMask the byte mask specifying which coordinates are filled (1 for X, 2 for Y, 4 for Z). + * @param scale the conversion scale factor to apply to data. + * @param translation the conversion translation value to apply to data. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + */ + public static void fillVertices(FloatBuffer buffer, Integer id, int elementsSize, + int coordinateMask, double[] scale, double[] translation, int logMask) { + int bufferOffset = 0; + + /* The x coordinates of a segment's base and direction */ + double[] xcoords; + /* The y coordinates of a segment's base and direction */ + double[] ycoords; + /* The z coordinates of a segment's base and direction */ + double[] zcoords; + + xcoords = new double[2]; + ycoords = new double[2]; + zcoords = new double[2]; + + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + for (int i = 0; i < numberArrows; i++) { + xcoords[0] = xBase[i]; + xcoords[1] = xDirection[i]; + ycoords[0] = yBase[i]; + ycoords[1] = yDirection[i]; + zcoords[0] = zBase[i]; + zcoords[1] = zDirection[i]; + + /* Vertices are output in the following order: the segment's base and then its tip */ + if ((coordinateMask & 0x1) != 0) { + if ((logMask & 0x1) != 0) { + xcoords[0] = Math.log10(xcoords[0]); + xcoords[1] = Math.log10(xcoords[1]); + } + + xcoords[0] = xcoords[0] * scale[0] + translation[0]; + xcoords[1] = xcoords[1] * scale[0] + translation[0]; + + buffer.put(bufferOffset, (float) xcoords[0]); + buffer.put(bufferOffset + elementsSize, (float) xcoords[1]); + } + + if ((coordinateMask & 0x2) != 0) { + if ((logMask & 0x2) != 0) { + ycoords[0] = Math.log10(ycoords[0]); + ycoords[1] = Math.log10(ycoords[1]); + } + + ycoords[0] = ycoords[0] * scale[1] + translation[1]; + ycoords[1] = ycoords[1] * scale[1] + translation[1]; + + buffer.put(bufferOffset + 1, (float) ycoords[0]); + buffer.put(bufferOffset + elementsSize + 1, (float) ycoords[1]); + } + + if ((coordinateMask & 0x4) != 0) { + if ((logMask & 0x4) != 0) { + zcoords[0] = Math.log10(zcoords[0]); + zcoords[1] = Math.log10(zcoords[1]); + } + + zcoords[0] = zcoords[0] * scale[2] + translation[2]; + zcoords[1] = zcoords[1] * scale[2] + translation[2]; + + buffer.put(bufferOffset + 2, (float) zcoords[0]); + buffer.put(bufferOffset + elementsSize + 2, (float) zcoords[1]); + } + + if (elementsSize == 4 && (coordinateMask & 0x8) != 0) { + buffer.put(bufferOffset + 3, 1.0f); + buffer.put(bufferOffset + elementsSize + 3, 1.0f); + } + + bufferOffset += 2 * elementsSize; + } + } + + /** + * Fills the given buffer with color data from the given object. + * @param the buffer to fill. + * @param the id of the given object. + * @param the number of components taken by one element in the buffer (3 or 4). + */ + public static void fillColors(FloatBuffer buffer, String id, int elementsSize) { + return; + } + + /** + * Writes the colors of a segment's vertices into a buffer. + * The colors of the 2 vertices are written consecutively starting from the specified offset. + * @param buffer the buffer written to. + * @param elementsSize the number of components taken by a color (3 or 4). + * @param bufferOffset the offset of the first segment vertex's color. + * @color the arrow color (3 elements: r, g, b components). + */ + protected static void writeSegmentColors(FloatBuffer buffer, int elementsSize, int bufferOffset, float[] color) { + buffer.put(bufferOffset, color[0]); + buffer.put(bufferOffset + 1, color[1]); + buffer.put(bufferOffset + 2, color[2]); + + buffer.put(bufferOffset + elementsSize, color[0]); + buffer.put(bufferOffset + elementsSize + 1, color[1]); + buffer.put(bufferOffset + elementsSize + 2, color[2]); + + if (elementsSize == 4) { + buffer.put(bufferOffset + 3, 1.0f); + buffer.put(bufferOffset + elementsSize + 3, 1.0f); + } + } + + /** + * Writes the colors of an arrow's vertices into a buffer. + * The colors of the 3 vertices are written consecutively starting from the specified offset. + * @param buffer the buffer written to. + * @param elementsSize the number of components taken by a color (3 or 4). + * @param bufferOffset the offset of the first arrow vertex's color. + * @color the arrow color (3 elements: r, g, b components). + */ + protected static void writeArrowColors(FloatBuffer buffer, int elementsSize, int bufferOffset, float[] color) { + buffer.put(bufferOffset, color[0]); + buffer.put(bufferOffset + 1, color[1]); + buffer.put(bufferOffset + 2, color[2]); + + buffer.put(bufferOffset + elementsSize, color[0]); + buffer.put(bufferOffset + elementsSize + 1, color[1]); + buffer.put(bufferOffset + elementsSize + 2, color[2]); + + buffer.put(bufferOffset + 2 * elementsSize, color[0]); + buffer.put(bufferOffset + 2 * elementsSize + 1, color[1]); + buffer.put(bufferOffset + 2 * elementsSize + 2, color[2]); + + if (elementsSize == 4) { + buffer.put(bufferOffset + 3, 1.0f); + buffer.put(bufferOffset + elementsSize + 3, 1.0f); + buffer.put(bufferOffset + 2 * elementsSize + 3, 1.0f); + } + } + + /** + * Returns the number of triangle indices. + * @return the number of triangle indices. + */ + public static int getIndicesSize() { + return 0; + } + + /** + * Fills the input buffer with triangle index data from the given object. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillIndices(IntBuffer buffer, String id, int logMask) { + return 0; + } + + /** + * Returns the number of wireframe indices for the given object. + * @param id the id of the given object. + * @return the number of line segment indices. + */ + public static int getWireIndicesSize(Integer id) { + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + /* 2 segment indices per arrow */ + return 2 * numberArrows; + } + + /** + * Fills the input buffer with segment index data from the given object. + * @param buffer the buffer to fill. + * @param id the id of the given object. + * @param logMask the bit mask specifying whether logarithmic coordinates are used. + * @return the number of indices actually written. + */ + public static int fillWireIndices(IntBuffer buffer, Integer id, int logMask) { + boolean valid; + int bufferOffset = 0; + + int numberArrows = (Integer) GraphicController.getController().getProperty(id, __GO_NUMBER_ARROWS__); + + if (numberArrows == 0) { + return 0; + } + + Double[] xBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_X__); + Double[] yBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Y__); + Double[] zBase = (Double[]) GraphicController.getController().getProperty(id, __GO_BASE_Z__); + + Double[] xDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_X__); + Double[] yDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Y__); + Double[] zDirection = (Double[]) GraphicController.getController().getProperty(id, __GO_DIRECTION_Z__); + + double[] base = new double[3]; + double[] direction = new double[3]; + + for (int i = 0; i < numberArrows; i++) { + base[0] = xBase[i]; + base[1] = yBase[i]; + base[2] = zBase[i]; + + direction[0] = xDirection[i]; + direction[1] = yDirection[i]; + direction[2] = zDirection[i]; + + if (Utils.isValid(base[0], base[1], base[2]) + && Utils.isValid(direction[0], direction[1], direction[2])) { + valid = true; + } else { + valid = false; + } + + if (logMask != 0) { + valid = valid && Utils.isLogValid(base[0], base[1], base[2], logMask); + valid = valid && Utils.isLogValid(direction[0], direction[1], direction[2], logMask); + } + + if (valid) { + buffer.put(bufferOffset, 2 * i); + buffer.put(bufferOffset + 1, 2 * i + 1); + + bufferOffset += 2; + } + + } + + if (bufferOffset > 0) { + return bufferOffset; + } else { + return 0; + } + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParser.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParser.java new file mode 100755 index 000000000..be3de802c --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParser.java @@ -0,0 +1,1131 @@ +/* The following code was generated by JFlex 1.4.3 on 22/11/12 18:50 */ + +// jflex --nobak -d ../java/org.scilab.modules.gui.uiwidget/ css.jflex + +//CHECKSTYLE:OFF + +package org.scilab.modules.graphic_objects.xmlloader; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; + +@javax.annotation.Generated("JFlex") +@SuppressWarnings("fallthrough") + +/** + * This class is a scanner generated by + * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 + * on 22/11/12 18:50 from the specification file + * <tt>css.jflex</tt> + */ +public final class CSSParser { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int VALUELINE = 8; + public static final int LINE = 6; + public static final int VALUE = 4; + public static final int BLOCK = 2; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4 + }; + + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\11\0\1\1\1\2\1\0\1\4\1\3\22\0\1\1\2\0\1\5" + + "\6\0\1\13\2\0\1\7\1\5\1\12\12\7\1\10\1\11\5\0" + + "\32\6\4\0\1\7\1\0\32\6\1\14\1\0\1\15\uff82\0"; + + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\2\1\1\0\1\1\1\0\1\2\1\1\1\3\1\2" + + "\1\4\1\1\1\5\1\6\1\7\1\10\1\2\2\11" + + "\1\10\1\11\1\1\1\12\1\2\1\0\1\10\1\13" + + "\6\0\1\1"; + + private static int [] zzUnpackAction() { + int [] result = new int[33]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + + /* error codes */ + private static final int ZZ_UNKNOWN_ERROR = 0; + private static final int ZZ_NO_MATCH = 1; + private static final int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static final String ZZ_ERROR_MSG[] = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** the input device */ + private java.io.Reader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /* user code: */ + private String identifier; + private String key; + private String value; + private Map<String, Map<String, String>> map; + private Map<String, String> kv; + + public static Map<String, Map<String, String>> parseFile(String file) throws CSSParserException { + try { + return parse(new FileReader(new File(file))); + } catch (IOException e) { + throw new CSSParserException(e.getMessage()); + } + } + + public static Map<String, Map<String, String>> parseBlock(String block) throws CSSParserException { + return parse(new StringReader(block)); + } + + private static Map<String, Map<String, String>> parse(Reader reader) throws CSSParserException { + try { + CSSParser parser = new CSSParser(reader); + parser.map = new HashMap<String, Map<String, String>>(); + parser.yybegin(YYINITIAL); + int ret = parser.yylex(); + + if (ret == -1) { + parser.yyclose(); + throw new CSSParserException("Invalid CSS file"); + } + + parser.yyclose(); + + return parser.map; + } catch (IOException e) { + throw new CSSParserException(e.getMessage()); + } + } + + public static Map<String, String> parseLine(String str) throws CSSParserException { + try { + CSSParser parser = new CSSParser(new StringReader(str)); + parser.kv = new HashMap<String, String>(); + parser.yybegin(LINE); + int ret = parser.yylex(); + + if (ret == -1) { + parser.yyclose(); + throw new CSSParserException("Invalid CSS instructions"); + } + + parser.yyclose(); + + return parser.kv; + } catch (IOException e) { + throw new CSSParserException(e.getMessage()); + } + } + + private void openBlock() { + kv = new HashMap<String, String>(); + map.put(identifier, kv); + } + + private void closeBlock() { + kv = null; + } + + public void pushKeyValue() { + kv.put(key.toLowerCase(), value); + key = null; + value = null; + } + + + /** + * Creates a new scanner + * There is also a java.io.InputStream version of this constructor. + * + * @param in the java.io.Reader to read input from. + */ + public CSSParser(java.io.Reader in) { + this.zzReader = in; + } + + /** + * Creates a new scanner. + * There is also java.io.Reader version of this constructor. + * + * @param in the java.io.Inputstream to read input from. + */ + public CSSParser(java.io.InputStream in) { + this(new java.io.InputStreamReader(in)); + } + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char [] zzUnpackCMap(String packed) { + char [] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 58) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do { + map[j++] = value; + } while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return <code>false</code>, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private boolean zzRefill() throws java.io.IOException { + + /* first: make room (if you can) */ + if (zzStartRead > 0) { + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length) { + /* if not: blow it up */ + char newBuffer[] = new char[zzCurrentPos * 2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + } + + /* finally: fill the buffer with new input */ + int numRead = zzReader.read(zzBuffer, zzEndRead, + zzBuffer.length - zzEndRead); + + if (numRead > 0) { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) { + int c = zzReader.read(); + if (c == -1) { + return true; + } else { + zzBuffer[zzEndRead++] = (char) c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) { + zzReader.close(); + } + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * <b>cannot</b> be reused (internal buffer is discarded and lost). + * Lexical state is set to <tt>ZZ_INITIAL</tt>. + * + * @param reader the new input stream + */ + public final void yyreset(java.io.Reader reader) { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + } + + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String( zzBuffer, zzStartRead, zzMarkedPos - zzStartRead ); + } + + + /** + * Returns the character at position <tt>pos</tt> from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) { + zzScanError(ZZ_PUSHBACK_2BIG); + } + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int yylex() throws java.io.IOException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + + while (true) { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = zzBufferL[zzCurrentPosL++]; + } else if (zzAtEOF) { + zzInput = YYEOF; + break zzForAction; + } else { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { + zzInput = YYEOF; + break zzForAction; + } else { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + zzInput = zzCMapL[zzInput]; + + boolean zzIsFinal = false; + boolean zzNoLookAhead = false; + + zzForNext: { + switch (zzState) { + case 0: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + zzState = 6; + break zzForNext; + case 5: + case 6: + zzIsFinal = true; + zzState = 7; + break zzForNext; + case 10: + zzIsFinal = true; + zzState = 8; + break zzForNext; + case 12: + zzIsFinal = true; + zzState = 9; + break zzForNext; + default: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 5; + break zzForNext; + } + + case 1: + switch (zzInput) { + case 10: + zzIsFinal = true; + zzState = 8; + break zzForNext; + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + zzState = 10; + break zzForNext; + case 6: + case 7: + zzIsFinal = true; + zzState = 11; + break zzForNext; + case 8: + zzIsFinal = true; + zzState = 12; + break zzForNext; + case 13: + zzIsFinal = true; + zzState = 13; + break zzForNext; + default: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 5; + break zzForNext; + } + + case 2: + switch (zzInput) { + case 8: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 5; + break zzForNext; + case 1: + zzIsFinal = true; + zzState = 15; + break zzForNext; + case 2: + zzIsFinal = true; + zzState = 16; + break zzForNext; + case 3: + zzIsFinal = true; + zzState = 17; + break zzForNext; + case 4: + zzIsFinal = true; + zzState = 18; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 3: + switch (zzInput) { + case 6: + case 7: + zzIsFinal = true; + zzState = 11; + break zzForNext; + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + zzState = 20; + break zzForNext; + case 8: + zzIsFinal = true; + zzState = 21; + break zzForNext; + default: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 5; + break zzForNext; + } + + case 4: + switch (zzInput) { + case 8: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 5; + break zzForNext; + case 1: + case 3: + zzIsFinal = true; + zzState = 22; + break zzForNext; + case 2: + zzState = 23; + break zzForNext; + case 4: + zzIsFinal = true; + zzState = 24; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 25; + break zzForNext; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 6: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + case 12: + zzIsFinal = true; + zzState = 9; + break zzForNext; + default: + break zzForAction; + } + + case 7: + switch (zzInput) { + case 6: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 8: + switch (zzInput) { + case 11: + zzState = 26; + break zzForNext; + default: + break zzForAction; + } + + case 9: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 10: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + case 13: + zzIsFinal = true; + zzState = 13; + break zzForNext; + default: + break zzForAction; + } + + case 11: + switch (zzInput) { + case 6: + case 7: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 12: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 13: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 14: + switch (zzInput) { + case 1: + case 2: + case 3: + zzState = 27; + break zzForNext; + case 8: + case 9: + break zzForAction; + default: + zzIsFinal = true; + break zzForNext; + } + + case 15: + switch (zzInput) { + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 2: + case 3: + case 4: + zzState = 28; + break zzForNext; + default: + break zzForAction; + } + + case 16: + switch (zzInput) { + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 2: + case 3: + case 4: + zzState = 28; + break zzForNext; + default: + break zzForAction; + } + + case 17: + switch (zzInput) { + case 2: + zzIsFinal = true; + zzState = 16; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 3: + case 4: + zzState = 28; + break zzForNext; + default: + break zzForAction; + } + + case 18: + switch (zzInput) { + case 4: + zzIsFinal = true; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 2: + case 3: + zzState = 29; + break zzForNext; + case 8: + break zzForAction; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 20: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 21: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzIsFinal = true; + break zzForNext; + default: + break zzForAction; + } + + case 22: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + zzState = 23; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 25; + break zzForNext; + default: + break zzForAction; + } + + case 23: + switch (zzInput) { + case 1: + case 2: + case 3: + case 4: + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 25; + break zzForNext; + default: + break zzForAction; + } + + case 24: + switch (zzInput) { + case 4: + zzIsFinal = true; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 25; + break zzForNext; + case 1: + case 2: + case 3: + zzState = 30; + break zzForNext; + case 8: + break zzForAction; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 26: + switch (zzInput) { + case 11: + zzState = 31; + break zzForNext; + default: + break zzForNext; + } + + case 27: + switch (zzInput) { + case 1: + case 2: + case 3: + break zzForNext; + case 8: + case 9: + break zzForAction; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 28: + switch (zzInput) { + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 2: + case 3: + case 4: + break zzForNext; + default: + break zzForAction; + } + + case 29: + switch (zzInput) { + case 4: + zzIsFinal = true; + zzState = 18; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 19; + break zzForNext; + case 1: + case 2: + case 3: + break zzForNext; + case 8: + break zzForAction; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 30: + switch (zzInput) { + case 4: + zzIsFinal = true; + zzState = 24; + break zzForNext; + case 9: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 25; + break zzForNext; + case 1: + case 2: + case 3: + break zzForNext; + case 8: + break zzForAction; + default: + zzIsFinal = true; + zzState = 14; + break zzForNext; + } + + case 31: + switch (zzInput) { + case 11: + break zzForNext; + case 10: + zzIsFinal = true; + zzNoLookAhead = true; + zzState = 32; + break zzForNext; + default: + zzState = 26; + break zzForNext; + } + + default: + // if this is ever reached, there is a serious bug in JFlex + zzScanError(ZZ_UNKNOWN_ERROR); + break; + } + } + + if ( zzIsFinal ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( zzNoLookAhead ) { + break zzForAction; + } + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 9 : { + yybegin(BLOCK); + } + case 12: + break; + case 4: { + openBlock(); + yybegin(BLOCK); + } + case 13: + break; + case 8: { + value = yytext(); + pushKeyValue(); + } + case 14: + break; + case 10: { + yybegin(VALUELINE); + } + case 15: + break; + case 2: { + return -1; + } + case 16: + break; + case 11: { + yybegin(LINE); + } + case 17: + break; + case 6: { + yybegin(VALUE); + } + case 18: + break; + case 5: { + key = yytext(); + } + case 19: + break; + case 7: { + closeBlock(); + yybegin(YYINITIAL); + } + case 20: + break; + case 3: { + identifier = yytext(); + } + case 21: + break; + case 1: { + } + case 22: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + { + return 0; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParserException.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParserException.java new file mode 100755 index 000000000..29c49e8cc --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/CSSParserException.java @@ -0,0 +1,27 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Scilab Enterprises - Calixte DENIZET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.xmlloader; + +/** + * CSS parser exception + */ +public class CSSParserException extends Exception { + + /** + * Default constructor + * @param msg the error message + */ + public CSSParserException(String msg) { + super(msg); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/GOBuilder.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/GOBuilder.java new file mode 100755 index 000000000..32a6c71a8 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/GOBuilder.java @@ -0,0 +1,871 @@ +package org.scilab.modules.graphic_objects.xmlloader; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BORDER_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACKTYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACK__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLOSEREQUESTFCN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGURE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_GRID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_OPT_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_INFOBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_THICKNESS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARGINS__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MENUBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MENUBAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_RESIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TOOLBAR_VISIBLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TOOLBAR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BACKGROUNDCOLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BORDER_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BORDER_PREFERREDSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTANGLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTNAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTWEIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FOREGROUNDCOLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_COLOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_HIGHLIGHT_IN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_IN_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_JUSTIFICATION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_OUT_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_POSITION__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_ROUNDED__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_SHADOW_IN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_SHADOW_OUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_STYLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_SCROLLABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_ANCHOR__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_FILL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_GRID__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_PADDING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_PREFERREDSIZE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GRIDBAG_WEIGHT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_GROUP_NAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_HORIZONTALALIGNMENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ICON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LABEL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MAX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MIN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SCROLLABLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VISIBLE__; + +import java.awt.Color; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import org.scilab.modules.graphic_objects.builder.Builder; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder.BorderType; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorderType; +import org.scilab.modules.graphic_objects.utils.LayoutType; +import org.xml.sax.Attributes; + +public class GOBuilder { + public static Integer figureBuilder(GraphicController controller, Attributes attributes) { + Integer fig = Builder.createFigure(false, 0, 0, false, false); + String item = null; + + // id + XmlTools.setPropAsString(fig, __GO_TAG__, attributes.getValue("id")); + + // position + Integer[] position = (Integer[]) controller.getProperty(fig, __GO_POSITION__); + + // posX + item = attributes.getValue("posX"); + if (item != null) { + position[0] = Integer.parseInt(item); + } + + // posY + item = attributes.getValue("posY"); + if (item != null) { + position[1] = Integer.parseInt(item); + } + + // set position + controller.setProperty(fig, __GO_POSITION__, position); + + Integer[] size = (Integer[]) controller.getProperty(fig, __GO_SIZE__); + // width + item = attributes.getValue("width"); + if (item != null) { + size[0] = Integer.parseInt(item); + } + + // height + item = attributes.getValue("height"); + if (item != null) { + size[1] = Integer.parseInt(item); + } + + // set size + controller.setProperty(fig, __GO_SIZE__, size); + + // title + XmlTools.setPropAsString(fig, __GO_NAME__, attributes.getValue("title")); + + // resizable + XmlTools.setPropAsBoolean(fig, __GO_RESIZE__, attributes.getValue("resizable")); + + // layout and layout_options + item = attributes.getValue("layout"); + if (item == null) { + item = "name:border"; //default layout is border + } + + setLayoutProperty(controller, fig, item); + + + //icon + item = attributes.getValue("icon"); + if (item != null) { + controller.setProperty(fig, __GO_UI_ICON__, item); + } + + item = attributes.getValue("onclose"); + if (item != null) { + controller.setProperty(fig, __GO_CLOSEREQUESTFCN__, item); + } + + //set default value for menu/info/tool bars and visibility + controller.setProperty(fig, __GO_MENUBAR__, 0); + controller.setProperty(fig, __GO_TOOLBAR__, 0); + + controller.setProperty(fig, __GO_MENUBAR_VISIBLE__, false); + controller.setProperty(fig, __GO_TOOLBAR_VISIBLE__, false); + controller.setProperty(fig, __GO_INFOBAR_VISIBLE__, false); + + + // visible + XmlTools.setPropAsBoolean(fig, __GO_VISIBLE__, attributes.getValue("visible")); + + return fig; + } + + public static Integer axesBuilder(GraphicController controller, Attributes attributes) { + Integer axes = GraphicController.getController().askObject(Type.AXES); + String id = attributes.getValue("id"); + if (id != null) { + controller.setProperty(axes, __GO_TAG__, id); + } + return axes; + } + + public static Integer uicontrolBuilder(GraphicController controller, int type, Attributes attributes, int parent) { + if (type == __GO_UI_FRAME__) { + String item = attributes.getValue("scrollable"); + if (item != null && item.equals("true")) { + type = __GO_UI_FRAME_SCROLLABLE__; + } + } + + Integer uic = 0; + if (type == -1) { //label latex + uic = controller.askObject(GraphicObject.getTypeFromName(__GO_UI_TEXT__)); + controller.setProperty(uic, __GO_UI_STRING__, new String[] {"$$"}); + } else if (type == -2) { + uic = controller.askObject(GraphicObject.getTypeFromName(__GO_UI_EDIT__)); + controller.setProperty(uic, __GO_UI_MIN__, 0.0); + controller.setProperty(uic, __GO_UI_MAX__, 2.0); + } else { + uic = controller.askObject(GraphicObject.getTypeFromName(type)); + } + + return uicontrolUpdater(controller, uic, attributes, parent); + } + + public static Integer uicontrolUpdater(GraphicController controller, int uic, Attributes attributes, int parent) { + return uicontrolUpdater(controller, uic, attributes, parent, null); + } + + public static Integer uicontrolUpdater(GraphicController controller, int uic, Attributes attributes, int parent, Map<String, String> fromModel) { + String item = null; + + try { + Map<String, String> xmlAttributes = new HashMap<String, String>(); + Map<String, String> map = null; + // Common attributes + + if (fromModel != null) { + for (Map.Entry<String, String> prop : fromModel.entrySet()) { + xmlAttributes.put(prop.getKey(), prop.getValue()); + } + } + + for (int i = 0; i < attributes.getLength(); i++) { + String name = attributes.getLocalName(i); + String value = attributes.getValue(i); + xmlAttributes.put(name, value); + } + + // id + XmlTools.setPropAsString(uic, __GO_TAG__, xmlAttributes.get("id")); + + // layout and layout_options + item = xmlAttributes.get("layout"); + + if (item == null) { + item = "name:none"; + } + setLayoutProperty(controller, uic, item); + + //visible + item = xmlAttributes.get("visible"); + if (item == null || item.equals("true") || item.equals("on")) { + controller.setProperty(uic, __GO_VISIBLE__, true); + } else { + controller.setProperty(uic, __GO_VISIBLE__, false); + } + + //enable + boolean enable = true; + item = attributes.getValue("enable"); + if (item != null && (item.equals("false") || item.equals("off"))) { + enable = false; + } + + //enabled + item = attributes.getValue("enabled"); + if (item != null && (item.equals("false") || item.equals("off"))) { + enable = false; + } + + controller.setProperty(uic, __GO_UI_ENABLE__, enable); + + //backgroundcolor + item = xmlAttributes.get("background"); + if (item != null) { + controller.setProperty(uic, __GO_UI_BACKGROUNDCOLOR__, getColor(item)); + } + + // constraints + + // get parent layout + LayoutType layout = LayoutType.NONE; + if (parent != 0) { + layout = LayoutType.intToEnum((Integer) controller.getProperty(parent, __GO_LAYOUT__)); + } + + + //font properties + + //fontname + item = xmlAttributes.get("font-name"); + if (item != null) { + controller.setProperty(uic, __GO_UI_FONTNAME__, item); + } + + item = xmlAttributes.get("fontname"); + if (item != null) { + controller.setProperty(uic, __GO_UI_FONTNAME__, item); + } + + //fontsize + item = xmlAttributes.get("font-size"); + if (item != null) { + controller.setProperty(uic, __GO_UI_FONTSIZE__, Double.parseDouble(item)); + } + + item = xmlAttributes.get("fontsize"); + if (item != null) { + controller.setProperty(uic, __GO_UI_FONTSIZE__, Double.parseDouble(item)); + } + + //units and position + String[] units = null; + item = xmlAttributes.get("units"); + if (item != null) { + units = item.split("[,;]"); + } + + //position, take care of units values + item = xmlAttributes.get("position"); + if (item != null) { + Double[] pos = new Double[4]; + Double[] parentSize = new Double[] {934.0, 511.0}; + String[] strPos = item.split("[,;]"); + for (int i = 0 ; i < strPos.length ; i++) { + pos[i] = Double.parseDouble(strPos[i]); + if (units != null && units[i].equals("n")) { + //convert %age to pixel + pos[i] = parentSize[i % 2] * pos[i]; + } + } + + controller.setProperty(uic, __GO_POSITION__, pos); + } + + item = xmlAttributes.get("opaque"); + if (item != null && (item.equals("false") || item.equals("off"))) { + controller.setProperty(uic, __GO_UI_BACKGROUNDCOLOR__, new Double[] { -2.0, -2.0, -2.0}); + } + + if (layout != LayoutType.NONE) { + item = xmlAttributes.get("constraint"); + if (item != null) { + map = CSSParser.parseLine(item); + } + + switch (layout) { + case BORDER: { + item = XmlTools.getFromMap(map, "position", "center"); + controller.setProperty(uic, __GO_UI_BORDER_POSITION__, Uicontrol.BorderLayoutType.stringToEnum2(item).ordinal()); + Integer[] preferredsize = new Integer[] { -1, -1}; + item = xmlAttributes.get("preferred-size"); + if (item != null) { + String[] pref = item.split("[,;]"); + for (int i = 0; i < pref.length && i < 4; i++) { + preferredsize[i] = Integer.parseInt(pref[i]); + } + } + + controller.setProperty(uic, __GO_UI_BORDER_PREFERREDSIZE__, preferredsize); + break; + } + case GRIDBAG: { + Integer[] grid = new Integer[] { 0, 0, 0, 0 }; + grid[0] = Integer.parseInt(XmlTools.getFromMap(map, "gridx", "0")); + grid[1] = Integer.parseInt(XmlTools.getFromMap(map, "gridy", "0")); + grid[2] = Integer.parseInt(XmlTools.getFromMap(map, "gridwidth", "1")); + grid[3] = Integer.parseInt(XmlTools.getFromMap(map, "gridheight", "1")); + + Double[] weight = new Double[] { 0.0, 0.0 }; + weight[0] = Double.parseDouble(XmlTools.getFromMap(map, "weightx", "1.0")); + weight[1] = Double.parseDouble(XmlTools.getFromMap(map, "weighty", "1.0")); + + Integer fill = Uicontrol.FillType.stringToEnum(XmlTools.getFromMap(map, "fill", "none")).ordinal(); + Integer anchor = Uicontrol.AnchorType.stringToEnum2(XmlTools.getFromMap(map, "anchor", "center")).ordinal(); + + Integer[] padding = new Integer[] { 0, 0 }; + padding[0] = Integer.parseInt(XmlTools.getFromMap(map, "ipadx", "0")); + padding[1] = Integer.parseInt(XmlTools.getFromMap(map, "ipady", "0")); + + Integer[] preferredsize = new Integer[] { -1, -1}; + item = xmlAttributes.get("preferred-size"); + if (item != null) { + String[] pref = item.split("[,;]"); + for (int i = 0; i < pref.length && i < 4; i++) { + preferredsize[i] = Integer.parseInt(pref[i]); + } + } + controller.setProperty(uic, __GO_UI_GRIDBAG_GRID__, grid); + controller.setProperty(uic, __GO_UI_GRIDBAG_WEIGHT__, weight); + controller.setProperty(uic, __GO_UI_GRIDBAG_FILL__, fill); + controller.setProperty(uic, __GO_UI_GRIDBAG_ANCHOR__, anchor); + controller.setProperty(uic, __GO_UI_GRIDBAG_PADDING__, padding); + controller.setProperty(uic, __GO_UI_GRIDBAG_PREFERREDSIZE__, preferredsize); + break; + } + default: + break; + } + + // insets -> marging + String insets = XmlTools.getFromMap(map, "insets", "0,0,0,0"); + Double[] margins = new Double[] { 0.0, 0.0, 0.0, 0.0 }; + String[] inset = insets.split("[,;]"); + for (int i = 0; i < inset.length && i < 4; i++) { + margins[i] = Double.parseDouble(inset[i]); + } + + controller.setProperty(uic, __GO_MARGINS__, margins); + } + + // specific attributes + Integer type = (Integer) controller.getProperty(uic, __GO_STYLE__); + switch (type) { + case __GO_UI_FRAME__: { + // border + item = xmlAttributes.get("border"); + if (item != null) { + map = CSSParser.parseLine(item); + } + + FrameBorderType borderType = FrameBorderType.stringToEnum(XmlTools.getFromMap(map, "name", "none")); + Integer border = createBorder(controller, uic, borderType, map); + controller.setProperty(uic, __GO_UI_FRAME_BORDER__, border); + + String[] text = new String[1]; + text[0] = xmlAttributes.get("tab-title"); + if (text[0] != null) { + controller.setProperty(uic, __GO_UI_STRING__, text); + } + + item = xmlAttributes.get("scrollable"); + if (item == null || item.equals("false")) { + controller.setProperty(uic, __GO_UI_SCROLLABLE__, false); + } else { + controller.setProperty(uic, __GO_UI_SCROLLABLE__, true); + } + + break; + } + + case __GO_UI_TAB__: { + item = xmlAttributes.get("ui-style"); + if (item != null) { + map = CSSParser.parseLine(item); + item = XmlTools.getFromMap(map, "bold", "false"); + if (item.equals("true")) { + controller.setProperty(uic, __GO_UI_FONTWEIGHT__, "bold"); + } + + item = XmlTools.getFromMap(map, "italic", "false"); + if (item.equals("true")) { + controller.setProperty(uic, __GO_UI_FONTANGLE__, "italic"); + } + } + break; + } + case __GO_UI_IMAGE__: { + String[] text = new String[1]; + text[0] = xmlAttributes.get("image"); + if (text[0] != null) { + controller.setProperty(uic, __GO_UI_STRING__, text); + } + break; + } + case __GO_UI_CHECKBOX__: { + String[] text = new String[1]; + text[0] = xmlAttributes.get("text"); + if (text[0] != null) { + controller.setProperty(uic, __GO_UI_STRING__, text); + } + + //groupname + item = xmlAttributes.get("button-group"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_UI_GROUP_NAME__, item); + } + + //callback + item = xmlAttributes.get("onclick"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_RADIOBUTTON__: { + String[] text = new String[1]; + text[0] = xmlAttributes.get("text"); + if (text[0] != null) { + controller.setProperty(uic, __GO_UI_STRING__, text); + } + + //groupname + item = xmlAttributes.get("button-group"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_UI_GROUP_NAME__, item); + } + + //callback + item = xmlAttributes.get("onclick"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_PUSHBUTTON__: { + + //string + String[] text = new String[1]; + text[0] = xmlAttributes.get("text"); + if (text[0] != null) { + controller.setProperty(uic, __GO_UI_STRING__, text); + } + + + //icon + item = xmlAttributes.get("icon"); + if (item != null) { + controller.setProperty(uic, __GO_UI_ICON__, item); + } + + //callback + item = xmlAttributes.get("onclick"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_TEXT__: { //label + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "left"); + item = xmlAttributes.get("alignment"); + if (item != null) { + if (item.equals("left")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "left"); + } else if (item.equals("center")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "center"); + } else if (item.equals("right")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "right"); + } + } + + String[] text = new String[1]; + text[0] = xmlAttributes.get("text"); + if (text[0] != null) { + String[] old = (String[])controller.getProperty(uic, __GO_UI_STRING__); + if (old != null && old[0] != null && old[0].equals("$$")) { + text[0] = "$" + text[0] + "$"; + } + controller.setProperty(uic, __GO_UI_STRING__, text); + } + + //icon + item = xmlAttributes.get("icon"); + if (item != null) { + controller.setProperty(uic, __GO_UI_ICON__, item); + } + + //color + item = xmlAttributes.get("color"); + if (item != null) { + Color color = Color.decode(item); + Double[] val = new Double[] {(double) color.getRed() / 255, (double) color.getGreen() / 255, (double) color.getBlue() / 255}; + controller.setProperty(uic, __GO_UI_FOREGROUNDCOLOR__, val); + } + + item = xmlAttributes.get("ui-style"); + if (item != null) { + map = CSSParser.parseLine(item); + item = XmlTools.getFromMap(map, "bold", "false"); + if (item.equals("true")) { + controller.setProperty(uic, __GO_UI_FONTWEIGHT__, "bold"); + } + + item = XmlTools.getFromMap(map, "italic", "false"); + if (item.equals("true")) { + controller.setProperty(uic, __GO_UI_FONTANGLE__, "italic"); + } + } + + break; + } + case __GO_UI_EDIT__ : { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "left"); + item = xmlAttributes.get("alignment"); + if (item != null) { + if (item.equals("left")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "left"); + } else if (item.equals("center")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "center"); + } else if (item.equals("right")) { + controller.setProperty(uic, __GO_UI_HORIZONTALALIGNMENT__, "right"); + } + } + + item = xmlAttributes.get("scrollable"); + if (item != null && (item.equals("true") || item.equals("on"))) { + controller.setProperty(uic, __GO_UI_SCROLLABLE__, true); + } + + //callback + item = xmlAttributes.get("onenter"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + item = xmlAttributes.get("onfocusloss"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_POPUPMENU__ : { + item = xmlAttributes.get("items"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_UI_STRING__, new String[] {item}); + } + + item = xmlAttributes.get("prototype-display-value"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_UI_MAX__, new Double(item.length())); + } + + //callback + item = xmlAttributes.get("onchange"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_LISTBOX__ : { + item = xmlAttributes.get("items"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_UI_STRING__, new String[] {item}); + } + + item = xmlAttributes.get("multiple"); + if (item != null && item.equals("true")) { + controller.setProperty(uic, __GO_UI_MIN__, 0.0); + controller.setProperty(uic, __GO_UI_MAX__, 2.0); + } + + //callback + item = xmlAttributes.get("onclick"); + if (item != null && item.equals("") == false) { + controller.setProperty(uic, __GO_CALLBACK__, item); + controller.setProperty(uic, __GO_CALLBACKTYPE__, 0); + } + + break; + } + case __GO_UI_SPINNER__: { + + } + } + + } catch (CSSParserException e) { + e.printStackTrace(); + } + + return uic; + } + + private static void setLayoutProperty(GraphicController controller, Integer uid, String item) { + try { + Map<String, String> map = null; + map = CSSParser.parseLine(item); + item = map.get("name"); + LayoutType layout = LayoutType.stringToEnum(item); + + // layout_options + switch (layout) { + case BORDER: { + Integer[] pad = new Integer[] { 0, 0 }; + pad[0] = Integer.parseInt(XmlTools.getFromMap(map, "hgap", "0")); + pad[1] = Integer.parseInt(XmlTools.getFromMap(map, "vgap", "0")); + + controller.setProperty(uid, __GO_BORDER_OPT_PADDING__, pad); + break; + } + case GRID: { + Integer[] grid = new Integer[] { 0, 0 }; + grid[0] = Integer.parseInt(XmlTools.getFromMap(map, "rows", "0")); + grid[1] = Integer.parseInt(XmlTools.getFromMap(map, "cols", "0")); + + Integer[] pad = new Integer[] { 0, 0 }; + pad[0] = Integer.parseInt(XmlTools.getFromMap(map, "hgap", "0")); + pad[1] = Integer.parseInt(XmlTools.getFromMap(map, "vgap", "0")); + + controller.setProperty(uid, __GO_GRID_OPT_GRID__, grid); + controller.setProperty(uid, __GO_GRID_OPT_PADDING__, pad); + break; + } + default: + case GRIDBAG: + case NONE: + // nothing to do + break; + } + controller.setProperty(uid, __GO_LAYOUT__, layout.ordinal()); + } catch (CSSParserException e) { + e.printStackTrace(); + } + + } + + public static Integer uimenuBuilder(GraphicController controller, Attributes attributes, int parent) { + Integer parentType = (Integer)controller.getProperty(parent, __GO_TYPE__); + if (parentType == __GO_FIGURE__) { + controller.setProperty(parent, __GO_MENUBAR_VISIBLE__, true); + } + + Integer uim = controller.askObject(GraphicObject.getTypeFromName(__GO_UIMENU__)); + + String item = null; + + item = attributes.getValue("id"); + if (item != null) { + controller.setProperty(uim, __GO_TAG__, item); + } + + item = attributes.getValue("text"); + if (item != null) { + controller.setProperty(uim, __GO_UI_LABEL__, item); + } + + item = attributes.getValue("onclick"); + if (item != null) { + controller.setProperty(uim, __GO_CALLBACK__, item); + controller.setProperty(uim, __GO_CALLBACKTYPE__, 0); + } + + item = attributes.getValue("checked"); + if (item != null && (item.equals("true") || item.equals("on"))) { + controller.setProperty(uim, __GO_UI_CHECKED__, true); + } + + item = attributes.getValue("icon"); + if (item != null) { + controller.setProperty(uim, __GO_UI_ICON__, item); + } + + return uim; + } + + private static Integer createBorder(GraphicController controller, Integer uic, FrameBorderType borderType, Map<String, String> map) { + Integer border = controller.askObject(GraphicObject.getTypeFromName(__GO_UI_FRAME_BORDER__)); + controller.setProperty(border, __GO_UI_FRAME_BORDER_STYLE__, borderType.ordinal()); + controller.setProperty(border, __GO_HIDDEN__, true); + + switch (borderType) { + case SOFTBEVEL: + case BEVEL: { + BorderType etching = BorderType.stringToEnum(XmlTools.getFromMap(map, "type", "none")); + String color = XmlTools.getFromMap(map, "color", "black"); + + controller.setProperty(border, __GO_TYPE__, etching.ordinal()); + controller.setProperty(border, __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__, color); + controller.setProperty(border, __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__, color); + controller.setProperty(border, __GO_UI_FRAME_BORDER_SHADOW_OUT__, color); + controller.setProperty(border, __GO_UI_FRAME_BORDER_SHADOW_IN__, color); + break; + } + case COMPOUND: { + FrameBorderType borderOut = FrameBorderType.stringToEnum(XmlTools.getFromMap(map, "border-out", "none")); + FrameBorderType borderIn = FrameBorderType.stringToEnum(XmlTools.getFromMap(map, "border-in", "none")); + + Integer out = createBorder(controller, border, borderOut, map); + Integer in = createBorder(controller, border, borderIn, map); + + controller.setProperty(border, __GO_UI_FRAME_BORDER_OUT_BORDER__, out); + + controller.setProperty(border, __GO_UI_FRAME_BORDER_IN_BORDER__, in); + + break; + } + case EMPTY: { + Double[] position = new Double[4]; + position[0] = Double.parseDouble(XmlTools.getFromMap(map, "top", "0")); + position[1] = Double.parseDouble(XmlTools.getFromMap(map, "left", "0")); + position[2] = Double.parseDouble(XmlTools.getFromMap(map, "right", "0")); + position[3] = Double.parseDouble(XmlTools.getFromMap(map, "bottom", "0")); + + controller.setProperty(border, __GO_POSITION__, position); + break; + } + case ETCHED: { + BorderType etching = BorderType.stringToEnum(XmlTools.getFromMap(map, "type", "none")); + String color = XmlTools.getFromMap(map, "color", "black"); + + controller.setProperty(border, __GO_TYPE__, etching.ordinal()); + controller.setProperty(border, __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__, color); + controller.setProperty(border, __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__, color); + break; + } + case LINE: { + String color = XmlTools.getFromMap(map, "color", "black"); + Integer thickness = Integer.parseInt(XmlTools.getFromMap(map, "thickness", "1")); + Boolean rounded = Boolean.parseBoolean(XmlTools.getFromMap(map, "rounded", "false")); + + controller.setProperty(border, __GO_UI_FRAME_BORDER_COLOR__, color); + controller.setProperty(border, __GO_LINE_THICKNESS__, thickness); + controller.setProperty(border, __GO_UI_FRAME_BORDER_ROUNDED__, rounded); + break; + } + case MATTE: { + Double[] position = new Double[4]; + position[0] = Double.parseDouble(XmlTools.getFromMap(map, "top", "0")); + position[1] = Double.parseDouble(XmlTools.getFromMap(map, "left", "0")); + position[2] = Double.parseDouble(XmlTools.getFromMap(map, "right", "0")); + position[3] = Double.parseDouble(XmlTools.getFromMap(map, "bottom", "0")); + String color = XmlTools.getFromMap(map, "color", "black"); + + controller.setProperty(border, __GO_POSITION__, position); + controller.setProperty(border, __GO_UI_FRAME_BORDER_COLOR__, color); + break; + } + case TITLED: { + + String title = XmlTools.getFromMap(map, "title", ""); + FrameBorder.JustificationType justify = FrameBorder.JustificationType.stringToEnum(XmlTools.getFromMap(map, "justify", "leading")); + String fontName = XmlTools.getFromMap(map, "font-name", ""); + String fontAngle = XmlTools.getFromMap(map, "italic", "false") == "false" ? "normal" : "italic"; + Integer fontSize = Integer.parseInt(XmlTools.getFromMap(map, "font-size", "0")); + String fontWeight = XmlTools.getFromMap(map, "bold", "false") == "false" ? "normal" : "bold"; + + FrameBorder.TitlePositionType position = FrameBorder.TitlePositionType.stringToEnum(XmlTools.getFromMap(map, "position", "leading")); + + String color = XmlTools.getFromMap(map, "color", "black"); + + FrameBorderType borderOut = FrameBorderType.stringToEnum(XmlTools.getFromMap(map, "border", "")); + if (borderOut != null) { + Integer out = createBorder(controller, border, borderOut, map); + controller.setProperty(border, __GO_UI_FRAME_BORDER_TITLE__, out); + } + + controller.setProperty(border, __GO_TITLE__, title); + controller.setProperty(border, __GO_UI_FRAME_BORDER_JUSTIFICATION__, justify.ordinal()); + controller.setProperty(border, __GO_UI_FONTNAME__, fontName); + controller.setProperty(border, __GO_UI_FONTANGLE__, fontAngle); + controller.setProperty(border, __GO_UI_FONTSIZE__, fontSize); + controller.setProperty(border, __GO_UI_FONTWEIGHT__, fontWeight); + controller.setProperty(border, __GO_UI_FRAME_BORDER_POSITION__, position.ordinal()); + controller.setProperty(border, __GO_UI_FRAME_BORDER_COLOR__, color); + + break; + } + case NONE: + default: + break; + } + + controller.setGraphicObjectRelationship(uic, border); + return border; + } + + private static Double[] getColor(String str) { + try { + Field field = Class.forName("java.awt.Color").getField(str); + Color color = (Color) field.get(null); + return new Double[] {(double) color.getRed() / 255, (double) color.getGreen() / 255, (double) color.getBlue() / 255}; + } catch (Exception e) { + return new Double[] {(double) Color.black.getRed() / 255, (double) Color.black.getGreen() / 255, (double) Color.black.getBlue() / 255}; + } + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/Pair.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/Pair.java new file mode 100755 index 000000000..b346191b1 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/Pair.java @@ -0,0 +1,62 @@ +package org.scilab.modules.graphic_objects.xmlloader; + + +public class Pair<First, Second> { + private First first; + private Second second; + + public Pair(First first, Second second) { + this.first = first; + this.second = second; + } + + public void setFirst(First first) { + this.first = first; + } + + public void setSecond(Second second) { + this.second = second; + } + + public First getFirst() { + return first; + } + + public Second getSecond() { + return second; + } + + public void set(First first, Second second) { + setFirst(first); + setSecond(second); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Pair <? , ? > pair = (Pair <? , ? >) o; + + if (first != null ? !first.equals(pair.first) : pair.first != null) { + return false; + } + if (second != null ? !second.equals(pair.second) : pair.second != null) { + return false; + } + + return true; + } + + @Override + public int hashCode() { + int result = first != null ? first.hashCode() : 0; + result = 31 * result + (second != null ? second.hashCode() : 0); + return result; + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XMLDomLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XMLDomLoader.java new file mode 100755 index 000000000..d71fcb71d --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XMLDomLoader.java @@ -0,0 +1,949 @@ +package org.scilab.modules.graphic_objects.xmlloader; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*; + +import java.awt.Color; +import java.io.File; +import java.util.HashMap; +import java.util.StringTokenizer; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.scilab.modules.commons.CommonFileUtils; +import org.scilab.modules.commons.gui.FindIconHelper; +import org.scilab.modules.graphic_objects.ScilabNativeView; +import org.scilab.modules.graphic_objects.builder.Builder; +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorderType; +import org.scilab.modules.graphic_objects.utils.LayoutType; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +public class XMLDomLoader { + + private enum ModelType { + BOOLEAN, BOOLEAN_ARRAY, DOUBLE, DOUBLE_ARRAY, STRING, STRING_ARRAY, INTEGER, INTEGER_ARRAY, ROTATIONTYPE, BARTYPE, LAYOUTTYPE, FILLTYPE, ANCHORTYPE, POSITIONTYPE; + }; + + private static final int __NODE_SCILABGUI__ = -10; + private static final int __NODE_OUT__ = -20; + private static final int __NODE_IN__ = -30; + private static final int __NODE_TITLE__ = -40; + private static final int __NODE_STRING__ = -50; + private static final int __NODE_STRINGITEM__ = -50; + private static final int __NODE_COLORMAP__ = -60; + private static final int __NODE_COLORMAPITEM__ = -70; + + private static HashMap<String, Integer> nameToGO = new HashMap<String, Integer>(); + + private static HashMap<String, Pair<Integer, ModelType>> figPropToGO = new HashMap<String, Pair<Integer, ModelType>>(); + private static HashMap<String, Pair<Integer, ModelType>> UiPropToGO = new HashMap<String, Pair<Integer, ModelType>>(); + private static HashMap<String, Pair<Integer, ModelType>> MenuPropToGO = new HashMap<String, Pair<Integer, ModelType>>(); + private static HashMap<String, Pair<Integer, ModelType>> BorderPropToGO = new HashMap<String, Pair<Integer, ModelType>>(); + + static { + // init map to convert control name to id + nameToGO.put("figure", __GO_FIGURE__); + nameToGO.put("frame", __GO_UI_FRAME__); + nameToGO.put("layer", __GO_UI_LAYER__); + nameToGO.put("pushbutton", __GO_UI_PUSHBUTTON__); + nameToGO.put("text", __GO_UI_TEXT__); + nameToGO.put("checkbox", __GO_UI_CHECKBOX__); + nameToGO.put("textfield", __GO_UI_EDIT__); + nameToGO.put("spinner", __GO_UI_SPINNER__); + nameToGO.put("edit", __GO_UI_EDIT__); + nameToGO.put("image", __GO_UI_IMAGE__); + nameToGO.put("picture", __GO_UI_IMAGE__); + nameToGO.put("listbox", __GO_UI_LISTBOX__); + nameToGO.put("popupmenu", __GO_UI_POPUPMENU__); + nameToGO.put("radiobutton", __GO_UI_RADIOBUTTON__); + nameToGO.put("slider", __GO_UI_SLIDER__); + nameToGO.put("table", __GO_UI_TABLE__); + nameToGO.put("tab", __GO_UI_TAB__); + + nameToGO.put("menu", __GO_UIMENU__); + nameToGO.put("contextmenu", __GO_UICONTEXTMENU__); + + nameToGO.put("axes", __GO_AXES__); + + nameToGO.put("border", __GO_UI_FRAME_BORDER__); + + /* internal */ + nameToGO.put("out", __NODE_OUT__); + nameToGO.put("in", __NODE_IN__); + nameToGO.put("title", __NODE_TITLE__); + nameToGO.put("string", __NODE_STRING__); + nameToGO.put("stringitem", __NODE_STRINGITEM__); + nameToGO.put("colormap", __NODE_COLORMAP__); + nameToGO.put("colormapitem", __NODE_COLORMAPITEM__); + + /* system */ + nameToGO.put("scilabgui", __NODE_SCILABGUI__); + + //fill map of property -> {GO, ModelType} + + //figure property list + figPropToGO.put("figure_position", new Pair<Integer, ModelType>(__GO_POSITION__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("figure_size", new Pair<Integer, ModelType>(__GO_SIZE__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("axes_size", new Pair<Integer, ModelType>(__GO_AXES_SIZE__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("auto_resize", new Pair<Integer, ModelType>(__GO_AUTORESIZE__, ModelType.BOOLEAN)); + figPropToGO.put("view_port", new Pair<Integer, ModelType>(__GO_VIEWPORT__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("figure_name", new Pair<Integer, ModelType>(__GO_NAME__, ModelType.STRING)); + figPropToGO.put("figure_id", new Pair<Integer, ModelType>(__GO_ID__, ModelType.INTEGER)); + figPropToGO.put("info_message", new Pair<Integer, ModelType>(__GO_INFO_MESSAGE__, ModelType.STRING)); + figPropToGO.put("pixel_drawing_mode", new Pair<Integer, ModelType>(__GO_PIXEL_DRAWING_MODE__, ModelType.STRING)); + figPropToGO.put("anti_aliasing", new Pair<Integer, ModelType>(__GO_ANTIALIASING__, ModelType.BOOLEAN)); + figPropToGO.put("immediate_drawing", new Pair<Integer, ModelType>(__GO_IMMEDIATE_DRAWING__, ModelType.BOOLEAN)); + figPropToGO.put("background", new Pair<Integer, ModelType>(__GO_BACKGROUND__, ModelType.INTEGER)); + figPropToGO.put("visible", new Pair<Integer, ModelType>(__GO_VISIBLE__, ModelType.BOOLEAN)); + figPropToGO.put("rotation_style", new Pair<Integer, ModelType>(__GO_ROTATION_TYPE__, ModelType.ROTATIONTYPE)); + figPropToGO.put("event_handler", new Pair<Integer, ModelType>(__GO_EVENTHANDLER_NAME__, ModelType.STRING)); + figPropToGO.put("event_handler_enable", new Pair<Integer, ModelType>(__GO_EVENTHANDLER_ENABLE__, ModelType.BOOLEAN)); + figPropToGO.put("resizefcn", new Pair<Integer, ModelType>(__GO_RESIZEFCN__, ModelType.STRING)); + figPropToGO.put("closerequestfcn", new Pair<Integer, ModelType>(__GO_CLOSEREQUESTFCN__, ModelType.STRING)); + figPropToGO.put("resize", new Pair<Integer, ModelType>(__GO_RESIZE__, ModelType.BOOLEAN)); + figPropToGO.put("toolbar", new Pair<Integer, ModelType>(__GO_TOOLBAR__, ModelType.BARTYPE)); + figPropToGO.put("toolbar_visible", new Pair<Integer, ModelType>(__GO_TOOLBAR_VISIBLE__, ModelType.BOOLEAN)); + figPropToGO.put("menubar", new Pair<Integer, ModelType>(__GO_MENUBAR__, ModelType.BARTYPE)); + figPropToGO.put("menubar_visible", new Pair<Integer, ModelType>(__GO_MENUBAR_VISIBLE__, ModelType.BOOLEAN)); + figPropToGO.put("infobar_visible", new Pair<Integer, ModelType>(__GO_INFOBAR_VISIBLE__, ModelType.BOOLEAN)); + figPropToGO.put("dockable", new Pair<Integer, ModelType>(__GO_DOCKABLE__, ModelType.BOOLEAN)); + figPropToGO.put("layout", new Pair<Integer, ModelType>(__GO_LAYOUT__, ModelType.LAYOUTTYPE)); + figPropToGO.put("default_axes", new Pair<Integer, ModelType>(__GO_DEFAULT_AXES__, ModelType.BOOLEAN)); + figPropToGO.put("icon", new Pair<Integer, ModelType>(__GO_UI_ICON__, ModelType.STRING)); + figPropToGO.put("tag", new Pair<Integer, ModelType>(__GO_TAG__, ModelType.STRING)); + figPropToGO.put("grid_opt_grid", new Pair<Integer, ModelType>(__GO_GRID_OPT_GRID__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("grid_opt_padding", new Pair<Integer, ModelType>(__GO_GRID_OPT_PADDING__, ModelType.INTEGER_ARRAY)); + figPropToGO.put("border_opt_padding", new Pair<Integer, ModelType>(__GO_BORDER_OPT_PADDING__, ModelType.INTEGER_ARRAY)); + + //uicontrol property list + UiPropToGO.put("position", new Pair<Integer, ModelType>(__GO_POSITION__, ModelType.INTEGER)); + UiPropToGO.put("backgroundcolor", new Pair<Integer, ModelType>(__GO_UI_BACKGROUNDCOLOR__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("enable", new Pair<Integer, ModelType>(__GO_UI_ENABLE__, ModelType.BOOLEAN)); + UiPropToGO.put("fontangle", new Pair<Integer, ModelType>(__GO_UI_FONTANGLE__, ModelType.STRING)); + UiPropToGO.put("fontname", new Pair<Integer, ModelType>(__GO_UI_FONTNAME__, ModelType.STRING)); + UiPropToGO.put("fontsize", new Pair<Integer, ModelType>(__GO_UI_FONTSIZE__, ModelType.DOUBLE)); + UiPropToGO.put("fontunits", new Pair<Integer, ModelType>(__GO_UI_FONTUNITS__, ModelType.STRING)); + UiPropToGO.put("fontweight", new Pair<Integer, ModelType>(__GO_UI_FONTWEIGHT__, ModelType.STRING)); + UiPropToGO.put("foregroundcolor", new Pair<Integer, ModelType>(__GO_UI_FOREGROUNDCOLOR__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("horizontalalignment", new Pair<Integer, ModelType>(__GO_UI_HORIZONTALALIGNMENT__, ModelType.STRING)); + UiPropToGO.put("listboxtop", new Pair<Integer, ModelType>(__GO_UI_LISTBOXTOP__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("max", new Pair<Integer, ModelType>(__GO_UI_MAX__, ModelType.DOUBLE)); + UiPropToGO.put("min", new Pair<Integer, ModelType>(__GO_UI_MIN__, ModelType.DOUBLE)); + UiPropToGO.put("position", new Pair<Integer, ModelType>(__GO_POSITION__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("relief", new Pair<Integer, ModelType>(__GO_UI_RELIEF__, ModelType.STRING)); + UiPropToGO.put("sliderstep", new Pair<Integer, ModelType>(__GO_UI_SLIDERSTEP__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("units", new Pair<Integer, ModelType>(__GO_UI_UNITS__, ModelType.STRING)); + UiPropToGO.put("value", new Pair<Integer, ModelType>(__GO_UI_VALUE__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("verticalalignment", new Pair<Integer, ModelType>(__GO_UI_VERTICALALIGNMENT__, ModelType.STRING)); + UiPropToGO.put("string", new Pair<Integer, ModelType>(__GO_UI_STRING__, ModelType.STRING_ARRAY)); + UiPropToGO.put("tooltipstring", new Pair<Integer, ModelType>(__GO_UI_TOOLTIPSTRING__, ModelType.STRING_ARRAY)); + UiPropToGO.put("visible", new Pair<Integer, ModelType>(__GO_VISIBLE__, ModelType.BOOLEAN)); + UiPropToGO.put("layout", new Pair<Integer, ModelType>(__GO_LAYOUT__, ModelType.LAYOUTTYPE)); + UiPropToGO.put("callback", new Pair<Integer, ModelType>(__GO_CALLBACK__, ModelType.STRING)); + UiPropToGO.put("callback_type", new Pair<Integer, ModelType>(__GO_CALLBACKTYPE__, ModelType.INTEGER)); + UiPropToGO.put("gridbaggrid", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_GRID__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("gridbagweight", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_WEIGHT__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("gridbagfill", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_FILL__, ModelType.FILLTYPE)); + UiPropToGO.put("gridbaganchor", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_ANCHOR__, ModelType.ANCHORTYPE)); + UiPropToGO.put("gridbagpadding", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_PADDING__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("gridbagpreferredsize", new Pair<Integer, ModelType>(__GO_UI_GRIDBAG_PREFERREDSIZE__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("borderposition", new Pair<Integer, ModelType>(__GO_UI_BORDER_POSITION__, ModelType.POSITIONTYPE)); + UiPropToGO.put("borderpreferredsize", new Pair<Integer, ModelType>(__GO_UI_BORDER_PREFERREDSIZE__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("margins", new Pair<Integer, ModelType>(__GO_MARGINS__, ModelType.DOUBLE_ARRAY)); + UiPropToGO.put("groupname", new Pair<Integer, ModelType>(__GO_UI_GROUP_NAME__, ModelType.STRING)); + UiPropToGO.put("icon", new Pair<Integer, ModelType>(__GO_UI_ICON__, ModelType.STRING)); + UiPropToGO.put("scrollable", new Pair<Integer, ModelType>(__GO_UI_SCROLLABLE__, ModelType.BOOLEAN)); + UiPropToGO.put("gridoptgrid", new Pair<Integer, ModelType>(__GO_GRID_OPT_GRID__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("gridoptpadding", new Pair<Integer, ModelType>(__GO_GRID_OPT_PADDING__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("borderoptpadding", new Pair<Integer, ModelType>(__GO_BORDER_OPT_PADDING__, ModelType.INTEGER_ARRAY)); + UiPropToGO.put("tag", new Pair<Integer, ModelType>(__GO_TAG__, ModelType.STRING)); + + //border property list + BorderPropToGO.put("style", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_STYLE__, ModelType.INTEGER)); + BorderPropToGO.put("type", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_TYPE__, ModelType.INTEGER)); + BorderPropToGO.put("position", new Pair<Integer, ModelType>(__GO_POSITION__, ModelType.DOUBLE_ARRAY)); + BorderPropToGO.put("hlout", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__, ModelType.STRING)); + BorderPropToGO.put("hlin", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_HIGHLIGHT_IN__, ModelType.STRING)); + BorderPropToGO.put("shadowout", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_SHADOW_OUT__, ModelType.STRING)); + BorderPropToGO.put("shadowin", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_SHADOW_IN__, ModelType.STRING)); + BorderPropToGO.put("titleposition", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_POSITION__, ModelType.DOUBLE_ARRAY)); + BorderPropToGO.put("hl", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__, ModelType.STRING)); + BorderPropToGO.put("shadow", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_SHADOW_OUT__, ModelType.STRING)); + BorderPropToGO.put("color", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_COLOR__, ModelType.STRING)); + BorderPropToGO.put("thickness", new Pair<Integer, ModelType>(__GO_LINE_THICKNESS__, ModelType.INTEGER)); + BorderPropToGO.put("rounded", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_ROUNDED__, ModelType.BOOLEAN)); + BorderPropToGO.put("title", new Pair<Integer, ModelType>(__GO_TITLE__, ModelType.STRING)); + BorderPropToGO.put("justification", new Pair<Integer, ModelType>(__GO_UI_FRAME_BORDER_JUSTIFICATION__, ModelType.INTEGER)); + BorderPropToGO.put("fontangle", new Pair<Integer, ModelType>(__GO_UI_FONTANGLE__, ModelType.STRING)); + BorderPropToGO.put("fontname", new Pair<Integer, ModelType>(__GO_UI_FONTNAME__, ModelType.STRING)); + BorderPropToGO.put("fontsize", new Pair<Integer, ModelType>(__GO_UI_FONTSIZE__, ModelType.INTEGER)); + BorderPropToGO.put("fontweight", new Pair<Integer, ModelType>(__GO_UI_FONTWEIGHT__, ModelType.STRING)); + + MenuPropToGO.put("enable", new Pair<Integer, ModelType>(__GO_UI_ENABLE__, ModelType.BOOLEAN)); + MenuPropToGO.put("foreground", new Pair<Integer, ModelType>(__GO_UI_FOREGROUNDCOLOR__, ModelType.DOUBLE_ARRAY)); + MenuPropToGO.put("label", new Pair<Integer, ModelType>(__GO_UI_LABEL__, ModelType.STRING)); + MenuPropToGO.put("hidden", new Pair<Integer, ModelType>(__GO_HIDDEN__, ModelType.BOOLEAN)); + MenuPropToGO.put("visible", new Pair<Integer, ModelType>(__GO_VISIBLE__, ModelType.BOOLEAN)); + MenuPropToGO.put("callback", new Pair<Integer, ModelType>(__GO_CALLBACK__, ModelType.STRING)); + MenuPropToGO.put("callback_type", new Pair<Integer, ModelType>(__GO_CALLBACKTYPE__, ModelType.INTEGER)); + MenuPropToGO.put("checked", new Pair<Integer, ModelType>(__GO_UI_CHECKED__, ModelType.BOOLEAN)); + MenuPropToGO.put("icon", new Pair<Integer, ModelType>(__GO_UI_ICON__, ModelType.STRING)); + MenuPropToGO.put("tag", new Pair<Integer, ModelType>(__GO_TAG__, ModelType.STRING)); + } + + private String filename = ""; + private Integer figure = 0; + private Boolean figVisible = true; + + public XMLDomLoader(String filename) { + this.filename = filename; + } + + public int parse() { + return parse(filename); + } + + public int parse(String filename) { + try { + this.filename = filename; + File f = new File(filename); + String currentPath = ""; + + if (f.exists()) { + //add filename filepath in ScilabSwingUtilities paths + if (f.isAbsolute()) { + String filePath = f.getAbsolutePath(); + currentPath = filePath.substring(0, filePath.lastIndexOf(File.separator)); + FindIconHelper.addThemePath(currentPath); + } else { + String initialDirectoryPath = CommonFileUtils.getCWD(); + String filePath = ""; + Integer index = filename.lastIndexOf(File.separator); + if (index != -1) { + filePath = filename.substring(0, index); + } + + currentPath = initialDirectoryPath + File.separator + filePath; + FindIconHelper.addThemePath(currentPath); + FindIconHelper.addThemePath(initialDirectoryPath); + + f = new File(initialDirectoryPath, filename); + } + } else { + //try to find file in currentPath + if (f.isAbsolute()) { + //failed + return 1; + } else { + String initialDirectoryPath = CommonFileUtils.getCWD(); + String filePath = ""; + Integer index = filename.lastIndexOf(File.separator); + if (index != -1) { + filePath = filename.substring(0, index); + } + + currentPath = initialDirectoryPath + File.separator + filePath; + } + + f = new File(currentPath + File.separator + filename); + if (f.exists() == false) { + return 1; + } + } + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + + // enable XInclude processing + factory.setNamespaceAware(true); + factory.setXIncludeAware(true); + + DocumentBuilder parser = factory.newDocumentBuilder(); + Document doc = parser.parse(f); + doc.getDocumentElement().normalize(); + + if (doc.hasChildNodes()) { + parseNode(0, doc.getChildNodes()); + } + } catch (Exception e) { + e.printStackTrace(); + } + + //update visible property of main window + GraphicController.getController().setProperty(figure, __GO_VISIBLE__, figVisible); + return figure; + } + + private void parseNode(Integer parent, NodeList nodes) { + for (int i = nodes.getLength() - 1; i >= 0; i--) { + Node childNode = nodes.item(i); + Integer child = 0; + + // make sure it's element node. + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + // get node name and value + int nodeType = nameToGO.get(childNode.getNodeName()); + switch (nodeType) { + case __GO_FIGURE__: { + child = createFigure(childNode); + figure = child; + break; + } + + case __GO_UI_CHECKBOX__: + case __GO_UI_EDIT__: + case __GO_UI_FRAME__: + case __GO_UI_IMAGE__: + case __GO_UI_LAYER__: + case __GO_UI_LISTBOX__: + case __GO_UI_POPUPMENU__: + case __GO_UI_PUSHBUTTON__: + case __GO_UI_RADIOBUTTON__: + case __GO_UI_SLIDER__: + case __GO_UI_TABLE__: + case __GO_UI_TAB__: + case __GO_UI_SPINNER__: + case __GO_UI_TEXT__: { + child = createUiControl(nodeType, parent, childNode); + break; + } + + case __GO_AXES__: { + child = createAxes(parent, childNode); + break; + } + + case __GO_UI_FRAME_BORDER__: { + child = createBorder(childNode); + GraphicController.getController().setProperty(parent, __GO_UI_FRAME_BORDER__, child); + break; + } + + case __NODE_STRING__: { + //avoid relationship + child = 0; + createString(parent, childNode); + break; + } + + case __NODE_COLORMAP__: { + //avoid relationship + child = 0; + createColorMap(parent, childNode); + break; + } + + case __NODE_SCILABGUI__: { + //check version + Node nodeVersion = childNode.getAttributes().getNamedItem("version"); + double version = Double.parseDouble(nodeVersion.getNodeValue()); + if (version > 1.0) { + //call version manager ^^ + } + + Integer console = Console.getConsole().getIdentifier(); + //set usedeprecatedskin flag + setBooleanAttribute(console, __GO_USEDEPRECATEDLF__, childNode.getAttributes(), "usedeprecatedskin"); + break; + } + + case __GO_UICONTEXTMENU__: { + break; + } + case __GO_UIMENU__: { + child = createUiMenu(parent, childNode); + break; + } + + default: { + //ignore TITLED, IN, OUT, STRING_AARAY, COLORMAPITEM node + break; + } + } + + if (parent != 0 && child != 0) { + GraphicController.getController().setGraphicObjectRelationship(parent, child); + } + + if (childNode.hasChildNodes()) { + parseNode(child, childNode.getChildNodes()); + } + + } + } + } + + private void createColorMap(Integer parent, Node node) { + NamedNodeMap attr = node.getAttributes(); + + Node rowNode = attr.getNamedItem("size"); + if (rowNode == null) { + return; + } + + Integer rows = Integer.parseInt(rowNode.getNodeValue()); + + if (node.hasChildNodes()) { + Double[] colorMap = new Double[rows * 3]; + NodeList list = node.getChildNodes(); + int index = 0; + for (int i = 0; i < list.getLength(); i++) { + Node childNode = list.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + attr = childNode.getAttributes(); + Node valueNode = attr.getNamedItem("color"); + if (valueNode == null) { + colorMap[index] = 0.0; + colorMap[index + rows] = 0.0; + colorMap[index + 2 * rows] = 0.0; + } else { + try { + Color c = Color.decode(valueNode.getNodeValue()); + colorMap[index] = c.getRed() / 255.0; + colorMap[index + rows] = c.getGreen() / 255.0; + colorMap[index + 2 * rows] = c.getBlue() / 255.0; + } catch (NumberFormatException e) { + colorMap[index] = 0.0; + colorMap[index + rows] = 0.0; + colorMap[index + 2 * rows] = 0.0; + } + } + index++; + } + } + + GraphicController.getController().setProperty(parent, __GO_COLORMAP__, colorMap); + } + } + + private void createString(Integer parent, Node node) { + NamedNodeMap attr = node.getAttributes(); + + Node propertyNode = attr.getNamedItem("property"); + if (propertyNode == null) { + return; + } + + String property = propertyNode.getNodeValue(); + + Node rowNode = attr.getNamedItem("rows"); + if (rowNode == null) { + return; + } + + Integer rows = Integer.parseInt(rowNode.getNodeValue()); + + Node colNode = attr.getNamedItem("cols"); + if (colNode == null) { + return; + } + + Integer cols = Integer.parseInt(colNode.getNodeValue()); + + if (node.hasChildNodes()) { + String[] str = new String[rows * cols]; + NodeList list = node.getChildNodes(); + int index = 0; + for (int i = 0; i < list.getLength(); i++) { + Node childNode = list.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + attr = childNode.getAttributes(); + Node valueNode = attr.getNamedItem("value"); + if (valueNode == null) { + str[index++] = ""; + } else { + str[index++] = valueNode.getNodeValue(); + } + } + } + + Integer propId = UiPropToGO.get(property).getFirst(); + + if (propId == __GO_UI_STRING__ && cols > 1) { + GraphicController.getController().setProperty(parent, __GO_UI_STRING_COLNB__, cols); + } + GraphicController.getController().setProperty(parent, propId, str); + } + } + + private Integer createAxes(Integer parent, Node node) { + GraphicController controller = GraphicController.getController(); + Integer axes = Builder.createSubWin(parent); + + NamedNodeMap attr = node.getAttributes(); + Node tagNode = attr.getNamedItem("tag"); + if (tagNode != null) { + controller.setProperty(axes, __GO_TAG__, tagNode.getNodeValue()); + attr.removeNamedItem("tag"); + } + + return axes; + } + + private Integer createBorder(Node node) { + GraphicController controller = GraphicController.getController(); + Integer uib = controller.askObject(GraphicObject.getTypeFromName(__GO_UI_FRAME_BORDER__)); + + NamedNodeMap attr = node.getAttributes(); + + Node styleNode = attr.getNamedItem("style"); + if (styleNode != null) { + Integer style = FrameBorderType.stringToEnum(styleNode.getNodeValue()).ordinal(); + controller.setProperty(uib, __GO_UI_FRAME_BORDER_STYLE__, style); + attr.removeNamedItem("style"); + } + + //frame borders are always hidden + controller.setProperty(uib, __GO_HIDDEN__, true); + + for (int i = 0; i < attr.getLength(); i++) { + Node prop = attr.item(i); + Pair<Integer, ModelType> pair = BorderPropToGO.get(prop.getNodeName()); + + ModelType modelType = pair.getSecond(); + switch (modelType) { + case BOOLEAN: + controller.setProperty(uib, pair.getFirst(), getAttributeAsBoolean(prop.getNodeValue())); + break; + case BOOLEAN_ARRAY: + controller.setProperty(uib, pair.getFirst(), getAttributeAsBooleanArray(prop.getNodeValue())); + break; + case DOUBLE: + controller.setProperty(uib, pair.getFirst(), getAttributeAsDouble(prop.getNodeValue())); + break; + case DOUBLE_ARRAY: + controller.setProperty(uib, pair.getFirst(), getAttributeAsDoubleArray(prop.getNodeValue())); + break; + case INTEGER: + controller.setProperty(uib, pair.getFirst(), getAttributeAsInteger(prop.getNodeValue())); + break; + case INTEGER_ARRAY: + controller.setProperty(uib, pair.getFirst(), getAttributeAsIntegerArray(prop.getNodeValue())); + break; + case STRING: + controller.setProperty(uib, pair.getFirst(), getAttributeAsString(prop.getNodeValue())); + break; + case STRING_ARRAY: + controller.setProperty(uib, pair.getFirst(), getAttributeAsStringArray(prop.getNodeValue())); + break; + default: + System.out.println("missing type"); + break; + } + } + + //manage children here to avoid trouble on draw without children in SwingView + if (node.hasChildNodes()) { + NodeList list = node.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node childNode = list.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + Integer child = createBorder(childNode); + String nodeName = childNode.getNodeName(); + if (nodeName.equals("title")) { + GraphicController.getController().setProperty(uib, __GO_UI_FRAME_BORDER_TITLE__, child); + GraphicController.getController().setGraphicObjectRelationship(uib, child); + } else if (nodeName.equals("out")) { + GraphicController.getController().setProperty(uib, __GO_UI_FRAME_BORDER_OUT_BORDER__, child); + GraphicController.getController().setGraphicObjectRelationship(uib, child); + } else if (nodeName.equals("in")) { + GraphicController.getController().setProperty(uib, __GO_UI_FRAME_BORDER_IN_BORDER__, child); + GraphicController.getController().setGraphicObjectRelationship(uib, child); + } + } + } + } + return uib; + } + + private Integer createFigure(Node node) { + GraphicController controller = GraphicController.getController(); + Boolean dockable = true; + Integer menubar = 1; + Integer toolbar = 1; + Boolean default_axes = true; + Integer[] figureSize = null; + Integer[] axesSize = null; + boolean menubarVisisble = true; + boolean toolbarVisisble = true; + boolean infobarVisisble = true; + + NamedNodeMap attr = node.getAttributes(); + //dockable + Node tempnode = attr.getNamedItem("dockable"); + if (tempnode != null) { + dockable = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("dockable"); + } + //menubar + tempnode = attr.getNamedItem("menubar"); + if (tempnode != null) { + menubar = Figure.BarType.stringToEnum(getAttributeAsString(tempnode.getNodeValue())).ordinal(); + attr.removeNamedItem("menubar"); + } + //toolbar + tempnode = attr.getNamedItem("toolbar"); + if (tempnode != null) { + toolbar = Figure.BarType.stringToEnum(getAttributeAsString(tempnode.getNodeValue())).ordinal(); + attr.removeNamedItem("toolbar"); + } + //default_axes + tempnode = attr.getNamedItem("default_axes"); + if (tempnode != null) { + default_axes = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("default_axes"); + } + //visible + tempnode = attr.getNamedItem("visible"); + if (tempnode != null) { + figVisible = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("visible"); + } + + //axesSize + tempnode = attr.getNamedItem("axes_size"); + if (tempnode != null) { + axesSize = getAttributeAsIntegerArray(tempnode.getNodeValue()); + attr.removeNamedItem("axes_size"); + } + + //figureSize + tempnode = attr.getNamedItem("figure_size"); + if (axesSize == null && tempnode != null) { + figureSize = getAttributeAsIntegerArray(tempnode.getNodeValue()); + attr.removeNamedItem("figure_size"); + } + + //menubar + tempnode = attr.getNamedItem("menubar_visible"); + if (tempnode != null) { + menubarVisisble = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("menubar_visible"); + } + //toolbar + tempnode = attr.getNamedItem("toolbar_visible"); + if (tempnode != null) { + toolbarVisisble = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("toolbar_visible"); + } + //infobar + tempnode = attr.getNamedItem("infobar_visible"); + if (tempnode != null) { + infobarVisisble = getAttributeAsBoolean(tempnode.getNodeValue()); + attr.removeNamedItem("infobar_visible"); + } + + Integer fig = Builder.createFigure(dockable, menubar, toolbar, default_axes, false); + //set new id + int newId = ScilabNativeView.ScilabNativeView__getValidDefaultFigureId(); + + controller.setProperty(fig, __GO_ID__, newId); + for (int i = 0; i < attr.getLength(); i++) { + Node prop = attr.item(i); + Pair<Integer, ModelType> pair = figPropToGO.get(prop.getNodeName()); + + ModelType type = pair.getSecond(); + switch (type) { + case BOOLEAN: + controller.setProperty(fig, pair.getFirst(), getAttributeAsBoolean(prop.getNodeValue())); + break; + case BOOLEAN_ARRAY: + controller.setProperty(fig, pair.getFirst(), getAttributeAsBooleanArray(prop.getNodeValue())); + break; + case DOUBLE: + controller.setProperty(fig, pair.getFirst(), getAttributeAsDouble(prop.getNodeValue())); + break; + case DOUBLE_ARRAY: + controller.setProperty(fig, pair.getFirst(), getAttributeAsDoubleArray(prop.getNodeValue())); + break; + case INTEGER: + controller.setProperty(fig, pair.getFirst(), getAttributeAsInteger(prop.getNodeValue())); + break; + case INTEGER_ARRAY: + controller.setProperty(fig, pair.getFirst(), getAttributeAsIntegerArray(prop.getNodeValue())); + break; + case STRING: + controller.setProperty(fig, pair.getFirst(), getAttributeAsString(prop.getNodeValue())); + break; + case STRING_ARRAY: + controller.setProperty(fig, pair.getFirst(), getAttributeAsStringArray(prop.getNodeValue())); + break; + case ROTATIONTYPE: + controller.setProperty(fig, pair.getFirst(), Figure.RotationType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + case BARTYPE: + controller.setProperty(fig, pair.getFirst(), Figure.BarType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + case LAYOUTTYPE: + controller.setProperty(fig, pair.getFirst(), LayoutType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + default: + System.out.println("missing type"); + break; + } + } + + if (axesSize != null) { + controller.setProperty(fig, GraphicObjectProperties.__GO_AXES_SIZE__, axesSize); + } else if (figureSize != null) { + controller.setProperty(fig, GraphicObjectProperties.__GO_SIZE__, figureSize); + } else { + controller.setProperty(fig, GraphicObjectProperties.__GO_AXES_SIZE__, GraphicModel.getFigureModel().getAxesSize()); + } + + controller.setProperty(fig, __GO_MENUBAR_VISIBLE__, !menubarVisisble); + controller.setProperty(fig, __GO_TOOLBAR_VISIBLE__, !toolbarVisisble); + controller.setProperty(fig, __GO_INFOBAR_VISIBLE__, !infobarVisisble); + + //set menubar, infobar, toolbar visibility + controller.setProperty(fig, __GO_MENUBAR_VISIBLE__, menubarVisisble); + controller.setProperty(fig, __GO_TOOLBAR_VISIBLE__, toolbarVisisble); + controller.setProperty(fig, __GO_INFOBAR_VISIBLE__, infobarVisisble); + return fig; + } + + private Integer createUiControl(Integer type, Integer parent, Node node) { + GraphicController controller = GraphicController.getController(); + NamedNodeMap attr = node.getAttributes(); + + /* for frame we have to take care of scrollable property */ + if (type == __GO_UI_FRAME__) { + Node item = attr.getNamedItem("scrollable"); + if (item != null && item.getNodeValue().equals("on")) { + type = __GO_UI_FRAME_SCROLLABLE__; + } + } + + Integer uic = GraphicController.getController().askObject(GraphicObject.getTypeFromName(type)); + controller.setProperty(uic, __GO_VISIBLE__, true); + + for (int i = 0; i < attr.getLength(); i++) { + Node prop = attr.item(i); + Pair<Integer, ModelType> pair = UiPropToGO.get(prop.getNodeName()); + + if (pair == null) { + continue; + } + + ModelType modelType = pair.getSecond(); + switch (modelType) { + case BOOLEAN: + controller.setProperty(uic, pair.getFirst(), getAttributeAsBoolean(prop.getNodeValue())); + break; + case BOOLEAN_ARRAY: + controller.setProperty(uic, pair.getFirst(), getAttributeAsBooleanArray(prop.getNodeValue())); + break; + case DOUBLE: + controller.setProperty(uic, pair.getFirst(), getAttributeAsDouble(prop.getNodeValue())); + break; + case DOUBLE_ARRAY: + controller.setProperty(uic, pair.getFirst(), getAttributeAsDoubleArray(prop.getNodeValue())); + break; + case INTEGER: + controller.setProperty(uic, pair.getFirst(), getAttributeAsInteger(prop.getNodeValue())); + break; + case INTEGER_ARRAY: + controller.setProperty(uic, pair.getFirst(), getAttributeAsIntegerArray(prop.getNodeValue())); + break; + case STRING: + controller.setProperty(uic, pair.getFirst(), getAttributeAsString(prop.getNodeValue())); + break; + case STRING_ARRAY: + //nothing to do, manage as node instead of attributes + break; + case LAYOUTTYPE: + controller.setProperty(uic, pair.getFirst(), LayoutType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + case FILLTYPE: + controller.setProperty(uic, pair.getFirst(), Uicontrol.FillType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + case ANCHORTYPE: + controller.setProperty(uic, pair.getFirst(), Uicontrol.AnchorType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + case POSITIONTYPE: + controller.setProperty(uic, pair.getFirst(), Uicontrol.BorderLayoutType.stringToEnum(getAttributeAsString(prop.getNodeValue())).ordinal()); + break; + default: + System.out.println("missing type"); + break; + } + } + + return uic; + } + + private Integer createUiMenu(Integer parent, Node node) { + GraphicController controller = GraphicController.getController(); + NamedNodeMap attr = node.getAttributes(); + + Integer uim = GraphicController.getController().askObject(GraphicObject.getTypeFromName(__GO_UIMENU__)); + controller.setProperty(uim, __GO_VISIBLE__, true); + + for (int i = 0; i < attr.getLength(); i++) { + Node prop = attr.item(i); + Pair<Integer, ModelType> pair = MenuPropToGO.get(prop.getNodeName()); + ModelType modelType = pair.getSecond(); + switch (modelType) { + case BOOLEAN: + controller.setProperty(uim, pair.getFirst(), getAttributeAsBoolean(prop.getNodeValue())); + break; + case BOOLEAN_ARRAY: + controller.setProperty(uim, pair.getFirst(), getAttributeAsBooleanArray(prop.getNodeValue())); + break; + case DOUBLE: + controller.setProperty(uim, pair.getFirst(), getAttributeAsDouble(prop.getNodeValue())); + break; + case DOUBLE_ARRAY: + controller.setProperty(uim, pair.getFirst(), getAttributeAsDoubleArray(prop.getNodeValue())); + break; + case INTEGER: + controller.setProperty(uim, pair.getFirst(), getAttributeAsInteger(prop.getNodeValue())); + break; + case INTEGER_ARRAY: + controller.setProperty(uim, pair.getFirst(), getAttributeAsIntegerArray(prop.getNodeValue())); + break; + case STRING: + controller.setProperty(uim, pair.getFirst(), getAttributeAsString(prop.getNodeValue())); + break; + case STRING_ARRAY: + controller.setProperty(uim, pair.getFirst(), getAttributeAsStringArray(prop.getNodeValue())); + break; + default: + System.out.println("missing type"); + break; + } + } + + return uim; + } + + private Boolean getAttributeAsBoolean(String val) { + if (val == null) { + return null; + } + + if (val.equals("on")) { + return true; + } + + if (val.equals("off")) { + return false; + } + + return false; + } + + private void setBooleanAttribute(Integer id, int property, NamedNodeMap attributes, String attr) { + Node node = attributes.getNamedItem(attr); + if (node != null) { + Boolean b = getAttributeAsBoolean(node.getNodeValue()); + if (b != null) { + GraphicController.getController().setProperty(id, property, b); + } + } + } + + private Double getAttributeAsDouble(String val) { + if (val == null) { + return null; + } + + return Double.parseDouble(val); + } + + private Integer getAttributeAsInteger(String val) { + if (val == null) { + return null; + } + + return Integer.parseInt(val); + } + + private String getAttributeAsString(String val) { + return val; + } + + private Boolean[] getAttributeAsBooleanArray(String val) { + + if (val == null) { + return new Boolean[] {}; + } + + StringTokenizer token = new StringTokenizer(val, ","); + + Boolean[] b = new Boolean[token.countTokens()]; + int i = 0; + while (token.hasMoreElements()) { + String s = token.nextToken(); + if (s.equals("on")) { + b[i++] = true; + } else { + b[i++] = false; + } + } + + return b; + } + + private Double[] getAttributeAsDoubleArray(String val) { + + if (val == null) { + return new Double[] {}; + } + + StringTokenizer token = new StringTokenizer(val, ","); + + Double[] d = new Double[token.countTokens()]; + int i = 0; + while (token.hasMoreElements()) { + String s = token.nextToken(); + d[i++] = Double.parseDouble(s); + } + + return d; + } + + private Integer[] getAttributeAsIntegerArray(String val) { + + if (val == null) { + return new Integer[] {}; + } + + StringTokenizer token = new StringTokenizer(val, ","); + + Integer[] integer = new Integer[token.countTokens()]; + int i = 0; + while (token.hasMoreElements()) { + String s = token.nextToken(); + integer[i++] = Integer.parseInt(s); + } + + return integer; + } + + private String[] getAttributeAsStringArray(String val) { + + if (val == null) { + return null; + } + + StringTokenizer token = new StringTokenizer(val, ","); + + String[] s = new String[token.countTokens()]; + int i = 0; + while (token.hasMoreElements()) { + s[i++] = token.nextToken(); + } + + return s; + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlLoader.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlLoader.java new file mode 100755 index 000000000..19c68ff9b --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlLoader.java @@ -0,0 +1,396 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2011 - DIGITEO - Manuel JULIACHS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +package org.scilab.modules.graphic_objects.xmlloader; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTROL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGURE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TAG__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_OUT_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_IN_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER_TITLE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LAYER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.AbstractMap.SimpleEntry; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.Stack; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import org.scilab.modules.commons.CommonFileUtils; +import org.scilab.modules.commons.gui.FindIconHelper; +import org.scilab.modules.graphic_objects.ScilabNativeView; +import org.scilab.modules.graphic_objects.builder.Builder; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties; +import org.xml.sax.Attributes; +import org.xml.sax.Locator; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +public class XmlLoader extends DefaultHandler { + + private String filename = ""; + private Locator locator; + private Integer uid = 0; + private String namespace = null; + private boolean isWaitingModelName = true; + private String myURI = ""; + private boolean isFirst = false; + + private static HashMap<String, Integer> nameToGO = new HashMap<String, Integer>(); + private static HashMap<String, HashMap<String, Entry<Integer, Map<String, String>>>> models = new HashMap<String, HashMap<String, Entry<Integer, Map<String, String>>>>(); + private Stack<Integer> stackGO = new Stack<Integer>(); + private String currentPath = ""; + + private GraphicController controller; + + static { + // init map to convert control name to id + nameToGO.put("UIScilabWindow", __GO_FIGURE__); + + nameToGO.put("UIPanel", __GO_UI_FRAME__); + nameToGO.put("UIFrame", __GO_UI_FRAME__); + nameToGO.put("UILayer", __GO_UI_LAYER__); + nameToGO.put("UIButton", __GO_UI_PUSHBUTTON__); + nameToGO.put("UILabel", __GO_UI_TEXT__); + nameToGO.put("UILaTeXLabel", -1); + nameToGO.put("UICheckbox", __GO_UI_CHECKBOX__); + nameToGO.put("UITextfield", __GO_UI_EDIT__); + nameToGO.put("UISplashScreen", __GO_UI_IMAGE__); + nameToGO.put("UIList", __GO_UI_LISTBOX__); + nameToGO.put("UIComboBox", __GO_UI_POPUPMENU__); + nameToGO.put("UIComboColor", __GO_UI_POPUPMENU__); + nameToGO.put("UIRadio", __GO_UI_RADIOBUTTON__); + nameToGO.put("UISlider", __GO_UI_SLIDER__); + nameToGO.put("UITab", __GO_UI_TAB__); + nameToGO.put("UIScilabPlot", __GO_AXES__); + nameToGO.put("UINumberSpinner", __GO_UI_SPINNER__); + + + /** sdsdf*/ + nameToGO.put("UITextarea", -2); + + nameToGO.put("UIMenu", __GO_UIMENU__); + nameToGO.put("UIMenuItem", __GO_UIMENU__); + + } + + public XmlLoader(String filename) { + controller = GraphicController.getController(); + this.filename = filename; + } + + public int parse() throws SAXException { + int ret = 0; + if (filename != null && filename.equals("") == false) { + ret = parse(filename); + } + + // clean model before leave. + Set<String> entries = models.keySet(); + for (String key : entries) { + HashMap<String, Entry<Integer, Map<String, String>>> map = models.get(key); + Set<String> entries2 = map.keySet(); + for (String key2 : entries2) { + deleteObject(map.get(key2).getKey()); + } + } + + return ret; + } + + public int parse(String filename) throws SAXException { + this.filename = filename; + File f = new File(filename); + if (f.exists()) { + //add filename filepath in ScilabSwingUtilities paths + if (f.isAbsolute()) { + String filePath = f.getAbsolutePath(); + currentPath = filePath.substring(0, filePath.lastIndexOf(File.separator)); + FindIconHelper.addThemePath(currentPath); + } else { + String initialDirectoryPath = CommonFileUtils.getCWD(); + String filePath = ""; + Integer index = filename.lastIndexOf(File.separator); + if (index != -1) { + filePath = filename.substring(0, index); + } + currentPath = initialDirectoryPath + File.separator + filePath; + FindIconHelper.addThemePath(currentPath); + FindIconHelper.addThemePath(initialDirectoryPath); + + f = new File(initialDirectoryPath, filename); + } + } else { + //try to find file in currentPath + if (f.isAbsolute()) { + //failed + return 1; + } + + f = new File(currentPath + File.separator + filename); + if (f.exists() == false) { + return 1; + } + } + + FileInputStream in = null; + try { + in = new FileInputStream(f); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + return 1; + } + + SAXParser parser; + try { + SAXParserFactory factory; + factory = SAXParserFactory.newInstance(); + factory.setValidating(false); + factory.setNamespaceAware(true); + factory.setFeature("http://xml.org/sax/features/namespace-prefixes", true); + parser = factory.newSAXParser(); + } catch (Exception e) { + try { + in.close(); + } catch (IOException e1) { + e1.printStackTrace(); + return 1; + } + throw new SAXException(String.format("Cannot initialize the XML parser: %s", e.getMessage())); + } + + try { + parser.parse(in, this); + } catch (SAXException e) { + if (locator != null) { + throw new SAXException(String.format("Parse error at line %d: %s", locator.getLineNumber(), e.getMessage())); + } else { + throw new SAXException(String.format("Parse error: %s", e.getMessage())); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + in.close(); + } catch (IOException e) { + } + } + + return uid; + } + + public void characters(char[] ch, int start, int length) throws SAXException { + super.characters(ch, start, length); + } + + public void endDocument() throws SAXException { + } + + public void endElement(String uri, String localName, String qName) throws SAXException { + + if (localName.equals("modele")) { + namespace = null; + isWaitingModelName = false; + } + + if (stackGO.size() != 0) { + Integer go = stackGO.pop(); + if (go == null) { + //nothing to do + } else if (stackGO.size() > 0) { + Integer parent = stackGO.peek(); + + controller.setGraphicObjectRelationship(parent, go); + //controller.setProperty(go, __GO_VISIBLE__, true); + } else { + uid = go; + } + } + } + + public void setDocumentLocator(Locator locator) { + this.locator = locator; + } + + public void startDocument() throws SAXException { + isFirst = true; + } + + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + if (localName.equals("interface")) { + if (isFirst) { + myURI = attributes.getValue("xmlns"); + isFirst = false; + } + } else if (localName.equals("include")) { + String path = attributes.getValue("path"); + parse(path); + } else if (localName.equals("modele")) { + namespace = attributes.getValue("namespace"); + isWaitingModelName = true; + } else { + Integer uitype = getTypeFromName(localName); + Integer go = 0; + if (uitype != null) { + if (uitype == __GO_FIGURE__) { + // never create a new figure, clone figure model ! + go = GOBuilder.figureBuilder(controller, attributes); + } else if (uitype == __GO_AXES__) { + go = GOBuilder.axesBuilder(controller, attributes); + } else if (uitype == __GO_UIMENU__) { + Integer parent = 0; + if (stackGO.isEmpty() == false) { + parent = stackGO.peek(); + } + + go = GOBuilder.uimenuBuilder(controller, attributes, parent); + } else { + Integer parent = 0; + if (stackGO.isEmpty() == false) { + parent = stackGO.peek(); + } + + go = GOBuilder.uicontrolBuilder(controller, uitype, attributes, parent); + } + } else { // namespace or bad name ... + if (myURI.equals(uri)) { + // bad name + } else { + HashMap<String, Entry<Integer, Map<String, String>>> m = models.get(uri); + if (m == null) { + // bad namespace + } else { + Entry<Integer, Map<String, String>> entry = m.get(localName); + go = entry.getKey(); + // need to clone object and children + Integer newgo = cloneObject(go); + GOBuilder.uicontrolUpdater(controller, newgo, attributes, stackGO.peek(), entry.getValue()); + go = newgo; + } + } + } + + // we are in a model + // the first child must have field "model-name" + if (namespace != null) { + if (isWaitingModelName) { + String name = attributes.getValue("modele-name"); + if (name == null) { + // unmaned model ? :s + } else { + if (models.get(namespace) == null) { + models.put(namespace, new HashMap<String, Entry<Integer, Map<String, String>>>()); + } + + // copy attributes to a Map, i do not know why a can use + // attributes ? Oo + Map<String, String> attrib = new HashMap<String, String>(); + for (int i = 0; i < attributes.getLength(); i++) { + attrib.put(attributes.getLocalName(i), attributes.getValue(i)); + } + + // add root element in map model + models.get(namespace).put(name, new SimpleEntry<Integer, Map<String, String>>(go, attrib)); + } + } + } + + stackGO.add(go); + } + } + + Integer cloneObject(Integer root) { + Integer newGo = controller.cloneObject(root); + Integer[] children = (Integer[]) controller.getProperty(root, __GO_CHILDREN__); + for (int i = children.length - 1; i >= 0 ; i--) { + Integer childType = (Integer)controller.getProperty(children[i], __GO_TYPE__); + if (childType == __GO_AXES__) { + Integer go = controller.cloneObject(GraphicModel.getAxesModel().getIdentifier()); + Builder.createLabel(go, GraphicObjectProperties.__GO_X_AXIS_LABEL__); + Builder.createLabel(go, GraphicObjectProperties.__GO_Y_AXIS_LABEL__); + Builder.createLabel(go, GraphicObjectProperties.__GO_Z_AXIS_LABEL__); + Builder.createLabel(go, GraphicObjectProperties.__GO_TITLE__); + + controller.setGraphicObjectRelationship(newGo, go); + controller.setProperty(newGo, GraphicObjectProperties.__GO_SELECTED_CHILD__, go); + controller.setProperty(go, GraphicObjectProperties.__GO_TAG__, controller.getProperty(children[i], __GO_TAG__)); + ScilabNativeView.ScilabNativeView__setCurrentSubWin(go); + ScilabNativeView.ScilabNativeView__setCurrentObject(go); + } else if (childType == __GO_UI_FRAME_BORDER__) { + Integer newChild = cloneObject(children[i]); + controller.setGraphicObjectRelationship(newGo, newChild); + + Integer rootType = (Integer)controller.getProperty(root, __GO_TYPE__); + if (rootType == __GO_UICONTROL__) { + controller.setProperty(newGo, __GO_UI_FRAME_BORDER__, newChild); + } else { //__GO_UI_FRAME_BORDER__ + Integer border = (Integer) controller.getProperty(root, __GO_UI_FRAME_BORDER_TITLE__); + if (border == children[i]) { + controller.setProperty(newGo, __GO_UI_FRAME_BORDER_TITLE__, newChild); + } else { + border = (Integer) controller.getProperty(root, __GO_UI_FRAME_BORDER_OUT_BORDER__); + if (border == children[i]) { + controller.setProperty(newGo, __GO_UI_FRAME_BORDER_OUT_BORDER__, newChild); + } else { + border = (Integer) controller.getProperty(root, __GO_UI_FRAME_BORDER_OUT_BORDER__); + if (border == children[i]) { + controller.setProperty(newGo, __GO_UI_FRAME_BORDER_OUT_BORDER__, newChild); + } + } + } + } + } else { + Integer newChild = cloneObject(children[i]); + controller.setGraphicObjectRelationship(newGo, newChild); + } + } + + return newGo; + } + + private void deleteObject(Integer root) { + controller.removeRelationShipAndDelete(root); + } + + private Integer getTypeFromName(String localName) { + return nameToGO.get(localName); + } +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlSaver.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlSaver.java new file mode 100755 index 000000000..849c8a882 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlSaver.java @@ -0,0 +1,665 @@ +package org.scilab.modules.graphic_objects.xmlloader; + +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LAYOUT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME_BORDER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_PARENT__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTEXTMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTROL__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LAYER__; +import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__; + +import java.io.File; +import java.util.Arrays; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.scilab.forge.scirenderer.shapes.appearance.Color; +import org.scilab.modules.commons.CommonFileUtils; +import org.scilab.modules.graphic_objects.axes.Axes; +import org.scilab.modules.graphic_objects.console.Console; +import org.scilab.modules.graphic_objects.figure.ColorMap; +import org.scilab.modules.graphic_objects.figure.Figure; +import org.scilab.modules.graphic_objects.graphicController.GraphicController; +import org.scilab.modules.graphic_objects.graphicModel.GraphicModel; +import org.scilab.modules.graphic_objects.graphicObject.GraphicObject; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol; +import org.scilab.modules.graphic_objects.uicontrol.Uicontrol.UicontrolStyle; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder; +import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorderType; +import org.scilab.modules.graphic_objects.uimenu.Uimenu; +import org.scilab.modules.graphic_objects.utils.LayoutType; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +public class XmlSaver { + static private Figure defaultFig = null; + static private FrameBorder defaultBorder = null; + + public static String save(int figure, String filename, boolean reverseChildren) { + try { + //init default values + defaultFig = GraphicModel.getFigureModel(); + defaultBorder = new FrameBorder(); + + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + + //root elements + Document doc = docBuilder.newDocument(); + //standalone="yes" + doc.setXmlStandalone(true); + + //scilab header + Element header = doc.createElement("scilabgui"); + setAttribute(header, "version", "1.0", ""); + setAttribute(header, "usedeprecatedskin", createAttribute(Console.getConsole().getUseDeprecatedLF()), ""); + + //figure + Element figureElement = createFigure(doc, figure, reverseChildren); + appendChild(header, figureElement); + appendChild(doc, header); + + //write the content into xml file + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); + doc.getDocumentElement().normalize(); + DOMSource source = new DOMSource(doc); + + + //process filename + File f = new File(filename); + if (f.isAbsolute() == false) { + String initialDirectoryPath = CommonFileUtils.getCWD(); + f = new File(initialDirectoryPath + File.separator + filename); + } + + StreamResult result = new StreamResult(f); + transformer.transform(source, result); + } catch (ParserConfigurationException pce) { + return pce.getMessage(); + } catch (TransformerException tfe) { + return tfe.getMessage(); + } + + defaultFig = null; + defaultBorder = null; + return ""; //all good + } + + private static Element createFigure(Document doc, int figure, boolean reverseChildren) { + GraphicController controller = GraphicController.getController(); + Figure fig = (Figure)controller.getObjectFromId(figure); + Element elemFig = doc.createElement("figure"); + + //figure_position + setAttribute(elemFig, "figure_position", createAttribute(fig.getPosition()), createAttribute(defaultFig.getPosition())); + //figure_size + //setAttribute(elemFig, "figure_size", createAttribute(fig.getSize()), createAttribute(defaultFig.getSize())); + //axes_size + setAttribute(elemFig, "axes_size", createAttribute(fig.getAxesSize()), createAttribute(defaultFig.getAxesSize())); + //auto_resize + setAttribute(elemFig, "auto_resize", createAttribute(fig.getAutoResize()), createAttribute(defaultFig.getAutoResize())); + //view_port + setAttribute(elemFig, "view_port", createAttribute(fig.getViewport()), createAttribute(defaultFig.getViewport())); + //figure_name + setAttribute(elemFig, "figure_name", createAttribute(fig.getName()), createAttribute(defaultFig.getName())); + //figure_id + setAttribute(elemFig, "figure_id", createAttribute(fig.getId()), createAttribute(defaultFig.getId())); + //info_message + setAttribute(elemFig, "info_message", createAttribute(fig.getInfoMessage()), createAttribute(defaultFig.getInfoMessage())); + //pixel_drawing_mode + setAttribute(elemFig, "pixel_drawing_mode", createAttribute(fig.getPixelDrawingMode()), createAttribute(defaultFig.getPixelDrawingMode())); + //anti_aliasing + setAttribute(elemFig, "anti_aliasing", createAttribute(fig.getAntialiasing()), createAttribute(defaultFig.getAntialiasing())); + //immediate_drawing + setAttribute(elemFig, "immediate_drawing", createAttribute(fig.getImmediateDrawing()), createAttribute(defaultFig.getImmediateDrawing())); + //background + setAttribute(elemFig, "background", createAttribute(fig.getBackground()), createAttribute(defaultFig.getBackground())); + //visible + setAttribute(elemFig, "visible", createAttribute(fig.getVisible()), createAttribute(defaultFig.getVisible())); + //rotation_style + setAttribute(elemFig, "rotation_style", createAttribute(Figure.RotationType.enumToString(fig.getRotationAsEnum())), createAttribute(Figure.RotationType.enumToString(defaultFig.getRotationAsEnum()))); + //event_handler + setAttribute(elemFig, "event_handler", createAttribute(fig.getEventHandlerString()), createAttribute(defaultFig.getEventHandlerString())); + //event_handler_enable + setAttribute(elemFig, "event_handler_enable", createAttribute(fig.getEventHandlerEnable()), createAttribute(defaultFig.getEventHandlerEnable())); + //resizefcn + setAttribute(elemFig, "resizefcn", createAttribute(fig.getResizeFcn()), createAttribute(defaultFig.getResizeFcn())); + //closerequestfcn + setAttribute(elemFig, "closerequestfcn", createAttribute(fig.getCloseRequestFcn()), createAttribute(defaultFig.getCloseRequestFcn())); + //resize + setAttribute(elemFig, "resize", createAttribute(fig.getResize()), createAttribute(defaultFig.getResize())); + //toolbar + setAttribute(elemFig, "toolbar", createAttribute(Figure.BarType.enumToString(fig.getToolbarAsEnum())), createAttribute(Figure.BarType.enumToString(defaultFig.getToolbarAsEnum()))); + //toolbar_visible + setAttribute(elemFig, "toolbar_visible", createAttribute(fig.getToolbarVisible()), createAttribute(defaultFig.getToolbarVisible())); + //menubar + setAttribute(elemFig, "menubar", createAttribute(Figure.BarType.enumToString(fig.getMenubarAsEnum())), createAttribute(Figure.BarType.enumToString(defaultFig.getMenubarAsEnum()))); + //menubar_visible + setAttribute(elemFig, "menubar_visible", createAttribute(fig.getMenubarVisible()), createAttribute(defaultFig.getMenubarVisible())); + //infobar_visible + setAttribute(elemFig, "infobar_visible", createAttribute(fig.getInfobarVisible()), createAttribute(defaultFig.getInfobarVisible())); + //dockable + setAttribute(elemFig, "dockable", createAttribute(fig.getDockable()), createAttribute(defaultFig.getDockable())); + //layout + setAttribute(elemFig, "layout", createAttribute(LayoutType.enumToString(fig.getLayoutAsEnum())), createAttribute(LayoutType.enumToString(defaultFig.getLayoutAsEnum()))); + //default_axes + setAttribute(elemFig, "default_axes", createAttribute(fig.hasDefaultAxes()), createAttribute(defaultFig.hasDefaultAxes())); + //icon + setAttribute(elemFig, "icon", createAttribute(fig.getIcon()), createAttribute(defaultFig.getIcon())); + //tag + setAttribute(elemFig, "tag", createAttribute(fig.getTag()), createAttribute(defaultFig.getTag())); + //layout_options + if (fig.getLayoutAsEnum() == LayoutType.GRID) { + setAttribute(elemFig, "grid_opt_grid", createAttribute(fig.getGridOptGrid()), createAttribute(defaultFig.getGridOptGrid())); + setAttribute(elemFig, "grid_opt_padding", createAttribute(fig.getGridOptPadding()), createAttribute(defaultFig.getGridOptPadding())); + } else if (fig.getLayoutAsEnum() == LayoutType.BORDER) { + setAttribute(elemFig, "border_opt_padding", createAttribute(fig.getBorderOptPadding()), createAttribute(defaultFig.getBorderOptPadding())); + } + + //children + Integer[] children = fig.getChildren(); + for (int i = 0; i < children.length; i++) { + appendChild(elemFig, createElement(doc, children[i], reverseChildren)); + } + + //colormap + Double[] cm = fig.getColorMap().getData(); + Double[] modelcm = defaultFig.getColorMap().getData(); + + if (Arrays.deepEquals(cm, modelcm) == false) { + createColorMap(doc, elemFig, fig.getColorMap().getData()); + } + + return elemFig; + } + + public static void appendChild(Node parent, Node child) { + if (child != null) { + parent.appendChild(child); + } + } + + private static Element createElement(Document doc, int id, boolean reverseChildren) { + GraphicController controller = GraphicController.getController(); + Integer type = (Integer)controller.getProperty(id, __GO_TYPE__); + + switch (type) { + case __GO_UICONTROL__ : { + return createUicontrol(doc, id, reverseChildren); + } + case __GO_UIMENU__ : { + //Uimenu uim = (Uimenu)controller.getObjectFromId(id); + return createUimenu(doc, id, reverseChildren); + } + case __GO_UICONTEXTMENU__ : { + //Uicontextmenu uicm = (Uicontextmenu)controller.getObjectFromId(id); + return doc.createElement("contextmenu"); + } + case __GO_AXES__ : { + //Axes axes = (Axes)controller.getObjectFromId(id); + return createAxes(doc, id, reverseChildren); + } + } + + return doc.createElement("fake"); + } + + private static Element createAxes(Document doc, Integer id, boolean reverseChildren) { + GraphicController controller = GraphicController.getController(); + Axes axes = (Axes)controller.getObjectFromId(id); + + Element elemAxes = doc.createElement("axes"); + setAttribute(elemAxes, "tag", createAttribute(axes.getTag()), createAttribute("")); + + return elemAxes; + } + + private static Element createBorder(Document doc, Integer id) { + return createBorder(doc, id, "border"); + } + + private static Element createBorder(Document doc, Integer id, String borderName) { + GraphicController controller = GraphicController.getController(); + FrameBorder border = (FrameBorder)controller.getObjectFromId(id); + + if (border == null || border.getStyleAsEnum() == FrameBorderType.NONE) { + return null; + } + + Element elemBorder = doc.createElement(borderName); + + setAttribute(elemBorder, "style", createAttribute(border.getStyleAsEnum().toString().toLowerCase()), ""); + + switch (border.getStyleAsEnum()) { + case BEVEL: { + setAttribute(elemBorder, "type", createAttribute(border.getBorderType()), createAttribute(defaultBorder.getBorderType())); + setAttribute(elemBorder, "hlout", createAttribute(border.getHlOut()), createAttribute(defaultBorder.getHlOut())); + setAttribute(elemBorder, "hlin", createAttribute(border.getHlIn()), createAttribute(defaultBorder.getHlIn())); + setAttribute(elemBorder, "shadowout", createAttribute(border.getShadowOut()), createAttribute(defaultBorder.getShadowOut())); + setAttribute(elemBorder, "shadowin", createAttribute(border.getShadowIn()), createAttribute(defaultBorder.getShadowIn())); + break; + } + case COMPOUND: { + Element out = createBorder(doc, border.getOutBorder(), "out"); + if (out != null) { + appendChild(elemBorder, out); + } + + Element in = createBorder(doc, border.getInBorder(), "in"); + if (in != null) { + appendChild(elemBorder, in); + } + break; + } + case EMPTY: { + setAttribute(elemBorder, "position", createAttribute(border.getPosition()), createAttribute(defaultBorder.getPosition())); + break; + } + case ETCHED: { + setAttribute(elemBorder, "type", createAttribute(border.getBorderType()), createAttribute(defaultBorder.getBorderType())); + setAttribute(elemBorder, "hl", createAttribute(border.getHlOut()), createAttribute(defaultBorder.getHlOut())); + setAttribute(elemBorder, "shadow", createAttribute(border.getShadowOut()), createAttribute(defaultBorder.getShadowOut())); + break; + } + case LINE: { + setAttribute(elemBorder, "color", createAttribute(border.getColor()), createAttribute(defaultBorder.getColor())); + setAttribute(elemBorder, "thickness", createAttribute(border.getThickness()), createAttribute(defaultBorder.getThickness())); + setAttribute(elemBorder, "rounded", createAttribute(border.getRounded()), createAttribute(defaultBorder.getRounded())); + break; + } + case MATTE: { + setAttribute(elemBorder, "position", createAttribute(border.getPosition()), createAttribute(defaultBorder.getPosition())); + setAttribute(elemBorder, "color", createAttribute(border.getColor()), createAttribute(defaultBorder.getColor())); + break; + } + case SOFTBEVEL: { + setAttribute(elemBorder, "type", createAttribute(border.getBorderType()), createAttribute(defaultBorder.getBorderType())); + setAttribute(elemBorder, "hlout", createAttribute(border.getHlOut()), createAttribute(defaultBorder.getHlOut())); + setAttribute(elemBorder, "hlin", createAttribute(border.getHlIn()), createAttribute(defaultBorder.getHlIn())); + setAttribute(elemBorder, "shadowout", createAttribute(border.getShadowOut()), createAttribute(defaultBorder.getShadowOut())); + setAttribute(elemBorder, "shadowin", createAttribute(border.getShadowIn()), createAttribute(defaultBorder.getShadowIn())); + break; + } + case TITLED: { + setAttribute(elemBorder, "title", createAttribute(border.getTitle()), createAttribute(defaultBorder.getTitle())); + setAttribute(elemBorder, "justification", createAttribute(border.getJustification()), createAttribute(defaultBorder.getJustification())); + setAttribute(elemBorder, "titleposition", createAttribute(border.getTitlePosition()), createAttribute(defaultBorder.getTitlePosition())); + setAttribute(elemBorder, "fontname", createAttribute(border.getFontName()), createAttribute(defaultBorder.getFontName())); + setAttribute(elemBorder, "fontangle", createAttribute(border.getFontAngle()), createAttribute(defaultBorder.getFontAngle())); + setAttribute(elemBorder, "fontsize", createAttribute(border.getFontSize()), createAttribute(defaultBorder.getFontSize())); + setAttribute(elemBorder, "fontweight", createAttribute(border.getFontWeight()), createAttribute(defaultBorder.getFontWeight())); + setAttribute(elemBorder, "color", createAttribute(border.getColor()), createAttribute(defaultBorder.getColor())); + Element title = createBorder(doc, border.getTitleBorder(), "title"); + if (title != null) { + appendChild(elemBorder, title); + } + break; + } + case NONE: + default: { + break; + } + } + return elemBorder; + } + + private static Element createUicontrol(Document doc, Integer id, boolean reverseChildren) { + GraphicController controller = GraphicController.getController(); + Uicontrol uic = (Uicontrol)controller.getObjectFromId(id); + Uicontrol defaultUi = initDefaultui(uic.getStyle()); + Element elemUi = doc.createElement(uic.getStyleAsEnum().toString().toLowerCase()); + + //BackgroundColor + setAttribute(elemUi, "backgroundcolor", createAttribute(uic.getBackgroundColor()), createAttribute(defaultUi.getBackgroundColor())); + //Enable + setAttribute(elemUi, "enable", createAttribute(uic.getEnable()), createAttribute(defaultUi.getEnable())); + //FontAngle + setAttribute(elemUi, "fontangle", createAttribute(uic.getFontAngle()), createAttribute(defaultUi.getFontAngle())); + //FontName + setAttribute(elemUi, "fontname", createAttribute(uic.getFontName()), createAttribute(defaultUi.getFontName())); + //FontSize + setAttribute(elemUi, "fontsize", createAttribute(uic.getFontSize()), createAttribute(defaultUi.getFontSize())); + //FontUnits + setAttribute(elemUi, "fontunits", createAttribute(uic.getFontUnits()), createAttribute(defaultUi.getFontUnits())); + //FontWeight + setAttribute(elemUi, "fontweight", createAttribute(uic.getFontWeight()), createAttribute(defaultUi.getFontWeight())); + //ForegroundColor + setAttribute(elemUi, "foregroundcolor", createAttribute(uic.getForegroundColor()), createAttribute(defaultUi.getForegroundColor())); + //HorizontalAlignment + setAttribute(elemUi, "horizontalalignment", createAttribute(uic.getHorizontalAlignment()), createAttribute(defaultUi.getHorizontalAlignment())); + //ListboxTop + setAttribute(elemUi, "listboxtop", createAttribute(uic.getListboxTop()), createAttribute(defaultUi.getListboxTop())); + //Max + setAttribute(elemUi, "max", createAttribute(uic.getMax()), createAttribute(defaultUi.getMax())); + //Min + setAttribute(elemUi, "min", createAttribute(uic.getMin()), createAttribute(defaultUi.getMin())); + //Relief + setAttribute(elemUi, "relief", createAttribute(uic.getRelief()), createAttribute(defaultUi.getRelief())); + //SliderStep + setAttribute(elemUi, "sliderstep", createAttribute(uic.getSliderStep()), createAttribute(defaultUi.getSliderStep())); + //String + //do not save string and value of tab/layer to avoid setting bad index during loading + if (uic.getStyle() != __GO_UI_TAB__ && uic.getStyle() != __GO_UI_LAYER__) { + String[] uicSstr = uic.getString(); + String[] modelStr = defaultUi.getString(); + if (Arrays.deepEquals(uicSstr, modelStr) == false) { + createStringArray(doc, elemUi, "string", uicSstr, uic.getStringColNb()); + } + } + //TooltipString + String[] uicToolTip = uic.getTooltipString(); + String[] modelToolTip = defaultUi.getTooltipString(); + if (Arrays.deepEquals(uicToolTip, modelToolTip) == false) { + createStringArray(doc, elemUi, "tooltipstring", uicToolTip, 1); + } + //Units + setAttribute(elemUi, "units", createAttribute(uic.getUnits()), createAttribute(defaultUi.getUnits())); + //Value + //do not save string and value of tab/layer to avoid setting bad index during loading + if (uic.getStyle() != __GO_UI_TAB__ && uic.getStyle() != __GO_UI_LAYER__) { + setAttribute(elemUi, "value", createAttribute(uic.getUiValue()), createAttribute(defaultUi.getUiValue())); + } + //VerticalAlignment + setAttribute(elemUi, "verticalalignment", createAttribute(uic.getVerticalAlignment()), createAttribute(defaultUi.getVerticalAlignment())); + //Visible + setAttribute(elemUi, "visible", createAttribute(uic.getVisible()), createAttribute(!defaultUi.getVisible())); + //Callback + setAttribute(elemUi, "callback", createAttribute(uic.getCallbackString()), createAttribute(defaultUi.getCallbackString())); + //Callback_Type + setAttribute(elemUi, "callback_type", createAttribute(uic.getCallbackType()), createAttribute(defaultUi.getCallbackType())); + + //Constraints + Integer parent = (Integer)controller.getProperty(uic.getIdentifier(), __GO_PARENT__); + Integer iLayout = (Integer)controller.getProperty(parent, __GO_LAYOUT__); + LayoutType layout = LayoutType.intToEnum(iLayout); + + if (layout == LayoutType.GRIDBAG) { + setAttribute(elemUi, "gridbaggrid", createAttribute(uic.getGridBagGrid()), createAttribute(defaultUi.getGridBagGrid())); + setAttribute(elemUi, "gridbagweight", createAttribute(uic.getGridBagWeight()), createAttribute(defaultUi.getGridBagWeight())); + setAttribute(elemUi, "gridbagfill", createAttribute(Uicontrol.FillType.enumToString(uic.getGridBagFillAsEnum())), createAttribute(Uicontrol.FillType.enumToString(defaultUi.getGridBagFillAsEnum()))); + setAttribute(elemUi, "gridbaganchor", createAttribute(Uicontrol.AnchorType.enumToString(uic.getGridBagAnchorAsEnum())), createAttribute(Uicontrol.AnchorType.enumToString(defaultUi.getGridBagAnchorAsEnum()))); + setAttribute(elemUi, "gridbagpadding", createAttribute(uic.getGridBagPadding()), createAttribute(defaultUi.getGridBagPadding())); + setAttribute(elemUi, "gridbagpreferredsize", createAttribute(uic.getGridBagPreferredSize()), createAttribute(defaultUi.getGridBagPreferredSize())); + } else if (layout == LayoutType.BORDER) { + setAttribute(elemUi, "borderposition", createAttribute(Uicontrol.BorderLayoutType.enumToString(uic.getBorderPositionAsEnum())), createAttribute(Uicontrol.BorderLayoutType.enumToString(defaultUi.getBorderPositionAsEnum()))); + setAttribute(elemUi, "borderpreferredsize", createAttribute(uic.getBorderPreferredSize()), createAttribute(defaultUi.getBorderPreferredSize())); + } else if (layout == LayoutType.NONE) { + //Position + setAttribute(elemUi, "position", createAttribute(uic.getUiPosition()), createAttribute(defaultUi.getUiPosition())); + } + + //Margins + setAttribute(elemUi, "margins", createAttribute(uic.getMargins()), createAttribute(defaultUi.getMargins())); + //Groupname + setAttribute(elemUi, "groupname", createAttribute(uic.getGroupName()), createAttribute(defaultUi.getGroupName())); + + //icon + setAttribute(elemUi, "icon", createAttribute(uic.getIcon()), createAttribute(defaultUi.getIcon())); + //Tag + setAttribute(elemUi, "tag", createAttribute(uic.getTag()), createAttribute(defaultUi.getTag())); + + //only for frame type + if (uic.getStyleAsEnum() == UicontrolStyle.FRAME) { + //Border + Integer iBorder = uic.getFrameBorder(); + Element border = createBorder(doc, iBorder); + if (border != null) { + appendChild(elemUi, createBorder(doc, iBorder)); + } + + //Layout + setAttribute(elemUi, "layout", createAttribute(LayoutType.enumToString(uic.getLayoutAsEnum())), createAttribute(LayoutType.enumToString(defaultUi.getLayoutAsEnum()))); + //Layout_options + if (uic.getLayoutAsEnum() == LayoutType.GRID) { + setAttribute(elemUi, "gridoptgrid", createAttribute(uic.getGridOptGrid()), createAttribute(defaultUi.getGridOptGrid())); + setAttribute(elemUi, "gridoptpadding", createAttribute(uic.getGridOptPadding()), createAttribute(defaultUi.getGridOptPadding())); + } else if (uic.getLayoutAsEnum() == LayoutType.BORDER) { + setAttribute(elemUi, "borderoptpadding", createAttribute(uic.getBorderOptPadding()), createAttribute(defaultUi.getBorderOptPadding())); + } + } + + if (uic.getStyleAsEnum() == UicontrolStyle.FRAME || uic.getStyleAsEnum() == UicontrolStyle.EDIT) { + //Scrollable + setAttribute(elemUi, "scrollable", createAttribute(uic.getScrollable()), createAttribute(defaultUi.getScrollable())); + } + + controller.deleteObject(defaultUi.getIdentifier()); + //children + Integer[] children = uic.getChildren(); + if (reverseChildren) { + for (int i = children.length - 1 ; i >= 0 ; i--) { + if ((Integer)controller.getProperty(children[i], __GO_TYPE__) != __GO_UI_FRAME_BORDER__) { + appendChild(elemUi, createElement(doc, children[i], reverseChildren)); + } + } + } else { + for (int i = 0 ; i < children.length ; i++) { + if ((Integer)controller.getProperty(children[i], __GO_TYPE__) != __GO_UI_FRAME_BORDER__) { + appendChild(elemUi, createElement(doc, children[i], reverseChildren)); + } + } + } + return elemUi; + } + + private static Element createUimenu(Document doc, Integer id, boolean reverseChildren) { + GraphicController controller = GraphicController.getController(); + Uimenu uim = (Uimenu)controller.getObjectFromId(id); + //bypass hidden menu + if (uim.isHidden()) { + return null; + } + + Uimenu defaultMenu = initDefaultMenu(); + Element elemMenu = doc.createElement("menu"); + + //enable + setAttribute(elemMenu, "enable", createAttribute(uim.getEnable()), createAttribute(defaultMenu.getEnable())); + //foregroundcolor + setAttribute(elemMenu, "foregroundcolor", createAttribute(uim.getForegroundColor()), createAttribute(defaultMenu.getForegroundColor())); + //label + setAttribute(elemMenu, "label", createAttribute(uim.getLabel()), createAttribute(defaultMenu.getLabel())); + //handle_visible + setAttribute(elemMenu, "hidden", createAttribute(uim.isHidden()), createAttribute(defaultMenu.isHidden())); + //visible + setAttribute(elemMenu, "visible", createAttribute(uim.getVisible()), createAttribute(defaultMenu.getVisible())); + //callback + setAttribute(elemMenu, "callback", createAttribute(uim.getCallbackString()), createAttribute(defaultMenu.getCallbackString())); + //callback_type + setAttribute(elemMenu, "callback_type", createAttribute(uim.getCallbackType()), createAttribute(defaultMenu.getCallbackType())); + //checked + setAttribute(elemMenu, "checked", createAttribute(uim.getChecked()), createAttribute(defaultMenu.getChecked())); + //icon + setAttribute(elemMenu, "icon", createAttribute(uim.getIcon()), createAttribute(defaultMenu.getIcon())); + //tag + setAttribute(elemMenu, "tag", createAttribute(uim.getTag()), createAttribute(defaultMenu.getTag())); + + //children + Integer[] children = uim.getChildren(); + for (int i = 0; i < children.length; i++) { + appendChild(elemMenu, createElement(doc, children[i], reverseChildren)); + } + + return elemMenu; + } + + private static String createAttribute(Boolean val) { + if (val == null) { + return "off"; + } + + if (val) { + return "on"; + } else { + return "off"; + } + } + + private static String createAttribute(Integer val) { + if (val == null) { + return null; + } + + StringBuilder builder = new StringBuilder(); + builder.append(val.intValue()); + return builder.toString(); + } + + private static String createAttribute(String val) { + if (val == null) { + return null; + } + return val; + } + + private static String createAttribute(Double val) { + if (val == null) { + return null; + } + + StringBuilder builder = new StringBuilder(); + builder.append(val.doubleValue()); + return builder.toString(); + } + + // private static String createAttribute(Boolean[] val) { + // if(val == null || val.length == 0) { + // return null; + // } + // + // StringBuilder str = new StringBuilder(); + // + // str.append(createAttribute(val[0])); + // + // for(int i = 1 ; i < val.length; i++) + // { + // str.append(","); + // str.append(createAttribute(val[i])); + // } + // + // return str.toString(); + // } + + + private static String createAttribute(String[] val) { + if (val == null || val.length == 0) { + return null; + } + + StringBuilder str = new StringBuilder(); + + str.append(createAttribute(val[0])); + + for (int i = 1 ; i < val.length; i++) { + str.append(","); + str.append(createAttribute(val[i])); + } + + return str.toString(); + } + + private static String createAttribute(Double[] val) { + if (val == null || val.length == 0) { + return null; + } + + StringBuilder str = new StringBuilder(); + + str.append(createAttribute(val[0])); + + for (int i = 1 ; i < val.length; i++) { + str.append(","); + str.append(createAttribute(val[i])); + } + + return str.toString(); + } + + private static String createAttribute(Integer[] val) { + if (val == null || val.length == 0) { + return null; + } + + StringBuilder str = new StringBuilder(); + + str.append(createAttribute(val[0])); + + for (int i = 1 ; i < val.length; i++) { + str.append(","); + str.append(createAttribute(val[i])); + } + + return str.toString(); + } + + private static void setAttribute(Element elem, String property, String value, String ref) { + if (value == null || property == null || elem == null || (ref != null && value.equals(ref))) { + return; + } + + elem.setAttribute(property, value); + } + + private static Uicontrol initDefaultui(Integer uicontrolStyle) { + Integer uic = GraphicController.getController().askObject(GraphicObject.getTypeFromName(uicontrolStyle)); + return (Uicontrol) GraphicController.getController().getObjectFromId(uic); + } + + private static Uimenu initDefaultMenu() { + Integer uic = GraphicController.getController().askObject(GraphicObject.getTypeFromName(__GO_UIMENU__)); + return (Uimenu) GraphicController.getController().getObjectFromId(uic); + } + + private static void createStringArray(Document doc, Element parent, String property, String[] value, Integer cols) { + //create a new Node to store string + Element elemString = doc.createElement("string"); + Integer rows = value.length / cols; + + setAttribute(elemString, "property", property, ""); + setAttribute(elemString, "rows", rows.toString(), ""); + setAttribute(elemString, "cols", cols.toString(), ""); + + for (int i = 0 ; i < rows * cols ; i++) { + Element elemSub = doc.createElement("stringitem"); + setAttribute(elemSub, "value", value[i], null); + elemString.appendChild(elemSub); + } + + parent.appendChild(elemString); + } + + private static void createColorMap(Document doc, Element parent, Double[] value) { + //create a new Node to store string + Element elemString = doc.createElement("colormap"); + Integer rows = value.length / 3; + + setAttribute(elemString, "size", rows.toString(), ""); + + for (int i = 0 ; i < rows ; i++) { + Element elemSub = doc.createElement("colormapitem"); + Color c = new Color(value[i].floatValue(), value[i + rows].floatValue(), value[i + 2 * rows].floatValue()); + Integer color = c.getRGB(); + setAttribute(elemSub, "color", color.toString(), null); + elemString.appendChild(elemSub); + } + + parent.appendChild(elemString); + } + +} diff --git a/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlTools.java b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlTools.java new file mode 100755 index 000000000..c088c06a3 --- /dev/null +++ b/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlTools.java @@ -0,0 +1,162 @@ +package org.scilab.modules.graphic_objects.xmlloader; + +import java.util.Map; +import java.util.StringTokenizer; + +import org.scilab.modules.graphic_objects.graphicController.GraphicController; + +public class XmlTools { + public static Boolean setPropAsDouble(Integer uid, Integer prop, String propString) { + if (propString == null || propString.equals("")) { + return false; + } + + GraphicController.getController().setProperty(uid, prop, Double.parseDouble(propString)); + return true; + } + + public static Boolean setPropAsDoubleVector(Integer uid, Integer prop, Map<String, String> map, String[] propString) { + if (propString == null || propString.length == 0) { + return false; + } + + Double[] values = new Double[propString.length]; + for (int i = 0; i < propString.length; i++) { + String value = map.get(propString[i]); + if (value == null || value.equals("")) { + values[i] = 0.0; + } else { + values[i] = Double.parseDouble(value); + } + } + + GraphicController.getController().setProperty(uid, prop, values); + return true; + } + + public static Boolean setPropAsDoubleVector(Integer uid, Integer prop, String propString, Integer size) { + if (propString == null || propString.equals("")) { + return false; + } + + Double[] values = new Double[size]; + + StringTokenizer tokens = new StringTokenizer(propString, ","); + if (tokens.countTokens() > size) { + return false; + } + + int i = 0; + while (tokens.hasMoreTokens()) { + values[i++] = Double.parseDouble(tokens.nextToken()); + } + + GraphicController.getController().setProperty(uid, prop, values); + return true; + } + + public static Boolean setPropAsBoolean(Integer uid, Integer prop, String propString) { + if (propString == null || propString.equals("")) { + return false; + } + + GraphicController.getController().setProperty(uid, prop, Boolean.parseBoolean(propString)); + return true; + } + + public static Boolean setPropAsBooleanVector(Integer uid, Integer prop, String propString, Integer size) { + if (propString == null || propString.equals("")) { + return false; + } + + Boolean[] values = new Boolean[size]; + + StringTokenizer tokens = new StringTokenizer(propString, ","); + if (tokens.countTokens() > size) { + return false; + } + + int i = 0; + while (tokens.hasMoreTokens()) { + values[i++] = Boolean.parseBoolean(tokens.nextToken()); + } + + GraphicController.getController().setProperty(uid, prop, values); + return true; + } + + public static Boolean setPropAsInteger(Integer uid, Integer prop, String propString) { + if (propString == null || propString.equals("")) { + return false; + } + + GraphicController.getController().setProperty(uid, prop, Integer.parseInt(propString)); + return true; + } + + public static Boolean setPropAsIntegerVector(Integer uid, Integer prop, String propString, Integer size) { + if (propString == null || propString.equals("")) { + return false; + } + + Integer[] values = new Integer[size]; + + StringTokenizer tokens = new StringTokenizer(propString, ","); + if (tokens.countTokens() > size) { + return false; + } + + int i = 0; + while (tokens.hasMoreTokens()) { + values[i++] = Integer.parseInt(tokens.nextToken()); + } + + GraphicController.getController().setProperty(uid, prop, values); + return true; + } + + public static Boolean setPropAsString(Integer uid, Integer prop, String propString) { + if (propString == null || propString.equals("")) { + return false; + } + + GraphicController.getController().setProperty(uid, prop, propString); + return true; + } + + public static Boolean setPropAsStringVector(Integer uid, Integer prop, String propString, Integer size) { + if (propString == null || propString.equals("")) { + return false; + } + + String[] values = new String[size]; + + StringTokenizer tokens = new StringTokenizer(propString, ","); + if (tokens.countTokens() > size) { + return false; + } + + int i = 0; + while (tokens.hasMoreTokens()) { + values[i++] = tokens.nextToken(); + } + + GraphicController.getController().setProperty(uid, prop, values); + return true; + } + + public static String getFromMap(Map<String, String> map, String field, String defaultValue) { + if (map != null) { + String ret = map.get(field); + if (ret != null) { + map.remove(field); + return ret; + } + } + return defaultValue; + } + + public static String getFromMap(Map<String, String> map, String field) { + return getFromMap(map, field, ""); + } +} diff --git a/modules/graphic_objects/src/jni/.deps/.dirstamp b/modules/graphic_objects/src/jni/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/.dirstamp diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-Builder.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-Builder.Plo new file mode 100755 index 000000000..31503a5bf --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-Builder.Plo @@ -0,0 +1,341 @@ +src/jni/libscigraphic_objects_la-Builder.lo: src/jni/Builder.cpp \ + /usr/include/stdc-predef.h src/jni/Builder.hxx \ + /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + ../../modules/commons/src/jni/GiwsException.hxx + +/usr/include/stdc-predef.h: + +src/jni/Builder.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +../../modules/commons/src/jni/GiwsException.hxx: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallGraphicController.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallGraphicController.Plo new file mode 100755 index 000000000..527ef9103 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallGraphicController.Plo @@ -0,0 +1,341 @@ +src/jni/libscigraphic_objects_la-CallGraphicController.lo: \ + src/jni/CallGraphicController.cpp /usr/include/stdc-predef.h \ + src/jni/CallGraphicController.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + ../../modules/commons/src/jni/GiwsException.hxx + +/usr/include/stdc-predef.h: + +src/jni/CallGraphicController.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +../../modules/commons/src/jni/GiwsException.hxx: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallXmlLoader.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallXmlLoader.Plo new file mode 100755 index 000000000..b97fe14b7 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-CallXmlLoader.Plo @@ -0,0 +1,341 @@ +src/jni/libscigraphic_objects_la-CallXmlLoader.lo: \ + src/jni/CallXmlLoader.cpp /usr/include/stdc-predef.h \ + src/jni/CallXmlLoader.hxx /usr/include/c++/5/iostream \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h \ + /usr/include/c++/5/ostream /usr/include/c++/5/ios \ + /usr/include/c++/5/iosfwd /usr/include/c++/5/bits/stringfwd.h \ + /usr/include/c++/5/bits/memoryfwd.h /usr/include/c++/5/bits/postypes.h \ + /usr/include/c++/5/cwchar /usr/include/wchar.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/5/exception \ + /usr/include/c++/5/bits/atomic_lockfree_defines.h \ + /usr/include/c++/5/bits/char_traits.h \ + /usr/include/c++/5/bits/stl_algobase.h \ + /usr/include/c++/5/bits/functexcept.h \ + /usr/include/c++/5/bits/exception_defines.h \ + /usr/include/c++/5/bits/cpp_type_traits.h \ + /usr/include/c++/5/ext/type_traits.h \ + /usr/include/c++/5/ext/numeric_traits.h \ + /usr/include/c++/5/bits/stl_pair.h /usr/include/c++/5/bits/move.h \ + /usr/include/c++/5/bits/concept_check.h \ + /usr/include/c++/5/bits/stl_iterator_base_types.h \ + /usr/include/c++/5/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/5/debug/debug.h /usr/include/c++/5/bits/stl_iterator.h \ + /usr/include/c++/5/bits/ptr_traits.h \ + /usr/include/c++/5/bits/predefined_ops.h \ + /usr/include/c++/5/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h \ + /usr/include/c++/5/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/5/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/c++/5/bits/ios_base.h /usr/include/c++/5/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h \ + /usr/include/c++/5/bits/locale_classes.h /usr/include/c++/5/string \ + /usr/include/c++/5/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h \ + /usr/include/c++/5/ext/new_allocator.h /usr/include/c++/5/new \ + /usr/include/c++/5/bits/ostream_insert.h \ + /usr/include/c++/5/bits/cxxabi_forced.h \ + /usr/include/c++/5/bits/stl_function.h \ + /usr/include/c++/5/backward/binders.h \ + /usr/include/c++/5/bits/range_access.h \ + /usr/include/c++/5/bits/basic_string.h \ + /usr/include/c++/5/ext/alloc_traits.h \ + /usr/include/c++/5/bits/basic_string.tcc \ + /usr/include/c++/5/bits/locale_classes.tcc /usr/include/c++/5/stdexcept \ + /usr/include/c++/5/streambuf /usr/include/c++/5/bits/streambuf.tcc \ + /usr/include/c++/5/bits/basic_ios.h \ + /usr/include/c++/5/bits/locale_facets.h /usr/include/c++/5/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h \ + /usr/include/c++/5/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h \ + /usr/include/c++/5/bits/locale_facets.tcc \ + /usr/include/c++/5/bits/basic_ios.tcc \ + /usr/include/c++/5/bits/ostream.tcc /usr/include/c++/5/istream \ + /usr/include/c++/5/bits/istream.tcc /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + ../../modules/commons/src/jni/GiwsException.hxx + +/usr/include/stdc-predef.h: + +src/jni/CallXmlLoader.hxx: + +/usr/include/c++/5/iostream: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/cpu_defines.h: + +/usr/include/c++/5/ostream: + +/usr/include/c++/5/ios: + +/usr/include/c++/5/iosfwd: + +/usr/include/c++/5/bits/stringfwd.h: + +/usr/include/c++/5/bits/memoryfwd.h: + +/usr/include/c++/5/bits/postypes.h: + +/usr/include/c++/5/cwchar: + +/usr/include/wchar.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/c++/5/exception: + +/usr/include/c++/5/bits/atomic_lockfree_defines.h: + +/usr/include/c++/5/bits/char_traits.h: + +/usr/include/c++/5/bits/stl_algobase.h: + +/usr/include/c++/5/bits/functexcept.h: + +/usr/include/c++/5/bits/exception_defines.h: + +/usr/include/c++/5/bits/cpp_type_traits.h: + +/usr/include/c++/5/ext/type_traits.h: + +/usr/include/c++/5/ext/numeric_traits.h: + +/usr/include/c++/5/bits/stl_pair.h: + +/usr/include/c++/5/bits/move.h: + +/usr/include/c++/5/bits/concept_check.h: + +/usr/include/c++/5/bits/stl_iterator_base_types.h: + +/usr/include/c++/5/bits/stl_iterator_base_funcs.h: + +/usr/include/c++/5/debug/debug.h: + +/usr/include/c++/5/bits/stl_iterator.h: + +/usr/include/c++/5/bits/ptr_traits.h: + +/usr/include/c++/5/bits/predefined_ops.h: + +/usr/include/c++/5/bits/localefwd.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++locale.h: + +/usr/include/c++/5/clocale: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/c++/5/cctype: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/c++/5/bits/ios_base.h: + +/usr/include/c++/5/ext/atomicity.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/timex.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/atomic_word.h: + +/usr/include/c++/5/bits/locale_classes.h: + +/usr/include/c++/5/string: + +/usr/include/c++/5/bits/allocator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h: + +/usr/include/c++/5/ext/new_allocator.h: + +/usr/include/c++/5/new: + +/usr/include/c++/5/bits/ostream_insert.h: + +/usr/include/c++/5/bits/cxxabi_forced.h: + +/usr/include/c++/5/bits/stl_function.h: + +/usr/include/c++/5/backward/binders.h: + +/usr/include/c++/5/bits/range_access.h: + +/usr/include/c++/5/bits/basic_string.h: + +/usr/include/c++/5/ext/alloc_traits.h: + +/usr/include/c++/5/bits/basic_string.tcc: + +/usr/include/c++/5/bits/locale_classes.tcc: + +/usr/include/c++/5/stdexcept: + +/usr/include/c++/5/streambuf: + +/usr/include/c++/5/bits/streambuf.tcc: + +/usr/include/c++/5/bits/basic_ios.h: + +/usr/include/c++/5/bits/locale_facets.h: + +/usr/include/c++/5/cwctype: + +/usr/include/wctype.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_base.h: + +/usr/include/c++/5/bits/streambuf_iterator.h: + +/usr/include/x86_64-linux-gnu/c++/5/bits/ctype_inline.h: + +/usr/include/c++/5/bits/locale_facets.tcc: + +/usr/include/c++/5/bits/basic_ios.tcc: + +/usr/include/c++/5/bits/ostream.tcc: + +/usr/include/c++/5/istream: + +/usr/include/c++/5/bits/istream.tcc: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +../../modules/commons/src/jni/GiwsException.hxx: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-DataLoader_wrap.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-DataLoader_wrap.Plo new file mode 100755 index 000000000..acbafb239 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-DataLoader_wrap.Plo @@ -0,0 +1,128 @@ +src/jni/libscigraphic_objects_la-DataLoader_wrap.lo: \ + src/jni/DataLoader_wrap.c /usr/include/stdc-predef.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \ + /usr/include/x86_64-linux-gnu/bits/string2.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h includes/DataLoader.hxx + +/usr/include/stdc-predef.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string.h: + +/usr/include/x86_64-linux-gnu/bits/string2.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/DataLoader.hxx: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ObjectData_wrap.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ObjectData_wrap.Plo new file mode 100755 index 000000000..0f13c6d0e --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ObjectData_wrap.Plo @@ -0,0 +1,183 @@ +src/jni/libscigraphic_objects_la-ObjectData_wrap.lo: \ + src/jni/ObjectData_wrap.c /usr/include/stdc-predef.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \ + /usr/include/x86_64-linux-gnu/bits/string2.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h includes/returnType.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/setGraphicObjectProperty.h \ + includes/graphicObjectProperties.h ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h + +/usr/include/stdc-predef.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string.h: + +/usr/include/x86_64-linux-gnu/bits/string2.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/returnType.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-PolylineData_wrap.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-PolylineData_wrap.Plo new file mode 100755 index 000000000..a00c1c065 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-PolylineData_wrap.Plo @@ -0,0 +1,189 @@ +src/jni/libscigraphic_objects_la-PolylineData_wrap.lo: \ + src/jni/PolylineData_wrap.c /usr/include/stdc-predef.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \ + /usr/include/x86_64-linux-gnu/bits/string2.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h \ + includes/createGraphicObject.h includes/dynlib_graphic_objects.h \ + ../../modules/core/includes/BOOL.h includes/deleteGraphicObject.h \ + includes/returnType.h includes/getGraphicObjectProperty.h \ + includes/returnType.h includes/CurrentObject.h \ + includes/setGraphicObjectProperty.h includes/graphicObjectProperties.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h + +/usr/include/stdc-predef.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string.h: + +/usr/include/x86_64-linux-gnu/bits/string2.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/createGraphicObject.h: + +includes/dynlib_graphic_objects.h: + +../../modules/core/includes/BOOL.h: + +includes/deleteGraphicObject.h: + +includes/returnType.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ScilabNativeView_wrap.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ScilabNativeView_wrap.Plo new file mode 100755 index 000000000..2ce6019a0 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-ScilabNativeView_wrap.Plo @@ -0,0 +1,126 @@ +src/jni/libscigraphic_objects_la-ScilabNativeView_wrap.lo: \ + src/jni/ScilabNativeView_wrap.c /usr/include/stdc-predef.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \ + /usr/include/x86_64-linux-gnu/bits/string2.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h + +/usr/include/stdc-predef.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string.h: + +/usr/include/x86_64-linux-gnu/bits/string2.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: diff --git a/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-SurfaceData_wrap.Plo b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-SurfaceData_wrap.Plo new file mode 100755 index 000000000..fbdabe5d0 --- /dev/null +++ b/modules/graphic_objects/src/jni/.deps/libscigraphic_objects_la-SurfaceData_wrap.Plo @@ -0,0 +1,146 @@ +src/jni/libscigraphic_objects_la-SurfaceData_wrap.lo: \ + src/jni/SurfaceData_wrap.c /usr/include/stdc-predef.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \ + /usr/include/x86_64-linux-gnu/bits/string2.h \ + /usr/include/x86_64-linux-gnu/bits/string3.h includes/returnType.h \ + includes/getGraphicObjectProperty.h includes/returnType.h \ + includes/dynlib_graphic_objects.h includes/CurrentObject.h \ + ../../modules/core/includes/BOOL.h includes/setGraphicObjectProperty.h \ + includes/graphicObjectProperties.h + +/usr/include/stdc-predef.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/xlocale.h: + +/usr/include/x86_64-linux-gnu/bits/string.h: + +/usr/include/x86_64-linux-gnu/bits/string2.h: + +/usr/include/x86_64-linux-gnu/bits/string3.h: + +includes/returnType.h: + +includes/getGraphicObjectProperty.h: + +includes/returnType.h: + +includes/dynlib_graphic_objects.h: + +includes/CurrentObject.h: + +../../modules/core/includes/BOOL.h: + +includes/setGraphicObjectProperty.h: + +includes/graphicObjectProperties.h: diff --git a/modules/graphic_objects/src/jni/.dirstamp b/modules/graphic_objects/src/jni/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/jni/.dirstamp diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-Builder.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-Builder.o Binary files differnew file mode 100755 index 000000000..ff8fa19c3 --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-Builder.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallGraphicController.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallGraphicController.o Binary files differnew file mode 100755 index 000000000..7dee9c5d8 --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallGraphicController.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallXmlLoader.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallXmlLoader.o Binary files differnew file mode 100755 index 000000000..94d008fa1 --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-CallXmlLoader.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-DataLoader_wrap.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-DataLoader_wrap.o Binary files differnew file mode 100755 index 000000000..bae8aab58 --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-DataLoader_wrap.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ObjectData_wrap.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ObjectData_wrap.o Binary files differnew file mode 100755 index 000000000..2f32f994a --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ObjectData_wrap.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-PolylineData_wrap.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-PolylineData_wrap.o Binary files differnew file mode 100755 index 000000000..4ac3c04be --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-PolylineData_wrap.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ScilabNativeView_wrap.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ScilabNativeView_wrap.o Binary files differnew file mode 100755 index 000000000..dd6843f7e --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-ScilabNativeView_wrap.o diff --git a/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-SurfaceData_wrap.o b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-SurfaceData_wrap.o Binary files differnew file mode 100755 index 000000000..bf1c11a14 --- /dev/null +++ b/modules/graphic_objects/src/jni/.libs/libscigraphic_objects_la-SurfaceData_wrap.o diff --git a/modules/graphic_objects/src/jni/Builder.cpp b/modules/graphic_objects/src/jni/Builder.cpp new file mode 100755 index 000000000..1d1521be0 --- /dev/null +++ b/modules/graphic_objects/src/jni/Builder.cpp @@ -0,0 +1,1199 @@ +#include "Builder.hxx" +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src\jni --throws-exception-on-error --description-file src\jni\builder.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + +namespace org_scilab_modules_graphic_objects_builder { + + // Static declarations (if any) + +// Returns the current env + +JNIEnv * Builder::getCurrentEnv() { +JNIEnv * curEnv = NULL; +jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +if (res != JNI_OK) { +throw GiwsException::JniException(getCurrentEnv()); +} +return curEnv; +} +// Destructor + +Builder::~Builder() { +JNIEnv * curEnv = NULL; +this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +curEnv->DeleteGlobalRef(this->instance); +curEnv->DeleteGlobalRef(this->instanceClass); +curEnv->DeleteGlobalRef(this->stringArrayClass);} +// Constructors +Builder::Builder(JavaVM * jvm_) { +jmethodID constructObject = NULL ; +jobject localInstance ; +jclass localClass ; + +const std::string construct="<init>"; +const std::string param="()V"; +jvm=jvm_; + +JNIEnv * curEnv = getCurrentEnv(); + +localClass = curEnv->FindClass( this->className().c_str() ) ; +if (localClass == NULL) { + throw GiwsException::JniClassNotFoundException(curEnv, this->className()); +} + +this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + +/* localClass is not needed anymore */ +curEnv->DeleteLocalRef(localClass); + +if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + + +constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ; +if(constructObject == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ; +if(localInstance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +this->instance = curEnv->NewGlobalRef(localInstance) ; +if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} +/* localInstance not needed anymore */ +curEnv->DeleteLocalRef(localInstance); + + /* Methods ID set to NULL */ +jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID=NULL; +jintcloneGraphicContextjintintjintintID=NULL; +jintcloneFontContextjintintjintintID=NULL; +jintcreateHiddenLabeljintintID=NULL; +jbooleanisAxesRedrawingjintintID=NULL; +jintcreateLabeljintintjintintID=NULL; +jintcreateNewFigureWithAxesID=NULL; +jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID=NULL; +voidcloneMenusjintintjintintID=NULL; +jintcloneAxesModeljintintID=NULL; +jintcreateSubWinjintintID=NULL; +jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID=NULL; +jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID=NULL; +jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID=NULL; +jintcreateCompoundjintintjintArray_intintID=NULL; +jintcreateCompoundSeqjintintjintintID=NULL; +jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID=NULL; +jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID=NULL; +jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID=NULL; +jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID=NULL; +jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID=NULL; +jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID=NULL; +jintcreateSurfacejintintjintintjintintjintintID=NULL; +voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID=NULL; +jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID=NULL; + + +} + +Builder::Builder(JavaVM * jvm_, jobject JObj) { + jvm=jvm_; + + JNIEnv * curEnv = getCurrentEnv(); + +jclass localClass = curEnv->GetObjectClass(JObj); + this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + curEnv->DeleteLocalRef(localClass); + + if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + + this->instance = curEnv->NewGlobalRef(JObj) ; + if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + /* Methods ID set to NULL */ + jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID=NULL; +jintcloneGraphicContextjintintjintintID=NULL; +jintcloneFontContextjintintjintintID=NULL; +jintcreateHiddenLabeljintintID=NULL; +jbooleanisAxesRedrawingjintintID=NULL; +jintcreateLabeljintintjintintID=NULL; +jintcreateNewFigureWithAxesID=NULL; +jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID=NULL; +voidcloneMenusjintintjintintID=NULL; +jintcloneAxesModeljintintID=NULL; +jintcreateSubWinjintintID=NULL; +jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID=NULL; +jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID=NULL; +jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID=NULL; +jintcreateCompoundjintintjintArray_intintID=NULL; +jintcreateCompoundSeqjintintjintintID=NULL; +jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID=NULL; +jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID=NULL; +jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID=NULL; +jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID=NULL; +jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID=NULL; +jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID=NULL; +jintcreateSurfacejintintjintintjintintjintintID=NULL; +voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID=NULL; +jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID=NULL; + + +} + +// Generic methods + +void Builder::synchronize() { +if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "Builder"); +} +} + +void Builder::endSynchronize() { +if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "Builder"); +} +} +// Method(s) + +int Builder::createRect (JavaVM * jvm_, int pparentsubwinUID, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID = curEnv->GetStaticMethodID(cls, "createRect", "(IDDDDIIII)I" ) ; +if (jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createRect"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID ,pparentsubwinUID, x, y, height, width, foreground, background, isfilled, isline)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::cloneGraphicContext (JavaVM * jvm_, int sourceIdentifier, int destIdentifier){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcloneGraphicContextjintintjintintID = curEnv->GetStaticMethodID(cls, "cloneGraphicContext", "(II)I" ) ; +if (jintcloneGraphicContextjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "cloneGraphicContext"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcloneGraphicContextjintintjintintID ,sourceIdentifier, destIdentifier)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::cloneFontContext (JavaVM * jvm_, int sourceIdentifier, int destIdentifier){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcloneFontContextjintintjintintID = curEnv->GetStaticMethodID(cls, "cloneFontContext", "(II)I" ) ; +if (jintcloneFontContextjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "cloneFontContext"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcloneFontContextjintintjintintID ,sourceIdentifier, destIdentifier)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createHiddenLabel (JavaVM * jvm_, int parent){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateHiddenLabeljintintID = curEnv->GetStaticMethodID(cls, "createHiddenLabel", "(I)I" ) ; +if (jintcreateHiddenLabeljintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createHiddenLabel"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateHiddenLabeljintintID ,parent)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +bool Builder::isAxesRedrawing (JavaVM * jvm_, int subWin){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleanisAxesRedrawingjintintID = curEnv->GetStaticMethodID(cls, "isAxesRedrawing", "(I)Z" ) ; +if (jbooleanisAxesRedrawingjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "isAxesRedrawing"); +} + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleanisAxesRedrawingjintintID ,subWin)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +int Builder::createLabel (JavaVM * jvm_, int parent, int type){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateLabeljintintjintintID = curEnv->GetStaticMethodID(cls, "createLabel", "(II)I" ) ; +if (jintcreateLabeljintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createLabel"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateLabeljintintjintintID ,parent, type)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createNewFigureWithAxes (JavaVM * jvm_){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateNewFigureWithAxesID = curEnv->GetStaticMethodID(cls, "createNewFigureWithAxes", "()I" ) ; +if (jintcreateNewFigureWithAxesID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createNewFigureWithAxes"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateNewFigureWithAxesID )); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createFigure (JavaVM * jvm_, bool dockable, int menubarType, int toolbarType, bool defaultAxes, bool visible){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createFigure", "(ZIIZZ)I" ) ; +if (jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createFigure"); +} + +jboolean dockable_ = (static_cast<bool>(dockable) ? JNI_TRUE : JNI_FALSE); + +jboolean defaultAxes_ = (static_cast<bool>(defaultAxes) ? JNI_TRUE : JNI_FALSE); + +jboolean visible_ = (static_cast<bool>(visible) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID ,dockable_, menubarType, toolbarType, defaultAxes_, visible_)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +void Builder::cloneMenus (JavaVM * jvm_, int model, int newParent){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidcloneMenusjintintjintintID = curEnv->GetStaticMethodID(cls, "cloneMenus", "(II)V" ) ; +if (voidcloneMenusjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "cloneMenus"); +} + + curEnv->CallStaticVoidMethod(cls, voidcloneMenusjintintjintintID ,model, newParent); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +int Builder::cloneAxesModel (JavaVM * jvm_, int parent){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcloneAxesModeljintintID = curEnv->GetStaticMethodID(cls, "cloneAxesModel", "(I)I" ) ; +if (jintcloneAxesModeljintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "cloneAxesModel"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcloneAxesModeljintintID ,parent)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createSubWin (JavaVM * jvm_, int parent){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateSubWinjintintID = curEnv->GetStaticMethodID(cls, "createSubWin", "(I)I" ) ; +if (jintcreateSubWinjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createSubWin"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateSubWinjintintID ,parent)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createText (JavaVM * jvm_, int parent, char const* const* text, int textSize, int rows, int cols, double x, double y, bool autoSize, double const* userSize, int userSizeSize, int centerPos, int foreground, bool isForeground, int background, bool isBackground, bool boxed, bool line, bool filled, int align){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID = curEnv->GetStaticMethodID(cls, "createText", "(I[Ljava/lang/String;IIDDZ[DIIZIZZZZI)I" ) ; +if (jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createText"); +} +jclass stringArrayClass = curEnv->FindClass("java/lang/String"); + +// create java array of strings. +jobjectArray text_ = curEnv->NewObjectArray( textSize, stringArrayClass, NULL); +if (text_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +// convert each char * to java strings and fill the java array. +for ( int i = 0; i < textSize; i++) +{ +jstring TempString = curEnv->NewStringUTF( text[i] ); +if (TempString == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetObjectArrayElement( text_, i, TempString); + +// avoid keeping reference on too many strings +curEnv->DeleteLocalRef(TempString); +} +jboolean autoSize_ = (static_cast<bool>(autoSize) ? JNI_TRUE : JNI_FALSE); + +jdoubleArray userSize_ = curEnv->NewDoubleArray( userSizeSize ) ; + +if (userSize_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( userSize_, 0, userSizeSize, (jdouble*)(userSize) ) ; + + +jboolean isForeground_ = (static_cast<bool>(isForeground) ? JNI_TRUE : JNI_FALSE); + +jboolean isBackground_ = (static_cast<bool>(isBackground) ? JNI_TRUE : JNI_FALSE); + +jboolean boxed_ = (static_cast<bool>(boxed) ? JNI_TRUE : JNI_FALSE); + +jboolean line_ = (static_cast<bool>(line) ? JNI_TRUE : JNI_FALSE); + +jboolean filled_ = (static_cast<bool>(filled) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID ,parent, text_, rows, cols, x, y, autoSize_, userSize_, centerPos, foreground, isForeground_, background, isBackground_, boxed_, line_, filled_, align)); + curEnv->DeleteLocalRef(stringArrayClass); +curEnv->DeleteLocalRef(text_); +curEnv->DeleteLocalRef(userSize_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createArc (JavaVM * jvm_, int parent, double x, double y, double h, double w, double start, double end, int foreground, bool isForeground, int background, bool isBackground, bool filled, bool line){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createArc", "(IDDDDDDIZIZZZ)I" ) ; +if (jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createArc"); +} + +jboolean isForeground_ = (static_cast<bool>(isForeground) ? JNI_TRUE : JNI_FALSE); + +jboolean isBackground_ = (static_cast<bool>(isBackground) ? JNI_TRUE : JNI_FALSE); + +jboolean filled_ = (static_cast<bool>(filled) ? JNI_TRUE : JNI_FALSE); + +jboolean line_ = (static_cast<bool>(line) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID ,parent, x, y, h, w, start, end, foreground, isForeground_, background, isBackground_, filled_, line_)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createAxis (JavaVM * jvm_, int parent, int dir, int tics, double const* vx, int vxSize, double const* vy, int vySize, int subint, char const* format, int fontSize, int textColor, int ticsColor, bool seg){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createAxis", "(III[D[DILjava/lang/String;IIIZ)I" ) ; +if (jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createAxis"); +} + +jdoubleArray vx_ = curEnv->NewDoubleArray( vxSize ) ; + +if (vx_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vx_, 0, vxSize, (jdouble*)(vx) ) ; + + +jdoubleArray vy_ = curEnv->NewDoubleArray( vySize ) ; + +if (vy_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vy_, 0, vySize, (jdouble*)(vy) ) ; + + +jstring format_ = curEnv->NewStringUTF( format ); +if (format != NULL && format_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + +jboolean seg_ = (static_cast<bool>(seg) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID ,parent, dir, tics, vx_, vy_, subint, format_, fontSize, textColor, ticsColor, seg_)); + curEnv->DeleteLocalRef(vx_); +curEnv->DeleteLocalRef(vy_); +curEnv->DeleteLocalRef(format_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createCompound (JavaVM * jvm_, int parent, int const* children, int childrenSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateCompoundjintintjintArray_intintID = curEnv->GetStaticMethodID(cls, "createCompound", "(I[I)I" ) ; +if (jintcreateCompoundjintintjintArray_intintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createCompound"); +} + +jintArray children_ = curEnv->NewIntArray( childrenSize ) ; + +if (children_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( children_, 0, childrenSize, (jint*)(children) ) ; + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateCompoundjintintjintArray_intintID ,parent, children_)); + curEnv->DeleteLocalRef(children_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createCompoundSeq (JavaVM * jvm_, int parent, int childrenCount){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateCompoundSeqjintintjintintID = curEnv->GetStaticMethodID(cls, "createCompoundSeq", "(II)I" ) ; +if (jintcreateCompoundSeqjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createCompoundSeq"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateCompoundSeqjintintjintintID ,parent, childrenCount)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createFec (JavaVM * jvm_, int parent, double const* zminmax, int zminmaxSize, int const* colminmax, int colminmaxSize, int const* colout, int coloutSize, bool with_mesh){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createFec", "(I[D[I[IZ)I" ) ; +if (jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createFec"); +} + +jdoubleArray zminmax_ = curEnv->NewDoubleArray( zminmaxSize ) ; + +if (zminmax_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( zminmax_, 0, zminmaxSize, (jdouble*)(zminmax) ) ; + + +jintArray colminmax_ = curEnv->NewIntArray( colminmaxSize ) ; + +if (colminmax_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( colminmax_, 0, colminmaxSize, (jint*)(colminmax) ) ; + + +jintArray colout_ = curEnv->NewIntArray( coloutSize ) ; + +if (colout_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( colout_, 0, coloutSize, (jint*)(colout) ) ; + + +jboolean with_mesh_ = (static_cast<bool>(with_mesh) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID ,parent, zminmax_, colminmax_, colout_, with_mesh_)); + curEnv->DeleteLocalRef(zminmax_); +curEnv->DeleteLocalRef(colminmax_); +curEnv->DeleteLocalRef(colout_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createGrayplot (JavaVM * jvm_, int parent, int type, double const* pvecx, int pvecxSize, int n1, int n2){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID = curEnv->GetStaticMethodID(cls, "createGrayplot", "(II[DII)I" ) ; +if (jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createGrayplot"); +} + +jdoubleArray pvecx_ = curEnv->NewDoubleArray( pvecxSize ) ; + +if (pvecx_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( pvecx_, 0, pvecxSize, (jdouble*)(pvecx) ) ; + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID ,parent, type, pvecx_, n1, n2)); + curEnv->DeleteLocalRef(pvecx_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createPolyline (JavaVM * jvm_, int parent, bool closed, int plot, int foreground, bool isForeground, int const* background, int backgroundSize, int mark_style, bool isMarkStyle, int mark_foreground, bool isMarkForeground, int mark_background, bool isMarkBackground, bool isline, bool isfilled, bool ismark, bool isinterp){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createPolyline", "(IZIIZ[IIZIZIZZZZZ)I" ) ; +if (jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createPolyline"); +} + +jboolean closed_ = (static_cast<bool>(closed) ? JNI_TRUE : JNI_FALSE); + +jboolean isForeground_ = (static_cast<bool>(isForeground) ? JNI_TRUE : JNI_FALSE); + +jintArray background_ = curEnv->NewIntArray( backgroundSize ) ; + +if (background_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( background_, 0, backgroundSize, (jint*)(background) ) ; + + +jboolean isMarkStyle_ = (static_cast<bool>(isMarkStyle) ? JNI_TRUE : JNI_FALSE); + +jboolean isMarkForeground_ = (static_cast<bool>(isMarkForeground) ? JNI_TRUE : JNI_FALSE); + +jboolean isMarkBackground_ = (static_cast<bool>(isMarkBackground) ? JNI_TRUE : JNI_FALSE); + +jboolean isline_ = (static_cast<bool>(isline) ? JNI_TRUE : JNI_FALSE); + +jboolean isfilled_ = (static_cast<bool>(isfilled) ? JNI_TRUE : JNI_FALSE); + +jboolean ismark_ = (static_cast<bool>(ismark) ? JNI_TRUE : JNI_FALSE); + +jboolean isinterp_ = (static_cast<bool>(isinterp) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID ,parent, closed_, plot, foreground, isForeground_, background_, mark_style, isMarkStyle_, mark_foreground, isMarkForeground_, mark_background, isMarkBackground_, isline_, isfilled_, ismark_, isinterp_)); + curEnv->DeleteLocalRef(background_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createLegend (JavaVM * jvm_, int parent, char const* const* text, int textSize, int const* handles, int handlesSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID = curEnv->GetStaticMethodID(cls, "createLegend", "(I[Ljava/lang/String;[I)I" ) ; +if (jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createLegend"); +} +jclass stringArrayClass = curEnv->FindClass("java/lang/String"); + +// create java array of strings. +jobjectArray text_ = curEnv->NewObjectArray( textSize, stringArrayClass, NULL); +if (text_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +// convert each char * to java strings and fill the java array. +for ( int i = 0; i < textSize; i++) +{ +jstring TempString = curEnv->NewStringUTF( text[i] ); +if (TempString == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetObjectArrayElement( text_, i, TempString); + +// avoid keeping reference on too many strings +curEnv->DeleteLocalRef(TempString); +} +jintArray handles_ = curEnv->NewIntArray( handlesSize ) ; + +if (handles_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( handles_, 0, handlesSize, (jint*)(handles) ) ; + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID ,parent, text_, handles_)); + curEnv->DeleteLocalRef(stringArrayClass); +curEnv->DeleteLocalRef(text_); +curEnv->DeleteLocalRef(handles_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createSegs (JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vz, int vzSize, bool isVZ, int const* style, int styleSize, double arsize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID = curEnv->GetStaticMethodID(cls, "createSegs", "(I[D[D[DZ[ID)I" ) ; +if (jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createSegs"); +} + +jdoubleArray vx_ = curEnv->NewDoubleArray( vxSize ) ; + +if (vx_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vx_, 0, vxSize, (jdouble*)(vx) ) ; + + +jdoubleArray vy_ = curEnv->NewDoubleArray( vySize ) ; + +if (vy_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vy_, 0, vySize, (jdouble*)(vy) ) ; + + +jdoubleArray vz_ = curEnv->NewDoubleArray( vzSize ) ; + +if (vz_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vz_, 0, vzSize, (jdouble*)(vz) ) ; + + +jboolean isVZ_ = (static_cast<bool>(isVZ) ? JNI_TRUE : JNI_FALSE); + +jintArray style_ = curEnv->NewIntArray( styleSize ) ; + +if (style_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( style_, 0, styleSize, (jint*)(style) ) ; + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID ,parent, vx_, vy_, vz_, isVZ_, style_, arsize)); + curEnv->DeleteLocalRef(vx_); +curEnv->DeleteLocalRef(vy_); +curEnv->DeleteLocalRef(vz_); +curEnv->DeleteLocalRef(style_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createChamp (JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vfx, int vfxSize, double const* vfy, int vfySize, double arsize, bool typeofchamp){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID = curEnv->GetStaticMethodID(cls, "createChamp", "(I[D[D[D[DDZ)I" ) ; +if (jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createChamp"); +} + +jdoubleArray vx_ = curEnv->NewDoubleArray( vxSize ) ; + +if (vx_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vx_, 0, vxSize, (jdouble*)(vx) ) ; + + +jdoubleArray vy_ = curEnv->NewDoubleArray( vySize ) ; + +if (vy_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vy_, 0, vySize, (jdouble*)(vy) ) ; + + +jdoubleArray vfx_ = curEnv->NewDoubleArray( vfxSize ) ; + +if (vfx_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vfx_, 0, vfxSize, (jdouble*)(vfx) ) ; + + +jdoubleArray vfy_ = curEnv->NewDoubleArray( vfySize ) ; + +if (vfy_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( vfy_, 0, vfySize, (jdouble*)(vfy) ) ; + + +jboolean typeofchamp_ = (static_cast<bool>(typeofchamp) ? JNI_TRUE : JNI_FALSE); + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID ,parent, vx_, vy_, vfx_, vfy_, arsize, typeofchamp_)); + curEnv->DeleteLocalRef(vx_); +curEnv->DeleteLocalRef(vy_); +curEnv->DeleteLocalRef(vfx_); +curEnv->DeleteLocalRef(vfy_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int Builder::createSurface (JavaVM * jvm_, int parent, int typeof3d, int colorFlag, int colorMode){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateSurfacejintintjintintjintintjintintID = curEnv->GetStaticMethodID(cls, "createSurface", "(IIII)I" ) ; +if (jintcreateSurfacejintintjintintjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createSurface"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateSurfacejintintjintintjintintjintintID ,parent, typeof3d, colorFlag, colorMode)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +void Builder::initSubWinTo3d (JavaVM * jvm_, int parent, char const* legend, bool isLegend, int const* flag, int flagSize, double alpha, double theta, double const* ebox, int eboxSize, double const* x, int xSize, double const* y, int ySize, double const* z, int zSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID = curEnv->GetStaticMethodID(cls, "initSubWinTo3d", "(ILjava/lang/String;Z[IDD[D[D[D[D)V" ) ; +if (voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "initSubWinTo3d"); +} + +jstring legend_ = curEnv->NewStringUTF( legend ); +if (legend != NULL && legend_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + +jboolean isLegend_ = (static_cast<bool>(isLegend) ? JNI_TRUE : JNI_FALSE); + +jintArray flag_ = curEnv->NewIntArray( flagSize ) ; + +if (flag_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( flag_, 0, flagSize, (jint*)(flag) ) ; + + +jdoubleArray ebox_ = curEnv->NewDoubleArray( eboxSize ) ; + +if (ebox_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( ebox_, 0, eboxSize, (jdouble*)(ebox) ) ; + + +jdoubleArray x_ = curEnv->NewDoubleArray( xSize ) ; + +if (x_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( x_, 0, xSize, (jdouble*)(x) ) ; + + +jdoubleArray y_ = curEnv->NewDoubleArray( ySize ) ; + +if (y_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( y_, 0, ySize, (jdouble*)(y) ) ; + + +jdoubleArray z_ = curEnv->NewDoubleArray( zSize ) ; + +if (z_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( z_, 0, zSize, (jdouble*)(z) ) ; + + + curEnv->CallStaticVoidMethod(cls, voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID ,parent, legend_, isLegend_, flag_, alpha, theta, ebox_, x_, y_, z_); + curEnv->DeleteLocalRef(legend_); +curEnv->DeleteLocalRef(flag_); +curEnv->DeleteLocalRef(ebox_); +curEnv->DeleteLocalRef(x_); +curEnv->DeleteLocalRef(y_); +curEnv->DeleteLocalRef(z_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +int Builder::createLight (JavaVM * jvm_, int parent, int type, bool visible, double const* pos, int posSize, double const* dir, int dirSize, double const* ambient, int ambientSize, double const* diffuse, int diffuseSize, double const* specular, int specularSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID = curEnv->GetStaticMethodID(cls, "createLight", "(IIZ[D[D[D[D[D)I" ) ; +if (jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "createLight"); +} + +jboolean visible_ = (static_cast<bool>(visible) ? JNI_TRUE : JNI_FALSE); + +jdoubleArray pos_ = curEnv->NewDoubleArray( posSize ) ; + +if (pos_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( pos_, 0, posSize, (jdouble*)(pos) ) ; + + +jdoubleArray dir_ = curEnv->NewDoubleArray( dirSize ) ; + +if (dir_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( dir_, 0, dirSize, (jdouble*)(dir) ) ; + + +jdoubleArray ambient_ = curEnv->NewDoubleArray( ambientSize ) ; + +if (ambient_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( ambient_, 0, ambientSize, (jdouble*)(ambient) ) ; + + +jdoubleArray diffuse_ = curEnv->NewDoubleArray( diffuseSize ) ; + +if (diffuse_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( diffuse_, 0, diffuseSize, (jdouble*)(diffuse) ) ; + + +jdoubleArray specular_ = curEnv->NewDoubleArray( specularSize ) ; + +if (specular_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( specular_, 0, specularSize, (jdouble*)(specular) ) ; + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID ,parent, type, visible_, pos_, dir_, ambient_, diffuse_, specular_)); + curEnv->DeleteLocalRef(pos_); +curEnv->DeleteLocalRef(dir_); +curEnv->DeleteLocalRef(ambient_); +curEnv->DeleteLocalRef(diffuse_); +curEnv->DeleteLocalRef(specular_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +} diff --git a/modules/graphic_objects/src/jni/Builder.hxx b/modules/graphic_objects/src/jni/Builder.hxx new file mode 100755 index 000000000..888d6b003 --- /dev/null +++ b/modules/graphic_objects/src/jni/Builder.hxx @@ -0,0 +1,251 @@ +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src\jni --throws-exception-on-error --description-file src\jni\builder.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + + +#ifndef __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_BUILDER_BUILDER__ +#define __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_BUILDER_BUILDER__ +#include <iostream> +#include <string> +#include <string.h> +#include <stdlib.h> +#include <jni.h> + +#include "GiwsException.hxx" + + #if defined(_MSC_VER) /* Defined anyway with Visual */ + #include <Windows.h> + #else + typedef signed char byte; + #endif + + +#ifndef GIWSEXPORT +# if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define GIWSEXPORT +# else +# define GIWSEXPORT __declspec(dllexport) +# endif +# else +# if __GNUC__ >= 4 +# define GIWSEXPORT __attribute__ ((visibility ("default"))) +# else +# define GIWSEXPORT +# endif +# endif +#endif + +namespace org_scilab_modules_graphic_objects_builder { +class GIWSEXPORT Builder { + +private: +JavaVM * jvm; + +protected: +jmethodID jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID; // cache method id +jmethodID jintcloneGraphicContextjintintjintintID; // cache method id +jmethodID jintcloneFontContextjintintjintintID; // cache method id +jmethodID jintcreateHiddenLabeljintintID; // cache method id +jmethodID jbooleanisAxesRedrawingjintintID; // cache method id +jmethodID jintcreateLabeljintintjintintID; // cache method id +jmethodID jintcreateNewFigureWithAxesID; // cache method id +jmethodID jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID; // cache method id +jmethodID voidcloneMenusjintintjintintID; // cache method id +jmethodID jintcloneAxesModeljintintID; // cache method id +jmethodID jintcreateSubWinjintintID; // cache method id +jmethodID jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID; // cache method id +jclass stringArrayClass; +jmethodID jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id +jmethodID jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID; // cache method id +jmethodID jintcreateCompoundjintintjintArray_intintID; // cache method id +jmethodID jintcreateCompoundSeqjintintjintintID; // cache method id +jmethodID jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID; // cache method id +jmethodID jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID; // cache method id +jmethodID jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id +jmethodID jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID; // cache method id +jmethodID jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID; // cache method id +jmethodID jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID; // cache method id +jmethodID jintcreateSurfacejintintjintintjintintjintintID; // cache method id +jmethodID voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id +jmethodID jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id + + + +jobject instance; +jclass instanceClass; // cache class + + +// Caching (if any) + + +/** +* Get the environment matching to the current thread. +*/ +virtual JNIEnv * getCurrentEnv(); + +public: +// Constructor +/** +* Create a wrapping of the object from a JNIEnv. +* It will call the default constructor +* @param JEnv_ the Java Env +*/ +Builder(JavaVM * jvm_); + +/** +* Create a wrapping of an already existing object from a JNIEnv. +* The object must have already been instantiated +* @param JEnv_ the Java Env +* @param JObj the object +*/ +Builder(JavaVM * jvm_, jobject JObj); + + +/** +* This is a fake constructor to avoid the constructor +* chaining when dealing with extended giws classes +*/ +#ifdef FAKEGIWSDATATYPE +Builder(fakeGiwsDataType::fakeGiwsDataType /* unused */) {} +#endif + +// Destructor +~Builder(); + +// Generic method +// Synchronization methods +/** +* Enter monitor associated with the object. +* Equivalent of creating a "synchronized(obj)" scope in Java. +*/ +void synchronize(); + +/** +* Exit monitor associated with the object. +* Equivalent of ending a "synchronized(obj)" scope. +*/ +void endSynchronize(); + +// Methods +static int createRect(JavaVM * jvm_, int pparentsubwinUID, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline); + +static int cloneGraphicContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier); + +static int cloneFontContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier); + +static int createHiddenLabel(JavaVM * jvm_, int parent); + +static bool isAxesRedrawing(JavaVM * jvm_, int subWin); + +static int createLabel(JavaVM * jvm_, int parent, int type); + +static int createNewFigureWithAxes(JavaVM * jvm_); + +static int createFigure(JavaVM * jvm_, bool dockable, int menubarType, int toolbarType, bool defaultAxes, bool visible); + +static void cloneMenus(JavaVM * jvm_, int model, int newParent); + +static int cloneAxesModel(JavaVM * jvm_, int parent); + +static int createSubWin(JavaVM * jvm_, int parent); + +static int createText(JavaVM * jvm_, int parent, char const* const* text, int textSize, int rows, int cols, double x, double y, bool autoSize, double const* userSize, int userSizeSize, int centerPos, int foreground, bool isForeground, int background, bool isBackground, bool boxed, bool line, bool filled, int align); + +static int createArc(JavaVM * jvm_, int parent, double x, double y, double h, double w, double start, double end, int foreground, bool isForeground, int background, bool isBackground, bool filled, bool line); + +static int createAxis(JavaVM * jvm_, int parent, int dir, int tics, double const* vx, int vxSize, double const* vy, int vySize, int subint, char const* format, int fontSize, int textColor, int ticsColor, bool seg); + +static int createCompound(JavaVM * jvm_, int parent, int const* children, int childrenSize); + +static int createCompoundSeq(JavaVM * jvm_, int parent, int childrenCount); + +static int createFec(JavaVM * jvm_, int parent, double const* zminmax, int zminmaxSize, int const* colminmax, int colminmaxSize, int const* colout, int coloutSize, bool with_mesh); + +static int createGrayplot(JavaVM * jvm_, int parent, int type, double const* pvecx, int pvecxSize, int n1, int n2); + +static int createPolyline(JavaVM * jvm_, int parent, bool closed, int plot, int foreground, bool isForeground, int const* background, int backgroundSize, int mark_style, bool isMarkStyle, int mark_foreground, bool isMarkForeground, int mark_background, bool isMarkBackground, bool isline, bool isfilled, bool ismark, bool isinterp); + +static int createLegend(JavaVM * jvm_, int parent, char const* const* text, int textSize, int const* handles, int handlesSize); + +static int createSegs(JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vz, int vzSize, bool isVZ, int const* style, int styleSize, double arsize); + +static int createChamp(JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vfx, int vfxSize, double const* vfy, int vfySize, double arsize, bool typeofchamp); + +static int createSurface(JavaVM * jvm_, int parent, int typeof3d, int colorFlag, int colorMode); + +static void initSubWinTo3d(JavaVM * jvm_, int parent, char const* legend, bool isLegend, int const* flag, int flagSize, double alpha, double theta, double const* ebox, int eboxSize, double const* x, int xSize, double const* y, int ySize, double const* z, int zSize); + +static int createLight(JavaVM * jvm_, int parent, int type, bool visible, double const* pos, int posSize, double const* dir, int dirSize, double const* ambient, int ambientSize, double const* diffuse, int diffuseSize, double const* specular, int specularSize); + + + /** + * Get class name to use for static methods + * @return class name to use for static methods + */ + + static const std::string className() + { + return "org/scilab/modules/graphic_objects/builder/Builder"; + } + + + /** + * Get class to use for static methods + * @return class to use for static methods + */ + + static jclass initClass(JNIEnv * curEnv) + { + static jclass cls = 0; + + if (cls == 0) + { + jclass _cls = curEnv->FindClass(className().c_str()); + if (_cls) + { + cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls)); + } + } + + return cls; + } + +}; + + +} +#endif diff --git a/modules/graphic_objects/src/jni/CallGraphicController.cpp b/modules/graphic_objects/src/jni/CallGraphicController.cpp new file mode 100755 index 000000000..29389997b --- /dev/null +++ b/modules/graphic_objects/src/jni/CallGraphicController.cpp @@ -0,0 +1,813 @@ +#include "CallGraphicController.hxx" +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + +namespace org_scilab_modules_graphic_objects { + + // Static declarations (if any) + +// Returns the current env + +JNIEnv * CallGraphicController::getCurrentEnv() { +JNIEnv * curEnv = NULL; +jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +if (res != JNI_OK) { +throw GiwsException::JniException(getCurrentEnv()); +} +return curEnv; +} +// Destructor + +CallGraphicController::~CallGraphicController() { +JNIEnv * curEnv = NULL; +this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +curEnv->DeleteGlobalRef(this->instance); +curEnv->DeleteGlobalRef(this->instanceClass); +curEnv->DeleteGlobalRef(this->stringArrayClass);} +// Constructors +CallGraphicController::CallGraphicController(JavaVM * jvm_) { +jmethodID constructObject = NULL ; +jobject localInstance ; +jclass localClass ; + +const std::string construct="<init>"; +const std::string param="()V"; +jvm=jvm_; + +JNIEnv * curEnv = getCurrentEnv(); + +localClass = curEnv->FindClass( this->className().c_str() ) ; +if (localClass == NULL) { + throw GiwsException::JniClassNotFoundException(curEnv, this->className()); +} + +this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + +/* localClass is not needed anymore */ +curEnv->DeleteLocalRef(localClass); + +if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + + +constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ; +if(constructObject == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ; +if(localInstance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +this->instance = curEnv->NewGlobalRef(localInstance) ; +if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} +/* localInstance not needed anymore */ +curEnv->DeleteLocalRef(localInstance); + + /* Methods ID set to NULL */ +voiddeleteGraphicObjectjintintID=NULL; +jintcloneGraphicObjectjintintID=NULL; +jintaskGraphicObjectjintintID=NULL; +voidsetGraphicObjectRelationshipjintintjintintID=NULL; +voidremoveRelationShipAndDeletejintintID=NULL; +jstringgetGraphicObjectPropertyAsStringjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID=NULL; +jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID=NULL; +jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjintintID=NULL; +jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID=NULL; +jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID=NULL; +voidregisterScilabViewID=NULL; +voidunregisterScilabViewID=NULL; +jintgetConsoleIdentifierID=NULL; +voidbuildFigureMenuBarjintintID=NULL; + + +} + +CallGraphicController::CallGraphicController(JavaVM * jvm_, jobject JObj) { + jvm=jvm_; + + JNIEnv * curEnv = getCurrentEnv(); + +jclass localClass = curEnv->GetObjectClass(JObj); + this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + curEnv->DeleteLocalRef(localClass); + + if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + + this->instance = curEnv->NewGlobalRef(JObj) ; + if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + /* Methods ID set to NULL */ + voiddeleteGraphicObjectjintintID=NULL; +jintcloneGraphicObjectjintintID=NULL; +jintaskGraphicObjectjintintID=NULL; +voidsetGraphicObjectRelationshipjintintjintintID=NULL; +voidremoveRelationShipAndDeletejintintID=NULL; +jstringgetGraphicObjectPropertyAsStringjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID=NULL; +jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID=NULL; +jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjintintID=NULL; +jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID=NULL; +jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID=NULL; +jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID=NULL; +voidregisterScilabViewID=NULL; +voidunregisterScilabViewID=NULL; +jintgetConsoleIdentifierID=NULL; +voidbuildFigureMenuBarjintintID=NULL; + + +} + +// Generic methods + +void CallGraphicController::synchronize() { +if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "CallGraphicController"); +} +} + +void CallGraphicController::endSynchronize() { +if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "CallGraphicController"); +} +} +// Method(s) + +void CallGraphicController::deleteGraphicObject (JavaVM * jvm_, int id){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voiddeleteGraphicObjectjintintID = curEnv->GetStaticMethodID(cls, "deleteGraphicObject", "(I)V" ) ; +if (voiddeleteGraphicObjectjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "deleteGraphicObject"); +} + + curEnv->CallStaticVoidMethod(cls, voiddeleteGraphicObjectjintintID ,id); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +int CallGraphicController::cloneGraphicObject (JavaVM * jvm_, int id){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintcloneGraphicObjectjintintID = curEnv->GetStaticMethodID(cls, "cloneGraphicObject", "(I)I" ) ; +if (jintcloneGraphicObjectjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "cloneGraphicObject"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintcloneGraphicObjectjintintID ,id)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +int CallGraphicController::askGraphicObject (JavaVM * jvm_, int typeName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintaskGraphicObjectjintintID = curEnv->GetStaticMethodID(cls, "askGraphicObject", "(I)I" ) ; +if (jintaskGraphicObjectjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "askGraphicObject"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintaskGraphicObjectjintintID ,typeName)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +void CallGraphicController::setGraphicObjectRelationship (JavaVM * jvm_, int parentId, int childId){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidsetGraphicObjectRelationshipjintintjintintID = curEnv->GetStaticMethodID(cls, "setGraphicObjectRelationship", "(II)V" ) ; +if (voidsetGraphicObjectRelationshipjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectRelationship"); +} + + curEnv->CallStaticVoidMethod(cls, voidsetGraphicObjectRelationshipjintintjintintID ,parentId, childId); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +void CallGraphicController::removeRelationShipAndDelete (JavaVM * jvm_, int id){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidremoveRelationShipAndDeletejintintID = curEnv->GetStaticMethodID(cls, "removeRelationShipAndDelete", "(I)V" ) ; +if (voidremoveRelationShipAndDeletejintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "removeRelationShipAndDelete"); +} + + curEnv->CallStaticVoidMethod(cls, voidremoveRelationShipAndDeletejintintID ,id); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +char* CallGraphicController::getGraphicObjectPropertyAsString (JavaVM * jvm_, int id, int propertyName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jstringgetGraphicObjectPropertyAsStringjintintjintintID = curEnv->GetStaticMethodID(cls, "getGraphicObjectPropertyAsString", "(II)Ljava/lang/String;" ) ; +if (jstringgetGraphicObjectPropertyAsStringjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getGraphicObjectPropertyAsString"); +} + + jstring res = static_cast<jstring>( curEnv->CallStaticObjectMethod(cls, jstringgetGraphicObjectPropertyAsStringjintintjintintID ,id, propertyName)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}if (res != NULL) { + +const char *tempString = curEnv->GetStringUTFChars(res, 0); +char * myStringBuffer = new char[strlen(tempString) + 1]; +strcpy(myStringBuffer, tempString); +curEnv->ReleaseStringUTFChars(res, tempString); +curEnv->DeleteLocalRef(res); +if (curEnv->ExceptionCheck()) { +delete[] myStringBuffer; + throw GiwsException::JniCallMethodException(curEnv); +} +return myStringBuffer; + } else { +curEnv->DeleteLocalRef(res); +return NULL; +} +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, char const* value){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(IILjava/lang/String;)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + +jstring value_ = curEnv->NewStringUTF( value ); +if (value != NULL && value_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID ,id, propertyName, value_)); + curEnv->DeleteLocalRef(value_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +char** CallGraphicController::getGraphicObjectPropertyAsStringVector (JavaVM * jvm_, int id, int propertyName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID = curEnv->GetStaticMethodID(cls, "getGraphicObjectPropertyAsStringVector", "(II)[Ljava/lang/String;" ) ; +if (jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getGraphicObjectPropertyAsStringVector"); +} + + jobjectArray res = static_cast<jobjectArray>( curEnv->CallStaticObjectMethod(cls, jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID ,id, propertyName)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}if (res != NULL) { int lenRow; + lenRow = curEnv->GetArrayLength(res); + +char **arrayOfString; +arrayOfString = new char *[lenRow]; +for (jsize i = 0; i < lenRow; i++){ +jstring resString = reinterpret_cast<jstring>(curEnv->GetObjectArrayElement(res, i)); +const char *tempString = curEnv->GetStringUTFChars(resString, 0); +arrayOfString[i] = new char[strlen(tempString) + 1]; + +strcpy(arrayOfString[i], tempString); +curEnv->ReleaseStringUTFChars(resString, tempString); +curEnv->DeleteLocalRef(resString); +} +if (curEnv->ExceptionCheck()) { +delete[] arrayOfString; + throw GiwsException::JniCallMethodException(curEnv); +} +curEnv->DeleteLocalRef(res); +return arrayOfString; + } else { +curEnv->DeleteLocalRef(res); +return NULL; +} +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, char const* const* value, int valueSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(II[Ljava/lang/String;)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} +jclass stringArrayClass = curEnv->FindClass("java/lang/String"); + +// create java array of strings. +jobjectArray value_ = curEnv->NewObjectArray( valueSize, stringArrayClass, NULL); +if (value_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +// convert each char * to java strings and fill the java array. +for ( int i = 0; i < valueSize; i++) +{ +jstring TempString = curEnv->NewStringUTF( value[i] ); +if (TempString == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetObjectArrayElement( value_, i, TempString); + +// avoid keeping reference on too many strings +curEnv->DeleteLocalRef(TempString); +} + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID ,id, propertyName, value_)); + curEnv->DeleteLocalRef(stringArrayClass); +curEnv->DeleteLocalRef(value_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, double value){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(IID)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID ,id, propertyName, value)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +double* CallGraphicController::getGraphicObjectPropertyAsDoubleVector (JavaVM * jvm_, int id, int propertyName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID = curEnv->GetStaticMethodID(cls, "getGraphicObjectPropertyAsDoubleVector", "(II)[D" ) ; +if (jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getGraphicObjectPropertyAsDoubleVector"); +} + + jdoubleArray res = static_cast<jdoubleArray>( curEnv->CallStaticObjectMethod(cls, jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID ,id, propertyName)); + if (res == NULL) { return NULL; } + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}int lenRow; + lenRow = curEnv->GetArrayLength(res); +jboolean isCopy = JNI_FALSE; + +/* GetPrimitiveArrayCritical is faster than getXXXArrayElements */ +jdouble *resultsArray = static_cast<jdouble *>(curEnv->GetPrimitiveArrayCritical(res, &isCopy)); +double* myArray= new double[ lenRow]; + +for (jsize i = 0; i < lenRow; i++){ +myArray[i]=resultsArray[i]; +} +curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT); + + curEnv->DeleteLocalRef(res); +if (curEnv->ExceptionCheck()) { +delete[] myArray; + throw GiwsException::JniCallMethodException(curEnv); +} +return myArray; + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, double const* value, int valueSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(II[D)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + +jdoubleArray value_ = curEnv->NewDoubleArray( valueSize ) ; + +if (value_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetDoubleArrayRegion( value_, 0, valueSize, (jdouble*)(value) ) ; + + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID ,id, propertyName, value_)); + curEnv->DeleteLocalRef(value_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, int value){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjintintID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(III)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjintintID ,id, propertyName, value)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +int* CallGraphicController::getGraphicObjectPropertyAsIntegerVector (JavaVM * jvm_, int id, int propertyName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID = curEnv->GetStaticMethodID(cls, "getGraphicObjectPropertyAsIntegerVector", "(II)[I" ) ; +if (jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getGraphicObjectPropertyAsIntegerVector"); +} + + jintArray res = static_cast<jintArray>( curEnv->CallStaticObjectMethod(cls, jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID ,id, propertyName)); + if (res == NULL) { return NULL; } + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}int lenRow; + lenRow = curEnv->GetArrayLength(res); +jboolean isCopy = JNI_FALSE; + +/* GetPrimitiveArrayCritical is faster than getXXXArrayElements */ +jint *resultsArray = static_cast<jint *>(curEnv->GetPrimitiveArrayCritical(res, &isCopy)); +int* myArray= new int[ lenRow]; + +for (jsize i = 0; i < lenRow; i++){ +myArray[i]=resultsArray[i]; +} +curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT); + + curEnv->DeleteLocalRef(res); +if (curEnv->ExceptionCheck()) { +delete[] myArray; + throw GiwsException::JniCallMethodException(curEnv); +} +return myArray; + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, int const* value, int valueSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(II[I)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + +jintArray value_ = curEnv->NewIntArray( valueSize ) ; + +if (value_ == NULL) +{ +// check that allocation succeed +throw GiwsException::JniBadAllocException(curEnv); +} + +curEnv->SetIntArrayRegion( value_, 0, valueSize, (jint*)(value) ) ; + + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID ,id, propertyName, value_)); + curEnv->DeleteLocalRef(value_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, bool value){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(IIZ)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + +jboolean value_ = (static_cast<bool>(value) ? JNI_TRUE : JNI_FALSE); + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID ,id, propertyName, value_)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +int* CallGraphicController::getGraphicObjectPropertyAsBooleanVector (JavaVM * jvm_, int id, int propertyName){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID = curEnv->GetStaticMethodID(cls, "getGraphicObjectPropertyAsBooleanVector", "(II)[I" ) ; +if (jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getGraphicObjectPropertyAsBooleanVector"); +} + + jintArray res = static_cast<jintArray>( curEnv->CallStaticObjectMethod(cls, jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID ,id, propertyName)); + if (res == NULL) { return NULL; } + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}int lenRow; + lenRow = curEnv->GetArrayLength(res); +jboolean isCopy = JNI_FALSE; + +/* GetPrimitiveArrayCritical is faster than getXXXArrayElements */ +jint *resultsArray = static_cast<jint *>(curEnv->GetPrimitiveArrayCritical(res, &isCopy)); +int* myArray= new int[ lenRow]; + +for (jsize i = 0; i < lenRow; i++){ +myArray[i]=resultsArray[i]; +} +curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT); + + curEnv->DeleteLocalRef(res); +if (curEnv->ExceptionCheck()) { +delete[] myArray; + throw GiwsException::JniCallMethodException(curEnv); +} +return myArray; + +} + +bool CallGraphicController::setGraphicObjectProperty (JavaVM * jvm_, int id, int propertyName, bool const* value, int valueSize){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID = curEnv->GetStaticMethodID(cls, "setGraphicObjectProperty", "(II[Z)Z" ) ; +if (jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "setGraphicObjectProperty"); +} + +jbooleanArray value_ = curEnv->NewBooleanArray( valueSize ) ; +curEnv->SetBooleanArrayRegion( value_, 0, valueSize, (jboolean*)value ) ; + + jboolean res = static_cast<jboolean>( curEnv->CallStaticBooleanMethod(cls, jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID ,id, propertyName, value_)); + curEnv->DeleteLocalRef(value_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return (res == JNI_TRUE); + +} + +void CallGraphicController::registerScilabView (JavaVM * jvm_){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidregisterScilabViewID = curEnv->GetStaticMethodID(cls, "registerScilabView", "()V" ) ; +if (voidregisterScilabViewID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "registerScilabView"); +} + + curEnv->CallStaticVoidMethod(cls, voidregisterScilabViewID ); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +void CallGraphicController::unregisterScilabView (JavaVM * jvm_){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidunregisterScilabViewID = curEnv->GetStaticMethodID(cls, "unregisterScilabView", "()V" ) ; +if (voidunregisterScilabViewID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "unregisterScilabView"); +} + + curEnv->CallStaticVoidMethod(cls, voidunregisterScilabViewID ); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +int CallGraphicController::getConsoleIdentifier (JavaVM * jvm_){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintgetConsoleIdentifierID = curEnv->GetStaticMethodID(cls, "getConsoleIdentifier", "()I" ) ; +if (jintgetConsoleIdentifierID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "getConsoleIdentifier"); +} + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintgetConsoleIdentifierID )); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +void CallGraphicController::buildFigureMenuBar (JavaVM * jvm_, int figureId){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID voidbuildFigureMenuBarjintintID = curEnv->GetStaticMethodID(cls, "buildFigureMenuBar", "(I)V" ) ; +if (voidbuildFigureMenuBarjintintID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "buildFigureMenuBar"); +} + + curEnv->CallStaticVoidMethod(cls, voidbuildFigureMenuBarjintintID ,figureId); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +} + +} diff --git a/modules/graphic_objects/src/jni/CallGraphicController.hxx b/modules/graphic_objects/src/jni/CallGraphicController.hxx new file mode 100755 index 000000000..d79a52186 --- /dev/null +++ b/modules/graphic_objects/src/jni/CallGraphicController.hxx @@ -0,0 +1,242 @@ +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + + +#ifndef __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_CALLGRAPHICCONTROLLER__ +#define __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_CALLGRAPHICCONTROLLER__ +#include <iostream> +#include <string> +#include <string.h> +#include <stdlib.h> +#include <jni.h> + +#include "GiwsException.hxx" + + #if defined(_MSC_VER) /* Defined anyway with Visual */ + #include <Windows.h> + #else + typedef signed char byte; + #endif + + +#ifndef GIWSEXPORT +# if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define GIWSEXPORT +# else +# define GIWSEXPORT __declspec(dllexport) +# endif +# else +# if __GNUC__ >= 4 +# define GIWSEXPORT __attribute__ ((visibility ("default"))) +# else +# define GIWSEXPORT +# endif +# endif +#endif + +namespace org_scilab_modules_graphic_objects { +class GIWSEXPORT CallGraphicController { + +private: +JavaVM * jvm; + +protected: +jmethodID voiddeleteGraphicObjectjintintID; // cache method id +jmethodID jintcloneGraphicObjectjintintID; // cache method id +jmethodID jintaskGraphicObjectjintintID; // cache method id +jmethodID voidsetGraphicObjectRelationshipjintintjintintID; // cache method id +jmethodID voidremoveRelationShipAndDeletejintintID; // cache method id +jmethodID jstringgetGraphicObjectPropertyAsStringjintintjintintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjstringjava_lang_StringID; // cache method id +jmethodID jobjectArray_getGraphicObjectPropertyAsStringVectorjintintjintintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id +jclass stringArrayClass; +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjdoubledoubleID; // cache method id +jmethodID jdoubleArray_getGraphicObjectPropertyAsDoubleVectorjintintjintintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjdoubleArray_doubledoubleID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjintintID; // cache method id +jmethodID jintArray_getGraphicObjectPropertyAsIntegerVectorjintintjintintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjintArray_intintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjbooleanbooleanID; // cache method id +jmethodID jintArray_getGraphicObjectPropertyAsBooleanVectorjintintjintintID; // cache method id +jmethodID jbooleansetGraphicObjectPropertyjintintjintintjbooleanArray_booleanbooleanID; // cache method id +jmethodID voidregisterScilabViewID; // cache method id +jmethodID voidunregisterScilabViewID; // cache method id +jmethodID jintgetConsoleIdentifierID; // cache method id +jmethodID voidbuildFigureMenuBarjintintID; // cache method id + + + +jobject instance; +jclass instanceClass; // cache class + + +// Caching (if any) + + +/** +* Get the environment matching to the current thread. +*/ +virtual JNIEnv * getCurrentEnv(); + +public: +// Constructor +/** +* Create a wrapping of the object from a JNIEnv. +* It will call the default constructor +* @param JEnv_ the Java Env +*/ +CallGraphicController(JavaVM * jvm_); + +/** +* Create a wrapping of an already existing object from a JNIEnv. +* The object must have already been instantiated +* @param JEnv_ the Java Env +* @param JObj the object +*/ +CallGraphicController(JavaVM * jvm_, jobject JObj); + + +/** +* This is a fake constructor to avoid the constructor +* chaining when dealing with extended giws classes +*/ +#ifdef FAKEGIWSDATATYPE +CallGraphicController(fakeGiwsDataType::fakeGiwsDataType /* unused */) {} +#endif + +// Destructor +~CallGraphicController(); + +// Generic method +// Synchronization methods +/** +* Enter monitor associated with the object. +* Equivalent of creating a "synchronized(obj)" scope in Java. +*/ +void synchronize(); + +/** +* Exit monitor associated with the object. +* Equivalent of ending a "synchronized(obj)" scope. +*/ +void endSynchronize(); + +// Methods +static void deleteGraphicObject(JavaVM * jvm_, int id); + +static int cloneGraphicObject(JavaVM * jvm_, int id); + +static int askGraphicObject(JavaVM * jvm_, int typeName); + +static void setGraphicObjectRelationship(JavaVM * jvm_, int parentId, int childId); + +static void removeRelationShipAndDelete(JavaVM * jvm_, int id); + +static char* getGraphicObjectPropertyAsString(JavaVM * jvm_, int id, int propertyName); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, char const* value); + +static char** getGraphicObjectPropertyAsStringVector(JavaVM * jvm_, int id, int propertyName); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, char const* const* value, int valueSize); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, double value); + +static double* getGraphicObjectPropertyAsDoubleVector(JavaVM * jvm_, int id, int propertyName); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, double const* value, int valueSize); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, int value); + +static int* getGraphicObjectPropertyAsIntegerVector(JavaVM * jvm_, int id, int propertyName); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, int const* value, int valueSize); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, bool value); + +static int* getGraphicObjectPropertyAsBooleanVector(JavaVM * jvm_, int id, int propertyName); + +static bool setGraphicObjectProperty(JavaVM * jvm_, int id, int propertyName, bool const* value, int valueSize); + +static void registerScilabView(JavaVM * jvm_); + +static void unregisterScilabView(JavaVM * jvm_); + +static int getConsoleIdentifier(JavaVM * jvm_); + +static void buildFigureMenuBar(JavaVM * jvm_, int figureId); + + + /** + * Get class name to use for static methods + * @return class name to use for static methods + */ + + static const std::string className() + { + return "org/scilab/modules/graphic_objects/CallGraphicController"; + } + + + /** + * Get class to use for static methods + * @return class to use for static methods + */ + + static jclass initClass(JNIEnv * curEnv) + { + static jclass cls = 0; + + if (cls == 0) + { + jclass _cls = curEnv->FindClass(className().c_str()); + if (_cls) + { + cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls)); + } + } + + return cls; + } + +}; + + +} +#endif diff --git a/modules/graphic_objects/src/jni/CallXmlLoader.cpp b/modules/graphic_objects/src/jni/CallXmlLoader.cpp new file mode 100755 index 000000000..5fc0c955f --- /dev/null +++ b/modules/graphic_objects/src/jni/CallXmlLoader.cpp @@ -0,0 +1,258 @@ +#include "CallXmlLoader.hxx" +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + +namespace org_scilab_modules_graphic_objects { + + // Static declarations (if any) + +// Returns the current env + +JNIEnv * CallXmlLoader::getCurrentEnv() { +JNIEnv * curEnv = NULL; +jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +if (res != JNI_OK) { +throw GiwsException::JniException(getCurrentEnv()); +} +return curEnv; +} +// Destructor + +CallXmlLoader::~CallXmlLoader() { +JNIEnv * curEnv = NULL; +this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +curEnv->DeleteGlobalRef(this->instance); +curEnv->DeleteGlobalRef(this->instanceClass); +} +// Constructors +CallXmlLoader::CallXmlLoader(JavaVM * jvm_) { +jmethodID constructObject = NULL ; +jobject localInstance ; +jclass localClass ; + +const std::string construct="<init>"; +const std::string param="()V"; +jvm=jvm_; + +JNIEnv * curEnv = getCurrentEnv(); + +localClass = curEnv->FindClass( this->className().c_str() ) ; +if (localClass == NULL) { + throw GiwsException::JniClassNotFoundException(curEnv, this->className()); +} + +this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + +/* localClass is not needed anymore */ +curEnv->DeleteLocalRef(localClass); + +if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + + +constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ; +if(constructObject == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ; +if(localInstance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} + +this->instance = curEnv->NewGlobalRef(localInstance) ; +if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); +} +/* localInstance not needed anymore */ +curEnv->DeleteLocalRef(localInstance); + + /* Methods ID set to NULL */ +jintLoadjstringjava_lang_StringID=NULL; +jstringSavejintintjstringjava_lang_StringjbooleanbooleanID=NULL; +jintDomLoadjstringjava_lang_StringID=NULL; + + +} + +CallXmlLoader::CallXmlLoader(JavaVM * jvm_, jobject JObj) { + jvm=jvm_; + + JNIEnv * curEnv = getCurrentEnv(); + +jclass localClass = curEnv->GetObjectClass(JObj); + this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass)); + curEnv->DeleteLocalRef(localClass); + + if (this->instanceClass == NULL) { +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + + this->instance = curEnv->NewGlobalRef(JObj) ; + if(this->instance == NULL){ +throw GiwsException::JniObjectCreationException(curEnv, this->className()); + } + /* Methods ID set to NULL */ + jintLoadjstringjava_lang_StringID=NULL; +jstringSavejintintjstringjava_lang_StringjbooleanbooleanID=NULL; +jintDomLoadjstringjava_lang_StringID=NULL; + + +} + +// Generic methods + +void CallXmlLoader::synchronize() { +if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "CallXmlLoader"); +} +} + +void CallXmlLoader::endSynchronize() { +if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) { +throw GiwsException::JniMonitorException(getCurrentEnv(), "CallXmlLoader"); +} +} +// Method(s) + +int CallXmlLoader::Load (JavaVM * jvm_, char const* filename){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintLoadjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "Load", "(Ljava/lang/String;)I" ) ; +if (jintLoadjstringjava_lang_StringID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "Load"); +} + +jstring filename_ = curEnv->NewStringUTF( filename ); +if (filename != NULL && filename_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintLoadjstringjava_lang_StringID ,filename_)); + curEnv->DeleteLocalRef(filename_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +char* CallXmlLoader::Save (JavaVM * jvm_, int figure, char const* filename, bool isReverse){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jstringSavejintintjstringjava_lang_StringjbooleanbooleanID = curEnv->GetStaticMethodID(cls, "Save", "(ILjava/lang/String;Z)Ljava/lang/String;" ) ; +if (jstringSavejintintjstringjava_lang_StringjbooleanbooleanID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "Save"); +} + +jstring filename_ = curEnv->NewStringUTF( filename ); +if (filename != NULL && filename_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + +jboolean isReverse_ = (static_cast<bool>(isReverse) ? JNI_TRUE : JNI_FALSE); + + jstring res = static_cast<jstring>( curEnv->CallStaticObjectMethod(cls, jstringSavejintintjstringjava_lang_StringjbooleanbooleanID ,figure, filename_, isReverse_)); + if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +}if (res != NULL) { + +const char *tempString = curEnv->GetStringUTFChars(res, 0); +char * myStringBuffer = new char[strlen(tempString) + 1]; +strcpy(myStringBuffer, tempString); +curEnv->ReleaseStringUTFChars(res, tempString); +curEnv->DeleteLocalRef(res); +curEnv->DeleteLocalRef(filename_); +if (curEnv->ExceptionCheck()) { +delete[] myStringBuffer; + throw GiwsException::JniCallMethodException(curEnv); +} +return myStringBuffer; + } else { +curEnv->DeleteLocalRef(res); +return NULL; +} +} + +int CallXmlLoader::DomLoad (JavaVM * jvm_, char const* filename){ + +JNIEnv * curEnv = NULL; +jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL); +jclass cls = initClass(curEnv); +if ( cls == NULL) { +throw GiwsException::JniCallMethodException(curEnv); +} + +static jmethodID jintDomLoadjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "DomLoad", "(Ljava/lang/String;)I" ) ; +if (jintDomLoadjstringjava_lang_StringID == NULL) { +throw GiwsException::JniMethodNotFoundException(curEnv, "DomLoad"); +} + +jstring filename_ = curEnv->NewStringUTF( filename ); +if (filename != NULL && filename_ == NULL) +{ +throw GiwsException::JniBadAllocException(curEnv); +} + + + jint res = static_cast<jint>( curEnv->CallStaticIntMethod(cls, jintDomLoadjstringjava_lang_StringID ,filename_)); + curEnv->DeleteLocalRef(filename_); +if (curEnv->ExceptionCheck()) { +throw GiwsException::JniCallMethodException(curEnv); +} +return res; + +} + +} diff --git a/modules/graphic_objects/src/jni/CallXmlLoader.hxx b/modules/graphic_objects/src/jni/CallXmlLoader.hxx new file mode 100755 index 000000000..9951851ba --- /dev/null +++ b/modules/graphic_objects/src/jni/CallXmlLoader.hxx @@ -0,0 +1,184 @@ +/* Generated by GIWS (version 2.0.2) with command: +giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml +*/ +/* + +This is generated code. + +This software is a computer program whose purpose is to hide the complexity +of accessing Java objects/methods from C++ code. + +This software is governed by the CeCILL-B license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-B +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-B license and that you accept its terms. +*/ + + +#ifndef __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_CALLXMLLOADER__ +#define __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_CALLXMLLOADER__ +#include <iostream> +#include <string> +#include <string.h> +#include <stdlib.h> +#include <jni.h> + +#include "GiwsException.hxx" + + #if defined(_MSC_VER) /* Defined anyway with Visual */ + #include <Windows.h> + #else + typedef signed char byte; + #endif + + +#ifndef GIWSEXPORT +# if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define GIWSEXPORT +# else +# define GIWSEXPORT __declspec(dllexport) +# endif +# else +# if __GNUC__ >= 4 +# define GIWSEXPORT __attribute__ ((visibility ("default"))) +# else +# define GIWSEXPORT +# endif +# endif +#endif + +namespace org_scilab_modules_graphic_objects { +class GIWSEXPORT CallXmlLoader { + +private: +JavaVM * jvm; + +protected: +jmethodID jintLoadjstringjava_lang_StringID; // cache method id +jmethodID jstringSavejintintjstringjava_lang_StringjbooleanbooleanID; // cache method id +jmethodID jintDomLoadjstringjava_lang_StringID; // cache method id + + + +jobject instance; +jclass instanceClass; // cache class + + +// Caching (if any) + + +/** +* Get the environment matching to the current thread. +*/ +virtual JNIEnv * getCurrentEnv(); + +public: +// Constructor +/** +* Create a wrapping of the object from a JNIEnv. +* It will call the default constructor +* @param JEnv_ the Java Env +*/ +CallXmlLoader(JavaVM * jvm_); + +/** +* Create a wrapping of an already existing object from a JNIEnv. +* The object must have already been instantiated +* @param JEnv_ the Java Env +* @param JObj the object +*/ +CallXmlLoader(JavaVM * jvm_, jobject JObj); + + +/** +* This is a fake constructor to avoid the constructor +* chaining when dealing with extended giws classes +*/ +#ifdef FAKEGIWSDATATYPE +CallXmlLoader(fakeGiwsDataType::fakeGiwsDataType /* unused */) {} +#endif + +// Destructor +~CallXmlLoader(); + +// Generic method +// Synchronization methods +/** +* Enter monitor associated with the object. +* Equivalent of creating a "synchronized(obj)" scope in Java. +*/ +void synchronize(); + +/** +* Exit monitor associated with the object. +* Equivalent of ending a "synchronized(obj)" scope. +*/ +void endSynchronize(); + +// Methods +static int Load(JavaVM * jvm_, char const* filename); + +static char* Save(JavaVM * jvm_, int figure, char const* filename, bool isReverse); + +static int DomLoad(JavaVM * jvm_, char const* filename); + + + /** + * Get class name to use for static methods + * @return class name to use for static methods + */ + + static const std::string className() + { + return "org/scilab/modules/graphic_objects/CallXmlLoader"; + } + + + /** + * Get class to use for static methods + * @return class to use for static methods + */ + + static jclass initClass(JNIEnv * curEnv) + { + static jclass cls = 0; + + if (cls == 0) + { + jclass _cls = curEnv->FindClass(className().c_str()); + if (_cls) + { + cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls)); + } + } + + return cls; + } + +}; + + +} +#endif diff --git a/modules/graphic_objects/src/jni/DataLoader.i b/modules/graphic_objects/src/jni/DataLoader.i new file mode 100755 index 000000000..38dd18220 --- /dev/null +++ b/modules/graphic_objects/src/jni/DataLoader.i @@ -0,0 +1,93 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2010-2012 - DIGITEO - Pierre LANDO + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + */ + +%module DataLoader + +%include "arrays_java.i" + +%define NIO_BUFFER_TYPEMAP(CTYPE, LABEL, BUFFERTYPE) + %typemap(jni) CTYPE* LABEL "jobject" + %typemap(jtype) CTYPE* LABEL "BUFFERTYPE" + %typemap(jstype) CTYPE* LABEL "BUFFERTYPE" + %typemap(javain, pre=" assert $javainput.isDirect() : \"Buffer must be allocated direct.\";") CTYPE* LABEL "$javainput" + %typemap(javaout) CTYPE* LABEL { + return $jnicall; + } + %typemap(in) CTYPE* LABEL { + $1 = (*jenv)->GetDirectBufferAddress(jenv, $input); + if ($1 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + %typemap(memberin) CTYPE* LABEL { + if ($input) { + $1 = $input; + } else { + $1 = 0; + } + } +%enddef + +/* +NIO_BUFFER_TYPEMAP(void, BUFF, java.nio.Buffer); +NIO_BUFFER_TYPEMAP(char, BUFF, java.nio.ByteBuffer); +NIO_BUFFER_TYPEMAP(char, CBUFF, java.nio.CharBuffer); +NIO_BUFFER_TYPEMAP(short, BUFF, java.nio.ShortBuffer); +NIO_BUFFER_TYPEMAP(unsigned short, BUFF, java.nio.IntBuffer); +NIO_BUFFER_TYPEMAP(unsigned int, BUFF, java.nio.LongBuffer); +NIO_BUFFER_TYPEMAP(long, BUFF, java.nio.IntBuffer); +NIO_BUFFER_TYPEMAP(unsigned long, BUFF, java.nio.LongBuffer); +NIO_BUFFER_TYPEMAP(long long, BUFF, java.nio.LongBuffer); +NIO_BUFFER_TYPEMAP(double, BUFF, java.nio.DoubleBuffer); +*/ +NIO_BUFFER_TYPEMAP(int, BUFF, java.nio.IntBuffer); +NIO_BUFFER_TYPEMAP(unsigned char, BUFF, java.nio.ByteBuffer); +NIO_BUFFER_TYPEMAP(float, BUFF, java.nio.FloatBuffer); +#undef NIO_BUFFER_TYPEMAP + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } +%} + +%apply int* BUFF {int* buffer}; +%apply unsigned char* BUFF {unsigned char* buffer}; +%apply float* BUFF {float* buffer}; +%apply float* BUFF {float* position}; + +%typemap(jni) JavaDirectBuffer "jobject" +%typemap(jtype) JavaDirectBuffer "java.nio.ByteBuffer" +%typemap(jstype) JavaDirectBuffer "java.nio.ByteBuffer" + +%typemap(out) JavaDirectBuffer { + if ($1.address) + { + jresult = (*jenv)->NewDirectByteBuffer(jenv, $1.address, $1.size); + } + } + +%typemap(javaout) JavaDirectBuffer { + return $jnicall; +} + +%ignore JavaDirectBuffer; + +%include "../../includes/DataLoader.hxx" + +%inline +%{ + #include "DataLoader.hxx" +%} diff --git a/modules/graphic_objects/src/jni/DataLoader_wrap.c b/modules/graphic_objects/src/jni/DataLoader_wrap.c new file mode 100755 index 000000000..76f5e3eb8 --- /dev/null +++ b/modules/graphic_objects/src/jni/DataLoader_wrap.c @@ -0,0 +1,1186 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGJAVA + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) + typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include <jni.h> +#include <stdlib.h> +#include <string.h> + + +/* Support for throwing Java exceptions */ +typedef enum { + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError +} SWIG_JavaExceptionCodes; + +typedef struct { + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + except_ptr++; + + (*jenv)->ExceptionClear(jenv); + excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); + if (excep) + (*jenv)->ThrowNew(jenv, excep, msg); +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + +#if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS) + + +static int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input); +static void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input); +static jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz); + + +static int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input); +static void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input); +static jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz); + + +static int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input); +static void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input); +static jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz); + + +static int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input); +static void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input); +static jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz); + + +static int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input); +static void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input); +static jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz); + + +static int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input); +static void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input); +static jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz); + + +static int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input); +static void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input); +static jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz); + + +static int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input); +static void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input); +static jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz); + + +static int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input); +static void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input); +static jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz); + + +static int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input); +static void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input); +static jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz); + + +static int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input); +static void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input); +static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz); + + +#else + + +/* signed char[] support */ +static int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetByteArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (signed char*) calloc(sz, sizeof(signed char)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (signed char)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jbyte)carr[i]; + (*jenv)->ReleaseByteArrayElements(jenv, input, jarr, 0); +} + +static jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) { + jbyte *arr; + int i; + jbyteArray jresult = (*jenv)->NewByteArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetByteArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jbyte)result[i]; + (*jenv)->ReleaseByteArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* unsigned char[] support */ +static int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (unsigned char*) calloc(sz, sizeof(unsigned char)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (unsigned char)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jshort)carr[i]; + (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0); +} + +static jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) { + jshort *arr; + int i; + jshortArray jresult = (*jenv)->NewShortArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jshort)result[i]; + (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* short[] support */ +static int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (short*) calloc(sz, sizeof(short)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (short)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jshort)carr[i]; + (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0); +} + +static jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) { + jshort *arr; + int i; + jshortArray jresult = (*jenv)->NewShortArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jshort)result[i]; + (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* unsigned short[] support */ +static int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (unsigned short*) calloc(sz, sizeof(unsigned short)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (unsigned short)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jint)carr[i]; + (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0); +} + +static jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) { + jint *arr; + int i; + jintArray jresult = (*jenv)->NewIntArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jint)result[i]; + (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* int[] support */ +static int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (int*) calloc(sz, sizeof(int)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (int)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jint)carr[i]; + (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0); +} + +static jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) { + jint *arr; + int i; + jintArray jresult = (*jenv)->NewIntArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jint)result[i]; + (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* unsigned int[] support */ +static int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (unsigned int*) calloc(sz, sizeof(unsigned int)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (unsigned int)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jlong)carr[i]; + (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0); +} + +static jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) { + jlong *arr; + int i; + jlongArray jresult = (*jenv)->NewLongArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jlong)result[i]; + (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* long[] support */ +static int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (long*) calloc(sz, sizeof(long)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (long)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jint)carr[i]; + (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0); +} + +static jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) { + jint *arr; + int i; + jintArray jresult = (*jenv)->NewIntArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jint)result[i]; + (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* unsigned long[] support */ +static int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (unsigned long*) calloc(sz, sizeof(unsigned long)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (unsigned long)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jlong)carr[i]; + (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0); +} + +static jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) { + jlong *arr; + int i; + jlongArray jresult = (*jenv)->NewLongArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jlong)result[i]; + (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* jlong[] support */ +static int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (jlong*) calloc(sz, sizeof(jlong)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (jlong)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jlong)carr[i]; + (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0); +} + +static jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) { + jlong *arr; + int i; + jlongArray jresult = (*jenv)->NewLongArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jlong)result[i]; + (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* float[] support */ +static int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetFloatArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (float*) calloc(sz, sizeof(float)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (float)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jfloat)carr[i]; + (*jenv)->ReleaseFloatArrayElements(jenv, input, jarr, 0); +} + +static jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) { + jfloat *arr; + int i; + jfloatArray jresult = (*jenv)->NewFloatArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetFloatArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jfloat)result[i]; + (*jenv)->ReleaseFloatArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +/* double[] support */ +static int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) { + int i; + jsize sz; + if (!input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array"); + return 0; + } + sz = (*jenv)->GetArrayLength(jenv, input); + *jarr = (*jenv)->GetDoubleArrayElements(jenv, input, 0); + if (!*jarr) + return 0; + *carr = (double*) calloc(sz, sizeof(double)); + if (!*carr) { + SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed"); + return 0; + } + for (i=0; i<sz; i++) + (*carr)[i] = (double)(*jarr)[i]; + return 1; +} + +static void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input) { + int i; + jsize sz = (*jenv)->GetArrayLength(jenv, input); + for (i=0; i<sz; i++) + jarr[i] = (jdouble)carr[i]; + (*jenv)->ReleaseDoubleArrayElements(jenv, input, jarr, 0); +} + +static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) { + jdouble *arr; + int i; + jdoubleArray jresult = (*jenv)->NewDoubleArray(jenv, sz); + if (!jresult) + return NULL; + arr = (*jenv)->GetDoubleArrayElements(jenv, jresult, 0); + if (!arr) + return NULL; + for (i=0; i<sz; i++) + arr[i] = (jdouble)result[i]; + (*jenv)->ReleaseDoubleArrayElements(jenv, jresult, arr, 0); + return jresult; +} + + +#endif + + + #include "DataLoader.hxx" + + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureWidth(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getTextureWidth(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureHeight(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getTextureHeight(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillTextureData(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3) { + jint jresult = 0 ; + int arg1 ; + unsigned char *arg2 = (unsigned char *) 0 ; + int arg3 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + result = (int)fillTextureData(arg1,arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillSubTextureData(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3, jint jarg4, jint jarg5, jint jarg6, jint jarg7) { + jint jresult = 0 ; + int arg1 ; + unsigned char *arg2 = (unsigned char *) 0 ; + int arg3 ; + int arg4 ; + int arg5 ; + int arg6 ; + int arg7 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + arg4 = (int)jarg4; + arg5 = (int)jarg5; + arg6 = (int)jarg6; + arg7 = (int)jarg7; + result = (int)fillSubTextureData(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getDataSize(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getDataSize(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillVertices(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3, jint jarg4, jint jarg5, jdoubleArray jarg6, jdoubleArray jarg7, jint jarg8) { + int arg1 ; + float *arg2 = (float *) 0 ; + int arg3 ; + int arg4 ; + int arg5 ; + double *arg6 ; + double *arg7 ; + int arg8 ; + jdouble *jarr6 ; + jdouble *jarr7 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + arg4 = (int)jarg4; + arg5 = (int)jarg5; + if (!SWIG_JavaArrayInDouble(jenv, &jarr6, (double **)&arg6, jarg6)) return ; + if (!SWIG_JavaArrayInDouble(jenv, &jarr7, (double **)&arg7, jarg7)) return ; + arg8 = (int)jarg8; + fillVertices(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + SWIG_JavaArrayArgoutDouble(jenv, jarr6, (double *)arg6, jarg6); + SWIG_JavaArrayArgoutDouble(jenv, jarr7, (double *)arg7, jarg7); + free(arg6); + free(arg7); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillNormals(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jobject jarg3, jint jarg4, jint jarg5) { + int arg1 ; + float *arg2 = (float *) 0 ; + float *arg3 = (float *) 0 ; + int arg4 ; + int arg5 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + { + arg3 = (*jenv)->GetDirectBufferAddress(jenv, jarg3); + if (arg3 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg4 = (int)jarg4; + arg5 = (int)jarg5; + fillNormals(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillColors(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3, jint jarg4) { + int arg1 ; + float *arg2 = (float *) 0 ; + int arg3 ; + int arg4 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + arg4 = (int)jarg4; + fillColors(arg1,arg2,arg3,arg4); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillTextureCoordinates(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3) { + int arg1 ; + float *arg2 = (float *) 0 ; + int arg3 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + fillTextureCoordinates(arg1,arg2,arg3); +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getIndicesSize(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getIndicesSize(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillIndices(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3, jint jarg4) { + jint jresult = 0 ; + int arg1 ; + int *arg2 = (int *) 0 ; + int arg3 ; + int arg4 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + arg4 = (int)jarg4; + result = (int)fillIndices(arg1,arg2,arg3,arg4); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getWireIndicesSize(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getWireIndicesSize(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillWireIndices(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3, jint jarg4) { + jint jresult = 0 ; + int arg1 ; + int *arg2 = (int *) 0 ; + int arg3 ; + int arg4 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + arg4 = (int)jarg4; + result = (int)fillWireIndices(arg1,arg2,arg3,arg4); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getMarkIndicesSize(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getMarkIndicesSize(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_fillMarkIndices(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2, jint jarg3) { + jint jresult = 0 ; + int arg1 ; + int *arg2 = (int *) 0 ; + int arg3 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + arg3 = (int)jarg3; + result = (int)fillMarkIndices(arg1,arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureData(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + JavaDirectBuffer result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = getTextureData(arg1); + { + if ((&result)->address) + { + jresult = (*jenv)->NewDirectByteBuffer(jenv, (&result)->address, (&result)->size); + } + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureImageType(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getTextureImageType(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureDataType(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getTextureDataType(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_getTextureGLType(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getTextureGLType(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_disposeTextureData(JNIEnv *jenv, jclass jcls, jint jarg1, jobject jarg2) { + int arg1 ; + unsigned char *arg2 = (unsigned char *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + { + arg2 = (*jenv)->GetDirectBufferAddress(jenv, jarg2); + if (arg2 == NULL) { + SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct."); + } + } + disposeTextureData(arg1,arg2); +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_isTextureRowOrder(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)isTextureRowOrder(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_DataLoaderJNI_setABGRExt(JNIEnv *jenv, jclass jcls, jint jarg1) { + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + setABGRExt(arg1); +} + + +#ifdef __cplusplus +} +#endif + diff --git a/modules/graphic_objects/src/jni/ObjectData.i b/modules/graphic_objects/src/jni/ObjectData.i new file mode 100755 index 000000000..878eb006c --- /dev/null +++ b/modules/graphic_objects/src/jni/ObjectData.i @@ -0,0 +1,286 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +// swig -java -package org.scilab.modules.graphic_objects -outdir ../java/org/scilab/modules/graphic_objects/ ObjectData.i + +%module ObjectData + + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } +%} + + +%typemap(jni) double * "jobject" +%typemap(jtype) double * "Object" +%typemap(jstype) double * "Object" +%typemap(javain) double * "$javainput" +%typemap(javaout) double * { return $jnicall; } + +%typemap(in) double * { + $1 = (*jenv)->GetDoubleArrayElements(jenv, $input, NULL); +} + +%typemap(argout) double * { + (*jenv)->ReleaseDoubleArrayElements(jenv, $input, $1, 0); +} + +%typemap(jni) int * "jobject" +%typemap(jtype) int * "Object" +%typemap(jstype) int * "Object" +%typemap(javain) int * "$javainput" +%typemap(javaout) int * { return $jnicall; } + +%typemap(in) int * { + $1 = (*jenv)->GetIntArrayElements(jenv, $input, NULL); +} + +%typemap(argout) int * { + (*jenv)->ReleaseIntArrayElements(jenv, $input, $1, 0); +} + +%typemap(out) double * CHAMPX { + $result = (*jenv)->NewDoubleArray(jenv, _getChampXSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getChampXSize(arg1), $1); +} + +%apply double * CHAMPX { double * getChampX(int uid)} + + +%{ + +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "MALLOC.h" +#include "math.h" + +double * getChampX(int uid) +{ + double * vx; + getGraphicObjectProperty(uid, __GO_BASE_X__, jni_double_vector, (void**)&vx); + return vx; +} + +int _getChampXSize(int uid) { + + int * dimension; + getGraphicObjectProperty(uid, __GO_CHAMP_DIMENSIONS__, jni_int_vector, (void**)&dimension); + return dimension[0]; +} +%} + + + +%typemap(out) double * CHAMPY { + $result = (*jenv)->NewDoubleArray(jenv, _getChampYSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getChampYSize(arg1), $1); +} + +%apply double * CHAMPY { double * getChampY(int uid) } +%{ + +double * getChampY(int uid) { + + double * vy; + getGraphicObjectProperty(uid, __GO_BASE_Y__, jni_double_vector, (void**)&vy); + return vy; +} + +int _getChampYSize(int uid) { + + int * dimension; + getGraphicObjectProperty(uid, __GO_CHAMP_DIMENSIONS__, jni_int_vector, (void**)&dimension); + return dimension[1]; +} +%} + + + +%typemap(out) double * ARROWS { + $result = (*jenv)->NewDoubleArray(jenv, _getArrowsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getArrowsSize(arg1), $1); +} + +%apply double * ARROWS { double * getArrows(int uid) } +%{ + +double * getArrows(int uid) { + + double * arrows; + getGraphicObjectProperty(uid, __GO_DIRECTION__, jni_double_vector, (void**)&arrows); + return arrows; +} + +int _getArrowsSize(int uid) { + + int numArrows; + int * pNumArrows = &numArrows; + getGraphicObjectProperty(uid, __GO_NUMBER_ARROWS__, jni_int, (void**)&pNumArrows); + return numArrows * 3; +} +%} + + + +%typemap(out) double * SEGS { + $result = (*jenv)->NewDoubleArray(jenv, _getSegsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getSegsSize(arg1), $1); +} + +%apply double * SEGS { double * getSegsData(int uid) } +%{ + +double * getSegsData(int uid) { + + double * data; + getGraphicObjectProperty(uid, __GO_BASE__, jni_double_vector, (void**)&data); + return data; +} + +int _getSegsSize(int uid) { + + int base; + int * pBase = &base; + getGraphicObjectProperty(uid, __GO_NUMBER_ARROWS__, jni_int, (void**)&pBase); + return base * 3; +} +%} + +%typemap(out) double * FEC { + $result = (*jenv)->NewDoubleArray(jenv, _getFecElementsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getFecElementsSize(arg1), $1); +} + +%apply double * FEC { double * getFecElements(int uid) } +%{ + +double * getFecElements(int uid) { + + double * elements; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_FEC_ELEMENTS__, jni_double_vector, (void**)&elements); + return elements; +} + +int _getFecElementsSize(int uid) { + + int indices; + int * pIndices = &indices; + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**)&pIndices); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return indices * (nVertex + 2); +} + +int getFecNumVerticesByElement(int uid) { + + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return nVertex; +} + +%} + +%typemap(out) double * FEC_XY { + $result = (*jenv)->NewDoubleArray(jenv, _getFecDataSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, _getFecDataSize(arg1), $1); +} + +%apply double * FEC_XY { double * getFecData(int uid) } +%{ + +double * getFecData(int uid) { + + double * data; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**)&data); + return data; +} + +int _getFecDataSize(int uid) { + + int size; + int * pSize = &size; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**)&pSize); + return size * 3; +} + +%} + + +%typemap(out) double * ARC_ULP { + $result = (*jenv)->NewDoubleArray(jenv, 3); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, 3, $1); +} + +%apply double * ARC_ULP { double * getArcUpperLeftPoint(int uid) } +%{ + +double * getArcUpperLeftPoint(int uid) { + + double * upperLeftPoint; + getGraphicObjectProperty(uid, __GO_UPPER_LEFT_POINT__, jni_double_vector, (void**)&upperLeftPoint); + return upperLeftPoint; +} + +%} + +%typemap(out) double * ARC_DATA { + $result = (*jenv)->NewDoubleArray(jenv, 4); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, 4, $1); +} + +%apply double * ARC_DATA { double * getArcData(int uid) } +%{ + +double * getArcData(int uid) { + + double * data = (double *)MALLOC(sizeof(double)*4); + double value; + double * temp = &value; + getGraphicObjectProperty(uid, __GO_HEIGHT__, jni_double, (void**)&temp); + data[0] = value; + getGraphicObjectProperty(uid, __GO_WIDTH__, jni_double, (void**)&temp); + data[1] = value; + getGraphicObjectProperty(uid, __GO_START_ANGLE__, jni_double, (void**)&temp); + data[2] = value; + getGraphicObjectProperty(uid, __GO_END_ANGLE__, jni_double, (void**)&temp); + data[3] = value; + return data; +} + +%} + + +double * getChampX(int uid); +double * getChampY(int uid); +double * getArrows(int uid); +double * getSegsData(int uid); +double * getFecElements(int uid); +double * getFecData(int uid); +double * getArcUpperLeftPoint(int uid); +double * getArcData(int uid); +int getFecNumVerticesByElement(int uid); diff --git a/modules/graphic_objects/src/jni/ObjectData_wrap.c b/modules/graphic_objects/src/jni/ObjectData_wrap.c new file mode 100755 index 000000000..f46629111 --- /dev/null +++ b/modules/graphic_objects/src/jni/ObjectData_wrap.c @@ -0,0 +1,500 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGJAVA + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) + typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include <jni.h> +#include <stdlib.h> +#include <string.h> + + +/* Support for throwing Java exceptions */ +typedef enum { + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError +} SWIG_JavaExceptionCodes; + +typedef struct { + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + except_ptr++; + + (*jenv)->ExceptionClear(jenv); + excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); + if (excep) + (*jenv)->ThrowNew(jenv, excep, msg); +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + + +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "MALLOC.h" +#include "math.h" + +double * getChampX(int uid) +{ + double * vx; + getGraphicObjectProperty(uid, __GO_BASE_X__, jni_double_vector, (void**)&vx); + return vx; +} + +int _getChampXSize(int uid) { + + int * dimension; + getGraphicObjectProperty(uid, __GO_CHAMP_DIMENSIONS__, jni_int_vector, (void**)&dimension); + return dimension[0]; +} + + + +double * getChampY(int uid) { + + double * vy; + getGraphicObjectProperty(uid, __GO_BASE_Y__, jni_double_vector, (void**)&vy); + return vy; +} + +int _getChampYSize(int uid) { + + int * dimension; + getGraphicObjectProperty(uid, __GO_CHAMP_DIMENSIONS__, jni_int_vector, (void**)&dimension); + return dimension[1]; +} + + + +double * getArrows(int uid) { + + double * arrows; + getGraphicObjectProperty(uid, __GO_DIRECTION__, jni_double_vector, (void**)&arrows); + return arrows; +} + +int _getArrowsSize(int uid) { + + int numArrows; + int * pNumArrows = &numArrows; + getGraphicObjectProperty(uid, __GO_NUMBER_ARROWS__, jni_int, (void**)&pNumArrows); + return numArrows * 3; +} + + + +double * getSegsData(int uid) { + + double * data; + getGraphicObjectProperty(uid, __GO_BASE__, jni_double_vector, (void**)&data); + return data; +} + +int _getSegsSize(int uid) { + + int base; + int * pBase = &base; + getGraphicObjectProperty(uid, __GO_NUMBER_ARROWS__, jni_int, (void**)&pBase); + return base * 3; +} + + + +double * getFecElements(int uid) { + + double * elements; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_FEC_ELEMENTS__, jni_double_vector, (void**)&elements); + return elements; +} + +int _getFecElementsSize(int uid) { + + int indices; + int * pIndices = &indices; + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_INDICES__, jni_int, (void**)&pIndices); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return indices * (nVertex + 2); +} + +int getFecNumVerticesByElement(int uid) { + + int nVertex = 0; + int* piNVertex = &nVertex; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__, jni_int, (void**) &piNVertex); + + return nVertex; +} + + + + +double * getFecData(int uid) { + + double * data; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, jni_double_vector, (void**)&data); + return data; +} + +int _getFecDataSize(int uid) { + + int size; + int * pSize = &size; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES__, jni_int, (void**)&pSize); + return size * 3; +} + + + + +double * getArcUpperLeftPoint(int uid) { + + double * upperLeftPoint; + getGraphicObjectProperty(uid, __GO_UPPER_LEFT_POINT__, jni_double_vector, (void**)&upperLeftPoint); + return upperLeftPoint; +} + + + + +double * getArcData(int uid) { + + double * data = (double *)MALLOC(sizeof(double)*4); + double value; + double * temp = &value; + getGraphicObjectProperty(uid, __GO_HEIGHT__, jni_double, (void**)&temp); + data[0] = value; + getGraphicObjectProperty(uid, __GO_WIDTH__, jni_double, (void**)&temp); + data[1] = value; + getGraphicObjectProperty(uid, __GO_START_ANGLE__, jni_double, (void**)&temp); + data[2] = value; + getGraphicObjectProperty(uid, __GO_END_ANGLE__, jni_double, (void**)&temp); + data[3] = value; + return data; +} + + + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getChampX(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getChampX(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getChampXSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getChampXSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getChampY(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getChampY(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getChampYSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getChampYSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getArrows(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getArrows(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getArrowsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getArrowsSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getSegsData(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getSegsData(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getSegsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getSegsSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getFecElements(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getFecElements(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getFecElementsSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getFecElementsSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getFecData(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getFecData(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, _getFecDataSize(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, _getFecDataSize(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getArcUpperLeftPoint(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getArcUpperLeftPoint(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, 3); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, 3, result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getArcData(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getArcData(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, 4); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, 4, result); + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_ObjectDataJNI_getFecNumVerticesByElement(JNIEnv *jenv, jclass jcls, jint jarg1) { + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)getFecNumVerticesByElement(arg1); + jresult = (jint)result; + return jresult; +} + + +#ifdef __cplusplus +} +#endif + diff --git a/modules/graphic_objects/src/jni/PolylineData.i b/modules/graphic_objects/src/jni/PolylineData.i new file mode 100755 index 000000000..25e87fa0a --- /dev/null +++ b/modules/graphic_objects/src/jni/PolylineData.i @@ -0,0 +1,416 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +/* sci_types.i */ +/** + * Windows: swig -java -package org.scilab.modules.graphic_objects -outdir ../java/org/scilab/modules/graphic_objects/ PolylineData.i + * Other: Use the option --enable-build-swig to the configure +*/ + +%module PolylineData + + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } +%} + + +%typemap(jni) double *BUF "jobject" +%typemap(jtype) double *BUF "Object" +%typemap(jstype) double *BUF "Object" +%typemap(javain) double *BUF "$javainput" +%typemap(javaout) double *BUF { return $jnicall; } + +%typemap(in) double *BUF { + $1 = (*jenv)->GetDoubleArrayElements(jenv, $input, NULL); +} + +%typemap(argout) double *BUF { + (*jenv)->ReleaseDoubleArrayElements(jenv, $input, $1, 0); +} + +%typemap(out) double *BUF { + $result = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, getDataSize_(arg1), $1); +} + +%apply double *BUF { double * } + +%{ + +#include "createGraphicObject.h" +#include "deleteGraphicObject.h" +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "MALLOC.h" +#include "math.h" + +/*help funtion*/ +int getDataSize_(int uid) +{ + int size = 0; + int *j = &size; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**)&j); + return size; +} + +BOOL isZCoordSet(int uid) +{ + int result = 0; + int *pResult = &result; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SET__, jni_int, (void**)&pResult); + return (BOOL)result; +} + +double * getDataX(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&vec); + return vec; +} +double * getDataY(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getDataZ(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftX(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftY(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftZ(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +BOOL isXShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + +BOOL isYShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + +BOOL isZShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + + +int createPolylineData(int uidFrom, int uidTo) +{ + double *dataFrom, *dataTo; + int n[2]; + int size = 63; + int *tmp = &size; + BOOL result; + + int polylineID = createDataObject(uidTo, __GO_POLYLINE__); + if (polylineID == NULL) + { + return NULL; + } + + getGraphicObjectProperty(uidFrom, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**)&tmp); + n[0] = 1; n[1] = size; + + result = setGraphicObjectProperty(polylineID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + if (result == FALSE) + { + deleteDataObject(polylineID); + return NULL; + } + + getGraphicObjectProperty(uidFrom, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&dataFrom); + getGraphicObjectProperty(uidTo, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&dataTo); + + memcpy(dataTo, dataFrom, sizeof(double)*3*size); + return uidTo; + +} + +BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int flagY, int flagZ) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int i = 0; + if (x != 0.0) + { + datax = getDataX(uid); + if (datax == NULL) return FALSE; + if (flagX) { + for (i = 0; i < getDataSize_(uid); ++i) + { + datax[i] = pow(10.,log10(datax[i]) + x); + } + } else { + for (i = 0; i < getDataSize_(uid); ++i) + { + datax[i] += x; + } + } + } + if (y != 0.0) + { + datay = getDataY(uid); + if (datay == NULL) return FALSE; + if (flagY) { + for (i = 0; i < getDataSize_(uid); ++i) + { + datay[i] = pow(10.,log10(datay[i]) + y); + } + } else { + for (i = 0; i < getDataSize_(uid); ++i) + { + datay[i] += y; + } + } + } + if (z != 0 && isZCoordSet(uid)) + { + if (flagZ) { + for (i = 0; i < getDataSize_(uid); ++i) + { + dataz[i] = pow(10.,log10(dataz[i]) + z); + } + } else { + for (i = 0; i < getDataSize_(uid); ++i) + { + dataz[i] += z; + } + } + } + + return TRUE; +} + +BOOL translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int size = getDataSize_(uid); + + if (index >= 0 && index < size) + { + datax = getDataX(uid); + if (datax == NULL) return FALSE; + datay = getDataY(uid); + if (datay == NULL) return FALSE; + + if (flagX) { + datax[index] *= pow(10., x); + } else { + datax[index] += x; + } + + if (flagY) { + datay[index] *= pow(10., y); + } else { + datay[index] += y; + } + + if (z != 0 && isZCoordSet(uid)) + { + dataz = getDataZ(uid); + if (flagZ) { + dataz[index] *= pow(10., z); + } else { + dataz[index] += z; + } + } + } + /*update*/ + setGraphicObjectProperty(uid, __GO_DATA_MODEL__, &uid, jni_int, 1); + return TRUE; +} + +BOOL setPointValue(int uid, int index, double x, double y, double z) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int size = getDataSize_(uid); + + + if (index >= 0 && index < size) + { + datax = getDataX(uid); + if (datax == NULL) return FALSE; + datay = getDataY(uid); + if (datay == NULL) return FALSE; + + datax[index] = x; + datay[index] = y; + + if (z != 0 && isZCoordSet(uid)) + { + dataz = getDataZ(uid); + dataz[index] = z; + } + } + /*update*/ + setGraphicObjectProperty(uid, __GO_DATA_MODEL__, &uid, jni_int, 1); + return TRUE; +} + +BOOL insertPoint(int uid, int index, double x, double y, double z) +{ + double *curData, *newData; + int size = getDataSize_(uid); + BOOL result; + int i ,j, n[2]; + + // -1 = inset before the first element + if (index >= size || index < -1) return FALSE; + + curData = getDataX(uid); + if (curData == NULL) return FALSE; + + newData = MALLOC(sizeof(double)*3*(size+1)); + if (newData == NULL) return FALSE; + + j = index == -1 ? 1 : 0; + for (i = 0; i < size; ++i, ++j) + { + newData[j] = curData[i]; + newData[(size+1)+j] = curData[size+i]; + newData[(size+1)*2+j] = curData[size*2+i]; + if (i == index) + ++j; + } + + newData[index+1] = x; + newData[size+index+2] = y; + if (isZCoordSet(uid)) + { + newData[(size+1)*2+index+1] = z; + } + else + { + newData[(size+1)*2+index+1] = 0.0; + } + + n[0] = 1; n[1] = size+1; + + result = setGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + setGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, newData, jni_double_vector, size+1); + + FREE(newData); + return TRUE; +} + +BOOL removePoint(int uid, int index) +{ + double *curData, *newData; + int size = getDataSize_(uid); + BOOL result; + int i ,j, n[2]; + + if (index >= size || index < 0) return FALSE; + + curData = getDataX(uid); + if (curData == NULL) return FALSE; + + newData = MALLOC(sizeof(double)*3*(size-1)); + if (newData == NULL) return FALSE; + + j = 0; + for (i = 0; i < size; ++i, ++j) + { + if (i == index) + { + --j; + continue; + } + + newData[j] = curData[i]; + newData[(size-1)+j] = curData[size+i]; + newData[(size-1)*2+j] = curData[size*2+i]; + } + + n[0] = 1; n[1] = size-1; + result = setGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + setGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, newData, jni_double_vector, size-1); + + FREE(newData); + return TRUE; +} +%} + + +double * getDataX(int uid); +double * getDataY(int uid); +double * getDataZ(int uid); +double * getShiftX(int uid); +double * getShiftY(int uid); +double * getShiftZ(int uid); +int isZCoordSet(int uid); +int isXShiftSet(int uid); +int isYShiftSet(int uid); +int isZShiftSet(int uid); +int createPolylineData(int uidFrom, int uidTo); +int translatePolyline(int uid, double x, double y, double z, int flagX, int flagY, int flagZ); +int translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ); +int setPointValue(int uid, int index, double x, double y, double z); +int insertPoint(int uid, int index, double x, double y, double z); +int removePoint(int uid, int index); + + + + diff --git a/modules/graphic_objects/src/jni/PolylineData_wrap.c b/modules/graphic_objects/src/jni/PolylineData_wrap.c new file mode 100755 index 000000000..dbb82553e --- /dev/null +++ b/modules/graphic_objects/src/jni/PolylineData_wrap.c @@ -0,0 +1,907 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.10 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGJAVA + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include <jni.h> +#include <stdlib.h> +#include <string.h> + + +/* Support for throwing Java exceptions */ +typedef enum +{ + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError +} SWIG_JavaExceptionCodes; + +typedef struct +{ + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) +{ + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = + { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + { + except_ptr++; + } + + (*jenv)->ExceptionClear(jenv); + excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); + if (excep) + { + (*jenv)->ThrowNew(jenv, excep, msg); + } +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + + +#include "createGraphicObject.h" +#include "deleteGraphicObject.h" +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +#include "MALLOC.h" +#include "math.h" + +/*help funtion*/ +int getDataSize_(int uid) +{ + int size = 0; + int *j = &size; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**)&j); + return size; +} + +BOOL isZCoordSet(int uid) +{ + int result = 0; + int *pResult = &result; + + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SET__, jni_int, (void**)&pResult); + return (BOOL)result; +} + +double * getDataX(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&vec); + return vec; +} +double * getDataY(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getDataZ(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftX(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftY(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +double * getShiftZ(int uid) +{ + double *vec; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SHIFT__, jni_double_vector, (void**)&vec); + return vec; +} + +BOOL isXShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + +BOOL isYShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + +BOOL isZShiftSet(int uid) +{ + int b = 0; + int * pb = &b; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__, jni_int, (void**)&pb); + return b; +} + + +int createPolylineData(int uidFrom, int uidTo) +{ + double *dataFrom, *dataTo; + int n[2]; + int size = 63; + int *tmp = &size; + BOOL result; + + int polylineID = createDataObject(uidTo, __GO_POLYLINE__); + if (polylineID == NULL) + { + return NULL; + } + + getGraphicObjectProperty(uidFrom, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int, (void**)&tmp); + n[0] = 1; + n[1] = size; + + result = setGraphicObjectProperty(polylineID, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + if (result == FALSE) + { + deleteDataObject(polylineID); + return NULL; + } + + getGraphicObjectProperty(uidFrom, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&dataFrom); + getGraphicObjectProperty(uidTo, __GO_DATA_MODEL_X__, jni_double_vector, (void**)&dataTo); + + memcpy(dataTo, dataFrom, sizeof(double) * 3 * size); + return uidTo; + +} + +BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int flagY, int flagZ) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int i = 0; + if (x != 0.0) + { + datax = getDataX(uid); + if (datax == NULL) + { + return FALSE; + } + if (flagX) + { + for (i = 0; i < getDataSize_(uid); ++i) + { + datax[i] = pow(10., log10(datax[i]) + x); + } + } + else + { + for (i = 0; i < getDataSize_(uid); ++i) + { + datax[i] += x; + } + } + } + if (y != 0.0) + { + datay = getDataY(uid); + if (datay == NULL) + { + return FALSE; + } + if (flagY) + { + for (i = 0; i < getDataSize_(uid); ++i) + { + datay[i] = pow(10., log10(datay[i]) + y); + } + } + else + { + for (i = 0; i < getDataSize_(uid); ++i) + { + datay[i] += y; + } + } + } + if (z != 0 && isZCoordSet(uid)) + { + if (flagZ) + { + for (i = 0; i < getDataSize_(uid); ++i) + { + dataz[i] = pow(10., log10(dataz[i]) + z); + } + } + else + { + for (i = 0; i < getDataSize_(uid); ++i) + { + dataz[i] += z; + } + } + } + + return TRUE; +} + +BOOL translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int size = getDataSize_(uid); + + if (index >= 0 && index < size) + { + datax = getDataX(uid); + if (datax == NULL) + { + return FALSE; + } + datay = getDataY(uid); + if (datay == NULL) + { + return FALSE; + } + + if (flagX) + { + datax[index] *= pow(10., x); + } + else + { + datax[index] += x; + } + + if (flagY) + { + datay[index] *= pow(10., y); + } + else + { + datay[index] += y; + } + + if (z != 0 && isZCoordSet(uid)) + { + dataz = getDataZ(uid); + if (flagZ) + { + dataz[index] *= pow(10., z); + } + else + { + dataz[index] += z; + } + } + } + /*update*/ + setGraphicObjectProperty(uid, __GO_DATA_MODEL__, &uid, jni_int, 1); + return TRUE; +} + +BOOL setPointValue(int uid, int index, double x, double y, double z) +{ + double *datax = NULL; + double *datay = NULL; + double *dataz = NULL; + + int size = getDataSize_(uid); + + + if (index >= 0 && index < size) + { + datax = getDataX(uid); + if (datax == NULL) + { + return FALSE; + } + datay = getDataY(uid); + if (datay == NULL) + { + return FALSE; + } + + datax[index] = x; + datay[index] = y; + + if (z != 0 && isZCoordSet(uid)) + { + dataz = getDataZ(uid); + dataz[index] = z; + } + } + /*update*/ + setGraphicObjectProperty(uid, __GO_DATA_MODEL__, &uid, jni_int, 1); + return TRUE; +} + +BOOL insertPoint(int uid, int index, double x, double y, double z) +{ + double *curData, *newData; + int size = getDataSize_(uid); + BOOL result; + int i , j, n[2]; + + // -1 = inset before the first element + if (index >= size || index < -1) + { + return FALSE; + } + + curData = getDataX(uid); + if (curData == NULL) + { + return FALSE; + } + + newData = MALLOC(sizeof(double) * 3 * (size + 1)); + if (newData == NULL) + { + return FALSE; + } + + j = index == -1 ? 1 : 0; + for (i = 0; i < size; ++i, ++j) + { + newData[j] = curData[i]; + newData[(size + 1) + j] = curData[size + i]; + newData[(size + 1) * 2 + j] = curData[size * 2 + i]; + if (i == index) + { + ++j; + } + } + + newData[index + 1] = x; + newData[size + index + 2] = y; + if (isZCoordSet(uid)) + { + newData[(size + 1) * 2 + index + 1] = z; + } + else + { + newData[(size + 1) * 2 + index + 1] = 0.0; + } + + n[0] = 1; + n[1] = size + 1; + + result = setGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + setGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, newData, jni_double_vector, size + 1); + + FREE(newData); + return TRUE; +} + +BOOL removePoint(int uid, int index) +{ + double *curData, *newData; + int size = getDataSize_(uid); + BOOL result; + int i , j, n[2]; + + if (index >= size || index < 0) + { + return FALSE; + } + + curData = getDataX(uid); + if (curData == NULL) + { + return FALSE; + } + + newData = MALLOC(sizeof(double) * 3 * (size - 1)); + if (newData == NULL) + { + return FALSE; + } + + j = 0; + for (i = 0; i < size; ++i, ++j) + { + if (i == index) + { + --j; + continue; + } + + newData[j] = curData[i]; + newData[(size - 1) + j] = curData[size + i]; + newData[(size - 1) * 2 + j] = curData[size * 2 + i]; + } + + n[0] = 1; + n[1] = size - 1; + result = setGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__, &n, jni_int_vector, 2); + setGraphicObjectProperty(uid, __GO_DATA_MODEL_COORDINATES__, newData, jni_double_vector, size - 1); + + FREE(newData); + return TRUE; +} + + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getDataX(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getDataX(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getDataY(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getDataY(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getDataZ(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getDataZ(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getShiftX(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getShiftX(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getShiftY(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getShiftY(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_getShiftZ(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getShiftZ(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSize_(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSize_(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_isZCoordSet(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)isZCoordSet(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_isXShiftSet(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)isXShiftSet(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_isYShiftSet(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)isYShiftSet(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_isZShiftSet(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)isZShiftSet(arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_createPolylineData(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) +{ + jint jresult = 0 ; + int arg1 ; + int arg2 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + result = (int)createPolylineData(arg1, arg2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_translatePolyline(JNIEnv *jenv, jclass jcls, jint jarg1, jdouble jarg2, jdouble jarg3, jdouble jarg4, jint jarg5, jint jarg6, jint jarg7) +{ + jint jresult = 0 ; + int arg1 ; + double arg2 ; + double arg3 ; + double arg4 ; + int arg5 ; + int arg6 ; + int arg7 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (double)jarg2; + arg3 = (double)jarg3; + arg4 = (double)jarg4; + arg5 = (int)jarg5; + arg6 = (int)jarg6; + arg7 = (int)jarg7; + result = (int)translatePolyline(arg1, arg2, arg3, arg4, arg5, arg6, arg7); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_translatePoint(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5, jint jarg6, jint jarg7, jint jarg8) +{ + jint jresult = 0 ; + int arg1 ; + int arg2 ; + double arg3 ; + double arg4 ; + double arg5 ; + int arg6 ; + int arg7 ; + int arg8 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + arg3 = (double)jarg3; + arg4 = (double)jarg4; + arg5 = (double)jarg5; + arg6 = (int)jarg6; + arg7 = (int)jarg7; + arg8 = (int)jarg8; + result = (int)translatePoint(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_setPointValue(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5) +{ + jint jresult = 0 ; + int arg1 ; + int arg2 ; + double arg3 ; + double arg4 ; + double arg5 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + arg3 = (double)jarg3; + arg4 = (double)jarg4; + arg5 = (double)jarg5; + result = (int)setPointValue(arg1, arg2, arg3, arg4, arg5); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_insertPoint(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5) +{ + jint jresult = 0 ; + int arg1 ; + int arg2 ; + double arg3 ; + double arg4 ; + double arg5 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + arg3 = (double)jarg3; + arg4 = (double)jarg4; + arg5 = (double)jarg5; + result = (int)insertPoint(arg1, arg2, arg3, arg4, arg5); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_PolylineDataJNI_removePoint(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) +{ + jint jresult = 0 ; + int arg1 ; + int arg2 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + result = (int)removePoint(arg1, arg2); + jresult = (jint)result; + return jresult; +} + + +#ifdef __cplusplus +} +#endif + diff --git a/modules/graphic_objects/src/jni/ScilabNativeView.i b/modules/graphic_objects/src/jni/ScilabNativeView.i new file mode 100755 index 000000000..15f011058 --- /dev/null +++ b/modules/graphic_objects/src/jni/ScilabNativeView.i @@ -0,0 +1,40 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +/** + * Windows: swig -java -package org.scilab.modules.graphic_objects -outdir ../java/org/scilab/modules/graphic_objects/ ScilabNativeView.i + * Other: Use the option --enable-build-swig to the configure +*/ + +%module ScilabNativeView + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } +%} + +%inline %{ + extern void ScilabNativeView__createObject(int id); + extern void ScilabNativeView__deleteObject(int id); + extern void ScilabNativeView__updateObject(int id, int iProperty); + extern void ScilabNativeView__setCurrentFigure(int id); + extern void ScilabNativeView__setCurrentSubWin(int id); + extern void ScilabNativeView__setCurrentObject(int id); + extern int ScilabNativeView__getValidDefaultFigureId(); + extern int ScilabNativeView__getFigureFromIndex(int figNum); + %} diff --git a/modules/graphic_objects/src/jni/ScilabNativeView_wrap.c b/modules/graphic_objects/src/jni/ScilabNativeView_wrap.c new file mode 100755 index 000000000..aa0f32e96 --- /dev/null +++ b/modules/graphic_objects/src/jni/ScilabNativeView_wrap.c @@ -0,0 +1,311 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.11 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGJAVA + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include <jni.h> +#include <stdlib.h> +#include <string.h> + + +/* Support for throwing Java exceptions */ +typedef enum +{ + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError +} SWIG_JavaExceptionCodes; + +typedef struct +{ + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) +{ + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = + { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + { + except_ptr++; + } + + (*jenv)->ExceptionClear(jenv); + excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); + if (excep) + { + (*jenv)->ThrowNew(jenv, excep, msg); + } +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + +extern void ScilabNativeView__createObject(int id); +extern void ScilabNativeView__deleteObject(int id); +extern void ScilabNativeView__updateObject(int id, int iProperty); +extern void ScilabNativeView__setCurrentFigure(int id); +extern void ScilabNativeView__setCurrentSubWin(int id); +extern void ScilabNativeView__setCurrentObject(int id); +extern int ScilabNativeView__getValidDefaultFigureId(); +extern int ScilabNativeView__getFigureFromIndex(int figNum); + + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1createObject(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + ScilabNativeView__createObject(arg1); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1deleteObject(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + ScilabNativeView__deleteObject(arg1); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1updateObject(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) +{ + int arg1 ; + int arg2 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + ScilabNativeView__updateObject(arg1, arg2); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1setCurrentFigure(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + ScilabNativeView__setCurrentFigure(arg1); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1setCurrentSubWin(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + ScilabNativeView__setCurrentSubWin(arg1); +} + + +SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1setCurrentObject(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + int arg1 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + ScilabNativeView__setCurrentObject(arg1); +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1getValidDefaultFigureId(JNIEnv *jenv, jclass jcls) +{ + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)ScilabNativeView__getValidDefaultFigureId(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_ScilabNativeViewJNI_ScilabNativeView_1_1getFigureFromIndex(JNIEnv *jenv, jclass jcls, jint jarg1) +{ + jint jresult = 0 ; + int arg1 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (int)ScilabNativeView__getFigureFromIndex(arg1); + jresult = (jint)result; + return jresult; +} + + +#ifdef __cplusplus +} +#endif + diff --git a/modules/graphic_objects/src/jni/SurfaceData.i b/modules/graphic_objects/src/jni/SurfaceData.i new file mode 100755 index 000000000..6e63e3c1d --- /dev/null +++ b/modules/graphic_objects/src/jni/SurfaceData.i @@ -0,0 +1,186 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - Pedro Arthur dos S. Souza + * Copyright (C) 2012 - Caio Lucas dos S. Souza + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +%module SurfaceData + + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("scigraphic_objects"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native library failed to load. \n" + e); + System.exit(1); + } + } +%} + +%typemap(jni) double * "jobject" +%typemap(jtype) double * "Object" +%typemap(jstype) double * "Object" +%typemap(javain) double * "$javainput" +%typemap(javaout) double * { return $jnicall; } + +%typemap(in) double * getSurfDataX { + $1 = (*jenv)->GetDoubleArrayElements(jenv, $input, NULL); +} +%typemap(argout) double * getSurfDataX { + (*jenv)->ReleaseDoubleArrayElements(jenv, $input, $1, 0); +} +%typemap(out) double * getSurfDataX { + $result = (*jenv)->NewDoubleArray(jenv, getDataSizeX(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, getDataSizeX(arg1), $1); +} + +%typemap(in) double * getSurfDataY { + $1 = (*jenv)->GetDoubleArrayElements(jenv, $input, NULL); +} +%typemap(argout) double * getSurfDataY { + (*jenv)->ReleaseDoubleArrayElements(jenv, $input, $1, 0); +} +%typemap(out) double * getSurfDataY { + $result = (*jenv)->NewDoubleArray(jenv, getDataSizeY(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, getDataSizeY(arg1), $1); +} + +%typemap(in) double * getSurfDataZ { + $1 = (*jenv)->GetDoubleArrayElements(jenv, $input, NULL); +} +%typemap(argout) double * getSurfDataZ { + (*jenv)->ReleaseDoubleArrayElements(jenv, $input, $1, 0); +} +%typemap(out) double * getSurfDataZ { + $result = (*jenv)->NewDoubleArray(jenv, getDataSizeZ(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, $result, 0, getDataSizeZ(arg1), $1); +} + +%{ +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" +%} + +%{ +double * getSurfDataX(int uid) +{ + double * X; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &X); + return X; +} + +int getDataSizeX(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} +%} + +%{ +double * getSurfDataY(int uid) +{ + double * Y; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &Y); + return Y; +} + +int getDataSizeY(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} +%} + +%{ +double * getSurfDataZ(int uid) +{ + double * Z; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &Z); + return Z; +} + +int getDataSizeZ(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Z__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} +%} + +%{ +extern int createObject3dData(int obj, int newObj, int type); +extern double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw); +%} + + +double * getSurfDataX(int uid); +double * getSurfDataY(int uid); +double * getSurfDataZ(int uid); +int createObject3dData(int obj, int newObj, int type); +double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw); + + + diff --git a/modules/graphic_objects/src/jni/SurfaceData_wrap.c b/modules/graphic_objects/src/jni/SurfaceData_wrap.c new file mode 100755 index 000000000..4118cb6c3 --- /dev/null +++ b/modules/graphic_objects/src/jni/SurfaceData_wrap.c @@ -0,0 +1,406 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.7 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGJAVA + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) + typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include <jni.h> +#include <stdlib.h> +#include <string.h> + + +/* Support for throwing Java exceptions */ +typedef enum { + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError +} SWIG_JavaExceptionCodes; + +typedef struct { + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + except_ptr++; + + (*jenv)->ExceptionClear(jenv); + excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); + if (excep) + (*jenv)->ThrowNew(jenv, excep, msg); +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + +#include "returnType.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#include "graphicObjectProperties.h" + + +double * getSurfDataX(int uid) +{ + double * X; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_X__, jni_double_vector, (void**) &X); + return X; +} + +int getDataSizeX(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_X__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} + + +double * getSurfDataY(int uid) +{ + double * Y; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Y__, jni_double_vector, (void**) &Y); + return Y; +} + +int getDataSizeY(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Y__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} + + +double * getSurfDataZ(int uid) +{ + double * Z; + getGraphicObjectProperty(uid, __GO_DATA_MODEL_Z__, jni_double_vector, (void**) &Z); + return Z; +} + +int getDataSizeZ(int uid) +{ + int type, size = 0, nGon = 0, nVert = 0; + int * pType = &type; + int * pSize = &size; + int * pNGon = &nGon; + int * pNVert = &nVert; + getGraphicObjectProperty(uid, __GO_TYPE__, jni_int, (void**) &pType); + + switch(type) + { + case __GO_PLOT3D__: + case __GO_GRAYPLOT__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_Z__, jni_int, (void**) &pSize); + break; + case __GO_FAC3D__: + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_GONS__, jni_int, (void**) &pNGon); + getGraphicObjectProperty(uid, __GO_DATA_MODEL_NUM_VERTICES_PER_GON__, jni_int, (void**) &pNVert); + size = nGon * nVert; + break; + } + return size; +} + + +extern int createObject3dData(int obj, int newObj, int type); +extern double pickSurface(int uid, double x, double y, double z, double dx, double dy, double dz, double mx, double my, double mz, double mw); + + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_SurfaceDataJNI_getSurfDataX(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getSurfDataX(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSizeX(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSizeX(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_SurfaceDataJNI_getSurfDataY(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getSurfDataY(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSizeY(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSizeY(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_org_scilab_modules_graphic_1objects_SurfaceDataJNI_getSurfDataZ(JNIEnv *jenv, jclass jcls, jint jarg1) { + jobject jresult = 0 ; + int arg1 ; + double *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (double *)getSurfDataZ(arg1); + { + jresult = (*jenv)->NewDoubleArray(jenv, getDataSizeZ(arg1)); + (*jenv)->SetDoubleArrayRegion(jenv, jresult, 0, getDataSizeZ(arg1), result); + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_SurfaceDataJNI_createObject3dData(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2, jint jarg3) { + jint jresult = 0 ; + int arg1 ; + int arg2 ; + int arg3 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (int)jarg2; + arg3 = (int)jarg3; + result = (int)createObject3dData(arg1,arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jdouble JNICALL Java_org_scilab_modules_graphic_1objects_SurfaceDataJNI_pickSurface(JNIEnv *jenv, jclass jcls, jint jarg1, jdouble jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5, jdouble jarg6, jdouble jarg7, jdouble jarg8, jdouble jarg9, jdouble jarg10, jdouble jarg11) { + jdouble jresult = 0 ; + int arg1 ; + double arg2 ; + double arg3 ; + double arg4 ; + double arg5 ; + double arg6 ; + double arg7 ; + double arg8 ; + double arg9 ; + double arg10 ; + double arg11 ; + double result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = (double)jarg2; + arg3 = (double)jarg3; + arg4 = (double)jarg4; + arg5 = (double)jarg5; + arg6 = (double)jarg6; + arg7 = (double)jarg7; + arg8 = (double)jarg8; + arg9 = (double)jarg9; + arg10 = (double)jarg10; + arg11 = (double)jarg11; + result = (double)pickSurface(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11); + jresult = (jdouble)result; + return jresult; +} + + +#ifdef __cplusplus +} +#endif + diff --git a/modules/graphic_objects/src/jni/builder.giws.xml b/modules/graphic_objects/src/jni/builder.giws.xml new file mode 100755 index 000000000..23c3ab92e --- /dev/null +++ b/modules/graphic_objects/src/jni/builder.giws.xml @@ -0,0 +1,190 @@ +<?xml version="1.0"?> +<package name="org.scilab.modules.graphic_objects.builder"> + <object name="Builder"> + <method name="createRect" returnType="int" modifier="static"> + <parameter name="pparentsubwinUID" type="int"/> + <parameter name="x" type="double"/> + <parameter name="y" type="double"/> + <parameter name="height" type="double"/> + <parameter name="width" type="double"/> + <parameter name="foreground" type="int"/> + <parameter name="background" type="int"/> + <parameter name="isfilled" type="int"/> + <parameter name="isline" type="int"/> + </method> + <method name="cloneGraphicContext" returnType="int" modifier="static"> + <parameter name="sourceIdentifier" type="int"/> + <parameter name="destIdentifier" type="int"/> + </method> + <method name="cloneFontContext" returnType="int" modifier="static"> + <parameter name="sourceIdentifier" type="int"/> + <parameter name="destIdentifier" type="int"/> + </method> + <method name="createHiddenLabel" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + </method> + <method name="isAxesRedrawing" returnType="boolean" modifier="static"> + <parameter name="subWin" type="int"/> + </method> + <method name="createLabel" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="type" type="int"/> + </method> + <method name="createNewFigureWithAxes" returnType="int" modifier="static" /> + <method name="createFigure" returnType="int" modifier="static"> + <parameter name="dockable" type="boolean" /> + <parameter name="menubarType" type="int" /> + <parameter name="toolbarType" type="int" /> + <parameter name="defaultAxes" type="boolean" /> + <parameter name="visible" type="boolean" /> + </method> + <method name="cloneMenus" returnType="void" modifier="static"> + <parameter name="model" type="int"/> + <parameter name="newParent" type="int"/> + </method> + <method name="cloneAxesModel" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + </method> + <method name="createSubWin" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + </method> + <method name="createText" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="text" type="String[]"/> + <parameter name="rows" type="int"/> + <parameter name="cols" type="int"/> + <parameter name="x" type="double"/> + <parameter name="y" type="double"/> + <parameter name="autoSize" type="boolean"/> + <parameter name="userSize" type="double[]"/> + <parameter name="centerPos" type="int"/> + <parameter name="foreground" type="int"/> + <parameter name="isForeground" type="boolean"/> + <parameter name="background" type="int"/> + <parameter name="isBackground" type="boolean"/> + <parameter name="boxed" type="boolean"/> + <parameter name="line" type="boolean"/> + <parameter name="filled" type="boolean"/> + <parameter name="align" type="int"/> + </method> + <method name="createArc" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="x" type="double"/> + <parameter name="y" type="double"/> + <parameter name="h" type="double"/> + <parameter name="w" type="double"/> + <parameter name="start" type="double"/> + <parameter name="end" type="double"/> + <parameter name="foreground" type="int"/> + <parameter name="isForeground" type="boolean"/> + <parameter name="background" type="int"/> + <parameter name="isBackground" type="boolean"/> + <parameter name="filled" type="boolean"/> + <parameter name="line" type="boolean"/> + </method> + <method name="createAxis" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="dir" type="int"/> + <parameter name="tics" type="int"/> + <parameter name="vx" type="double[]"/> + <parameter name="vy" type="double[]"/> + <parameter name="subint" type="int"/> + <parameter name="format" type="String"/> + <parameter name="fontSize" type="int"/> + <parameter name="textColor" type="int"/> + <parameter name="ticsColor" type="int"/> + <parameter name="seg" type="boolean"/> + </method> + <method name="createCompound" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="children" type="int[]"/> + </method> + <method name="createCompoundSeq" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="childrenCount" type="int"/> + </method> + <method name="createFec" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="zminmax" type="double[]"/> + <parameter name="colminmax" type="int[]"/> + <parameter name="colout" type="int[]"/> + <parameter name="with_mesh" type="boolean"/> + </method> + <method name="createGrayplot" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="type" type="int"/> + <parameter name="pvecx" type="double[]"/> + <parameter name="n1" type="int"/> + <parameter name="n2" type="int"/> + </method> + <method name="createPolyline" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="closed" type="boolean"/> + <parameter name="plot" type="int"/> + <parameter name="foreground" type="int"/> + <parameter name="isForeground" type="boolean"/> + <parameter name="background" type="int[]"/> + <parameter name="mark_style" type="int"/> + <parameter name="isMarkStyle" type="boolean"/> + <parameter name="mark_foreground" type="int"/> + <parameter name="isMarkForeground" type="boolean"/> + <parameter name="mark_background" type="int"/> + <parameter name="isMarkBackground" type="boolean"/> + <parameter name="isline" type="boolean"/> + <parameter name="isfilled" type="boolean"/> + <parameter name="ismark" type="boolean"/> + <parameter name="isinterp" type="boolean"/> + </method> + <method name="createLegend" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="text" type="String[]"/> + <parameter name="handles" type="int[]"/> + </method> + <method name="createSegs" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="vx" type="double[]"/> + <parameter name="vy" type="double[]"/> + <parameter name="vz" type="double[]"/> + <parameter name="isVZ" type="boolean"/> + <parameter name="style" type="int[]"/> + <parameter name="arsize" type="double"/> + </method> + <method name="createChamp" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="vx" type="double[]"/> + <parameter name="vy" type="double[]"/> + <parameter name="vfx" type="double[]"/> + <parameter name="vfy" type="double[]"/> + <parameter name="arsize" type="double"/> + <parameter name="typeofchamp" type="boolean"/> + </method> + <method name="createSurface" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="typeof3d" type="int"/> + <parameter name="colorFlag" type="int"/> + <parameter name="colorMode" type="int"/> + </method> + <method name="initSubWinTo3d" returnType="void" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="legend" type="String"/> + <parameter name="isLegend" type="boolean"/> + <parameter name="flag" type="int[]"/> + <parameter name="alpha" type="double"/> + <parameter name="theta" type="double"/> + <parameter name="ebox" type="double[]"/> + <parameter name="x" type="double[]"/> + <parameter name="y" type="double[]"/> + <parameter name="z" type="double[]"/> + </method> + <method name="createLight" returnType="int" modifier="static"> + <parameter name="parent" type="int"/> + <parameter name="type" type="int"/> + <parameter name="visible" type="boolean"/> + <parameter name="pos" type="double[]"/> + <parameter name="dir" type="double[]"/> + <parameter name="ambient" type="double[]"/> + <parameter name="diffuse" type="double[]"/> + <parameter name="specular" type="double[]"/> + </method> + </object> +</package> diff --git a/modules/graphic_objects/src/jni/graphic_objects.giws.xml b/modules/graphic_objects/src/jni/graphic_objects.giws.xml new file mode 100755 index 000000000..c8430f1ce --- /dev/null +++ b/modules/graphic_objects/src/jni/graphic_objects.giws.xml @@ -0,0 +1,103 @@ +<?xml version="1.0"?> +<package name="org.scilab.modules.graphic_objects"> + <object name="CallXmlLoader"> + <method name="Load" returnType="int" modifier="static"> + <parameter name="filename" type="String"/> + </method> + <method name="Save" returnType="String" modifier="static"> + <parameter name="figure" type="int"/> + <parameter name="filename" type="String"/> + <parameter name="isReverse" type="boolean"/> + </method> + <method name="DomLoad" returnType="int" modifier="static"> + <parameter name="filename" type="String"/> + </method> + </object> + <object name="CallGraphicController"> + <method name="deleteGraphicObject" returnType="void" modifier="static"> + <parameter name="id" type="int"/> + </method> + <method name="cloneGraphicObject" returnType="int" modifier="static"> + <parameter name="id" type="int"/> + </method> + <method name="askGraphicObject" returnType="int" modifier="static"> + <parameter name="typeName" type="int"/> + </method> + <method name="setGraphicObjectRelationship" returnType="void" modifier="static"> + <parameter name="parentId" type="int"/> + <parameter name="childId" type="int"/> + </method> + <method name="removeRelationShipAndDelete" returnType="void" modifier="static"> + <parameter name="id" type="int"/> + </method> + <method name="getGraphicObjectPropertyAsString" returnType="String" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="String"/> + </method> + <method name="getGraphicObjectPropertyAsStringVector" returnType="String[]" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="String[]"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="double"/> + </method> + <method name="getGraphicObjectPropertyAsDoubleVector" returnType="double[]" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="double[]"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="int"/> + </method> + <method name="getGraphicObjectPropertyAsIntegerVector" returnType="int[]" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="int[]"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="boolean"/> + </method> + <method name="getGraphicObjectPropertyAsBooleanVector" returnType="int[]" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + </method> + <method name="setGraphicObjectProperty" returnType="boolean" modifier="static"> + <parameter name="id" type="int"/> + <parameter name="propertyName" type="int"/> + <parameter name="value" type="boolean[]"/> + </method> + <method name="registerScilabView" returnType="void" modifier="static"> + </method> + <method name="unregisterScilabView" returnType="void" modifier="static"> + </method> + <method name="getConsoleIdentifier" returnType="int" modifier="static"> + </method> + <method name="buildFigureMenuBar" returnType="void" modifier="static"> + <parameter name="figureId" type="int"/> + </method> + </object> +</package> diff --git a/modules/graphic_objects/src/jni/graphic_objects.i b/modules/graphic_objects/src/jni/graphic_objects.i new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/jni/graphic_objects.i diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-Builder.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-Builder.lo new file mode 100755 index 000000000..83385d620 --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-Builder.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-Builder.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-Builder.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallGraphicController.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallGraphicController.lo new file mode 100755 index 000000000..e5720b3cb --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallGraphicController.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-CallGraphicController.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-CallGraphicController.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallXmlLoader.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallXmlLoader.lo new file mode 100755 index 000000000..7a0e28dcf --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-CallXmlLoader.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-CallXmlLoader.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-CallXmlLoader.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-DataLoader_wrap.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-DataLoader_wrap.lo new file mode 100755 index 000000000..1b512c8da --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-DataLoader_wrap.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-DataLoader_wrap.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-DataLoader_wrap.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-ObjectData_wrap.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-ObjectData_wrap.lo new file mode 100755 index 000000000..74c265c8a --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-ObjectData_wrap.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-ObjectData_wrap.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-ObjectData_wrap.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-PolylineData_wrap.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-PolylineData_wrap.lo new file mode 100755 index 000000000..934ceddcf --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-PolylineData_wrap.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-PolylineData_wrap.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-PolylineData_wrap.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-ScilabNativeView_wrap.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-ScilabNativeView_wrap.lo new file mode 100755 index 000000000..d36f48f4d --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-ScilabNativeView_wrap.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-ScilabNativeView_wrap.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-ScilabNativeView_wrap.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/jni/libscigraphic_objects_la-SurfaceData_wrap.lo b/modules/graphic_objects/src/jni/libscigraphic_objects_la-SurfaceData_wrap.lo new file mode 100755 index 000000000..ebc236c88 --- /dev/null +++ b/modules/graphic_objects/src/jni/libscigraphic_objects_la-SurfaceData_wrap.lo @@ -0,0 +1,12 @@ +# src/jni/libscigraphic_objects_la-SurfaceData_wrap.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_la-SurfaceData_wrap.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/nographic_objects/.deps/.dirstamp b/modules/graphic_objects/src/nographic_objects/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/.deps/.dirstamp diff --git a/modules/graphic_objects/src/nographic_objects/.deps/libscigraphic_objects_disable_la-nographic_objects.Plo b/modules/graphic_objects/src/nographic_objects/.deps/libscigraphic_objects_disable_la-nographic_objects.Plo new file mode 100755 index 000000000..35968f846 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/.deps/libscigraphic_objects_disable_la-nographic_objects.Plo @@ -0,0 +1,146 @@ +src/nographic_objects/libscigraphic_objects_disable_la-nographic_objects.lo: \ + src/nographic_objects/nographic_objects.c /usr/include/stdc-predef.h \ + src/nographic_objects/nographic_objects.h \ + includes/dynlib_graphic_objects.h ../../modules/core/includes/BOOL.h \ + ../../modules/output_stream/includes/Scierror.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/machine.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/xlocale.h \ + includes/FigureList.h includes/dynlib_graphic_objects.h \ + includes/returnType.h includes/createGraphicObject.h \ + includes/deleteGraphicObject.h includes/getGraphicObjectProperty.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/returnType.h \ + includes/CurrentObject.h includes/setGraphicObjectProperty.h \ + ../../modules/core/includes/scilabmode.h \ + ../../modules/core/includes/machine.h ../../modules/core/includes/BOOL.h + +/usr/include/stdc-predef.h: + +src/nographic_objects/nographic_objects.h: + +includes/dynlib_graphic_objects.h: + +../../modules/core/includes/BOOL.h: + +../../modules/output_stream/includes/Scierror.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/machine.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/xlocale.h: + +includes/FigureList.h: + +includes/dynlib_graphic_objects.h: + +includes/returnType.h: + +includes/createGraphicObject.h: + +includes/deleteGraphicObject.h: + +includes/getGraphicObjectProperty.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +includes/returnType.h: + +includes/CurrentObject.h: + +includes/setGraphicObjectProperty.h: + +../../modules/core/includes/scilabmode.h: + +../../modules/core/includes/machine.h: + +../../modules/core/includes/BOOL.h: diff --git a/modules/graphic_objects/src/nographic_objects/.dirstamp b/modules/graphic_objects/src/nographic_objects/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/.dirstamp diff --git a/modules/graphic_objects/src/nographic_objects/.libs/libscigraphic_objects_disable_la-nographic_objects.o b/modules/graphic_objects/src/nographic_objects/.libs/libscigraphic_objects_disable_la-nographic_objects.o Binary files differnew file mode 100755 index 000000000..ef5eb0356 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/.libs/libscigraphic_objects_disable_la-nographic_objects.o diff --git a/modules/graphic_objects/src/nographic_objects/libscigraphic_objects_disable_la-nographic_objects.lo b/modules/graphic_objects/src/nographic_objects/libscigraphic_objects_disable_la-nographic_objects.lo new file mode 100755 index 000000000..5bee5a618 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/libscigraphic_objects_disable_la-nographic_objects.lo @@ -0,0 +1,12 @@ +# src/nographic_objects/libscigraphic_objects_disable_la-nographic_objects.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscigraphic_objects_disable_la-nographic_objects.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/graphic_objects/src/nographic_objects/nographic_objects.c b/modules/graphic_objects/src/nographic_objects/nographic_objects.c new file mode 100755 index 000000000..ba36a8cff --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/nographic_objects.c @@ -0,0 +1,86 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2009 - DIGITEO - Allan CORNET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +/*--------------------------------------------------------------------------*/ +#include "nographic_objects.h" +#include "Scierror.h" +#include "localization.h" +#include "FigureList.h" +#include "returnType.h" +#include "createGraphicObject.h" +#include "deleteGraphicObject.h" +#include "getGraphicObjectProperty.h" +#include "setGraphicObjectProperty.h" +#ifndef _MSC_VER +#include "scilabmode.h" +#endif +/*--------------------------------------------------------------------------*/ +int gw_graphic_objects(void) +{ +#ifndef _MSC_VER + if (getScilabMode() == SCILAB_NWNI) + { + Scierror(999, _("Scilab '%s' module disabled in -nogui or -nwni mode.\n"), "graphic_objects"); + } + else +#endif + { + Scierror(999, _("Scilab '%s' module not installed.\n"), "graphic_objects"); + } + return 0; +} +/*--------------------------------------------------------------------------*/ +BOOL sciHasFigures(void) +{ + return FALSE; +} +/*--------------------------------------------------------------------------*/ +BOOL sciIsExistingFigure(int figNum) +{ + return FALSE; +} +/*--------------------------------------------------------------------------*/ +int createGraphicObject(int _iType) +{ + return 0; +} +/*--------------------------------------------------------------------------*/ +int createDataObject(int iUID, int _iType) +{ + return 0; +} +/*--------------------------------------------------------------------------*/ +void deleteGraphicObject(int iUID) +{ +} +/*--------------------------------------------------------------------------*/ +void deleteDataObject(int iUID) +{ +} +/*--------------------------------------------------------------------------*/ +void getGraphicObjectProperty(int iUID, const int _iName, enum _ReturnType_ _returnType, void **_pvData) +{ + *_pvData = NULL; +} +/*--------------------------------------------------------------------------*/ +void releaseGraphicObjectProperty(const int _iName, void * _pvData, enum _ReturnType_ _returnType, int numElements) +{ +} +/*--------------------------------------------------------------------------*/ +BOOL setGraphicObjectProperty(int iUID, const int _iPropertyName, void const* _pvValue, enum _ReturnType_ _valueTtype, int numElements) +{ + return FALSE; +} +/*--------------------------------------------------------------------------*/ +void setGraphicObjectRelationship(int iUID, int iUID2) +{ +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/graphic_objects/src/nographic_objects/nographic_objects.h b/modules/graphic_objects/src/nographic_objects/nographic_objects.h new file mode 100755 index 000000000..e21dad824 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/nographic_objects.h @@ -0,0 +1,26 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2009-2012 - DIGITEO - Allan CORNET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +/*--------------------------------------------------------------------------*/ +#include "dynlib_graphic_objects.h" +#include "BOOL.h" +/*--------------------------------------------------------------------------*/ +/** + * This function is a wrapper / fake when Scilab is compiled without xpad + * + * @return 0 + */ +GRAPHIC_OBJECTS_IMPEXP int gw_graphic_objects(void); + +GRAPHIC_OBJECTS_IMPEXP BOOL sciHasFigures(void); + +GRAPHIC_OBJECTS_IMPEXP BOOL sciIsExistingFigure(int figNum); +/*--------------------------------------------------------------------------*/ diff --git a/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj b/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj new file mode 100755 index 000000000..802cd0219 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj @@ -0,0 +1,267 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{A910BD0C-8FAF-4382-B06A-F767E4752733}</ProjectGuid> + <RootNamespace>nographic_objects</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">noscigraphic_objects</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">noscigraphic_objects</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">noscigraphic_objects</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">noscigraphic_objects</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command> + </Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/noscigraphic_objects.dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command> + </Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/noscigraphic_objects.dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command> + </Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/noscigraphic_objects.dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration> + </LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../../libs/intl;../../includes;../../../api_scilab/includes;../../../core/includes;../../../localization/includes;../../../jvm/includes;../../../output_stream/includes;../cpp;../../../functions/includes;../../../fileio/includes;../../../commons/src/jni;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;GRAPHIC_OBJECTS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;4251</DisableSpecificWarnings> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command> + </Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>../../../../bin/noscigraphic_objects.dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration> + </LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>../../../../bin/sci$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\commons\src\c\commons.vcxproj"> + <Project>{eca09a1e-6d12-4a47-92e1-a671c181df77}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\jvm\libjvm.vcxproj"> + <Project>{8ba2dda8-bd04-4d4d-8ee6-6caa955f7470}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\localization\src\localization.vcxproj"> + <Project>{ecffeb0c-1eda-45ee-9a10-b18143852e17}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj"> + <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\c\DllmainGraphic_objects.c" /> + <ClCompile Include="nographic_objects.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="nographic_objects.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj.filters b/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj.filters new file mode 100755 index 000000000..f67c2c2a3 --- /dev/null +++ b/modules/graphic_objects/src/nographic_objects/nographic_objects.vcxproj.filters @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{f79df525-a28f-468e-baef-7a11c09d48b6}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{7d5a274b-0f38-4a01-9b9c-76921537ed71}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl</Extensions> + </Filter> + <Filter Include="localization"> + <UniqueIdentifier>{5ffd4074-3898-45da-bc72-d7e2f4d603af}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{b65a6b60-178c-4b9e-9564-39f5703fd8bd}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies\Imports"> + <UniqueIdentifier>{426706e8-160d-467c-a553-370ddc7e5bdd}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="nographic_objects.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\c\DllmainGraphic_objects.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="nographic_objects.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/graphic_objects/src/scripts/genPropertiesName.sh b/modules/graphic_objects/src/scripts/genPropertiesName.sh new file mode 100755 index 000000000..26dd70cc9 --- /dev/null +++ b/modules/graphic_objects/src/scripts/genPropertiesName.sh @@ -0,0 +1,96 @@ +#! /bin/sh +## Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +## Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET +## Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET +## +## This file must be used under the terms of the CeCILL. +## This source file is licensed as described in the file COPYING, which +## you should have received as part of this distribution. The terms +## are also available at +## http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +## +## + +main() +{ + if [ $# -ne 3 ]; then + echo "Usage: $0 --java|--C <PropertiesFile> <OuputFile>" + exit 1 + fi + + OutFile=$3 + PropertiesFile=$2 + Mode=$1 + + case "$Mode" in + --java) + generateJavaFile;; + --C) + generateCFile;; + esac +} + +generateJavaFile() +{ + if test $PropertiesFile -nt $OutFile; then + echo "-- Building GraphicObjectProperties.java --" + generateHeader + echo "package org.scilab.modules.graphic_objects.graphicObject;" >> $OutFile + echo "" >> $OutFile + echo "public class GraphicObjectProperties {" >> $OutFile + echo "" >> $OutFile + + awk 'BEGIN {num=0} (NF > 0) {printf " public static final int %s = %d;\n", $1, num; num++}' < $PropertiesFile >> $OutFile + + echo "" >> $OutFile + echo "}" >> $OutFile + else + echo "-- GraphicObjectProperties.java already up-to-date --" + fi +} + +generateCFile() +{ + if test $PropertiesFile -nt $OutFile; then + echo "-- Building GraphicObjectProperties.h --" + generateHeader + echo "#ifndef __GRAPHIC_OBJECT_PROPERTIES_H__" >> $OutFile + echo "#define __GRAPHIC_OBJECT_PROPERTIES_H__" >> $OutFile + echo "" >> $OutFile + + awk 'BEGIN {num=0} (NF > 0) {printf "#define %s %d\n", $1, num; num++}' < $PropertiesFile >> $OutFile + + echo "" >> $OutFile + echo "#endif /* !__GRAPHIC_OBJECT_PROPERTIES_H__ */" >> $OutFile + else + echo "-- GraphicObjectProperties.h already up-to-date --" + fi +} + +generateHeader() +{ + echo "/*" > $OutFile + echo " * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab" >> $OutFile + echo " * Copyright (C) 2010-2012 - DIGITEO - Bruno JOFRET" >> $OutFile + echo " * Copyright (C) 2012-2014 - Scilab-Enterprises - Bruno JOFRET" >> $OutFile + echo " *" >> $OutFile + echo " * This file must be used under the terms of the CeCILL." >> $OutFile + echo " * This source file is licensed as described in the file COPYING, which" >> $OutFile + echo " * you should have received as part of this distribution. The terms" >> $OutFile + echo " * are also available at" >> $OutFile + echo " * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt" >> $OutFile + echo " *" >> $OutFile + echo " */" >> $OutFile + + echo "" >> $OutFile + + echo "/*" >> $OutFile + echo " * -=- This is a generated file, please do not edit by hand -=-" >> $OutFile + echo " * -=- Please see properties definitions in -=-" >> $OutFile + echo " * -=- SCI/modules/graphic_objects/src/scripts/propertiesMap.properties -=-" >> $OutFile + echo " */" >> $OutFile + + echo "" >> $OutFile +} + +main $@ diff --git a/modules/graphic_objects/src/scripts/propertiesMap.properties b/modules/graphic_objects/src/scripts/propertiesMap.properties new file mode 100755 index 000000000..fe4eb7bb6 --- /dev/null +++ b/modules/graphic_objects/src/scripts/propertiesMap.properties @@ -0,0 +1,447 @@ +__GO_ARC__ +__GO_AXES__ +__GO_AXESMODEL__ +__GO_AXIS__ +__GO_CHAMP__ +__GO_COMPOUND__ +__GO_FAC3D__ +__GO_FEC__ +__GO_FIGURE__ +__GO_FIGUREMODEL__ +__GO_GRAYPLOT__ +__GO_LABEL__ +__GO_LEGEND__ +__GO_MATPLOT__ +__GO_PLOT3D__ +__GO_POLYLINE__ +__GO_RECTANGLE__ +__GO_SEGS__ +__GO_TEXT__ +__GO_UICONTROL__ +__GO_UIMENU__ +__GO_UICONTEXTMENU__ + +__GO_CHILDREN__ +__GO_CHILDREN_COUNT__ +__GO_PARENT__ +__GO_USER_DATA__ +__GO_USER_DATA_SIZE__ +__GO_VISIBLE__ +__GO_HIDDEN__ +__GO_TYPE__ +__GO_DATA_MODEL__ +__GO_PARENT_FIGURE__ +__GO_PARENT_AXES__ +__GO_HAS_LEGEND_CHILD__ +__GO_LEGEND_CHILD__ +__GO_SELECTED_CHILD__ +__GO_CALLBACK__ +__GO_CALLBACKTYPE__ + +__GO_DATA_MODEL_COORDINATES__ +__GO_DATA_MODEL_X__ +__GO_DATA_MODEL_Y__ +__GO_DATA_MODEL_Z__ + +__GO_DATA_MODEL_X_COORDINATES_SHIFT__ +__GO_DATA_MODEL_Y_COORDINATES_SHIFT__ +__GO_DATA_MODEL_Z_COORDINATES_SHIFT__ + +__GO_DATA_MODEL_X_COORDINATES_SHIFT_SET__ +__GO_DATA_MODEL_Y_COORDINATES_SHIFT_SET__ +__GO_DATA_MODEL_Z_COORDINATES_SHIFT_SET__ + +__GO_DATA_MODEL_NUM_ELEMENTS__ +__GO_DATA_MODEL_NUM_ELEMENTS_ARRAY__ +__GO_DATA_MODEL_NUM_VERTICES_PER_GON__ +__GO_DATA_MODEL_NUM_GONS__ + +__GO_DATA_MODEL_Z_COORDINATES_SET__ + +__GO_DATA_MODEL_COLORS__ +__GO_DATA_MODEL_NUM_COLORS__ + +__GO_DATA_MODEL_NUM_VERTICES__ +__GO_DATA_MODEL_NUM_INDICES__ +__GO_DATA_MODEL_INDICES__ +__GO_DATA_MODEL_VALUES__ +__GO_DATA_MODEL_NUM_VERTICES_BY_ELEM__ + +__GO_DATA_MODEL_FEC_ELEMENTS__ + +__GO_DATA_MODEL_NUM_X__ +__GO_DATA_MODEL_NUM_Y__ +__GO_DATA_MODEL_NUM_Z__ +__GO_DATA_MODEL_GRID_SIZE__ +__GO_DATA_MODEL_X_DIMENSIONS__ +__GO_DATA_MODEL_Y_DIMENSIONS__ + +__GO_MATPLOT_TRANSLATE__ +__GO_MATPLOT_SCALE__ +__GO_DATA_MODEL_MATPLOT_BOUNDS__ +__GO_DATA_MODEL_MATPLOT_TYPE__ +__GO_DATA_MODEL_MATPLOT_GL_TYPE__ +__GO_DATA_MODEL_MATPLOT_DATA_INFOS__ +__GO_DATA_MODEL_MATPLOT_DATA_TYPE__ +__GO_DATA_MODEL_MATPLOT_DATA_ORDER__ +__GO_DATA_MODEL_MATPLOT_IMAGE_TYPE__ +__GO_DATA_MODEL_MATPLOT_IMAGE_DATA__ +__GO_DATA_MODEL_MATPLOT_IMAGE_DATASIZE__ + +__GO_REFERENCED__ +__GO_VALID__ + +__GO_POSITION__ +__GO_SIZE__ +__GO_CANVAS__ +__GO_AUTORESIZE__ +__GO_VIEWPORT__ +__GO_AXES_SIZE__ +__GO_FIGURE_NAME__ +__GO_NAME__ +__GO_ID__ +__GO_INFO_MESSAGE__ +__GO_COLORMAP__ +__GO_COLORMAP_SIZE__ +__GO_RENDERING_MODE__ +__GO_PIXEL_DRAWING_MODE__ +__GO_ANTIALIASING__ +__GO_IMMEDIATE_DRAWING__ +__GO_BACKGROUND__ +__GO_EVENTHANDLER__ +__GO_EVENTHANDLER_NAME__ +__GO_EVENTHANDLER_ENABLE__ +__GO_TAG__ +__GO_ROTATION_TYPE__ +__GO_RESIZEFCN__ +__GO_CLOSEREQUESTFCN__ +__GO_DEFAULT_AXES__ + +__GO_UPPER_LEFT_POINT__ +__GO_WIDTH__ +__GO_HEIGHT__ +__GO_START_ANGLE__ +__GO_END_ANGLE__ +__GO_ARC_DRAWING_METHOD__ + +__GO_X_AXIS_VISIBLE__ +__GO_X_AXIS_REVERSE__ +__GO_X_AXIS_GRID_COLOR__ +__GO_X_AXIS_GRID_THICKNESS__ +__GO_X_AXIS_GRID_STYLE__ +__GO_X_AXIS_LABEL__ +__GO_X_AXIS_LOCATION__ +__GO_X_AXIS_LOG_FLAG__ +__GO_X_AXIS_TICKS__ +__GO_X_AXIS_FORMAT__ +__GO_X_AXIS_ST_FACTORS__ +__GO_X_AXIS_AUTO_TICKS__ +__GO_X_AXIS_NUMBER_TICKS__ +__GO_X_AXIS_TICKS_LOCATIONS__ +__GO_X_AXIS_TICKS_LABELS__ +__GO_X_AXIS_SUBTICKS__ + +__GO_Y_AXIS_VISIBLE__ +__GO_Y_AXIS_REVERSE__ +__GO_Y_AXIS_GRID_COLOR__ +__GO_Y_AXIS_GRID_THICKNESS__ +__GO_Y_AXIS_GRID_STYLE__ +__GO_Y_AXIS_LABEL__ +__GO_Y_AXIS_LOCATION__ +__GO_Y_AXIS_LOG_FLAG__ +__GO_Y_AXIS_TICKS__ +__GO_Y_AXIS_FORMAT__ +__GO_Y_AXIS_ST_FACTORS__ +__GO_Y_AXIS_AUTO_TICKS__ +__GO_Y_AXIS_NUMBER_TICKS__ +__GO_Y_AXIS_TICKS_LOCATIONS__ +__GO_Y_AXIS_TICKS_LABELS__ +__GO_Y_AXIS_SUBTICKS__ + +__GO_Z_AXIS_VISIBLE__ +__GO_Z_AXIS_REVERSE__ +__GO_Z_AXIS_GRID_COLOR__ +__GO_Z_AXIS_GRID_THICKNESS__ +__GO_Z_AXIS_GRID_STYLE__ +__GO_Z_AXIS_LABEL__ +__GO_Z_AXIS_LOCATION__ +__GO_Z_AXIS_LOG_FLAG__ +__GO_Z_AXIS_TICKS__ +__GO_Z_AXIS_FORMAT__ +__GO_Z_AXIS_ST_FACTORS__ +__GO_Z_AXIS_AUTO_TICKS__ +__GO_Z_AXIS_NUMBER_TICKS__ +__GO_Z_AXIS_TICKS_LOCATIONS__ +__GO_Z_AXIS_TICKS_LABELS__ +__GO_Z_AXIS_SUBTICKS__ + +__GO_AUTO_SUBTICKS__ + +__GO_GRID_POSITION__ +__GO_TITLE__ +__GO_AUTO_CLEAR__ +__GO_FILLED__ +__GO_CAMERA__ +__GO_VIEW__ +__GO_ISOVIEW__ +__GO_CUBE_SCALING__ +__GO_ROTATION_ANGLES__ +__GO_ROTATION_ANGLES_3D__ +__GO_BOX_TYPE__ +__GO_HIDDEN_AXIS_COLOR__ +__GO_X_TIGHT_LIMITS__ +__GO_Y_TIGHT_LIMITS__ +__GO_Z_TIGHT_LIMITS__ +__GO_DATA_BOUNDS__ +__GO_REAL_DATA_BOUNDS__ +__GO_ZOOM_ENABLED__ +__GO_ZOOM_BOX__ +__GO_AUTO_SCALE__ +__GO_FIRST_PLOT__ +__GO_MARGINS__ +__GO_AUTO_MARGINS__ +__GO_AXES_BOUNDS__ + +__GO_CLIP_PROPERTY__ +__GO_CLIP_STATE__ +__GO_CLIP_BOX__ +__GO_CLIP_BOX_SET__ + +__GO_LINE__ +__GO_LINE_MODE__ +__GO_LINE_STYLE__ +__GO_LINE_THICKNESS__ +__GO_LINE_COLOR__ +__GO_FILL_MODE__ +__GO_MARK__ +__GO_MARK_MODE__ +__GO_MARK_STYLE__ +__GO_MARK_SIZE_UNIT__ +__GO_MARK_SIZE__ +__GO_MARK_FOREGROUND__ +__GO_MARK_BACKGROUND__ +__GO_MARK_OFFSET__ +__GO_MARK_STRIDE__ +__GO_SELECTED__ + +__GO_TICKS_DIRECTION__ +__GO_X_NUMBER_TICKS__ +__GO_Y_NUMBER_TICKS__ +__GO_X_TICKS_COORDS__ +__GO_Y_TICKS_COORDS__ +__GO_TICKS_COLOR__ +__GO_TICKS_SEGMENT__ +__GO_TICKS_STYLE__ +__GO_SUBTICKS__ +__GO_NUMBER_TICKS_LABELS__ +__GO_TICKS_LABELS__ +__GO_FORMATN__ +__GO_FONT__ +__GO_FONT_STYLE__ +__GO_FONT_SIZE__ +__GO_FONT_COLOR__ +__GO_FONT_FRACTIONAL__ + +__GO_Z_BOUNDS__ +__GO_OUTSIDE_COLOR__ +__GO_COLOR_RANGE__ + +__GO_DATA_MAPPING__ + +__GO_FONT_ANGLE__ +__GO_AUTO_POSITION__ +__GO_CORNERS__ +__GO_AUTO_ROTATION__ + +__GO_LINKS__ +__GO_LINKS_COUNT__ +__GO_LEGEND_LOCATION__ +__GO_MARKS_COUNT__ +__GO_LINE_WIDTH__ + +__GO_CLOSED__ +__GO_ARROW_SIZE_FACTOR__ +__GO_POLYLINE_STYLE__ +__GO_INTERP_COLOR_VECTOR__ +__GO_INTERP_COLOR_VECTOR_SET__ +__GO_INTERP_COLOR_MODE__ +__GO_X_SHIFT__ +__GO_Y_SHIFT__ +__GO_Z_SHIFT__ +__GO_BAR_WIDTH__ + +__GO_SURFACE_MODE__ +__GO_COLOR_MODE__ +__GO_COLOR_FLAG__ + +__GO_ALIGNMENT__ +__GO_BOX__ +__GO_TEXT_BOX__ +__GO_TEXT_BOX_MODE__ +__GO_AUTO_DIMENSIONING__ + +__GO_FORMATTED_TEXT__ +__GO_TEXT_ARRAY_DIMENSIONS__ +__GO_TEXT_STRINGS__ + +__GO_BASE__ +__GO_BASE_X__ +__GO_BASE_Y__ +__GO_BASE_Z__ +__GO_DIRECTION__ +__GO_DIRECTION_X__ +__GO_DIRECTION_Y__ +__GO_DIRECTION_Z__ +__GO_ARROW_SIZE__ +__GO_SEGS_COLORS__ + +__GO_COLORED__ + +__GO_ARROWS__ +__GO_NUMBER_ARROWS__ +__GO_CHAMP_DIMENSIONS__ +__GO_BOUNDING_BOX__ +__GO_MAX_LENGTH__ +__GO_MAX_USABLE_LENGTH__ + +__GO_HIDDEN_COLOR__ + +__GO_STYLE__ +__GO_UI_CHECKBOX__ +__GO_UI_EDIT__ +__GO_UI_SPINNER__ +__GO_UI_FRAME__ +__GO_UI_FRAME_SCROLLABLE__ +__GO_UI_IMAGE__ +__GO_UI_LISTBOX__ +__GO_UI_POPUPMENU__ +__GO_UI_PUSHBUTTON__ +__GO_UI_RADIOBUTTON__ +__GO_UI_SLIDER__ +__GO_UI_TABLE__ +__GO_UI_TEXT__ +__GO_UI_LAYER__ + +__GO_UI_BACKGROUNDCOLOR__ +__GO_UI_ENABLE__ +__GO_UI_FONTANGLE__ +__GO_UI_FONTNAME__ +__GO_UI_FONTSIZE__ +__GO_UI_FONTUNITS__ +__GO_UI_FONTWEIGHT__ +__GO_UI_FOREGROUNDCOLOR__ +__GO_UI_HORIZONTALALIGNMENT__ +__GO_UI_LISTBOXTOP__ +__GO_UI_LISTBOXTOP_SIZE__ +__GO_UI_MAX__ +__GO_UI_MIN__ +__GO_UI_RELIEF__ +__GO_UI_STRING__ +__GO_UI_TAB_STRING__ +__GO_UI_STRING_SIZE__ +__GO_UI_STRING_COLNB__ +__GO_UI_TOOLTIPSTRING__ +__GO_UI_TOOLTIPSTRING_SIZE__ +__GO_UI_SLIDERSTEP__ +__GO_UI_UNITS__ +__GO_UI_VALUE__ +__GO_UI_TAB_VALUE__ +__GO_UI_VALUE_SIZE__ +__GO_UI_VERTICALALIGNMENT__ + +__GO_UIPARENTMENU__ +__GO_UICHILDMENU__ +__GO_UICHECKEDMENU__ +__GO_UI_CHECKED__ +__GO_UI_LABEL__ +__GO_UI_MNEMONIC__ +__GO_UI_ACCELERATOR__ +__GO_UI_SEPARATOR__ +__GO_UI_ICON__ + +__GO_CONSOLE__ +__GO_SHOWHIDDENHANDLES__ +__GO_SHOWHIDDENPROPERTIES__ +__GO_USEDEPRECATEDLF__ + +__GO_WAITBAR__ +__GO_PROGRESSIONBAR__ +__GO_UI_MESSAGE__ +__GO_UI_MESSAGE_SIZE__ + +__GO_DATATIP__ +__GO_DATATIP_DATA__ +__GO_DATATIP_ORIENTATION__ +__GO_DATATIP_3COMPONENT__ +__GO_DATATIP_AUTOORIENTATION__ +__GO_DATATIP_INTERP_MODE__ +__GO_DATATIP_DISPLAY_FNC__ +__GO_DATATIP_BOX_MODE__ +__GO_DATATIP_LABEL_MODE__ +__GO_DATATIP_MARK__ + +__GO_AMBIENTCOLOR__ +__GO_DIFFUSECOLOR__ +__GO_SPECULARCOLOR__ + +__GO_COLOR_MATERIAL__ +__GO_MATERIAL_SHININESS__ + +__GO_LIGHT__ +__GO_LIGHT_TYPE__ + +__GO_DATATIPS__ +__GO_DATATIPS_COUNT__ +__GO_DATATIP_INDEXES__ + +__GO_DATA_MODEL_DISPLAY_FUNCTION__ +__GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ + +__GO_RESIZE__ +__GO_TOOLBAR__ +__GO_TOOLBAR_VISIBLE__ +__GO_MENUBAR__ +__GO_MENUBAR_VISIBLE__ +__GO_INFOBAR_VISIBLE__ +__GO_DOCKABLE__ +__GO_LAYOUT__ +__GO_LAYOUT_SET__ +__GO_UI_TAB__ + +__GO_UI_GRIDBAG_GRID__ +__GO_UI_GRIDBAG_WEIGHT__ +__GO_UI_GRIDBAG_FILL__ +__GO_UI_GRIDBAG_ANCHOR__ +__GO_UI_GRIDBAG_PADDING__ +__GO_UI_GRIDBAG_PREFERREDSIZE__ + +__GO_UI_GRID_GRID__ +__GO_UI_GRID_PADDING__ + +__GO_UI_BORDER_POSITION__ +__GO_UI_BORDER_PREFERREDSIZE__ + + +__GO_GRID_OPT_GRID__ +__GO_GRID_OPT_PADDING__ +__GO_BORDER_OPT_PADDING__ + +__GO_UI_FRAME_BORDER__ +__GO_UI_FRAME_BORDER_COLOR__ +__GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ +__GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ +__GO_UI_FRAME_BORDER_IN_BORDER__ +__GO_UI_FRAME_BORDER_JUSTIFICATION__ +__GO_UI_FRAME_BORDER_OUT_BORDER__ +__GO_UI_FRAME_BORDER_ROUNDED__ +__GO_UI_FRAME_BORDER_SHADOW_IN__ +__GO_UI_FRAME_BORDER_SHADOW_OUT__ +__GO_UI_FRAME_BORDER_TITLE__ +__GO_UI_FRAME_BORDER_POSITION__ +__GO_UI_FRAME_BORDER_STYLE__ +__GO_UI_GROUP_NAME__ +__GO_UI_TITLE_POSITION__ +__GO_UI_TITLE_SCROLL__ +__GO_UI_FRAME_BORDER_TYPE__ +__GO_UI_SCROLLABLE__ + |