From: <br...@us...> - 2008-09-21 02:15:44
|
Revision: 3648 http://openvrml.svn.sourceforge.net/openvrml/?rev=3648&view=rev Author: braden Date: 2008-09-21 02:15:35 +0000 (Sun, 21 Sep 2008) Log Message: ----------- Moved X3D Geometry2D node implementations into a convenience library. Modified Paths: -------------- trunk/ChangeLog trunk/ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln trunk/src/Makefile.am trunk/src/libopenvrml/openvrml/x3d_geometry2d.cpp Added Paths: ----------- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj trunk/src/node/x3d-geometry2d/ trunk/src/node/x3d-geometry2d/arc2d.cpp trunk/src/node/x3d-geometry2d/arc2d.h trunk/src/node/x3d-geometry2d/arc_close2d.cpp trunk/src/node/x3d-geometry2d/arc_close2d.h trunk/src/node/x3d-geometry2d/circle2d.cpp trunk/src/node/x3d-geometry2d/circle2d.h trunk/src/node/x3d-geometry2d/disk2d.cpp trunk/src/node/x3d-geometry2d/disk2d.h trunk/src/node/x3d-geometry2d/polyline2d.cpp trunk/src/node/x3d-geometry2d/polyline2d.h trunk/src/node/x3d-geometry2d/polypoint2d.cpp trunk/src/node/x3d-geometry2d/polypoint2d.h trunk/src/node/x3d-geometry2d/rectangle2d.cpp trunk/src/node/x3d-geometry2d/rectangle2d.h trunk/src/node/x3d-geometry2d/triangle_set2d.cpp trunk/src/node/x3d-geometry2d/triangle_set2d.h Removed Paths: ------------- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj trunk/src/node/x3d-geometry2d/arc2d.cpp trunk/src/node/x3d-geometry2d/arc2d.h trunk/src/node/x3d-geometry2d/arc_close2d.cpp trunk/src/node/x3d-geometry2d/arc_close2d.h trunk/src/node/x3d-geometry2d/circle2d.cpp trunk/src/node/x3d-geometry2d/circle2d.h trunk/src/node/x3d-geometry2d/disk2d.cpp trunk/src/node/x3d-geometry2d/disk2d.h trunk/src/node/x3d-geometry2d/polyline2d.cpp trunk/src/node/x3d-geometry2d/polyline2d.h trunk/src/node/x3d-geometry2d/polypoint2d.cpp trunk/src/node/x3d-geometry2d/polypoint2d.h trunk/src/node/x3d-geometry2d/rectangle2d.cpp trunk/src/node/x3d-geometry2d/rectangle2d.h trunk/src/node/x3d-geometry2d/triangle_set2d.cpp trunk/src/node/x3d-geometry2d/triangle_set2d.h Property Changed: ---------------- trunk/ trunk/src/node/x3d-core/metadata_double.cpp trunk/src/node/x3d-core/metadata_double.h trunk/src/node/x3d-core/metadata_float.cpp trunk/src/node/x3d-core/metadata_float.h trunk/src/node/x3d-core/metadata_integer.cpp trunk/src/node/x3d-core/metadata_integer.h trunk/src/node/x3d-core/metadata_set.cpp trunk/src/node/x3d-core/metadata_set.h trunk/src/node/x3d-core/metadata_string.cpp trunk/src/node/x3d-core/metadata_string.h trunk/src/node/x3d-grouping/static_group.cpp trunk/src/node/x3d-grouping/static_group.h trunk/src/node/x3d-networking/load_sensor.cpp trunk/src/node/x3d-networking/load_sensor.h trunk/src/node/x3d-rendering/color_rgba.cpp trunk/src/node/x3d-rendering/color_rgba.h trunk/src/node/x3d-rendering/indexed_triangle_fan_set.cpp trunk/src/node/x3d-rendering/indexed_triangle_fan_set.h trunk/src/node/x3d-rendering/indexed_triangle_set.cpp trunk/src/node/x3d-rendering/indexed_triangle_set.h trunk/src/node/x3d-rendering/indexed_triangle_strip_set.cpp trunk/src/node/x3d-rendering/indexed_triangle_strip_set.h trunk/src/node/x3d-rendering/triangle_fan_set.cpp trunk/src/node/x3d-rendering/triangle_fan_set.h trunk/src/node/x3d-rendering/triangle_set.cpp trunk/src/node/x3d-rendering/triangle_set.h trunk/src/node/x3d-rendering/triangle_strip_set.cpp trunk/src/node/x3d-rendering/triangle_strip_set.h trunk/src/node/x3d-shape/fill_properties.cpp trunk/src/node/x3d-shape/fill_properties.h trunk/src/node/x3d-shape/line_properties.cpp trunk/src/node/x3d-shape/line_properties.h Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo - /branches/node-modules:3622-3623,3632-3635,3637-3638,3640-3641,3643-3644 + /branches/node-modules:3622-3623,3632-3635,3637-3638,3640-3641,3643-3644,3646-3647 Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-09-21 02:07:30 UTC (rev 3647) +++ trunk/ChangeLog 2008-09-21 02:15:35 UTC (rev 3648) @@ -1,3 +1,32 @@ +2008-09-20 Braden McDaniel <br...@en...> + + Moved X3D Geometry2D node implementations into a convenience + library. + + * ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln: Added + x3d-geometry2d static library project. + * ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj + * src/Makefile.am: Added convenience library + node/x3d-shape/libx3d-geometry2d.la. + * src/libopenvrml/openvrml/x3d_geometry2d.cpp: Moved node + implementations to separate files. + * src/node/x3d-geometry2d/rectangle2d.h + * src/node/x3d-geometry2d/arc2d.h + * src/node/x3d-geometry2d/triangle_set2d.cpp + * src/node/x3d-geometry2d/triangle_set2d.h + * src/node/x3d-geometry2d/arc_close2d.cpp + * src/node/x3d-geometry2d/disk2d.cpp + * src/node/x3d-geometry2d/polyline2d.cpp + * src/node/x3d-geometry2d/polypoint2d.cpp + * src/node/x3d-geometry2d/arc_close2d.h + * src/node/x3d-geometry2d/disk2d.h + * src/node/x3d-geometry2d/polyline2d.h + * src/node/x3d-geometry2d/circle2d.cpp + * src/node/x3d-geometry2d/polypoint2d.h + * src/node/x3d-geometry2d/rectangle2d.cpp + * src/node/x3d-geometry2d/arc2d.cpp + * src/node/x3d-geometry2d/circle2d.h + 2008-09-18 Braden McDaniel <br...@en...> Moved X3D Shape node implementations into a convenience Modified: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln 2008-09-21 02:07:30 UTC (rev 3647) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/OpenVRML.sln 2008-09-21 02:15:35 UTC (rev 3648) @@ -4,8 +4,10 @@ ProjectSection(ProjectDependencies) = postProject {78133A10-3ADF-474C-B32A-74124A976482} = {78133A10-3ADF-474C-B32A-74124A976482} {430B1A48-8E64-43DF-8CC4-AD09C41BA735} = {430B1A48-8E64-43DF-8CC4-AD09C41BA735} + {61A31C6F-23A1-4243-A338-EF749912592A} = {61A31C6F-23A1-4243-A338-EF749912592A} {7DAC4CA0-9382-4ED0-A26E-A5F84776054C} = {7DAC4CA0-9382-4ED0-A26E-A5F84776054C} {5ED398C0-0529-40D5-AB2C-C7EF0769002B} = {5ED398C0-0529-40D5-AB2C-C7EF0769002B} + {95D646C4-B759-469D-BDBB-A370A5778CA5} = {95D646C4-B759-469D-BDBB-A370A5778CA5} {1D32E4EB-6613-4270-8295-7113712BC6C5} = {1D32E4EB-6613-4270-8295-7113712BC6C5} EndProjectSection EndProject @@ -53,6 +55,8 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x3d-shape", "x3d-shape\x3d-shape.vcproj", "{95D646C4-B759-469D-BDBB-A370A5778CA5}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x3d-geometry2d", "x3d-geometry2d\x3d-geometry2d.vcproj", "{61A31C6F-23A1-4243-A338-EF749912592A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -111,6 +115,10 @@ {95D646C4-B759-469D-BDBB-A370A5778CA5}.Debug|Win32.Build.0 = Debug|Win32 {95D646C4-B759-469D-BDBB-A370A5778CA5}.Release|Win32.ActiveCfg = Release|Win32 {95D646C4-B759-469D-BDBB-A370A5778CA5}.Release|Win32.Build.0 = Release|Win32 + {61A31C6F-23A1-4243-A338-EF749912592A}.Debug|Win32.ActiveCfg = Debug|Win32 + {61A31C6F-23A1-4243-A338-EF749912592A}.Debug|Win32.Build.0 = Debug|Win32 + {61A31C6F-23A1-4243-A338-EF749912592A}.Release|Win32.ActiveCfg = Release|Win32 + {61A31C6F-23A1-4243-A338-EF749912592A}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Property changes on: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d ___________________________________________________________________ Added: svn:ignore + Debug Release x3d-geometry2d.vcproj.*.user Deleted: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj =================================================================== --- branches/node-modules/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj 2008-09-21 02:07:30 UTC (rev 3647) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj 2008-09-21 02:15:35 UTC (rev 3648) @@ -1,235 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="9.00" - Name="x3d-geometry2d" - ProjectGUID="{61A31C6F-23A1-4243-A338-EF749912592A}" - RootNamespace="x3dgeometry2d" - Keyword="Win32Proj" - TargetFrameworkVersion="196613" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="4" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\openvrml;..\..\..\..\..\src\libopenvrml" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;OPENVRML_BUILD_DLL" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - DebugInformationFormat="4" - DisableSpecificWarnings="4226;4250;4251;4275;4290;4355;4661;4800" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="4" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - EnableIntrinsicFunctions="true" - AdditionalIncludeDirectories="..\openvrml;..\..\..\..\..\src\libopenvrml" - PreprocessorDefinitions="WIN32;NDEBUG;_LIB;OPENVRML_BUILD_DLL" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - WarningLevel="3" - DebugInformationFormat="3" - DisableSpecificWarnings="4226;4250;4251;4275;4290;4355;4661;4800" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc_close2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\circle2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\disk2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polyline2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polypoint2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\rectangle2d.cpp" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\triangle_set2d.cpp" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc_close2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\circle2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\disk2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polyline2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polypoint2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\rectangle2d.h" - > - </File> - <File - RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\triangle_set2d.h" - > - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Copied: trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj (from rev 3647, branches/node-modules/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj) =================================================================== --- trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj (rev 0) +++ trunk/ide-projects/Windows/VisualC9_0/OpenVRML/x3d-geometry2d/x3d-geometry2d.vcproj 2008-09-21 02:15:35 UTC (rev 3648) @@ -0,0 +1,235 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="x3d-geometry2d" + ProjectGUID="{61A31C6F-23A1-4243-A338-EF749912592A}" + RootNamespace="x3dgeometry2d" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\openvrml;..\..\..\..\..\src\libopenvrml" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;OPENVRML_BUILD_DLL" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="4" + DisableSpecificWarnings="4226;4250;4251;4275;4290;4355;4661;4800" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" + AdditionalIncludeDirectories="..\openvrml;..\..\..\..\..\src\libopenvrml" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;OPENVRML_BUILD_DLL" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="3" + DisableSpecificWarnings="4226;4250;4251;4275;4290;4355;4661;4800" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc_close2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\circle2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\disk2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polyline2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polypoint2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\rectangle2d.cpp" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\triangle_set2d.cpp" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\arc_close2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\circle2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\disk2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polyline2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\polypoint2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\rectangle2d.h" + > + </File> + <File + RelativePath="..\..\..\..\..\src\node\x3d-geometry2d\triangle_set2d.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2008-09-21 02:07:30 UTC (rev 3647) +++ trunk/src/Makefile.am 2008-09-21 02:15:35 UTC (rev 3648) @@ -9,7 +9,8 @@ node/x3d-networking/libx3d-networking.la \ node/x3d-grouping/libx3d-grouping.la \ node/x3d-rendering/libx3d-rendering.la \ - node/x3d-shape/libx3d-shape.la + node/x3d-shape/libx3d-shape.la \ + node/x3d-geometry2d/libx3d-geometry2d.la if ENABLE_GL_RENDERER lib_LTLIBRARIES += libopenvrml-gl/libopenvrml-gl.la endif @@ -147,6 +148,7 @@ node/x3d-grouping/libx3d-grouping.la \ node/x3d-rendering/libx3d-rendering.la \ node/x3d-shape/libx3d-shape.la \ + node/x3d-geometry2d/libx3d-geometry2d.la \ -lboost_thread$(BOOST_LIB_SUFFIX) \ -lboost_filesystem$(BOOST_LIB_SUFFIX) \ -lltdl @@ -392,6 +394,29 @@ node/x3d-shape/line_properties.cpp \ node/x3d-shape/line_properties.h +node_x3d_geometry2d_libx3d_geometry2d_la_CPPFLAGS = \ + -I$(top_builddir)/src/libopenvrml \ + -I$(top_srcdir)/src/libopenvrml +node_x3d_geometry2d_libx3d_geometry2d_la_CXXFLAGS = \ + $(PTHREAD_CFLAGS) +node_x3d_geometry2d_libx3d_geometry2d_la_SOURCES = \ + node/x3d-geometry2d/arc2d.cpp \ + node/x3d-geometry2d/arc2d.h \ + node/x3d-geometry2d/arc_close2d.cpp \ + node/x3d-geometry2d/arc_close2d.h \ + node/x3d-geometry2d/circle2d.cpp \ + node/x3d-geometry2d/circle2d.h \ + node/x3d-geometry2d/disk2d.cpp \ + node/x3d-geometry2d/disk2d.h \ + node/x3d-geometry2d/polyline2d.cpp \ + node/x3d-geometry2d/polyline2d.h \ + node/x3d-geometry2d/polypoint2d.cpp \ + node/x3d-geometry2d/polypoint2d.h \ + node/x3d-geometry2d/rectangle2d.cpp \ + node/x3d-geometry2d/rectangle2d.h \ + node/x3d-geometry2d/triangle_set2d.cpp \ + node/x3d-geometry2d/triangle_set2d.h + libopenvrml_gl_libopenvrml_gl_la_CPPFLAGS = \ -I$(top_builddir)/src/libopenvrml \ -I$(top_srcdir)/src/libopenvrml \ Modified: trunk/src/libopenvrml/openvrml/x3d_geometry2d.cpp =================================================================== --- trunk/src/libopenvrml/openvrml/x3d_geometry2d.cpp 2008-09-21 02:07:30 UTC (rev 3647) +++ trunk/src/libopenvrml/openvrml/x3d_geometry2d.cpp 2008-09-21 02:15:35 UTC (rev 3648) @@ -2,7 +2,7 @@ // // OpenVRML // -// Copyright 2006, 2007 Braden McDaniel +// Copyright 2006, 2007, 2008 Braden McDaniel // // This library is free software; you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as published by @@ -27,161 +27,20 @@ # include "browser.h" # include "node_impl_util.h" # include "x3d_geometry2d.h" +# include <x3d-geometry2d/arc2d.h> +# include <x3d-geometry2d/arc_close2d.h> +# include <x3d-geometry2d/circle2d.h> +# include <x3d-geometry2d/disk2d.h> +# include <x3d-geometry2d/polyline2d.h> +# include <x3d-geometry2d/polypoint2d.h> +# include <x3d-geometry2d/rectangle2d.h> +# include <x3d-geometry2d/triangle_set2d.h> -using namespace openvrml; -using namespace openvrml::node_impl_util; -using namespace std; - -namespace { - - /** - * @brief Class object for Arc2D nodes. - */ - class OPENVRML_LOCAL arc2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit arc2d_metatype(openvrml::browser & browser); - virtual ~arc2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for ArcClose2D nodes. - */ - class OPENVRML_LOCAL arc_close2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit arc_close2d_metatype(openvrml::browser & browser); - virtual ~arc_close2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for Circle2D nodes. - */ - class OPENVRML_LOCAL circle2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit circle2d_metatype(openvrml::browser & browser); - virtual ~circle2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for Disk2D nodes. - */ - class OPENVRML_LOCAL disk2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit disk2d_metatype(openvrml::browser & browser); - virtual ~disk2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for Polyline2D nodes. - */ - class OPENVRML_LOCAL polyline2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit polyline2d_metatype(openvrml::browser & browser); - virtual ~polyline2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for Polypoint2D nodes. - */ - class OPENVRML_LOCAL polypoint2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit polypoint2d_metatype(openvrml::browser & browser); - virtual ~polypoint2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for Rectangle2D nodes. - */ - class OPENVRML_LOCAL rectangle2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit rectangle2d_metatype(openvrml::browser & browser); - virtual ~rectangle2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; - - - /** - * @brief Class object for TriangleSet2D nodes. - */ - class OPENVRML_LOCAL triangle_set2d_metatype : public node_metatype { - public: - static const char * const id; - - explicit triangle_set2d_metatype(openvrml::browser & browser); - virtual ~triangle_set2d_metatype() OPENVRML_NOTHROW; - - private: - virtual const boost::shared_ptr<node_type> - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc); - }; -} - void register_geometry2d_node_metatypes(openvrml::browser & b) { using boost::shared_ptr; using openvrml::node_metatype; + using namespace openvrml_node_x3d_geometry2d; b.add_node_metatype(arc2d_metatype::id, shared_ptr<node_metatype>(new arc2d_metatype(b))); b.add_node_metatype(arc_close2d_metatype::id, @@ -197,1493 +56,6 @@ b.add_node_metatype(rectangle2d_metatype::id, shared_ptr<node_metatype>(new rectangle2d_metatype(b))); b.add_node_metatype(triangle_set2d_metatype::id, - shared_ptr<node_metatype>(new triangle_set2d_metatype(b))); + shared_ptr<node_metatype>( + new triangle_set2d_metatype(b))); } - -namespace { - - using namespace openvrml_; - - class OPENVRML_LOCAL arc2d_node : public abstract_node<arc2d_node>, - public geometry_node, - public child_node { - friend class arc2d_metatype; - - sffloat end_angle_; - sffloat radius_; - sffloat start_angle_; - - public: - arc2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~arc2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - - class OPENVRML_LOCAL arc_close2d_node : - public abstract_node<arc_close2d_node>, - public geometry_node, - public child_node { - - friend class arc_close2d_metatype; - - sfstring closure_type_; - sffloat end_angle_; - sffloat radius_; - sfbool solid_; - sffloat start_angle_; - - public: - arc_close2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~arc_close2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - - class OPENVRML_LOCAL circle2d_node : public abstract_node<circle2d_node>, - public geometry_node, - public child_node { - friend class circle2d_metatype; - - sffloat radius_; - - public: - circle2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~circle2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - - class OPENVRML_LOCAL disk2d_node : public abstract_node<disk2d_node>, - public geometry_node, - public child_node { - friend class disk2d_metatype; - - sffloat inner_radius_; - sffloat outer_radius_; - sfbool solid_; - - public: - disk2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~disk2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - - class OPENVRML_LOCAL polyline2d_node : - public abstract_node<polyline2d_node>, - public geometry_node, - public child_node { - - friend class polyline2d_metatype; - - mfvec2f line_segments_; - - public: - polyline2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~polyline2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - class OPENVRML_LOCAL polypoint2d_node : - public abstract_node<polypoint2d_node>, - public geometry_node, - public child_node { - - friend class polypoint2d_metatype; - - mfvec2f point_; - - public: - polypoint2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~polypoint2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - class OPENVRML_LOCAL rectangle2d_node : - public abstract_node<rectangle2d_node>, - public geometry_node, - public child_node { - - friend class rectangle2d_metatype; - - sfvec2f size_; - sfbool solid_; - - public: - rectangle2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~rectangle2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - class OPENVRML_LOCAL triangle_set2d_node : - public abstract_node<triangle_set2d_node>, - public geometry_node, - public child_node { - - friend class triangle_set2d_metatype; - - exposedfield<mfvec2f> vertices_; - sfbool solid_; - - public: - triangle_set2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope); - virtual ~triangle_set2d_node() OPENVRML_NOTHROW; - - virtual bool modified() const; - private: - virtual viewer::object_t do_render_geometry(openvrml::viewer & viewer, - rendering_context context); - }; - - - /** - * @brief @c node_metatype identifier. - */ - const char * const arc2d_metatype::id = "urn:X-openvrml:node:Arc2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c arc2d_metatype. - */ - arc2d_metatype::arc2d_metatype(openvrml::browser & browser): - node_metatype(arc2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - arc2d_metatype::~arc2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type_ptr to a node_type capable of creating Arc2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not supported by arc2d_metatype. - * @exception std::bad_alloc if memory allocation fails. - */ - const boost::shared_ptr<openvrml::node_type> - arc2d_metatype::do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc) - { - typedef boost::array<node_interface, 4> supported_interfaces_t; - static const supported_interfaces_t supported_interfaces = { - node_interface(node_interface::exposedfield_id, - field_value::sfnode_id, - "metadata"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "endAngle"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "radius"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "startAngle") - }; - typedef node_type_impl<arc2d_node> node_type_t; - - const boost::shared_ptr<node_type> type(new node_type_t(*this, id)); - node_type_t & the_node_type = static_cast<node_type_t &>(*type); - - for (node_interface_set::const_iterator interface_(interfaces.begin()); - interface_ != interfaces.end(); - ++interface_) { - supported_interfaces_t::const_iterator supported_interface = - supported_interfaces.begin() - 1; - if (*interface_ == *++supported_interface) { - the_node_type.add_exposedfield( - supported_interface->field_type, - supported_interface->id, - &arc2d_node::metadata); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc2d_node::end_angle_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc2d_node::radius_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc2d_node::start_angle_); - } else { - throw unsupported_interface(*interface_); - } - } - return type; - } - - /** - * @class arc2d_node - * - * @brief Represents Arc2D node instances. - */ - - /** - * @var arc2d_node::arc2d_metatype - * - * @brief Class object for Arc2D nodes. - */ - - /** - * @var arc2d_node::end_angle_ - * - * @brief end_angle field - */ - - /** - * @var arc2d_node::radius_ - * - * @brief radius field - */ - - /** - * @var arc2d_node::start_angle_ - * - * @brief start_angle field - */ - - - /** - * @brief Insert this geometry into @p viewer's display list. - * - * @param viewer a Viewer. - * @param context the rendering context. - * - * @todo Implement this! - */ - openvrml::viewer::object_t - arc2d_node:: - do_render_geometry(openvrml::viewer & /* viewer */, - const rendering_context /* context */) - { - //TODO: Implement this! - return 0; - } - - - /** - * @brief Determine whether the node has been modified. - * - * @return @c true if the node or one of its children has been modified, - * @c false otherwise. - */ - bool arc2d_node::modified() const - { - return this->node::modified(); - } - - /** - * @brief Construct. - * - * @param type the node_type associated with this node. - * @param scope the scope to which the node belongs. - */ - arc2d_node::arc2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope): - node(type, scope), - bounded_volume_node(type, scope), - abstract_node<self_t>(type, scope), - geometry_node(type, scope), - child_node(type, scope), - end_angle_(1.57079633f), - radius_(1) - {} - - /** - * @brief Destroy. - */ - arc2d_node::~arc2d_node() OPENVRML_NOTHROW - {} - - - /** - * @brief @c node_metatype identifier. - */ - const char * const arc_close2d_metatype::id = - "urn:X-openvrml:node:ArcClose2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c arc_close2d_metatype. - */ - arc_close2d_metatype::arc_close2d_metatype(openvrml::browser & browser): - node_metatype(arc_close2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - arc_close2d_metatype::~arc_close2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type_ptr to a node_type capable of creating ArcClose2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not supported by arc_close2d_metatype. - * @exception std::bad_alloc if memory allocation fails. - */ - const boost::shared_ptr<openvrml::node_type> - arc_close2d_metatype:: - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc) - { - typedef boost::array<node_interface, 6> supported_interfaces_t; - static const supported_interfaces_t supported_interfaces = { - node_interface(node_interface::exposedfield_id, - field_value::sfnode_id, - "metadata"), - node_interface(node_interface::field_id, - field_value::sfstring_id, - "closureType"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "endAngle"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "radius"), - node_interface(node_interface::field_id, - field_value::sfbool_id, - "solid"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "startAngle") - }; - typedef node_type_impl<arc_close2d_node> node_type_t; - - const boost::shared_ptr<node_type> type(new node_type_t(*this, id)); - node_type_t & the_node_type = static_cast<node_type_t &>(*type); - - for (node_interface_set::const_iterator interface_(interfaces.begin()); - interface_ != interfaces.end(); - ++interface_) { - supported_interfaces_t::const_iterator supported_interface = - supported_interfaces.begin() - 1; - if (*interface_ == *++supported_interface) { - the_node_type.add_exposedfield( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::metadata); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::closure_type_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::end_angle_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::radius_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::solid_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &arc_close2d_node::start_angle_); - } else { - throw unsupported_interface(*interface_); - } - } - return type; - } - - /** - * @class arc_close2d_node - * - * @brief Represents ArcClose2D node instances. - */ - - /** - * @var arc_close2d_node::arc_close2d_metatype - * - * @brief Class object for ArcClose2D nodes. - */ - - /** - * @var arc_close2d_node::closure_type_ - * - * @brief closure_type field - */ - - /** - * @var arc_close2d_node::end_angle_ - * - * @brief end_angle field - */ - - /** - * @var arc_close2d_node::radius_ - * - * @brief radius field - */ - - /** - * @var arc_close2d_node::solid_ - * - * @brief solid field - */ - - /** - * @var arc_close2d_node::start_angle_ - * - * @brief start_angle field - */ - - - /** - * @brief Insert this geometry into @p viewer's display list. - * - * @param viewer a @c viewer. - * @param context the rendering context. - * - * @todo Implement this! - */ - openvrml::viewer::object_t - arc_close2d_node:: - do_render_geometry(openvrml::viewer & /* viewer */, - const rendering_context /* context */) - { - //TODO: Implement this! - return 0; - } - - - /** - * @brief Determine whether the node has been modified. - * - * @return @c true if the node or one of its children has been modified, - * @c false otherwise. - */ - bool arc_close2d_node::modified() const - { - return this->node::modified(); - } - - /** - * @brief Construct. - * - * @param type the node_type associated with this node. - * @param scope the scope to which the node belongs. - */ - arc_close2d_node:: - arc_close2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope): - node(type, scope), - bounded_volume_node(type, scope), - abstract_node<self_t>(type, scope), - geometry_node(type, scope), - child_node(type, scope), - closure_type_("PIE"), - end_angle_(1.57079633f), - radius_(1) - {} - - /** - * @brief Destroy. - */ - arc_close2d_node::~arc_close2d_node() OPENVRML_NOTHROW - {} - - - /** - * @brief @c node_metatype identifier. - */ - const char * const circle2d_metatype::id = "urn:X-openvrml:node:Circle2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c circle2d_metatype. - */ - circle2d_metatype::circle2d_metatype(openvrml::browser & browser): - node_metatype(circle2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - circle2d_metatype::~circle2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type capable of creating Circle2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not supported by circle2d_metatype. - * @exception std::bad_alloc if memory allocation fails. - */ - const boost::shared_ptr<openvrml::node_type> - circle2d_metatype:: - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc) - { - typedef boost::array<node_interface, 2> supported_interfaces_t; - static const supported_interfaces_t supported_interfaces = { - node_interface(node_interface::exposedfield_id, - field_value::sfnode_id, - "metadata"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "radius") - }; - typedef node_type_impl<circle2d_node> node_type_t; - - const boost::shared_ptr<node_type> type(new node_type_t(*this, id)); - node_type_t & the_node_type = static_cast<node_type_t &>(*type); - - for (node_interface_set::const_iterator interface_(interfaces.begin()); - interface_ != interfaces.end(); - ++interface_) { - supported_interfaces_t::const_iterator supported_interface = - supported_interfaces.begin() - 1; - if (*interface_ == *++supported_interface) { - the_node_type.add_exposedfield( - supported_interface->field_type, - supported_interface->id, - &circle2d_node::metadata); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &circle2d_node::radius_); - } else { - throw unsupported_interface(*interface_); - } - } - return type; - } - - /** - * @class circle2d_node - * - * @brief Represents Circle2D node instances. - */ - - /** - * @var circle2d_node::circle2d_metatype - * - * @brief Class object for Circle2D nodes. - */ - - /** - * @var circle2d_node::radius_ - * - * @brief radius field - */ - - - /** - * @brief Insert this geometry into @p viewer's display list. - * - * @param viewer a Viewer. - * @param context the rendering context. - * - * @todo Implement this! - */ - openvrml::viewer::object_t - circle2d_node:: - do_render_geometry(openvrml::viewer & /* viewer */, - const rendering_context /* context */) - { - //TODO: Implement this! - return 0; - } - - - /** - * @brief Determine whether the node has been modified. - * - * @return @c true if the node or one of its children has been modified, - * @c false otherwise. - */ - bool circle2d_node::modified() const - { - return this->node::modified(); - } - - /** - * @brief Construct. - * - * @param type the node_type associated with this node. - * @param scope the scope to which the node belongs. - */ - circle2d_node:: - circle2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope): - node(type, scope), - bounded_volume_node(type, scope), - abstract_node<self_t>(type, scope), - geometry_node(type, scope), - child_node(type, scope), - radius_(1) - {} - - /** - * @brief Destroy. - */ - circle2d_node::~circle2d_node() OPENVRML_NOTHROW - {} - - - /** - * @brief @c node_metatype identifier. - */ - const char * const disk2d_metatype::id = "urn:X-openvrml:node:Disk2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c disk2d_metatype. - */ - disk2d_metatype::disk2d_metatype(openvrml::browser & browser): - node_metatype(disk2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - disk2d_metatype::~disk2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type capable of creating Disk2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not supported by disk2d_metatype. - * @exception std::bad_alloc if memory allocation fails. - */ - const boost::shared_ptr<openvrml::node_type> - disk2d_metatype:: - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc) - { - typedef boost::array<node_interface, 4> supported_interfaces_t; - static const supported_interfaces_t supported_interfaces = { - node_interface(node_interface::exposedfield_id, - field_value::sfnode_id, - "metadata"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "innerRadius"), - node_interface(node_interface::field_id, - field_value::sffloat_id, - "outerRadius"), - node_interface(node_interface::field_id, - field_value::sfbool_id, - "solid") - }; - typedef node_type_impl<disk2d_node> node_type_t; - - const boost::shared_ptr<node_type> type(new node_type_t(*this, id)); - node_type_t & the_node_type = static_cast<node_type_t &>(*type); - - for (node_interface_set::const_iterator interface_(interfaces.begin()); - interface_ != interfaces.end(); - ++interface_) { - supported_interfaces_t::const_iterator supported_interface = - supported_interfaces.begin() - 1; - if (*interface_ == *++supported_interface) { - the_node_type.add_exposedfield( - supported_interface->field_type, - supported_interface->id, - &disk2d_node::metadata); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &disk2d_node::inner_radius_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &disk2d_node::outer_radius_); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &disk2d_node::solid_); - } else { - throw unsupported_interface(*interface_); - } - } - return type; - } - - /** - * @class disk2d_node - * - * @brief Represents Disk2D node instances. - */ - - /** - * @var disk2d_node::disk2d_metatype - * - * @brief Class object for Disk2D nodes. - */ - - /** - * @var disk2d_node::inner_radius_ - * - * @brief inner_radius field - */ - - /** - * @var disk2d_node::outer_radius_ - * - * @brief outer_radius field - */ - - /** - * @var disk2d_node::solid_ - * - * @brief solid field - */ - - /** - * @brief Insert this geometry into @p viewer's display list. - * - * @param viewer a Viewer. - * @param context the rendering context. - * - * @todo Implement this! - */ - openvrml::viewer::object_t - disk2d_node:: - do_render_geometry(openvrml::viewer & /* viewer */, - const rendering_context /* context */) - { - //TODO: Implement this! - return 0; - } - - /** - * @brief Determine whether the node has been modified. - * - * @return @c true if the node or one of its children has been modified, - * @c false otherwise. - */ - bool disk2d_node::modified() const - { - return this->node::modified(); - } - - /** - * @brief Construct. - * - * @param type the node_type associated with this node. - * @param scope the scope to which the node belongs. - */ - disk2d_node:: - disk2d_node(const node_type & type, - const boost::shared_ptr<openvrml::scope> & scope): - node(type, scope), - bounded_volume_node(type, scope), - abstract_node<self_t>(type, scope), - geometry_node(type, scope), - child_node(type, scope), - outer_radius_(1) - {} - - /** - * @brief Destroy. - */ - disk2d_node::~disk2d_node() OPENVRML_NOTHROW - {} - - - /** - * @brief @c node_metatype identifier. - */ - const char * const polyline2d_metatype::id = - "urn:X-openvrml:node:Polyline2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c polyline2d_metatype. - */ - polyline2d_metatype::polyline2d_metatype(openvrml::browser & browser): - node_metatype(polyline2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - polyline2d_metatype::~polyline2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type_ptr to a node_type capable of creating Polyline2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not supported by polyline2d_metatype. - * @exception std::bad_alloc if memory allocation fails. - */ - const boost::shared_ptr<openvrml::node_type> - polyline2d_metatype:: - do_create_type(const std::string & id, - const node_interface_set & interfaces) const - OPENVRML_THROW2(unsupported_interface, std::bad_alloc) - { - typedef boost::array<node_interface, 2> supported_interfaces_t; - static const supported_interfaces_t supported_interfaces = { - node_interface(node_interface::exposedfield_id, - field_value::sfnode_id, - "metadata"), - node_interface(node_interface::field_id, - field_value::mfvec2f_id, - "lineSegments") - }; - typedef node_type_impl<polyline2d_node> node_type_t; - - const boost::shared_ptr<node_type> type(new node_type_t(*this, id)); - node_type_t & the_node_type = static_cast<node_type_t &>(*type); - - for (node_interface_set::const_iterator interface_(interfaces.begin()); - interface_ != interfaces.end(); - ++interface_) { - supported_interfaces_t::const_iterator supported_interface = - supported_interfaces.begin() - 1; - if (*interface_ == *++supported_interface) { - the_node_type.add_exposedfield( - supported_interface->field_type, - supported_interface->id, - &polyline2d_node::metadata); - } else if (*interface_ == *++supported_interface) { - the_node_type.add_field( - supported_interface->field_type, - supported_interface->id, - &polyline2d_node::line_segments_); - } else { - throw unsupported_interface(*interface_); - } - } - return type; - } - - - /** - * @brief @c node_metatype identifier. - */ - const char * const polypoint2d_metatype::id = - "urn:X-openvrml:node:Polypoint2D"; - - /** - * @brief Construct. - * - * @param browser the @c browser associated with this @c polypoint2d_metatype. - */ - polypoint2d_metatype::polypoint2d_metatype(openvrml::browser & browser): - node_metatype(polypoint2d_metatype::id, browser) - {} - - /** - * @brief Destroy. - */ - polypoint2d_metatype::~polypoint2d_metatype() OPENVRML_NOTHROW - {} - - /** - * @brief Create a node_type. - * - * @param id the name for the new node_type. - * @param interfaces the interfaces for the new node_type. - * - * @return a node_type_ptr to a node_type capable of creating Polypoint2D nodes. - * - * @exception unsupported_interface if @p interfaces includes an interface - * not support... [truncated message content] |